@xenide-io/the-old-ui-theme 0.6.11 → 0.6.13
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/{ai-message-blocknote-DIUICX3G.mjs → ai-message-blocknote-WABTHFY7.mjs} +1 -1
- package/dist/{chunk-VIWW7AW2.mjs → chunk-NOI42JNZ.mjs} +47 -3
- package/dist/suite.d.mts +9 -2
- package/dist/suite.d.ts +9 -2
- package/dist/suite.js +267 -90
- package/dist/suite.mjs +149 -27
- package/package.json +1 -1
- package/src/styles/suite-skin.css +8 -0
- package/src/suite/components/suite-notification-bell.tsx +9 -7
- package/src/suite/components/suite-sidebar.tsx +4 -1
- package/src/suite/components/theme-provider.test.tsx +15 -0
- package/src/suite/components/theme-provider.tsx +3 -0
- package/src/suite/index.ts +5 -0
- package/src/suite/lib/use-lock-mobile-page-zoom.test.tsx +65 -0
- package/src/suite/lib/use-lock-mobile-page-zoom.ts +51 -0
- package/src/suite/lib/use-sidebar-width-hook.test.tsx +73 -0
- package/src/suite/lib/use-sidebar-width.test.ts +77 -0
- package/src/suite/lib/use-sidebar-width.ts +152 -20
|
@@ -8,10 +8,53 @@ import {
|
|
|
8
8
|
createContext,
|
|
9
9
|
useCallback,
|
|
10
10
|
useContext,
|
|
11
|
-
useEffect,
|
|
11
|
+
useEffect as useEffect2,
|
|
12
12
|
useMemo,
|
|
13
13
|
useState
|
|
14
14
|
} from "react";
|
|
15
|
+
|
|
16
|
+
// src/suite/lib/use-lock-mobile-page-zoom.ts
|
|
17
|
+
import { useEffect } from "react";
|
|
18
|
+
var MOBILE_PAGE_ZOOM_QUERY = "(hover: none) and (pointer: coarse)";
|
|
19
|
+
var LOCKED_VIEWPORT = "width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, viewport-fit=cover";
|
|
20
|
+
function preventGesture(event) {
|
|
21
|
+
event.preventDefault();
|
|
22
|
+
}
|
|
23
|
+
function useLockMobilePageZoom() {
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
if (typeof window.matchMedia !== "function") return;
|
|
26
|
+
const media = window.matchMedia(MOBILE_PAGE_ZOOM_QUERY);
|
|
27
|
+
const meta = document.querySelector('meta[name="viewport"]');
|
|
28
|
+
const original = meta == null ? void 0 : meta.getAttribute("content");
|
|
29
|
+
const apply = () => {
|
|
30
|
+
const lock = media.matches;
|
|
31
|
+
document.documentElement.toggleAttribute(
|
|
32
|
+
"data-suite-lock-page-zoom",
|
|
33
|
+
lock
|
|
34
|
+
);
|
|
35
|
+
document.removeEventListener("gesturestart", preventGesture);
|
|
36
|
+
document.removeEventListener("gesturechange", preventGesture);
|
|
37
|
+
if (lock) {
|
|
38
|
+
meta == null ? void 0 : meta.setAttribute("content", LOCKED_VIEWPORT);
|
|
39
|
+
document.addEventListener("gesturestart", preventGesture);
|
|
40
|
+
document.addEventListener("gesturechange", preventGesture);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (original) meta == null ? void 0 : meta.setAttribute("content", original);
|
|
44
|
+
};
|
|
45
|
+
apply();
|
|
46
|
+
media.addEventListener("change", apply);
|
|
47
|
+
return () => {
|
|
48
|
+
media.removeEventListener("change", apply);
|
|
49
|
+
document.documentElement.removeAttribute("data-suite-lock-page-zoom");
|
|
50
|
+
if (original) meta == null ? void 0 : meta.setAttribute("content", original);
|
|
51
|
+
document.removeEventListener("gesturestart", preventGesture);
|
|
52
|
+
document.removeEventListener("gesturechange", preventGesture);
|
|
53
|
+
};
|
|
54
|
+
}, []);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// src/suite/components/theme-provider.tsx
|
|
15
58
|
import { jsx } from "react/jsx-runtime";
|
|
16
59
|
var SuiteThemeContext = createContext(null);
|
|
17
60
|
function systemTheme(fallback) {
|
|
@@ -50,6 +93,7 @@ function SuiteThemeProvider({
|
|
|
50
93
|
config,
|
|
51
94
|
children
|
|
52
95
|
}) {
|
|
96
|
+
useLockMobilePageZoom();
|
|
53
97
|
const [state, setState] = useState(() => {
|
|
54
98
|
const theme2 = readStoredTheme(config.storageKey);
|
|
55
99
|
if (typeof document === "undefined") {
|
|
@@ -60,10 +104,10 @@ function SuiteThemeProvider({
|
|
|
60
104
|
return { theme: theme2, resolvedTheme: resolvedTheme2 };
|
|
61
105
|
});
|
|
62
106
|
const { theme, resolvedTheme } = state;
|
|
63
|
-
|
|
107
|
+
useEffect2(() => {
|
|
64
108
|
applyTheme(theme, config);
|
|
65
109
|
}, [theme, config]);
|
|
66
|
-
|
|
110
|
+
useEffect2(() => {
|
|
67
111
|
if (theme !== "system") return;
|
|
68
112
|
const media = window.matchMedia("(prefers-color-scheme: dark)");
|
|
69
113
|
const update = () => {
|
package/dist/suite.d.mts
CHANGED
|
@@ -705,13 +705,20 @@ declare const SIDEBAR_COLLAPSE_THRESHOLD = 80;
|
|
|
705
705
|
declare const SIDEBAR_MIN_EXPANDED_WIDTH = 180;
|
|
706
706
|
declare const SIDEBAR_MAX_WIDTH = 640;
|
|
707
707
|
declare const SIDEBAR_DEFAULT_WIDTH = 320;
|
|
708
|
+
/** Shared across Tides / TurtleTime / Kraken / ShellStack / Nakama. */
|
|
709
|
+
declare const SUITE_SIDEBAR_WIDTH_KEY = "shellstack:sidebar-width";
|
|
710
|
+
declare const SUITE_SIDEBAR_WIDTH_COOKIE = "shellstack_sidebar_width";
|
|
708
711
|
/** Desktop column width: icon rail when collapsed, otherwise the persisted width. */
|
|
709
712
|
declare function sidebarColumnWidth(width: number, collapsed: boolean, _chatOpen?: boolean): number;
|
|
713
|
+
declare function readSidebarWidth(storageKey: string): number | null;
|
|
714
|
+
declare function persistSidebarWidth(storageKey: string, value: number): void;
|
|
715
|
+
declare function resetSuiteSidebarWidth(): void;
|
|
710
716
|
/**
|
|
711
717
|
* Shared suite sidebar resizing: drag below the threshold to collapse,
|
|
712
718
|
* drag the rail edge out to expand, and double-click to reset.
|
|
719
|
+
* Suite app keys share one width via cookie so app-switch keeps it.
|
|
713
720
|
*/
|
|
714
|
-
declare function useSidebarWidth(storageKey
|
|
721
|
+
declare function useSidebarWidth(storageKey?: string, defaultWidth?: number): {
|
|
715
722
|
width: number;
|
|
716
723
|
collapsed: boolean;
|
|
717
724
|
setCollapsed: (value: boolean) => void;
|
|
@@ -977,4 +984,4 @@ interface SuiteAppLayoutProps {
|
|
|
977
984
|
*/
|
|
978
985
|
declare function SuiteAppLayout({ sidebar, children, mobileHeader, bottomNav, sidebarWidth, collapsed, lockMainScroll, onStartResize, onResizeBy, onResetWidth, className, }: SuiteAppLayoutProps): react.JSX.Element;
|
|
979
986
|
|
|
980
|
-
export { APP_ACCENTS, APP_GLYPHS, AnimatedMoon, AnimatedSun, AppSwitcher, AppSwitcherChevron, AppSwitcherMark, CommandPaletteHost, DeferredChrome, SIDEBAR_COLLAPSE_THRESHOLD, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_EXPANDED_WIDTH, SIDEBAR_RAIL_WIDTH, SUITE_APPS, SUITE_APP_MAP, SUITE_ASK_AI_OPEN_KEY, SUITE_ASK_AI_OPEN_QUERY, SUITE_GLYPHS, SUITE_ICON_NAMES, SUITE_MUTATED_EVENT, SUITE_OPEN_ASK_AI_EVENT, SUITE_SPRINGS, SourceAppGlyph, type SuiteAccentSlug, type SuiteAiAction, type SuiteAiActionStatus, type SuiteAiChatMessage, SuiteAiPanel, type SuiteAiPreset, type SuiteAppAccent, type SuiteAppDefinition, type SuiteAppEntry, SuiteAppIcon, type SuiteAppIconProps, SuiteAppLayout, type SuiteAppLayoutProps, type SuiteAppSlug, SuiteAppStrip, type SuiteAskAiOpenDetail, SuiteBottomNav, type SuiteBottomNavItem, SuiteBreadcrumbs, type SuiteBreadcrumbsProps, type SuiteCommandItem, type SuiteCommandPaletteComponent, type SuiteDropdownItemComponent, type SuiteDropdownMenuComponent, type SuiteDropdownMenuProps, SuiteEmptyState, type SuiteGlyph, type SuiteGlyphElement, type SuiteHrefTarget, SuiteIcon, type SuiteIconName, type SuiteIconProps, SuiteMobileDrawer, SuiteMobileHeader, SuiteMotionProvider, type SuiteNotification, SuiteNotificationBell, type SuiteNotificationsResponse, SuitePage, SuitePageHeader, type SuitePageWidth, type SuiteResolvedTheme, SuiteSectionHeader, SuiteSettingsLayout, type SuiteSettingsLayoutProps, SuiteSettingsMobileNav, type SuiteSettingsNavItem, SuiteSidebar, type SuiteSidebarNavItem, SuiteSkeleton, SuiteSkeletonCard, SuiteSkeletonList, type SuiteSpinnerComponent, type SuiteSpringName, SuiteTabList, type SuiteTheme, type SuiteThemeConfig, type SuiteThemeContextValue, SuiteThemeProvider, SuiteToolbar, SuiteUserMenu, type SuiteUserMenuProps, type SuiteWorkspaceEntry, type SuiteWorkspaceGroup, SuiteWorkspaceSwitcher, TURTLETIME_TIMER_MUTATED_EVENT, TodayAskAiCard, TodayCalibrating, TodayEmptyAction, TodayEmptyState, TodayHero, TodayLayout, TodayPageFrame, TodayPanel, type TodayPrimaryAccent, TodayPrimaryAction, TodaySection, TodayTimeIcon, TodayTopBar, appSwitcherMarkClass, appSwitcherMenuItemClass, appSwitcherTriggerClass, classifySuiteHref, cn, consumePendingAskAiPrompt, consumeSuiteAskAiOpenFromLocation, getTodayGreeting, openSuiteAskAi, pathWithSuiteAskAiOpen, persistSuiteAskAiOpen, readSuiteAskAiOpen, resolveSuiteNotificationHref, sidebarColumnWidth, sourceToSuiteApp, suiteAppBaseUrl, suiteAppLabel, useIdleMount, useSidebarWidth, useSuiteTheme };
|
|
987
|
+
export { APP_ACCENTS, APP_GLYPHS, AnimatedMoon, AnimatedSun, AppSwitcher, AppSwitcherChevron, AppSwitcherMark, CommandPaletteHost, DeferredChrome, SIDEBAR_COLLAPSE_THRESHOLD, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_EXPANDED_WIDTH, SIDEBAR_RAIL_WIDTH, SUITE_APPS, SUITE_APP_MAP, SUITE_ASK_AI_OPEN_KEY, SUITE_ASK_AI_OPEN_QUERY, SUITE_GLYPHS, SUITE_ICON_NAMES, SUITE_MUTATED_EVENT, SUITE_OPEN_ASK_AI_EVENT, SUITE_SIDEBAR_WIDTH_COOKIE, SUITE_SIDEBAR_WIDTH_KEY, SUITE_SPRINGS, SourceAppGlyph, type SuiteAccentSlug, type SuiteAiAction, type SuiteAiActionStatus, type SuiteAiChatMessage, SuiteAiPanel, type SuiteAiPreset, type SuiteAppAccent, type SuiteAppDefinition, type SuiteAppEntry, SuiteAppIcon, type SuiteAppIconProps, SuiteAppLayout, type SuiteAppLayoutProps, type SuiteAppSlug, SuiteAppStrip, type SuiteAskAiOpenDetail, SuiteBottomNav, type SuiteBottomNavItem, SuiteBreadcrumbs, type SuiteBreadcrumbsProps, type SuiteCommandItem, type SuiteCommandPaletteComponent, type SuiteDropdownItemComponent, type SuiteDropdownMenuComponent, type SuiteDropdownMenuProps, SuiteEmptyState, type SuiteGlyph, type SuiteGlyphElement, type SuiteHrefTarget, SuiteIcon, type SuiteIconName, type SuiteIconProps, SuiteMobileDrawer, SuiteMobileHeader, SuiteMotionProvider, type SuiteNotification, SuiteNotificationBell, type SuiteNotificationsResponse, SuitePage, SuitePageHeader, type SuitePageWidth, type SuiteResolvedTheme, SuiteSectionHeader, SuiteSettingsLayout, type SuiteSettingsLayoutProps, SuiteSettingsMobileNav, type SuiteSettingsNavItem, SuiteSidebar, type SuiteSidebarNavItem, SuiteSkeleton, SuiteSkeletonCard, SuiteSkeletonList, type SuiteSpinnerComponent, type SuiteSpringName, SuiteTabList, type SuiteTheme, type SuiteThemeConfig, type SuiteThemeContextValue, SuiteThemeProvider, SuiteToolbar, SuiteUserMenu, type SuiteUserMenuProps, type SuiteWorkspaceEntry, type SuiteWorkspaceGroup, SuiteWorkspaceSwitcher, TURTLETIME_TIMER_MUTATED_EVENT, TodayAskAiCard, TodayCalibrating, TodayEmptyAction, TodayEmptyState, TodayHero, TodayLayout, TodayPageFrame, TodayPanel, type TodayPrimaryAccent, TodayPrimaryAction, TodaySection, TodayTimeIcon, TodayTopBar, appSwitcherMarkClass, appSwitcherMenuItemClass, appSwitcherTriggerClass, classifySuiteHref, cn, consumePendingAskAiPrompt, consumeSuiteAskAiOpenFromLocation, getTodayGreeting, openSuiteAskAi, pathWithSuiteAskAiOpen, persistSidebarWidth, persistSuiteAskAiOpen, readSidebarWidth, readSuiteAskAiOpen, resetSuiteSidebarWidth, resolveSuiteNotificationHref, sidebarColumnWidth, sourceToSuiteApp, suiteAppBaseUrl, suiteAppLabel, useIdleMount, useSidebarWidth, useSuiteTheme };
|
package/dist/suite.d.ts
CHANGED
|
@@ -705,13 +705,20 @@ declare const SIDEBAR_COLLAPSE_THRESHOLD = 80;
|
|
|
705
705
|
declare const SIDEBAR_MIN_EXPANDED_WIDTH = 180;
|
|
706
706
|
declare const SIDEBAR_MAX_WIDTH = 640;
|
|
707
707
|
declare const SIDEBAR_DEFAULT_WIDTH = 320;
|
|
708
|
+
/** Shared across Tides / TurtleTime / Kraken / ShellStack / Nakama. */
|
|
709
|
+
declare const SUITE_SIDEBAR_WIDTH_KEY = "shellstack:sidebar-width";
|
|
710
|
+
declare const SUITE_SIDEBAR_WIDTH_COOKIE = "shellstack_sidebar_width";
|
|
708
711
|
/** Desktop column width: icon rail when collapsed, otherwise the persisted width. */
|
|
709
712
|
declare function sidebarColumnWidth(width: number, collapsed: boolean, _chatOpen?: boolean): number;
|
|
713
|
+
declare function readSidebarWidth(storageKey: string): number | null;
|
|
714
|
+
declare function persistSidebarWidth(storageKey: string, value: number): void;
|
|
715
|
+
declare function resetSuiteSidebarWidth(): void;
|
|
710
716
|
/**
|
|
711
717
|
* Shared suite sidebar resizing: drag below the threshold to collapse,
|
|
712
718
|
* drag the rail edge out to expand, and double-click to reset.
|
|
719
|
+
* Suite app keys share one width via cookie so app-switch keeps it.
|
|
713
720
|
*/
|
|
714
|
-
declare function useSidebarWidth(storageKey
|
|
721
|
+
declare function useSidebarWidth(storageKey?: string, defaultWidth?: number): {
|
|
715
722
|
width: number;
|
|
716
723
|
collapsed: boolean;
|
|
717
724
|
setCollapsed: (value: boolean) => void;
|
|
@@ -977,4 +984,4 @@ interface SuiteAppLayoutProps {
|
|
|
977
984
|
*/
|
|
978
985
|
declare function SuiteAppLayout({ sidebar, children, mobileHeader, bottomNav, sidebarWidth, collapsed, lockMainScroll, onStartResize, onResizeBy, onResetWidth, className, }: SuiteAppLayoutProps): react.JSX.Element;
|
|
979
986
|
|
|
980
|
-
export { APP_ACCENTS, APP_GLYPHS, AnimatedMoon, AnimatedSun, AppSwitcher, AppSwitcherChevron, AppSwitcherMark, CommandPaletteHost, DeferredChrome, SIDEBAR_COLLAPSE_THRESHOLD, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_EXPANDED_WIDTH, SIDEBAR_RAIL_WIDTH, SUITE_APPS, SUITE_APP_MAP, SUITE_ASK_AI_OPEN_KEY, SUITE_ASK_AI_OPEN_QUERY, SUITE_GLYPHS, SUITE_ICON_NAMES, SUITE_MUTATED_EVENT, SUITE_OPEN_ASK_AI_EVENT, SUITE_SPRINGS, SourceAppGlyph, type SuiteAccentSlug, type SuiteAiAction, type SuiteAiActionStatus, type SuiteAiChatMessage, SuiteAiPanel, type SuiteAiPreset, type SuiteAppAccent, type SuiteAppDefinition, type SuiteAppEntry, SuiteAppIcon, type SuiteAppIconProps, SuiteAppLayout, type SuiteAppLayoutProps, type SuiteAppSlug, SuiteAppStrip, type SuiteAskAiOpenDetail, SuiteBottomNav, type SuiteBottomNavItem, SuiteBreadcrumbs, type SuiteBreadcrumbsProps, type SuiteCommandItem, type SuiteCommandPaletteComponent, type SuiteDropdownItemComponent, type SuiteDropdownMenuComponent, type SuiteDropdownMenuProps, SuiteEmptyState, type SuiteGlyph, type SuiteGlyphElement, type SuiteHrefTarget, SuiteIcon, type SuiteIconName, type SuiteIconProps, SuiteMobileDrawer, SuiteMobileHeader, SuiteMotionProvider, type SuiteNotification, SuiteNotificationBell, type SuiteNotificationsResponse, SuitePage, SuitePageHeader, type SuitePageWidth, type SuiteResolvedTheme, SuiteSectionHeader, SuiteSettingsLayout, type SuiteSettingsLayoutProps, SuiteSettingsMobileNav, type SuiteSettingsNavItem, SuiteSidebar, type SuiteSidebarNavItem, SuiteSkeleton, SuiteSkeletonCard, SuiteSkeletonList, type SuiteSpinnerComponent, type SuiteSpringName, SuiteTabList, type SuiteTheme, type SuiteThemeConfig, type SuiteThemeContextValue, SuiteThemeProvider, SuiteToolbar, SuiteUserMenu, type SuiteUserMenuProps, type SuiteWorkspaceEntry, type SuiteWorkspaceGroup, SuiteWorkspaceSwitcher, TURTLETIME_TIMER_MUTATED_EVENT, TodayAskAiCard, TodayCalibrating, TodayEmptyAction, TodayEmptyState, TodayHero, TodayLayout, TodayPageFrame, TodayPanel, type TodayPrimaryAccent, TodayPrimaryAction, TodaySection, TodayTimeIcon, TodayTopBar, appSwitcherMarkClass, appSwitcherMenuItemClass, appSwitcherTriggerClass, classifySuiteHref, cn, consumePendingAskAiPrompt, consumeSuiteAskAiOpenFromLocation, getTodayGreeting, openSuiteAskAi, pathWithSuiteAskAiOpen, persistSuiteAskAiOpen, readSuiteAskAiOpen, resolveSuiteNotificationHref, sidebarColumnWidth, sourceToSuiteApp, suiteAppBaseUrl, suiteAppLabel, useIdleMount, useSidebarWidth, useSuiteTheme };
|
|
987
|
+
export { APP_ACCENTS, APP_GLYPHS, AnimatedMoon, AnimatedSun, AppSwitcher, AppSwitcherChevron, AppSwitcherMark, CommandPaletteHost, DeferredChrome, SIDEBAR_COLLAPSE_THRESHOLD, SIDEBAR_DEFAULT_WIDTH, SIDEBAR_MAX_WIDTH, SIDEBAR_MIN_EXPANDED_WIDTH, SIDEBAR_RAIL_WIDTH, SUITE_APPS, SUITE_APP_MAP, SUITE_ASK_AI_OPEN_KEY, SUITE_ASK_AI_OPEN_QUERY, SUITE_GLYPHS, SUITE_ICON_NAMES, SUITE_MUTATED_EVENT, SUITE_OPEN_ASK_AI_EVENT, SUITE_SIDEBAR_WIDTH_COOKIE, SUITE_SIDEBAR_WIDTH_KEY, SUITE_SPRINGS, SourceAppGlyph, type SuiteAccentSlug, type SuiteAiAction, type SuiteAiActionStatus, type SuiteAiChatMessage, SuiteAiPanel, type SuiteAiPreset, type SuiteAppAccent, type SuiteAppDefinition, type SuiteAppEntry, SuiteAppIcon, type SuiteAppIconProps, SuiteAppLayout, type SuiteAppLayoutProps, type SuiteAppSlug, SuiteAppStrip, type SuiteAskAiOpenDetail, SuiteBottomNav, type SuiteBottomNavItem, SuiteBreadcrumbs, type SuiteBreadcrumbsProps, type SuiteCommandItem, type SuiteCommandPaletteComponent, type SuiteDropdownItemComponent, type SuiteDropdownMenuComponent, type SuiteDropdownMenuProps, SuiteEmptyState, type SuiteGlyph, type SuiteGlyphElement, type SuiteHrefTarget, SuiteIcon, type SuiteIconName, type SuiteIconProps, SuiteMobileDrawer, SuiteMobileHeader, SuiteMotionProvider, type SuiteNotification, SuiteNotificationBell, type SuiteNotificationsResponse, SuitePage, SuitePageHeader, type SuitePageWidth, type SuiteResolvedTheme, SuiteSectionHeader, SuiteSettingsLayout, type SuiteSettingsLayoutProps, SuiteSettingsMobileNav, type SuiteSettingsNavItem, SuiteSidebar, type SuiteSidebarNavItem, SuiteSkeleton, SuiteSkeletonCard, SuiteSkeletonList, type SuiteSpinnerComponent, type SuiteSpringName, SuiteTabList, type SuiteTheme, type SuiteThemeConfig, type SuiteThemeContextValue, SuiteThemeProvider, SuiteToolbar, SuiteUserMenu, type SuiteUserMenuProps, type SuiteWorkspaceEntry, type SuiteWorkspaceGroup, SuiteWorkspaceSwitcher, TURTLETIME_TIMER_MUTATED_EVENT, TodayAskAiCard, TodayCalibrating, TodayEmptyAction, TodayEmptyState, TodayHero, TodayLayout, TodayPageFrame, TodayPanel, type TodayPrimaryAccent, TodayPrimaryAction, TodaySection, TodayTimeIcon, TodayTopBar, appSwitcherMarkClass, appSwitcherMenuItemClass, appSwitcherTriggerClass, classifySuiteHref, cn, consumePendingAskAiPrompt, consumeSuiteAskAiOpenFromLocation, getTodayGreeting, openSuiteAskAi, pathWithSuiteAskAiOpen, persistSidebarWidth, persistSuiteAskAiOpen, readSidebarWidth, readSuiteAskAiOpen, resetSuiteSidebarWidth, resolveSuiteNotificationHref, sidebarColumnWidth, sourceToSuiteApp, suiteAppBaseUrl, suiteAppLabel, useIdleMount, useSidebarWidth, useSuiteTheme };
|