@burdenoff/fe-libs 2026.1021.5 → 2026.1021.7

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 (40) hide show
  1. package/README.md +35 -0
  2. package/dist/chrome/AccountSwitcher.js +7 -7
  3. package/dist/chrome/AutoBreadcrumbs.js +3 -3
  4. package/dist/chrome/Breadcrumbs.js +24 -24
  5. package/dist/chrome/ContextSwitcher.js +7 -7
  6. package/dist/chrome/DynamicFooter.js +3 -3
  7. package/dist/chrome/HeaderThemeSwitcher.js +14 -14
  8. package/dist/chrome/LanguagePickerSheet.js +7 -7
  9. package/dist/chrome/NativeTopBar.js +4 -4
  10. package/dist/chrome/NavCustomizeDialog.js +12 -12
  11. package/dist/chrome/ProductPickerSheet.js +7 -7
  12. package/dist/chrome/SideNavigation.js +17 -17
  13. package/dist/chrome/Sidebar.js +34 -34
  14. package/dist/chrome/Tabs.js +20 -20
  15. package/dist/chrome/ThemePreferences.js +188 -188
  16. package/dist/shared/assistant/ui/AssistantChatArea.js +4 -4
  17. package/dist/shared/components/ContextConversationWidget.js +7 -7
  18. package/dist/shared/components/QuotaUpgradeBridge.js +13 -13
  19. package/dist/shared/pages/AiPage.js +6 -6
  20. package/dist/shared/providers/shell/ProfileI18nBridge.js +11 -11
  21. package/dist/shared/utils/canvasTokens.d.ts +65 -0
  22. package/dist/shared/utils/canvasTokens.js +159 -0
  23. package/dist/shared/utils/index.d.ts +2 -0
  24. package/dist/shared-hooks-shell.js +7 -7
  25. package/dist/shared-providers-shell.js +6 -6
  26. package/dist/shared-utils.js +19 -18
  27. package/dist/shared.js +135 -134
  28. package/dist/ui/branded-splash.d.ts +25 -2
  29. package/dist/ui/branded-splash.js +48 -31
  30. package/dist/ui/cta-overflow-menu.js +17 -17
  31. package/dist/ui/guidance.js +19 -19
  32. package/dist/ui/index.d.ts +1 -1
  33. package/dist/utils/index.js +1 -0
  34. package/package.json +6 -2
  35. package/shared/config/eslint.config.d.mts +21 -0
  36. package/shared/config/eslint.config.mjs +80 -18
  37. package/src/shared/styles/app-shell.css +3 -0
  38. package/src/shared/styles/canvas-theme.css +82 -0
  39. package/src/shared/tokens/build/semantic.css +83 -0
  40. package/src/shared/tokens/build/tailwind.preset.js +65 -0
package/dist/shared.js CHANGED
@@ -2,144 +2,145 @@ import { useCopyToClipboard as e } from "./shared/hooks/useCopyToClipboard.js";
2
2
  import { useMediaQuery as t } from "./shared/hooks/useMediaQuery.js";
3
3
  import { createApolloClient as n } from "./shared/utils/apollo.js";
4
4
  import { alertTokens as r, categoryTokens as i, getAlertTokens as a, getCategoryTokens as o, getProgressTokens as s, getStatusBadgeTokens as c, getStatusTokens as l, getTrendTokens as u, progressTokens as d, statusTokens as f, trendTokens as p } from "./shared/utils/tokens.js";
5
- import { capitalizeFirst as m, capitalizeWords as h, formatBytes as g, formatCompactNumber as _, formatCurrency as v, formatCurrencyCompact as y, formatDate as b, formatDateTime as x, formatDuration as S, formatList as C, formatNumber as w, formatOrdinal as T, formatPercentage as E, formatRelativeTime as D, formatTime as O, pluralize as k, slugify as A, toCamelCase as j, toPascalCase as M, truncateText as N } from "./shared/utils/format.js";
6
- import { isChunkLoadError as P, lazyWithRetry as F } from "./shared/utils/lazyWithRetry.js";
7
- import { getCapacitorPlatform as I, isCapacitorNative as L } from "./shared/native/capacitor.js";
8
- import { DESKTOP_UPDATE_UNSUPPORTED as R, DESKTOP_WINDOW_STATE_DEFAULT as z, bootDesktopShell as B, desktopCheckForUpdates as V, desktopDeepLinkToPath as H, desktopInstallUpdate as U, desktopNotify as W, desktopOpenExternal as G, desktopSetBadgeCount as K, desktopSetLocale as q, desktopSetTheme as J, desktopSetTrayQuickActions as Y, getDesktopAuthBridgeConfig as X, getDesktopBridge as Z, getDesktopGatewayBases as Q, getDesktopGatewayUrls as $, getDesktopRuntimeConfig as ee, getDesktopUpdateState as te, getDesktopWindowState as ne, getLegacyDesktopRuntime as re, installDesktopDeepLinkHandler as ie, installDesktopNavigateHandler as ae, isDesktop as oe, onDesktopUpdateState as se, onDesktopWindowState as ce, registerDesktopNavigator as le } from "./shared/native/desktop.js";
9
- import { resolveGatewayUrls as ue } from "./shared/config/gatewayUrls.js";
10
- import { installGatewayFetchRewrite as de, resolveGatewayBases as fe, suppressConsole as pe } from "./shared/utils/gatewayFetchRewrite.js";
11
- import { resolveAuthBridgeConfig as me, resolveShellAuthBridgeConfig as he } from "./shared/config/authBridgeUrls.js";
12
- import { PRODUCT_SLUG_EMIT as ge, PRODUCT_SLUG_RENAMES as _e, emitProductSlug as ve, isSameProductSlug as ye, legacyProductSlug as be, normalizeProductSlug as xe } from "./shared/config/productSlug.js";
13
- import { BOTMANOR_PRODUCT_SLUG as Se, PRODUCTS as Ce, PRODUCT_URLS as we, findProductConfig as Te, getProductUrl as Ee, getProductsWithUrls as De } from "./shared/config/products.js";
14
- import { COMMON_SHELL_LESS_ROUTES as Oe, DEFAULT_SHELL_CONFIG as ke, getShellConfig as Ae, isShellLessRoute as je, shouldShowBreadcrumb as Me, shouldShowSidebar as Ne } from "./shared/config/shellRoutes.js";
15
- import { DEFAULT_PAGE_SIZE as Pe, GATEWAYS as Fe, getGatewayConfig as Ie, getGatewayUrl as Le, getGraphQLEndpoint as Re } from "./shared-config.js";
16
- import { getWorkspaceTokenPayload as ze, isWorkspaceTokenValidForContext as Be } from "./shared/graphql/workspaceToken.js";
17
- import { BACKEND_ERROR_EVENT as Ve, CONNECTION_STATUS_EVENT as He, dispatchBackendErrorEvent as Ue, extractBackendError as We, isAbortError as Ge, isBackendErrorDisplay as Ke, isTransportError as qe, markConnectionHealthy as Je, shouldToastBackendError as Ye } from "./shared/utils/backendErrors.js";
18
- import { clearGraphqlFetchResponseCache as Xe, getStoredAuthToken as Ze, getStoredLocale as Qe, getStoredOrganizationId as $e, getStoredProjectId as et, getStoredWorkspaceId as tt, getStoredWorkspaceToken as nt, graphqlFetch as rt, resolveGatewayUrl as it } from "./shared/graphql/fetch.js";
19
- import { SSELink as at } from "./shared/graphql/links/sse-link.js";
20
- import { createGraphQLClient as ot, getGlobalClient as st, getWorkspaceClient as ct, initializeAppClients as lt, resetAppClients as ut } from "./shared/graphql/client.js";
21
- import { GatewayProvider as dt, useGateway as ft, useGatewayClient as pt, useSafeGateway as mt, useSafeGatewayClient as ht } from "./shared/graphql/GatewayContext.js";
22
- import { useHasAuthToken as gt } from "./shared/graphql/useHasAuthToken.js";
23
- import { WsLink as _t } from "./shared/graphql/links/ws-link.js";
24
- import { prepareWorkspaceRequest as vt } from "./shared/graphql/prepareWorkspaceRequest.js";
25
- import { ApolloClient as yt, ApolloProvider as bt, InMemoryCache as xt, gql as St, useApolloClient as Ct, useLazyQuery as wt, useMutation as Tt, useQuery as Et, useSubscription as Dt } from "./shared-graphql.js";
26
- import { attemptTokenRefresh as Ot, clearAuthSessionStorage as kt, hasAuthGraphQLErrors as At, isAuthGraphQLError as jt, isAuthNetworkError as Mt, redirectToLogin as Nt } from "./shared/utils/authErrorHandling.js";
27
- import { clearSSoCookie as Pt, clearShellSsoCookies as Ft, getSSoCookie as It, isSharedSsoCookieDomain as Lt, isTrustedSsoOrigin as Rt, readShellSsoCookie as zt, setSSoCookie as Bt, setShellSsoCookies as Vt } from "./shared/utils/authCookie.js";
28
- import { getNativeBridge as Ht } from "./shared/native/bridge.js";
29
- import { getPlatform as Ut, isAndroid as Wt, isElectron as Gt, isIOS as Kt, isInstalledApp as qt, isNative as Jt, isStandalonePWA as Yt, isWeb as Xt, isWebBrowser as Zt } from "./shared/native/platform.js";
30
- import { assignLocationWithAllowlist as Qt, isAllowedRedirectUrl as $t, openUrlInNewTabWithAllowlist as en, replaceLocationWithAllowlist as tn } from "./shared/utils/redirectAllowlist.js";
31
- import { SSORedirectSpinner as nn, checkRemoteSLO as rn, checkSLO as an, clearLocalAuthState as on, getSSORedirectUrl as sn, redirectToSSO as cn } from "./shared/components/SSORedirectGuard.js";
32
- import { SSO_DEPOSITED_PARAM as ln, beginSsoNavigation as un, buildSsoDepositUrl as dn, clearSsoDepositState as fn, clearSsoNavigation as pn, consumeSsoDepositMarker as mn, isSsoNavigationPending as hn, markSsoDepositDone as gn, markSsoDepositPending as _n, mintSsoSessionTokens as vn, readSsoDepositState as yn, shouldAttemptSsoDeposit as bn } from "./shared/utils/ssoDeposit.js";
33
- import { AppInitializer as xn, useRegistryHelpers as Sn, useShellNavigate as Cn } from "./shared/utils/appHelpers.js";
34
- import { LogLevel as wn } from "./shared/logger/types.js";
35
- import { Logger as Tn } from "./shared/logger/Logger.js";
36
- import { LogManager as En, logManager as Dn } from "./shared/logger/LogManager.js";
37
- import { ConsoleTransport as On } from "./shared/logger/ConsoleTransport.js";
38
- import { clearUserContext as kn, initializeLogger as An, setUserContext as jn } from "./shared/utils/loggerInit.js";
39
- import { createProfileScopedStorage as Mn, getProfileScopedKey as Nn } from "./shared/utils/profileScopedStorage.js";
40
- import { QUOTA_EXHAUSTED_CODE as Pn, RESOURCE_CAP_EXCEEDED_CODE as Fn, STORAGE_QUOTA_EXCEEDED_CODE as In, UPGRADE_ERROR_CODES as Ln, buildQuotaExhaustedMessage as Rn, extractQuotaExhaustedExtensions as zn, extractUpgradeErrorExtensions as Bn, isQuotaExhaustedError as Vn, isUpgradeError as Hn } from "./shared/utils/quotaErrors.js";
41
- import { INLINE_ENCODE as Un, downscaleImage as Wn, selectInlineBase64 as Gn } from "./shared/utils/imageDownscale.js";
42
- import { cn as Kn } from "./shared-utils.js";
43
- import { nativeActionSheet as qn, nativeConfirm as Jn, nativeCopyText as Yn, nativeImpact as Xn, nativeNotify as Zn, nativeOpenUrl as Qn, nativeSelection as $n, nativeShare as er, nativeToast as tr } from "./shared/native/consumers.js";
44
- import { SafeAreaView as nr } from "./shared/native/SafeAreaView.js";
45
- import { readInitialNetworkStatus as rr, reduceNetworkStatus as ir, useNetworkStatus as ar } from "./shared/native/hooks/useNetworkStatus.js";
46
- import { PULL_TO_REFRESH_THRESHOLD as or, computePullOffset as sr, computePullProgress as cr, usePullToRefresh as lr } from "./shared/native/hooks/usePullToRefresh.js";
47
- import { useReturnFocus as ur } from "./shared/hooks/useReturnFocus.js";
48
- import { ActorIdentity as dr } from "./shared/actors/ActorIdentity.js";
49
- import { buildActorFallback as fr, useActorProfiles as pr } from "./shared/actors/useActorProfiles.js";
50
- import { ErrorBoundary as mr } from "./shared/components/ErrorBoundary.js";
51
- import { RequireAuth as hr, RequireGuest as gr } from "./shared/components/RequireAuth.js";
52
- import { PermissionButton as _r, PermissionGate as vr, PermissionLink as yr } from "./shared/components/PermissionGate.js";
53
- import { AccessDenied as br, PermissionDenied as xr } from "./shared/components/AccessDenied.js";
54
- import { ErrorFallback as Sr } from "./shared/components/ErrorFallback.js";
55
- import { LoadingFallback as Cr, PageLoadingFallback as wr, SectionLoadingFallback as Tr } from "./shared/components/LoadingFallback.js";
56
- import { MicrofrontendErrorBoundary as Er } from "./shared/components/MicrofrontendErrorBoundary.js";
57
- import { ConditionalShell as Dr } from "./shared/components/ConditionalShell.js";
58
- import { usePWA as Or } from "./shared/hooks/usePWA.js";
59
- import { PWAInstallBanner as kr } from "./shared/components/PWAInstallBanner.js";
60
- import { ErrorBoundary as Ar } from "./shared/components/AppErrorBoundary.js";
61
- import { FeatureFlagProvider as jr, useFeatureFlags as Mr } from "./shared/feature-flags/FeatureFlagProvider.js";
62
- import { useFeatureFlag as Nr, useFeatureFlagDetails as Pr, useFeatureFlagValue as Fr } from "./shared/feature-flags/useFeatureFlag.js";
63
- import { FeatureGate as Ir } from "./shared/feature-flags/FeatureGate.js";
5
+ import { CHART_SERIES_COUNT as m, DATA_TYPES as h, EDGE_KINDS as g, NODE_CATEGORIES as _, NODE_STATES as v, chartSeriesColor as y, chartSeriesIndex as b, dataTypeColor as x, dataTypeTextClasses as S, edgeColor as C, nodeCategoryClasses as w, nodeCategoryColor as T, nodeCategorySubtleColor as E, nodeStateColor as D, nodeStateRingClasses as O, toDataType as k, toNodeCategory as A } from "./shared/utils/canvasTokens.js";
6
+ import { capitalizeFirst as j, capitalizeWords as M, formatBytes as N, formatCompactNumber as P, formatCurrency as F, formatCurrencyCompact as I, formatDate as L, formatDateTime as R, formatDuration as z, formatList as B, formatNumber as V, formatOrdinal as H, formatPercentage as U, formatRelativeTime as W, formatTime as G, pluralize as K, slugify as q, toCamelCase as J, toPascalCase as Y, truncateText as X } from "./shared/utils/format.js";
7
+ import { isChunkLoadError as Z, lazyWithRetry as Q } from "./shared/utils/lazyWithRetry.js";
8
+ import { getCapacitorPlatform as $, isCapacitorNative as ee } from "./shared/native/capacitor.js";
9
+ import { DESKTOP_UPDATE_UNSUPPORTED as te, DESKTOP_WINDOW_STATE_DEFAULT as ne, bootDesktopShell as re, desktopCheckForUpdates as ie, desktopDeepLinkToPath as ae, desktopInstallUpdate as oe, desktopNotify as se, desktopOpenExternal as ce, desktopSetBadgeCount as le, desktopSetLocale as ue, desktopSetTheme as de, desktopSetTrayQuickActions as fe, getDesktopAuthBridgeConfig as pe, getDesktopBridge as me, getDesktopGatewayBases as he, getDesktopGatewayUrls as ge, getDesktopRuntimeConfig as _e, getDesktopUpdateState as ve, getDesktopWindowState as ye, getLegacyDesktopRuntime as be, installDesktopDeepLinkHandler as xe, installDesktopNavigateHandler as Se, isDesktop as Ce, onDesktopUpdateState as we, onDesktopWindowState as Te, registerDesktopNavigator as Ee } from "./shared/native/desktop.js";
10
+ import { resolveGatewayUrls as De } from "./shared/config/gatewayUrls.js";
11
+ import { installGatewayFetchRewrite as Oe, resolveGatewayBases as ke, suppressConsole as Ae } from "./shared/utils/gatewayFetchRewrite.js";
12
+ import { resolveAuthBridgeConfig as je, resolveShellAuthBridgeConfig as Me } from "./shared/config/authBridgeUrls.js";
13
+ import { PRODUCT_SLUG_EMIT as Ne, PRODUCT_SLUG_RENAMES as Pe, emitProductSlug as Fe, isSameProductSlug as Ie, legacyProductSlug as Le, normalizeProductSlug as Re } from "./shared/config/productSlug.js";
14
+ import { BOTMANOR_PRODUCT_SLUG as ze, PRODUCTS as Be, PRODUCT_URLS as Ve, findProductConfig as He, getProductUrl as Ue, getProductsWithUrls as We } from "./shared/config/products.js";
15
+ import { COMMON_SHELL_LESS_ROUTES as Ge, DEFAULT_SHELL_CONFIG as Ke, getShellConfig as qe, isShellLessRoute as Je, shouldShowBreadcrumb as Ye, shouldShowSidebar as Xe } from "./shared/config/shellRoutes.js";
16
+ import { DEFAULT_PAGE_SIZE as Ze, GATEWAYS as Qe, getGatewayConfig as $e, getGatewayUrl as et, getGraphQLEndpoint as tt } from "./shared-config.js";
17
+ import { getWorkspaceTokenPayload as nt, isWorkspaceTokenValidForContext as rt } from "./shared/graphql/workspaceToken.js";
18
+ import { BACKEND_ERROR_EVENT as it, CONNECTION_STATUS_EVENT as at, dispatchBackendErrorEvent as ot, extractBackendError as st, isAbortError as ct, isBackendErrorDisplay as lt, isTransportError as ut, markConnectionHealthy as dt, shouldToastBackendError as ft } from "./shared/utils/backendErrors.js";
19
+ import { clearGraphqlFetchResponseCache as pt, getStoredAuthToken as mt, getStoredLocale as ht, getStoredOrganizationId as gt, getStoredProjectId as _t, getStoredWorkspaceId as vt, getStoredWorkspaceToken as yt, graphqlFetch as bt, resolveGatewayUrl as xt } from "./shared/graphql/fetch.js";
20
+ import { SSELink as St } from "./shared/graphql/links/sse-link.js";
21
+ import { createGraphQLClient as Ct, getGlobalClient as wt, getWorkspaceClient as Tt, initializeAppClients as Et, resetAppClients as Dt } from "./shared/graphql/client.js";
22
+ import { GatewayProvider as Ot, useGateway as kt, useGatewayClient as At, useSafeGateway as jt, useSafeGatewayClient as Mt } from "./shared/graphql/GatewayContext.js";
23
+ import { useHasAuthToken as Nt } from "./shared/graphql/useHasAuthToken.js";
24
+ import { WsLink as Pt } from "./shared/graphql/links/ws-link.js";
25
+ import { prepareWorkspaceRequest as Ft } from "./shared/graphql/prepareWorkspaceRequest.js";
26
+ import { ApolloClient as It, ApolloProvider as Lt, InMemoryCache as Rt, gql as zt, useApolloClient as Bt, useLazyQuery as Vt, useMutation as Ht, useQuery as Ut, useSubscription as Wt } from "./shared-graphql.js";
27
+ import { attemptTokenRefresh as Gt, clearAuthSessionStorage as Kt, hasAuthGraphQLErrors as qt, isAuthGraphQLError as Jt, isAuthNetworkError as Yt, redirectToLogin as Xt } from "./shared/utils/authErrorHandling.js";
28
+ import { clearSSoCookie as Zt, clearShellSsoCookies as Qt, getSSoCookie as $t, isSharedSsoCookieDomain as en, isTrustedSsoOrigin as tn, readShellSsoCookie as nn, setSSoCookie as rn, setShellSsoCookies as an } from "./shared/utils/authCookie.js";
29
+ import { getNativeBridge as on } from "./shared/native/bridge.js";
30
+ import { getPlatform as sn, isAndroid as cn, isElectron as ln, isIOS as un, isInstalledApp as dn, isNative as fn, isStandalonePWA as pn, isWeb as mn, isWebBrowser as hn } from "./shared/native/platform.js";
31
+ import { assignLocationWithAllowlist as gn, isAllowedRedirectUrl as _n, openUrlInNewTabWithAllowlist as vn, replaceLocationWithAllowlist as yn } from "./shared/utils/redirectAllowlist.js";
32
+ import { SSORedirectSpinner as bn, checkRemoteSLO as xn, checkSLO as Sn, clearLocalAuthState as Cn, getSSORedirectUrl as wn, redirectToSSO as Tn } from "./shared/components/SSORedirectGuard.js";
33
+ import { SSO_DEPOSITED_PARAM as En, beginSsoNavigation as Dn, buildSsoDepositUrl as On, clearSsoDepositState as kn, clearSsoNavigation as An, consumeSsoDepositMarker as jn, isSsoNavigationPending as Mn, markSsoDepositDone as Nn, markSsoDepositPending as Pn, mintSsoSessionTokens as Fn, readSsoDepositState as In, shouldAttemptSsoDeposit as Ln } from "./shared/utils/ssoDeposit.js";
34
+ import { AppInitializer as Rn, useRegistryHelpers as zn, useShellNavigate as Bn } from "./shared/utils/appHelpers.js";
35
+ import { LogLevel as Vn } from "./shared/logger/types.js";
36
+ import { Logger as Hn } from "./shared/logger/Logger.js";
37
+ import { LogManager as Un, logManager as Wn } from "./shared/logger/LogManager.js";
38
+ import { ConsoleTransport as Gn } from "./shared/logger/ConsoleTransport.js";
39
+ import { clearUserContext as Kn, initializeLogger as qn, setUserContext as Jn } from "./shared/utils/loggerInit.js";
40
+ import { createProfileScopedStorage as Yn, getProfileScopedKey as Xn } from "./shared/utils/profileScopedStorage.js";
41
+ import { QUOTA_EXHAUSTED_CODE as Zn, RESOURCE_CAP_EXCEEDED_CODE as Qn, STORAGE_QUOTA_EXCEEDED_CODE as $n, UPGRADE_ERROR_CODES as er, buildQuotaExhaustedMessage as tr, extractQuotaExhaustedExtensions as nr, extractUpgradeErrorExtensions as rr, isQuotaExhaustedError as ir, isUpgradeError as ar } from "./shared/utils/quotaErrors.js";
42
+ import { INLINE_ENCODE as or, downscaleImage as sr, selectInlineBase64 as cr } from "./shared/utils/imageDownscale.js";
43
+ import { cn as lr } from "./shared-utils.js";
44
+ import { nativeActionSheet as ur, nativeConfirm as dr, nativeCopyText as fr, nativeImpact as pr, nativeNotify as mr, nativeOpenUrl as hr, nativeSelection as gr, nativeShare as _r, nativeToast as vr } from "./shared/native/consumers.js";
45
+ import { SafeAreaView as yr } from "./shared/native/SafeAreaView.js";
46
+ import { readInitialNetworkStatus as br, reduceNetworkStatus as xr, useNetworkStatus as Sr } from "./shared/native/hooks/useNetworkStatus.js";
47
+ import { PULL_TO_REFRESH_THRESHOLD as Cr, computePullOffset as wr, computePullProgress as Tr, usePullToRefresh as Er } from "./shared/native/hooks/usePullToRefresh.js";
48
+ import { useReturnFocus as Dr } from "./shared/hooks/useReturnFocus.js";
49
+ import { ActorIdentity as Or } from "./shared/actors/ActorIdentity.js";
50
+ import { buildActorFallback as kr, useActorProfiles as Ar } from "./shared/actors/useActorProfiles.js";
51
+ import { ErrorBoundary as jr } from "./shared/components/ErrorBoundary.js";
52
+ import { RequireAuth as Mr, RequireGuest as Nr } from "./shared/components/RequireAuth.js";
53
+ import { PermissionButton as Pr, PermissionGate as Fr, PermissionLink as Ir } from "./shared/components/PermissionGate.js";
54
+ import { AccessDenied as Lr, PermissionDenied as Rr } from "./shared/components/AccessDenied.js";
55
+ import { ErrorFallback as zr } from "./shared/components/ErrorFallback.js";
56
+ import { LoadingFallback as Br, PageLoadingFallback as Vr, SectionLoadingFallback as Hr } from "./shared/components/LoadingFallback.js";
57
+ import { MicrofrontendErrorBoundary as Ur } from "./shared/components/MicrofrontendErrorBoundary.js";
58
+ import { ConditionalShell as Wr } from "./shared/components/ConditionalShell.js";
59
+ import { usePWA as Gr } from "./shared/hooks/usePWA.js";
60
+ import { PWAInstallBanner as Kr } from "./shared/components/PWAInstallBanner.js";
61
+ import { ErrorBoundary as qr } from "./shared/components/AppErrorBoundary.js";
62
+ import { FeatureFlagProvider as Jr, useFeatureFlags as Yr } from "./shared/feature-flags/FeatureFlagProvider.js";
63
+ import { useFeatureFlag as Xr, useFeatureFlagDetails as Zr, useFeatureFlagValue as Qr } from "./shared/feature-flags/useFeatureFlag.js";
64
+ import { FeatureGate as $r } from "./shared/feature-flags/FeatureGate.js";
64
65
  import "./shared-feature-flags.js";
65
- import { ContextConversationWidget as Lr } from "./shared/components/ContextConversationWidget.js";
66
- import { detectPlatform as Rr, formatKeyCombo as zr, getDisplayKeysForPlatform as Br, getShortcutLabel as Vr, isMac as Hr, isMobileDevice as Ur, isTabletDevice as Wr, matchesKeyCombo as Gr, normalizeKey as Kr, normalizePlatformCombo as qr, parseKeyCombo as Jr, shouldEnableKeyboardShortcuts as Yr, shouldIgnoreShortcut as Xr } from "./shared/keyboard/utils.js";
67
- import { KeyboardHelpDialogWrapper as Zr } from "./shared/components/KeyboardHelpDialogWrapper.js";
68
- import { QuotaMeter as Qr } from "./shared/components/QuotaMeter.js";
69
- import { UPGRADE_PROMPT_EVENT as $r, UpgradePromptModal as ei, dispatchUpgradePrompt as ti } from "./shared/components/UpgradePromptModal.js";
70
- import { UpgradeInlineBanner as ni } from "./shared/components/UpgradeInlineBanner.js";
71
- import { DEFAULT_QUOTA_UPGRADE_COPY as ri, QuotaUpgradeBridge as ii, captureQuotaDialogOwners as ai, claimQuotaDialog as oi, dispatchProductQuotaExhausted as si, quotaEventKind as ci, resolveQuotaUpgradeCopy as li, useQuotaDialogOwnership as ui, useQuotaUpgradeBridge as di, withQuotaDialogOwnership as fi } from "./shared/components/QuotaUpgradeBridge.js";
72
- import { getNativeEntryRoutes as pi, shouldShowNativeWelcome as mi } from "./shared/native/entry.js";
73
- import { LandingGateView as hi, LandingOrDashboardRedirect as gi, hasStoredValidSession as _i, resolveLandingGate as vi } from "./shared/components/LandingOrDashboardRedirect.js";
74
- import { useVoiceInput as yi } from "./shared/components/assistantWidget/useVoiceInput.js";
75
- import { ASSISTANT_WIDGET_TOGGLE_EVENT as bi, AssistantWidget as xi } from "./shared/components/assistantWidget/AssistantWidget.js";
76
- import { Markdown as Si } from "./shared/components/Markdown.js";
77
- import { useNativePlatform as Ci } from "./shared/native/hooks/useNativePlatform.js";
78
- import { useSafeArea as wi } from "./shared/native/hooks/useSafeArea.js";
79
- import { useNativeKeyboard as Ti } from "./shared/native/hooks/useNativeKeyboard.js";
80
- import { useAppState as Ei } from "./shared/native/hooks/useAppState.js";
81
- import { useDeviceInfo as Di } from "./shared/native/hooks/useDeviceInfo.js";
82
- import { useHaptics as Oi } from "./shared/native/hooks/useHaptics.js";
83
- import { useStatusBar as ki } from "./shared/native/hooks/useStatusBar.js";
84
- import { resolveActionSheetOutcome as Ai, useActionSheet as ji } from "./shared/native/hooks/useActionSheet.js";
85
- import { useDesktop as Mi } from "./shared/native/hooks/useDesktop.js";
86
- import { useDesktopUpdateState as Ni } from "./shared/native/hooks/useDesktopUpdateState.js";
87
- import { useDesktopWindowState as Pi } from "./shared/native/hooks/useDesktopWindowState.js";
88
- import { DesktopUpdateToast as Fi } from "./shared/components/DesktopUpdateToast.js";
66
+ import { ContextConversationWidget as ei } from "./shared/components/ContextConversationWidget.js";
67
+ import { detectPlatform as ti, formatKeyCombo as ni, getDisplayKeysForPlatform as ri, getShortcutLabel as ii, isMac as ai, isMobileDevice as oi, isTabletDevice as si, matchesKeyCombo as ci, normalizeKey as li, normalizePlatformCombo as ui, parseKeyCombo as di, shouldEnableKeyboardShortcuts as fi, shouldIgnoreShortcut as pi } from "./shared/keyboard/utils.js";
68
+ import { KeyboardHelpDialogWrapper as mi } from "./shared/components/KeyboardHelpDialogWrapper.js";
69
+ import { QuotaMeter as hi } from "./shared/components/QuotaMeter.js";
70
+ import { UPGRADE_PROMPT_EVENT as gi, UpgradePromptModal as _i, dispatchUpgradePrompt as vi } from "./shared/components/UpgradePromptModal.js";
71
+ import { UpgradeInlineBanner as yi } from "./shared/components/UpgradeInlineBanner.js";
72
+ import { DEFAULT_QUOTA_UPGRADE_COPY as bi, QuotaUpgradeBridge as xi, captureQuotaDialogOwners as Si, claimQuotaDialog as Ci, dispatchProductQuotaExhausted as wi, quotaEventKind as Ti, resolveQuotaUpgradeCopy as Ei, useQuotaDialogOwnership as Di, useQuotaUpgradeBridge as Oi, withQuotaDialogOwnership as ki } from "./shared/components/QuotaUpgradeBridge.js";
73
+ import { getNativeEntryRoutes as Ai, shouldShowNativeWelcome as ji } from "./shared/native/entry.js";
74
+ import { LandingGateView as Mi, LandingOrDashboardRedirect as Ni, hasStoredValidSession as Pi, resolveLandingGate as Fi } from "./shared/components/LandingOrDashboardRedirect.js";
75
+ import { useVoiceInput as Ii } from "./shared/components/assistantWidget/useVoiceInput.js";
76
+ import { ASSISTANT_WIDGET_TOGGLE_EVENT as Li, AssistantWidget as Ri } from "./shared/components/assistantWidget/AssistantWidget.js";
77
+ import { Markdown as zi } from "./shared/components/Markdown.js";
78
+ import { useNativePlatform as Bi } from "./shared/native/hooks/useNativePlatform.js";
79
+ import { useSafeArea as Vi } from "./shared/native/hooks/useSafeArea.js";
80
+ import { useNativeKeyboard as Hi } from "./shared/native/hooks/useNativeKeyboard.js";
81
+ import { useAppState as Ui } from "./shared/native/hooks/useAppState.js";
82
+ import { useDeviceInfo as Wi } from "./shared/native/hooks/useDeviceInfo.js";
83
+ import { useHaptics as Gi } from "./shared/native/hooks/useHaptics.js";
84
+ import { useStatusBar as Ki } from "./shared/native/hooks/useStatusBar.js";
85
+ import { resolveActionSheetOutcome as qi, useActionSheet as Ji } from "./shared/native/hooks/useActionSheet.js";
86
+ import { useDesktop as Yi } from "./shared/native/hooks/useDesktop.js";
87
+ import { useDesktopUpdateState as Xi } from "./shared/native/hooks/useDesktopUpdateState.js";
88
+ import { useDesktopWindowState as Zi } from "./shared/native/hooks/useDesktopWindowState.js";
89
+ import { DesktopUpdateToast as Qi } from "./shared/components/DesktopUpdateToast.js";
89
90
  import "./shared-components.js";
90
- import { DevtoolsSink as Ii } from "./shared/events/sinks/DevtoolsSink.js";
91
- import { BroadcastChannelSink as Li } from "./shared/events/sinks/BroadcastChannelSink.js";
92
- import { BackendAuditSink as Ri } from "./shared/events/sinks/BackendAuditSink.js";
93
- import { AnalyticsConsentBanner as zi, RybbitSink as Bi, readAnalyticsConsent as Vi, readAnalyticsConsentChoice as Hi, setAnalyticsConsent as Ui } from "./shared/events/sinks/RybbitSink.js";
94
- import { OtelBrowserSink as Wi } from "./shared/events/sinks/OtelBrowserSink.js";
95
- import { EventBusProvider as Gi, createEventBus as Ki, useEvent as qi, useEventBus as Ji, useEventEmitter as Yi } from "./shared-events.js";
96
- import { useDebounce as Xi } from "./shared/hooks/useDebounce.js";
97
- import { useThrottle as Zi } from "./shared/hooks/useThrottle.js";
98
- import { BREAKPOINTS as Qi, useBreakpoint as $i, useMobileBreakpoint as ea } from "./shared/hooks/useBreakpoint.js";
99
- import { useOnClickOutside as ta, useOnClickOutsideWithRef as na } from "./shared/hooks/useOnClickOutside.js";
100
- import { useKeyPress as ra, useKeyboardShortcut as ia } from "./shared/hooks/useKeyPress.js";
101
- import { useExclusiveMenu as aa } from "./shared/hooks/useExclusiveMenu.js";
102
- import { useLocalStorage as oa } from "./shared/hooks/useLocalStorage.js";
103
- import { useSessionStorage as sa } from "./shared/hooks/useSessionStorage.js";
104
- import { usePrevious as ca, usePreviousDistinct as la, usePreviousHistory as ua } from "./shared/hooks/usePrevious.js";
105
- import { useConditionalToggle as da, useToggle as fa, useToggleObject as pa } from "./shared/hooks/useToggle.js";
106
- import { usePagination as ma } from "./shared/hooks/usePagination.js";
107
- import { useAsync as ha, useAsyncImmediate as ga } from "./shared/hooks/useAsync.js";
108
- import { MODIFIER_KEYS as _a, PLATFORM_TYPES as va } from "./shared/keyboard/types.js";
109
- import { useKeyboardShortcuts as ya } from "./shared/keyboard/useKeyboardShortcuts.js";
110
- import { useHotkeys as ba } from "./shared/keyboard/useHotkeys.js";
111
- import { useShortcutHelp as xa } from "./shared/keyboard/useShortcutHelp.js";
112
- import { GLOBAL_SHORTCUT_CATEGORIES as Sa, createGlobalShortcuts as Ca, getGlobalShortcutsByCategory as wa, mergeShortcuts as Ta } from "./shared/keyboard/globalShortcuts.js";
113
- import { useLogger as Ea } from "./shared/logger/useLogger.js";
114
- import { useHasAnimated as Da } from "./shared/hooks/useHasAnimated.js";
115
- import { useReferralAttribution as Oa } from "./shared/hooks/useReferralAttribution.js";
116
- import { useRecordProductVisit as ka } from "./shared/hooks/useRecordProductVisit.js";
117
- import { PUSH_DEVICE_ID_STORAGE_KEY as Aa, getOrCreatePushDeviceId as ja, registerPushDevice as Ma, unregisterPushDevice as Na } from "./shared/native/push-registration.js";
118
- import { usePushDeviceRegistration as Pa } from "./shared/hooks/usePushDeviceRegistration.js";
119
- import { QUOTA_EXHAUSTED_EVENT as Fa, dispatchQuotaExhausted as Ia, useQuotaErrorToast as La } from "./shared/hooks/useQuotaErrorToast.js";
120
- import { PLAN_USAGE_SNAPSHOT_EVENT as Ra, publishPlanUsageSnapshot as za, useUpgradePrompt as Ba } from "./shared/hooks/useUpgradePrompt.js";
121
- import { appendContextToPath as Va, useCurrentContextSearchParams as Ha } from "./shared/hooks/useCurrentContextSearchParams.js";
122
- import { UNSAVED_CHANGE_LABEL_MAX as Ua, listUnsavedChanges as Wa, registerUnsavedChange as Ga, unsavedChangesBlocking as Ka, useUnsavedChanges as qa } from "./shared/navigation/unsavedChanges.js";
123
- import { MicrofrontendContext as Ja, useMicrofrontendContext as Ya } from "./shared-hooks.js";
124
- import { withTourProgressStatus as Xa } from "./shared/tours/progress.js";
125
- import { detectDeviceType as Za, getResponsiveSelector as Qa } from "./shared/tours/types.js";
126
- import { useTourPlayer as $a } from "./shared/tours/useTourPlayer.js";
127
- import { TourSpotlight as eo } from "./shared/tours/TourSpotlight.js";
128
- import { TourTooltip as to } from "./shared/tours/TourTooltip.js";
129
- import { TourPlayerProvider as no, useIsTourPlaying as ro, useStartTour as io, useStopTour as ao, useTourPlayerContext as oo } from "./shared/tours/TourPlayerProvider.js";
130
- import { TourPlayer as so, TourTriggerButton as co, usePlayTour as lo } from "./shared/tours/TourPlayer.js";
131
- import { getTourContextRank as uo, getTourRouteCatalog as fo, getTourRouteModules as po, getTourRoutePages as mo, isTourVisibleForContext as ho, normalizeTourPath as go, registerTourRouteCatalog as _o, resolveTourTargetPath as vo } from "./shared/tours/routeCatalog.js";
132
- import { ToursProvider as yo, useAutoStartTour as bo, useSafeToursContext as xo, useTours as So, useToursContext as Co } from "./shared/tours/ToursContext.js";
133
- import { TourInitializer as wo } from "./shared/tours/TourInitializer.js";
134
- import { AppShellProvider as To, resolveAppShellObservabilityConfig as Eo } from "./shared/providers/AppShellProvider.js";
135
- import { MicrofrontendProvider as Do } from "./shared-providers.js";
136
- import { TourTrigger as Oo } from "./shared/tours/TourTrigger.js";
91
+ import { DevtoolsSink as $i } from "./shared/events/sinks/DevtoolsSink.js";
92
+ import { BroadcastChannelSink as ea } from "./shared/events/sinks/BroadcastChannelSink.js";
93
+ import { BackendAuditSink as ta } from "./shared/events/sinks/BackendAuditSink.js";
94
+ import { AnalyticsConsentBanner as na, RybbitSink as ra, readAnalyticsConsent as ia, readAnalyticsConsentChoice as aa, setAnalyticsConsent as oa } from "./shared/events/sinks/RybbitSink.js";
95
+ import { OtelBrowserSink as sa } from "./shared/events/sinks/OtelBrowserSink.js";
96
+ import { EventBusProvider as ca, createEventBus as la, useEvent as ua, useEventBus as da, useEventEmitter as fa } from "./shared-events.js";
97
+ import { useDebounce as pa } from "./shared/hooks/useDebounce.js";
98
+ import { useThrottle as ma } from "./shared/hooks/useThrottle.js";
99
+ import { BREAKPOINTS as ha, useBreakpoint as ga, useMobileBreakpoint as _a } from "./shared/hooks/useBreakpoint.js";
100
+ import { useOnClickOutside as va, useOnClickOutsideWithRef as ya } from "./shared/hooks/useOnClickOutside.js";
101
+ import { useKeyPress as ba, useKeyboardShortcut as xa } from "./shared/hooks/useKeyPress.js";
102
+ import { useExclusiveMenu as Sa } from "./shared/hooks/useExclusiveMenu.js";
103
+ import { useLocalStorage as Ca } from "./shared/hooks/useLocalStorage.js";
104
+ import { useSessionStorage as wa } from "./shared/hooks/useSessionStorage.js";
105
+ import { usePrevious as Ta, usePreviousDistinct as Ea, usePreviousHistory as Da } from "./shared/hooks/usePrevious.js";
106
+ import { useConditionalToggle as Oa, useToggle as ka, useToggleObject as Aa } from "./shared/hooks/useToggle.js";
107
+ import { usePagination as ja } from "./shared/hooks/usePagination.js";
108
+ import { useAsync as Ma, useAsyncImmediate as Na } from "./shared/hooks/useAsync.js";
109
+ import { MODIFIER_KEYS as Pa, PLATFORM_TYPES as Fa } from "./shared/keyboard/types.js";
110
+ import { useKeyboardShortcuts as Ia } from "./shared/keyboard/useKeyboardShortcuts.js";
111
+ import { useHotkeys as La } from "./shared/keyboard/useHotkeys.js";
112
+ import { useShortcutHelp as Ra } from "./shared/keyboard/useShortcutHelp.js";
113
+ import { GLOBAL_SHORTCUT_CATEGORIES as za, createGlobalShortcuts as Ba, getGlobalShortcutsByCategory as Va, mergeShortcuts as Ha } from "./shared/keyboard/globalShortcuts.js";
114
+ import { useLogger as Ua } from "./shared/logger/useLogger.js";
115
+ import { useHasAnimated as Wa } from "./shared/hooks/useHasAnimated.js";
116
+ import { useReferralAttribution as Ga } from "./shared/hooks/useReferralAttribution.js";
117
+ import { useRecordProductVisit as Ka } from "./shared/hooks/useRecordProductVisit.js";
118
+ import { PUSH_DEVICE_ID_STORAGE_KEY as qa, getOrCreatePushDeviceId as Ja, registerPushDevice as Ya, unregisterPushDevice as Xa } from "./shared/native/push-registration.js";
119
+ import { usePushDeviceRegistration as Za } from "./shared/hooks/usePushDeviceRegistration.js";
120
+ import { QUOTA_EXHAUSTED_EVENT as Qa, dispatchQuotaExhausted as $a, useQuotaErrorToast as eo } from "./shared/hooks/useQuotaErrorToast.js";
121
+ import { PLAN_USAGE_SNAPSHOT_EVENT as to, publishPlanUsageSnapshot as no, useUpgradePrompt as ro } from "./shared/hooks/useUpgradePrompt.js";
122
+ import { appendContextToPath as io, useCurrentContextSearchParams as ao } from "./shared/hooks/useCurrentContextSearchParams.js";
123
+ import { UNSAVED_CHANGE_LABEL_MAX as oo, listUnsavedChanges as so, registerUnsavedChange as co, unsavedChangesBlocking as lo, useUnsavedChanges as uo } from "./shared/navigation/unsavedChanges.js";
124
+ import { MicrofrontendContext as fo, useMicrofrontendContext as po } from "./shared-hooks.js";
125
+ import { withTourProgressStatus as mo } from "./shared/tours/progress.js";
126
+ import { detectDeviceType as ho, getResponsiveSelector as go } from "./shared/tours/types.js";
127
+ import { useTourPlayer as _o } from "./shared/tours/useTourPlayer.js";
128
+ import { TourSpotlight as vo } from "./shared/tours/TourSpotlight.js";
129
+ import { TourTooltip as yo } from "./shared/tours/TourTooltip.js";
130
+ import { TourPlayerProvider as bo, useIsTourPlaying as xo, useStartTour as So, useStopTour as Co, useTourPlayerContext as wo } from "./shared/tours/TourPlayerProvider.js";
131
+ import { TourPlayer as To, TourTriggerButton as Eo, usePlayTour as Do } from "./shared/tours/TourPlayer.js";
132
+ import { getTourContextRank as Oo, getTourRouteCatalog as ko, getTourRouteModules as Ao, getTourRoutePages as jo, isTourVisibleForContext as Mo, normalizeTourPath as No, registerTourRouteCatalog as Po, resolveTourTargetPath as Fo } from "./shared/tours/routeCatalog.js";
133
+ import { ToursProvider as Io, useAutoStartTour as Lo, useSafeToursContext as Ro, useTours as zo, useToursContext as Bo } from "./shared/tours/ToursContext.js";
134
+ import { TourInitializer as Vo } from "./shared/tours/TourInitializer.js";
135
+ import { AppShellProvider as Ho, resolveAppShellObservabilityConfig as Uo } from "./shared/providers/AppShellProvider.js";
136
+ import { MicrofrontendProvider as Wo } from "./shared-providers.js";
137
+ import { TourTrigger as Go } from "./shared/tours/TourTrigger.js";
137
138
  import "./shared-tours.js";
138
- import { acknowledgeNativePurchase as ko, getNativeProducts as Ao, getNativePurchases as jo, installNativeIAP as Mo, isNativeIAPAvailable as No, purchaseNativeProduct as Po, restoreNativePurchases as Fo } from "./shared/native/purchases.js";
139
- import { getPushOptInController as Io, recordPushPermissionPromptDismissed as Lo, registerPushOptInController as Ro, shouldPromptForPushPermission as zo } from "./shared/native/push-optin.js";
139
+ import { acknowledgeNativePurchase as Ko, getNativeProducts as qo, getNativePurchases as Jo, installNativeIAP as Yo, isNativeIAPAvailable as Xo, purchaseNativeProduct as Zo, restoreNativePurchases as Qo } from "./shared/native/purchases.js";
140
+ import { getPushOptInController as $o, recordPushPermissionPromptDismissed as es, registerPushOptInController as ts, shouldPromptForPushPermission as ns } from "./shared/native/push-optin.js";
140
141
  import "./shared-native.js";
141
142
  import "./shared/actors/index.js";
142
143
  //#region src/shared/index.ts
143
- var Bo = "1.0.0";
144
+ var rs = "1.0.0";
144
145
  //#endregion
145
- export { bi as ASSISTANT_WIDGET_TOGGLE_EVENT, br as AccessDenied, dr as ActorIdentity, zi as AnalyticsConsentBanner, yt as ApolloClient, bt as ApolloProvider, Ar as AppErrorBoundary, xn as AppInitializer, To as AppShellProvider, xi as AssistantWidget, Ve as BACKEND_ERROR_EVENT, Se as BOTMANOR_PRODUCT_SLUG, Qi as BREAKPOINTS, Ri as BackendAuditSink, Li as BroadcastChannelSink, Oe as COMMON_SHELL_LESS_ROUTES, He as CONNECTION_STATUS_EVENT, Dr as ConditionalShell, On as ConsoleTransport, Lr as ContextConversationWidget, Pe as DEFAULT_PAGE_SIZE, ri as DEFAULT_QUOTA_UPGRADE_COPY, ke as DEFAULT_SHELL_CONFIG, R as DESKTOP_UPDATE_UNSUPPORTED, z as DESKTOP_WINDOW_STATE_DEFAULT, Fi as DesktopUpdateToast, Ii as DevtoolsSink, mr as ErrorBoundary, Sr as ErrorFallback, Gi as EventBusProvider, Bo as FE_SHARED_VERSION, jr as FeatureFlagProvider, Ir as FeatureGate, Fe as GATEWAYS, Sa as GLOBAL_SHORTCUT_CATEGORIES, dt as GatewayProvider, Un as INLINE_ENCODE, xt as InMemoryCache, Zr as KeyboardHelpDialogWrapper, hi as LandingGateView, gi as LandingOrDashboardRedirect, Cr as LoadingFallback, wn as LogLevel, En as LogManager, Tn as Logger, _a as MODIFIER_KEYS, Si as Markdown, Ja as MicrofrontendContext, Er as MicrofrontendErrorBoundary, Do as MicrofrontendProvider, Wi as OtelBrowserSink, Ra as PLAN_USAGE_SNAPSHOT_EVENT, va as PLATFORM_TYPES, Ce as PRODUCTS, ge as PRODUCT_SLUG_EMIT, _e as PRODUCT_SLUG_RENAMES, we as PRODUCT_URLS, or as PULL_TO_REFRESH_THRESHOLD, Aa as PUSH_DEVICE_ID_STORAGE_KEY, kr as PWAInstallBanner, wr as PageLoadingFallback, _r as PermissionButton, xr as PermissionDenied, vr as PermissionGate, yr as PermissionLink, Pn as QUOTA_EXHAUSTED_CODE, Fa as QUOTA_EXHAUSTED_EVENT, Qr as QuotaMeter, ii as QuotaUpgradeBridge, Fn as RESOURCE_CAP_EXCEEDED_CODE, hr as RequireAuth, gr as RequireGuest, Bi as RybbitSink, at as SSELink, nn as SSORedirectSpinner, ln as SSO_DEPOSITED_PARAM, In as STORAGE_QUOTA_EXCEEDED_CODE, nr as SafeAreaView, Tr as SectionLoadingFallback, wo as TourInitializer, so as TourPlayer, no as TourPlayerProvider, eo as TourSpotlight, to as TourTooltip, Oo as TourTrigger, co as TourTriggerButton, yo as ToursProvider, Ua as UNSAVED_CHANGE_LABEL_MAX, Ln as UPGRADE_ERROR_CODES, $r as UPGRADE_PROMPT_EVENT, ni as UpgradeInlineBanner, ei as UpgradePromptModal, _t as WsLink, ko as acknowledgeNativePurchase, r as alertTokens, Va as appendContextToPath, Qt as assignLocationWithAllowlist, Ot as attemptTokenRefresh, un as beginSsoNavigation, B as bootDesktopShell, fr as buildActorFallback, Rn as buildQuotaExhaustedMessage, dn as buildSsoDepositUrl, m as capitalizeFirst, h as capitalizeWords, ai as captureQuotaDialogOwners, i as categoryTokens, rn as checkRemoteSLO, an as checkSLO, oi as claimQuotaDialog, kt as clearAuthSessionStorage, Xe as clearGraphqlFetchResponseCache, on as clearLocalAuthState, Pt as clearSSoCookie, Ft as clearShellSsoCookies, fn as clearSsoDepositState, pn as clearSsoNavigation, kn as clearUserContext, Kn as cn, sr as computePullOffset, cr as computePullProgress, mn as consumeSsoDepositMarker, n as createApolloClient, Ki as createEventBus, Ca as createGlobalShortcuts, ot as createGraphQLClient, Mn as createProfileScopedStorage, V as desktopCheckForUpdates, H as desktopDeepLinkToPath, U as desktopInstallUpdate, W as desktopNotify, G as desktopOpenExternal, K as desktopSetBadgeCount, q as desktopSetLocale, J as desktopSetTheme, Y as desktopSetTrayQuickActions, Za as detectDeviceType, Rr as detectPlatform, Ue as dispatchBackendErrorEvent, si as dispatchProductQuotaExhausted, Ia as dispatchQuotaExhausted, ti as dispatchUpgradePrompt, Wn as downscaleImage, ve as emitProductSlug, We as extractBackendError, zn as extractQuotaExhaustedExtensions, Bn as extractUpgradeErrorExtensions, Te as findProductConfig, g as formatBytes, _ as formatCompactNumber, v as formatCurrency, y as formatCurrencyCompact, b as formatDate, x as formatDateTime, S as formatDuration, zr as formatKeyCombo, C as formatList, w as formatNumber, T as formatOrdinal, E as formatPercentage, D as formatRelativeTime, O as formatTime, a as getAlertTokens, I as getCapacitorPlatform, o as getCategoryTokens, X as getDesktopAuthBridgeConfig, Z as getDesktopBridge, Q as getDesktopGatewayBases, $ as getDesktopGatewayUrls, ee as getDesktopRuntimeConfig, te as getDesktopUpdateState, ne as getDesktopWindowState, Br as getDisplayKeysForPlatform, Ie as getGatewayConfig, Le as getGatewayUrl, st as getGlobalClient, wa as getGlobalShortcutsByCategory, Re as getGraphQLEndpoint, re as getLegacyDesktopRuntime, Ht as getNativeBridge, pi as getNativeEntryRoutes, Ao as getNativeProducts, jo as getNativePurchases, ja as getOrCreatePushDeviceId, Ut as getPlatform, Ee as getProductUrl, De as getProductsWithUrls, Nn as getProfileScopedKey, s as getProgressTokens, Io as getPushOptInController, Qa as getResponsiveSelector, sn as getSSORedirectUrl, It as getSSoCookie, Ae as getShellConfig, Vr as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, Ze as getStoredAuthToken, Qe as getStoredLocale, $e as getStoredOrganizationId, et as getStoredProjectId, tt as getStoredWorkspaceId, nt as getStoredWorkspaceToken, uo as getTourContextRank, fo as getTourRouteCatalog, po as getTourRouteModules, mo as getTourRoutePages, u as getTrendTokens, ct as getWorkspaceClient, ze as getWorkspaceTokenPayload, St as gql, rt as graphqlFetch, At as hasAuthGraphQLErrors, _i as hasStoredValidSession, lt as initializeAppClients, An as initializeLogger, ie as installDesktopDeepLinkHandler, ae as installDesktopNavigateHandler, de as installGatewayFetchRewrite, Mo as installNativeIAP, Ge as isAbortError, $t as isAllowedRedirectUrl, Wt as isAndroid, jt as isAuthGraphQLError, Mt as isAuthNetworkError, Ke as isBackendErrorDisplay, L as isCapacitorNative, P as isChunkLoadError, oe as isDesktop, Gt as isElectron, Kt as isIOS, qt as isInstalledApp, Hr as isMac, Ur as isMobileDevice, Jt as isNative, No as isNativeIAPAvailable, Vn as isQuotaExhaustedError, ye as isSameProductSlug, Lt as isSharedSsoCookieDomain, je as isShellLessRoute, hn as isSsoNavigationPending, Yt as isStandalonePWA, Wr as isTabletDevice, ho as isTourVisibleForContext, qe as isTransportError, Rt as isTrustedSsoOrigin, Hn as isUpgradeError, Xt as isWeb, Zt as isWebBrowser, Be as isWorkspaceTokenValidForContext, F as lazyWithRetry, be as legacyProductSlug, Wa as listUnsavedChanges, Dn as logManager, Je as markConnectionHealthy, gn as markSsoDepositDone, _n as markSsoDepositPending, Gr as matchesKeyCombo, Ta as mergeShortcuts, vn as mintSsoSessionTokens, qn as nativeActionSheet, Jn as nativeConfirm, Yn as nativeCopyText, Xn as nativeImpact, Zn as nativeNotify, Qn as nativeOpenUrl, $n as nativeSelection, er as nativeShare, tr as nativeToast, Kr as normalizeKey, qr as normalizePlatformCombo, xe as normalizeProductSlug, go as normalizeTourPath, se as onDesktopUpdateState, ce as onDesktopWindowState, en as openUrlInNewTabWithAllowlist, Jr as parseKeyCombo, k as pluralize, vt as prepareWorkspaceRequest, d as progressTokens, za as publishPlanUsageSnapshot, Po as purchaseNativeProduct, ci as quotaEventKind, Vi as readAnalyticsConsent, Hi as readAnalyticsConsentChoice, rr as readInitialNetworkStatus, zt as readShellSsoCookie, yn as readSsoDepositState, Lo as recordPushPermissionPromptDismissed, Nt as redirectToLogin, cn as redirectToSSO, ir as reduceNetworkStatus, le as registerDesktopNavigator, Ma as registerPushDevice, Ro as registerPushOptInController, _o as registerTourRouteCatalog, Ga as registerUnsavedChange, tn as replaceLocationWithAllowlist, ut as resetAppClients, Ai as resolveActionSheetOutcome, Eo as resolveAppShellObservabilityConfig, me as resolveAuthBridgeConfig, fe as resolveGatewayBases, it as resolveGatewayUrl, ue as resolveGatewayUrls, vi as resolveLandingGate, li as resolveQuotaUpgradeCopy, he as resolveShellAuthBridgeConfig, vo as resolveTourTargetPath, Fo as restoreNativePurchases, Gn as selectInlineBase64, Ui as setAnalyticsConsent, Bt as setSSoCookie, Vt as setShellSsoCookies, jn as setUserContext, bn as shouldAttemptSsoDeposit, Yr as shouldEnableKeyboardShortcuts, Xr as shouldIgnoreShortcut, zo as shouldPromptForPushPermission, Me as shouldShowBreadcrumb, mi as shouldShowNativeWelcome, Ne as shouldShowSidebar, Ye as shouldToastBackendError, A as slugify, f as statusTokens, pe as suppressConsole, j as toCamelCase, M as toPascalCase, p as trendTokens, N as truncateText, Na as unregisterPushDevice, Ka as unsavedChangesBlocking, ji as useActionSheet, pr as useActorProfiles, Ct as useApolloClient, Ei as useAppState, ha as useAsync, ga as useAsyncImmediate, bo as useAutoStartTour, $i as useBreakpoint, da as useConditionalToggle, e as useCopyToClipboard, Ha as useCurrentContextSearchParams, Xi as useDebounce, Mi as useDesktop, Ni as useDesktopUpdateState, Pi as useDesktopWindowState, Di as useDeviceInfo, qi as useEvent, Ji as useEventBus, Yi as useEventEmitter, aa as useExclusiveMenu, Nr as useFeatureFlag, Pr as useFeatureFlagDetails, Fr as useFeatureFlagValue, Mr as useFeatureFlags, ft as useGateway, pt as useGatewayClient, Oi as useHaptics, Da as useHasAnimated, gt as useHasAuthToken, ba as useHotkeys, ro as useIsTourPlaying, ra as useKeyPress, ia as useKeyboardShortcut, ya as useKeyboardShortcuts, wt as useLazyQuery, oa as useLocalStorage, Ea as useLogger, t as useMediaQuery, Ya as useMicrofrontendContext, ea as useMobileBreakpoint, Tt as useMutation, Ti as useNativeKeyboard, Ci as useNativePlatform, ar as useNetworkStatus, ta as useOnClickOutside, na as useOnClickOutsideWithRef, Or as usePWA, ma as usePagination, lo as usePlayTour, ca as usePrevious, la as usePreviousDistinct, ua as usePreviousHistory, lr as usePullToRefresh, Pa as usePushDeviceRegistration, Et as useQuery, ui as useQuotaDialogOwnership, La as useQuotaErrorToast, di as useQuotaUpgradeBridge, ka as useRecordProductVisit, Oa as useReferralAttribution, Sn as useRegistryHelpers, ur as useReturnFocus, wi as useSafeArea, mt as useSafeGateway, ht as useSafeGatewayClient, xo as useSafeToursContext, sa as useSessionStorage, Cn as useShellNavigate, xa as useShortcutHelp, io as useStartTour, ki as useStatusBar, ao as useStopTour, Dt as useSubscription, Zi as useThrottle, fa as useToggle, pa as useToggleObject, $a as useTourPlayer, oo as useTourPlayerContext, So as useTours, Co as useToursContext, qa as useUnsavedChanges, Ba as useUpgradePrompt, yi as useVoiceInput, fi as withQuotaDialogOwnership, Xa as withTourProgressStatus };
146
+ export { Li as ASSISTANT_WIDGET_TOGGLE_EVENT, Lr as AccessDenied, Or as ActorIdentity, na as AnalyticsConsentBanner, It as ApolloClient, Lt as ApolloProvider, qr as AppErrorBoundary, Rn as AppInitializer, Ho as AppShellProvider, Ri as AssistantWidget, it as BACKEND_ERROR_EVENT, ze as BOTMANOR_PRODUCT_SLUG, ha as BREAKPOINTS, ta as BackendAuditSink, ea as BroadcastChannelSink, m as CHART_SERIES_COUNT, Ge as COMMON_SHELL_LESS_ROUTES, at as CONNECTION_STATUS_EVENT, Wr as ConditionalShell, Gn as ConsoleTransport, ei as ContextConversationWidget, h as DATA_TYPES, Ze as DEFAULT_PAGE_SIZE, bi as DEFAULT_QUOTA_UPGRADE_COPY, Ke as DEFAULT_SHELL_CONFIG, te as DESKTOP_UPDATE_UNSUPPORTED, ne as DESKTOP_WINDOW_STATE_DEFAULT, Qi as DesktopUpdateToast, $i as DevtoolsSink, g as EDGE_KINDS, jr as ErrorBoundary, zr as ErrorFallback, ca as EventBusProvider, rs as FE_SHARED_VERSION, Jr as FeatureFlagProvider, $r as FeatureGate, Qe as GATEWAYS, za as GLOBAL_SHORTCUT_CATEGORIES, Ot as GatewayProvider, or as INLINE_ENCODE, Rt as InMemoryCache, mi as KeyboardHelpDialogWrapper, Mi as LandingGateView, Ni as LandingOrDashboardRedirect, Br as LoadingFallback, Vn as LogLevel, Un as LogManager, Hn as Logger, Pa as MODIFIER_KEYS, zi as Markdown, fo as MicrofrontendContext, Ur as MicrofrontendErrorBoundary, Wo as MicrofrontendProvider, _ as NODE_CATEGORIES, v as NODE_STATES, sa as OtelBrowserSink, to as PLAN_USAGE_SNAPSHOT_EVENT, Fa as PLATFORM_TYPES, Be as PRODUCTS, Ne as PRODUCT_SLUG_EMIT, Pe as PRODUCT_SLUG_RENAMES, Ve as PRODUCT_URLS, Cr as PULL_TO_REFRESH_THRESHOLD, qa as PUSH_DEVICE_ID_STORAGE_KEY, Kr as PWAInstallBanner, Vr as PageLoadingFallback, Pr as PermissionButton, Rr as PermissionDenied, Fr as PermissionGate, Ir as PermissionLink, Zn as QUOTA_EXHAUSTED_CODE, Qa as QUOTA_EXHAUSTED_EVENT, hi as QuotaMeter, xi as QuotaUpgradeBridge, Qn as RESOURCE_CAP_EXCEEDED_CODE, Mr as RequireAuth, Nr as RequireGuest, ra as RybbitSink, St as SSELink, bn as SSORedirectSpinner, En as SSO_DEPOSITED_PARAM, $n as STORAGE_QUOTA_EXCEEDED_CODE, yr as SafeAreaView, Hr as SectionLoadingFallback, Vo as TourInitializer, To as TourPlayer, bo as TourPlayerProvider, vo as TourSpotlight, yo as TourTooltip, Go as TourTrigger, Eo as TourTriggerButton, Io as ToursProvider, oo as UNSAVED_CHANGE_LABEL_MAX, er as UPGRADE_ERROR_CODES, gi as UPGRADE_PROMPT_EVENT, yi as UpgradeInlineBanner, _i as UpgradePromptModal, Pt as WsLink, Ko as acknowledgeNativePurchase, r as alertTokens, io as appendContextToPath, gn as assignLocationWithAllowlist, Gt as attemptTokenRefresh, Dn as beginSsoNavigation, re as bootDesktopShell, kr as buildActorFallback, tr as buildQuotaExhaustedMessage, On as buildSsoDepositUrl, j as capitalizeFirst, M as capitalizeWords, Si as captureQuotaDialogOwners, i as categoryTokens, y as chartSeriesColor, b as chartSeriesIndex, xn as checkRemoteSLO, Sn as checkSLO, Ci as claimQuotaDialog, Kt as clearAuthSessionStorage, pt as clearGraphqlFetchResponseCache, Cn as clearLocalAuthState, Zt as clearSSoCookie, Qt as clearShellSsoCookies, kn as clearSsoDepositState, An as clearSsoNavigation, Kn as clearUserContext, lr as cn, wr as computePullOffset, Tr as computePullProgress, jn as consumeSsoDepositMarker, n as createApolloClient, la as createEventBus, Ba as createGlobalShortcuts, Ct as createGraphQLClient, Yn as createProfileScopedStorage, x as dataTypeColor, S as dataTypeTextClasses, ie as desktopCheckForUpdates, ae as desktopDeepLinkToPath, oe as desktopInstallUpdate, se as desktopNotify, ce as desktopOpenExternal, le as desktopSetBadgeCount, ue as desktopSetLocale, de as desktopSetTheme, fe as desktopSetTrayQuickActions, ho as detectDeviceType, ti as detectPlatform, ot as dispatchBackendErrorEvent, wi as dispatchProductQuotaExhausted, $a as dispatchQuotaExhausted, vi as dispatchUpgradePrompt, sr as downscaleImage, C as edgeColor, Fe as emitProductSlug, st as extractBackendError, nr as extractQuotaExhaustedExtensions, rr as extractUpgradeErrorExtensions, He as findProductConfig, N as formatBytes, P as formatCompactNumber, F as formatCurrency, I as formatCurrencyCompact, L as formatDate, R as formatDateTime, z as formatDuration, ni as formatKeyCombo, B as formatList, V as formatNumber, H as formatOrdinal, U as formatPercentage, W as formatRelativeTime, G as formatTime, a as getAlertTokens, $ as getCapacitorPlatform, o as getCategoryTokens, pe as getDesktopAuthBridgeConfig, me as getDesktopBridge, he as getDesktopGatewayBases, ge as getDesktopGatewayUrls, _e as getDesktopRuntimeConfig, ve as getDesktopUpdateState, ye as getDesktopWindowState, ri as getDisplayKeysForPlatform, $e as getGatewayConfig, et as getGatewayUrl, wt as getGlobalClient, Va as getGlobalShortcutsByCategory, tt as getGraphQLEndpoint, be as getLegacyDesktopRuntime, on as getNativeBridge, Ai as getNativeEntryRoutes, qo as getNativeProducts, Jo as getNativePurchases, Ja as getOrCreatePushDeviceId, sn as getPlatform, Ue as getProductUrl, We as getProductsWithUrls, Xn as getProfileScopedKey, s as getProgressTokens, $o as getPushOptInController, go as getResponsiveSelector, wn as getSSORedirectUrl, $t as getSSoCookie, qe as getShellConfig, ii as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, mt as getStoredAuthToken, ht as getStoredLocale, gt as getStoredOrganizationId, _t as getStoredProjectId, vt as getStoredWorkspaceId, yt as getStoredWorkspaceToken, Oo as getTourContextRank, ko as getTourRouteCatalog, Ao as getTourRouteModules, jo as getTourRoutePages, u as getTrendTokens, Tt as getWorkspaceClient, nt as getWorkspaceTokenPayload, zt as gql, bt as graphqlFetch, qt as hasAuthGraphQLErrors, Pi as hasStoredValidSession, Et as initializeAppClients, qn as initializeLogger, xe as installDesktopDeepLinkHandler, Se as installDesktopNavigateHandler, Oe as installGatewayFetchRewrite, Yo as installNativeIAP, ct as isAbortError, _n as isAllowedRedirectUrl, cn as isAndroid, Jt as isAuthGraphQLError, Yt as isAuthNetworkError, lt as isBackendErrorDisplay, ee as isCapacitorNative, Z as isChunkLoadError, Ce as isDesktop, ln as isElectron, un as isIOS, dn as isInstalledApp, ai as isMac, oi as isMobileDevice, fn as isNative, Xo as isNativeIAPAvailable, ir as isQuotaExhaustedError, Ie as isSameProductSlug, en as isSharedSsoCookieDomain, Je as isShellLessRoute, Mn as isSsoNavigationPending, pn as isStandalonePWA, si as isTabletDevice, Mo as isTourVisibleForContext, ut as isTransportError, tn as isTrustedSsoOrigin, ar as isUpgradeError, mn as isWeb, hn as isWebBrowser, rt as isWorkspaceTokenValidForContext, Q as lazyWithRetry, Le as legacyProductSlug, so as listUnsavedChanges, Wn as logManager, dt as markConnectionHealthy, Nn as markSsoDepositDone, Pn as markSsoDepositPending, ci as matchesKeyCombo, Ha as mergeShortcuts, Fn as mintSsoSessionTokens, ur as nativeActionSheet, dr as nativeConfirm, fr as nativeCopyText, pr as nativeImpact, mr as nativeNotify, hr as nativeOpenUrl, gr as nativeSelection, _r as nativeShare, vr as nativeToast, w as nodeCategoryClasses, T as nodeCategoryColor, E as nodeCategorySubtleColor, D as nodeStateColor, O as nodeStateRingClasses, li as normalizeKey, ui as normalizePlatformCombo, Re as normalizeProductSlug, No as normalizeTourPath, we as onDesktopUpdateState, Te as onDesktopWindowState, vn as openUrlInNewTabWithAllowlist, di as parseKeyCombo, K as pluralize, Ft as prepareWorkspaceRequest, d as progressTokens, no as publishPlanUsageSnapshot, Zo as purchaseNativeProduct, Ti as quotaEventKind, ia as readAnalyticsConsent, aa as readAnalyticsConsentChoice, br as readInitialNetworkStatus, nn as readShellSsoCookie, In as readSsoDepositState, es as recordPushPermissionPromptDismissed, Xt as redirectToLogin, Tn as redirectToSSO, xr as reduceNetworkStatus, Ee as registerDesktopNavigator, Ya as registerPushDevice, ts as registerPushOptInController, Po as registerTourRouteCatalog, co as registerUnsavedChange, yn as replaceLocationWithAllowlist, Dt as resetAppClients, qi as resolveActionSheetOutcome, Uo as resolveAppShellObservabilityConfig, je as resolveAuthBridgeConfig, ke as resolveGatewayBases, xt as resolveGatewayUrl, De as resolveGatewayUrls, Fi as resolveLandingGate, Ei as resolveQuotaUpgradeCopy, Me as resolveShellAuthBridgeConfig, Fo as resolveTourTargetPath, Qo as restoreNativePurchases, cr as selectInlineBase64, oa as setAnalyticsConsent, rn as setSSoCookie, an as setShellSsoCookies, Jn as setUserContext, Ln as shouldAttemptSsoDeposit, fi as shouldEnableKeyboardShortcuts, pi as shouldIgnoreShortcut, ns as shouldPromptForPushPermission, Ye as shouldShowBreadcrumb, ji as shouldShowNativeWelcome, Xe as shouldShowSidebar, ft as shouldToastBackendError, q as slugify, f as statusTokens, Ae as suppressConsole, J as toCamelCase, k as toDataType, A as toNodeCategory, Y as toPascalCase, p as trendTokens, X as truncateText, Xa as unregisterPushDevice, lo as unsavedChangesBlocking, Ji as useActionSheet, Ar as useActorProfiles, Bt as useApolloClient, Ui as useAppState, Ma as useAsync, Na as useAsyncImmediate, Lo as useAutoStartTour, ga as useBreakpoint, Oa as useConditionalToggle, e as useCopyToClipboard, ao as useCurrentContextSearchParams, pa as useDebounce, Yi as useDesktop, Xi as useDesktopUpdateState, Zi as useDesktopWindowState, Wi as useDeviceInfo, ua as useEvent, da as useEventBus, fa as useEventEmitter, Sa as useExclusiveMenu, Xr as useFeatureFlag, Zr as useFeatureFlagDetails, Qr as useFeatureFlagValue, Yr as useFeatureFlags, kt as useGateway, At as useGatewayClient, Gi as useHaptics, Wa as useHasAnimated, Nt as useHasAuthToken, La as useHotkeys, xo as useIsTourPlaying, ba as useKeyPress, xa as useKeyboardShortcut, Ia as useKeyboardShortcuts, Vt as useLazyQuery, Ca as useLocalStorage, Ua as useLogger, t as useMediaQuery, po as useMicrofrontendContext, _a as useMobileBreakpoint, Ht as useMutation, Hi as useNativeKeyboard, Bi as useNativePlatform, Sr as useNetworkStatus, va as useOnClickOutside, ya as useOnClickOutsideWithRef, Gr as usePWA, ja as usePagination, Do as usePlayTour, Ta as usePrevious, Ea as usePreviousDistinct, Da as usePreviousHistory, Er as usePullToRefresh, Za as usePushDeviceRegistration, Ut as useQuery, Di as useQuotaDialogOwnership, eo as useQuotaErrorToast, Oi as useQuotaUpgradeBridge, Ka as useRecordProductVisit, Ga as useReferralAttribution, zn as useRegistryHelpers, Dr as useReturnFocus, Vi as useSafeArea, jt as useSafeGateway, Mt as useSafeGatewayClient, Ro as useSafeToursContext, wa as useSessionStorage, Bn as useShellNavigate, Ra as useShortcutHelp, So as useStartTour, Ki as useStatusBar, Co as useStopTour, Wt as useSubscription, ma as useThrottle, ka as useToggle, Aa as useToggleObject, _o as useTourPlayer, wo as useTourPlayerContext, zo as useTours, Bo as useToursContext, uo as useUnsavedChanges, ro as useUpgradePrompt, Ii as useVoiceInput, ki as withQuotaDialogOwnership, mo as withTourProgressStatus };
@@ -17,10 +17,33 @@ import { HTMLAttributes } from 'react';
17
17
  * (`--color-accent-primary`) auto-applies. All motion is CSS-based and disabled
18
18
  * under `prefers-reduced-motion` / `data-reduce-motion` (Boff UI 2.0), and a
19
19
  * short anti-flash delay avoids a flicker on sub-200ms loads.
20
+ *
21
+ * Copy is localised through the shell i18n service (`splash.*` keys, English
22
+ * fallback, never throws outside an `I18nProvider`). A shell names the step it
23
+ * is waiting on with `phase` instead of hard-coding English:
24
+ *
25
+ * <BrandedSplash phase="checkingAccess" />
26
+ * <BrandedSplash phase="signingIn" showTagline />
27
+ *
28
+ * Precedence for the status line: `label` (literal) → `phase` → `splash.default`.
20
29
  */
30
+ /** The loading steps a shell can name; each resolves the `splash.<phase>` key. */
31
+ export type BrandedSplashPhase = 'default' | 'signingIn' | 'checkingAccess' | 'validatingSession' | 'redirecting' | 'preparingDashboard';
21
32
  export interface BrandedSplashProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {
22
- /** Status line under the wordmark. Defaults to "Loading <product>…". */
33
+ /**
34
+ * Literal status line under the wordmark; wins over `phase`. Defaults to the
35
+ * localised `splash.default` ("Loading <product>…").
36
+ */
23
37
  label?: string;
38
+ /** Localised status line for a named loading step (`splash.<phase>`). */
39
+ phase?: BrandedSplashPhase;
40
+ /**
41
+ * Show the product tagline under the wordmark. Text: `tagline`, else the
42
+ * localised `splash.tagline`, else the AppShell tagline. Default false.
43
+ */
44
+ showTagline?: boolean;
45
+ /** Literal tagline (implies nothing unless `showTagline` is set). */
46
+ tagline?: string;
24
47
  /** `fullscreen` (fixed overlay) or `inline` (fills its container). */
25
48
  variant?: 'fullscreen' | 'inline';
26
49
  /** Logo asset; defaults to the shell PWA icon. */
@@ -28,4 +51,4 @@ export interface BrandedSplashProps extends Omit<HTMLAttributes<HTMLDivElement>,
28
51
  /** Anti-flash delay in ms before the splash appears (0 shows immediately). */
29
52
  delayMs?: number;
30
53
  }
31
- export declare function BrandedSplash({ label, variant, logoSrc, delayMs, className, ...rest }: BrandedSplashProps): import('react/jsx-runtime').JSX.Element | null;
54
+ export declare function BrandedSplash({ label, phase, showTagline, tagline, variant, logoSrc, delayMs, className, ...rest }: BrandedSplashProps): import('react/jsx-runtime').JSX.Element | null;
@@ -1,31 +1,42 @@
1
1
  import { useAppShell as e } from "../shared/providers/shell/AppShellContext.js";
2
- import { cn as t } from "../shared-utils.js";
3
- import { useEffect as n, useState as r } from "react";
4
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
2
+ import { useShellLabel as t } from "../shared/providers/shell/useShellLabel.js";
3
+ import { cn as n } from "../shared-utils.js";
4
+ import { useEffect as r, useState as i } from "react";
5
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
6
  //#region src/ui/branded-splash.tsx
6
- function o({ label: o, variant: s = "fullscreen", logoSrc: c = "/icons/icon.svg", delayMs: l = 150, className: u, ...d }) {
7
- let { productName: f, brandInitial: p } = e(), [m, h] = r(l <= 0), [g, _] = r(!1);
8
- if (n(() => {
9
- if (l <= 0) return;
10
- let e = setTimeout(() => h(!0), l);
7
+ function s(e, t, n) {
8
+ switch (t) {
9
+ case "signingIn": return e("splash.signingIn", "Signing you in…");
10
+ case "checkingAccess": return e("splash.checkingAccess", "Checking workspace access…");
11
+ case "validatingSession": return e("splash.validatingSession", "Validating session…");
12
+ case "redirecting": return e("splash.redirecting", "Redirecting…");
13
+ case "preparingDashboard": return e("splash.preparingDashboard", "Preparing your dashboard…");
14
+ case "default": return e("splash.default", "Loading {{product}}…", { product: n });
15
+ }
16
+ }
17
+ function c({ label: c, phase: l = "default", showTagline: u = !1, tagline: d, variant: f = "fullscreen", logoSrc: p = "/icons/icon.svg", delayMs: m = 150, className: h, ...g }) {
18
+ let { productName: _, brandInitial: v, tagline: y } = e(), b = t(), [x, S] = i(m <= 0), [C, w] = i(!1);
19
+ if (r(() => {
20
+ if (m <= 0) return;
21
+ let e = setTimeout(() => S(!0), m);
11
22
  return () => clearTimeout(e);
12
- }, [l]), !m) return null;
13
- let v = o ?? `Loading ${f}…`;
14
- return /* @__PURE__ */ a("div", {
23
+ }, [m]), !x) return null;
24
+ let T = c ?? s(b, l, _), E = u ? d ?? b("splash.tagline", y) : null;
25
+ return /* @__PURE__ */ o("div", {
15
26
  role: "status",
16
27
  "aria-live": "polite",
17
- "aria-label": v,
18
- className: t("flex flex-col items-center justify-center gap-6", s === "fullscreen" ? "fixed inset-0 z-[9000] bg-bg-canvas px-6 pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]" : "min-h-[60vh] w-full px-6 py-12", u),
19
- ...d,
28
+ "aria-label": T,
29
+ className: n("flex flex-col items-center justify-center gap-6 motion-safe:animate-in motion-safe:fade-in-0 motion-safe:duration-300", f === "fullscreen" ? "fixed inset-0 z-[9000] bg-bg-canvas px-6 pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]" : "min-h-[60vh] w-full px-6 py-12", h),
30
+ ...g,
20
31
  children: [
21
- /* @__PURE__ */ i("div", {
32
+ /* @__PURE__ */ a("div", {
22
33
  "aria-hidden": "true",
23
34
  className: "pointer-events-none absolute inset-0 -z-10",
24
35
  style: { backgroundImage: "radial-gradient(circle at 30% 25%, color-mix(in oklab, var(--color-accent-primary) 8%, transparent), transparent 55%),radial-gradient(circle at 70% 78%, color-mix(in oklab, var(--color-accent-secondary, var(--color-accent-primary)) 5%, transparent), transparent 55%)" }
25
36
  }),
26
- /* @__PURE__ */ a("div", {
37
+ /* @__PURE__ */ o("div", {
27
38
  className: "relative flex h-20 w-20 items-center justify-center",
28
- children: [/* @__PURE__ */ i("span", {
39
+ children: [/* @__PURE__ */ a("span", {
29
40
  "aria-hidden": "true",
30
41
  className: "absolute inset-0 rounded-full motion-safe:animate-spin",
31
42
  style: {
@@ -33,32 +44,38 @@ function o({ label: o, variant: s = "fullscreen", logoSrc: c = "/icons/icon.svg"
33
44
  filter: "blur(6px)",
34
45
  animationDuration: "5s"
35
46
  }
36
- }), g ? /* @__PURE__ */ i("span", {
47
+ }), C ? /* @__PURE__ */ a("span", {
37
48
  className: "relative flex h-16 w-16 items-center justify-center rounded-2xl bg-action-primary-bg text-action-primary-text text-2xl font-semibold shadow-elevation-1 motion-safe:animate-pulse",
38
- children: p
39
- }) : /* @__PURE__ */ i("img", {
40
- src: c,
49
+ children: v
50
+ }) : /* @__PURE__ */ a("img", {
51
+ src: p,
41
52
  alt: "",
42
53
  "aria-hidden": "true",
43
- onError: () => _(!0),
54
+ onError: () => w(!0),
44
55
  className: "relative h-16 w-16 rounded-2xl motion-safe:animate-pulse"
45
56
  })]
46
57
  }),
47
- /* @__PURE__ */ a("div", {
58
+ /* @__PURE__ */ o("div", {
48
59
  className: "flex flex-col items-center gap-3",
49
60
  children: [
50
- /* @__PURE__ */ i("h1", {
51
- className: "text-lg font-semibold text-text-primary",
52
- children: f
61
+ /* @__PURE__ */ o("div", {
62
+ className: "flex flex-col items-center gap-1 text-center",
63
+ children: [/* @__PURE__ */ a("h1", {
64
+ className: "text-lg font-semibold text-text-primary",
65
+ children: _
66
+ }), E ? /* @__PURE__ */ a("p", {
67
+ className: "text-sm text-text-secondary",
68
+ children: E
69
+ }) : null]
53
70
  }),
54
- /* @__PURE__ */ i("div", {
71
+ /* @__PURE__ */ a("div", {
55
72
  className: "flex items-center gap-1.5",
56
73
  "aria-hidden": "true",
57
74
  children: [
58
75
  0,
59
76
  1,
60
77
  2
61
- ].map((e) => /* @__PURE__ */ i("span", {
78
+ ].map((e) => /* @__PURE__ */ a("span", {
62
79
  className: "h-1.5 w-1.5 rounded-full bg-action-primary-bg opacity-60 motion-safe:animate-pulse",
63
80
  style: {
64
81
  animationDelay: `${e * .15}s`,
@@ -66,9 +83,9 @@ function o({ label: o, variant: s = "fullscreen", logoSrc: c = "/icons/icon.svg"
66
83
  }
67
84
  }, e))
68
85
  }),
69
- /* @__PURE__ */ i("p", {
86
+ /* @__PURE__ */ a("p", {
70
87
  className: "text-xs text-text-secondary",
71
- children: v
88
+ children: T
72
89
  })
73
90
  ]
74
91
  })
@@ -76,4 +93,4 @@ function o({ label: o, variant: s = "fullscreen", logoSrc: c = "/icons/icon.svg"
76
93
  });
77
94
  }
78
95
  //#endregion
79
- export { o as BrandedSplash };
96
+ export { c as BrandedSplash };