@burdenoff/fe-libs 2026.1021.9 → 2026.1021.10

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/shared.js CHANGED
@@ -42,107 +42,108 @@ import { QUOTA_EXHAUSTED_CODE as Zn, RESOURCE_CAP_EXCEEDED_CODE as Qn, STORAGE_Q
42
42
  import { INLINE_ENCODE as or, downscaleImage as sr, selectInlineBase64 as cr } from "./shared/utils/imageDownscale.js";
43
43
  import { cn as lr } from "./shared-utils.js";
44
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";
45
+ import { MAIN_CONTENT_ID as yr, MainLandmark as br, PublicLayout as xr, SkipToContentLink as Sr, focusSkipTarget as Cr, useInsideMainLandmark as wr } from "./shared/components/SkipToContent.js";
46
+ import { SafeAreaView as Tr } from "./shared/native/SafeAreaView.js";
47
+ import { readInitialNetworkStatus as Er, reduceNetworkStatus as Dr, useNetworkStatus as Or } from "./shared/native/hooks/useNetworkStatus.js";
48
+ import { PULL_TO_REFRESH_THRESHOLD as kr, computePullOffset as Ar, computePullProgress as jr, usePullToRefresh as Mr } from "./shared/native/hooks/usePullToRefresh.js";
49
+ import { useReturnFocus as Nr } from "./shared/hooks/useReturnFocus.js";
50
+ import { ActorIdentity as Pr } from "./shared/actors/ActorIdentity.js";
51
+ import { buildActorFallback as Fr, useActorProfiles as Ir } from "./shared/actors/useActorProfiles.js";
52
+ import { ErrorBoundary as Lr } from "./shared/components/ErrorBoundary.js";
53
+ import { RequireAuth as Rr, RequireGuest as zr } from "./shared/components/RequireAuth.js";
54
+ import { PermissionButton as Br, PermissionGate as Vr, PermissionLink as Hr } from "./shared/components/PermissionGate.js";
55
+ import { AccessDenied as Ur, PermissionDenied as Wr } from "./shared/components/AccessDenied.js";
56
+ import { ErrorFallback as Gr } from "./shared/components/ErrorFallback.js";
57
+ import { LoadingFallback as Kr, PageLoadingFallback as qr, SectionLoadingFallback as Jr } from "./shared/components/LoadingFallback.js";
58
+ import { MicrofrontendErrorBoundary as Yr } from "./shared/components/MicrofrontendErrorBoundary.js";
59
+ import { ConditionalShell as Xr } from "./shared/components/ConditionalShell.js";
60
+ import { usePWA as Zr } from "./shared/hooks/usePWA.js";
61
+ import { PWAInstallBanner as Qr } from "./shared/components/PWAInstallBanner.js";
62
+ import { ErrorBoundary as $r } from "./shared/components/AppErrorBoundary.js";
63
+ import { FeatureFlagProvider as ei, useFeatureFlags as ti } from "./shared/feature-flags/FeatureFlagProvider.js";
64
+ import { useFeatureFlag as ni, useFeatureFlagDetails as ri, useFeatureFlagValue as ii } from "./shared/feature-flags/useFeatureFlag.js";
65
+ import { FeatureGate as ai } from "./shared/feature-flags/FeatureGate.js";
65
66
  import "./shared-feature-flags.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";
67
+ import { ContextConversationWidget as oi } from "./shared/components/ContextConversationWidget.js";
68
+ import { detectPlatform as si, formatKeyCombo as ci, getDisplayKeysForPlatform as li, getShortcutLabel as ui, isMac as di, isMobileDevice as fi, isTabletDevice as pi, matchesKeyCombo as mi, normalizeKey as hi, normalizePlatformCombo as gi, parseKeyCombo as _i, shouldEnableKeyboardShortcuts as vi, shouldIgnoreShortcut as yi } from "./shared/keyboard/utils.js";
69
+ import { KeyboardHelpDialogWrapper as bi } from "./shared/components/KeyboardHelpDialogWrapper.js";
70
+ import { QuotaMeter as xi } from "./shared/components/QuotaMeter.js";
71
+ import { UPGRADE_PROMPT_EVENT as Si, UpgradePromptModal as Ci, dispatchUpgradePrompt as wi } from "./shared/components/UpgradePromptModal.js";
72
+ import { UpgradeInlineBanner as Ti } from "./shared/components/UpgradeInlineBanner.js";
73
+ import { DEFAULT_QUOTA_UPGRADE_COPY as Ei, QuotaUpgradeBridge as Di, captureQuotaDialogOwners as Oi, claimQuotaDialog as ki, dispatchProductQuotaExhausted as Ai, quotaEventKind as ji, resolveQuotaUpgradeCopy as Mi, useQuotaDialogOwnership as Ni, useQuotaUpgradeBridge as Pi, withQuotaDialogOwnership as Fi } from "./shared/components/QuotaUpgradeBridge.js";
74
+ import { getNativeEntryRoutes as Ii, shouldShowNativeWelcome as Li } from "./shared/native/entry.js";
75
+ import { LandingGateView as Ri, LandingOrDashboardRedirect as zi, hasStoredValidSession as Bi, resolveLandingGate as Vi } from "./shared/components/LandingOrDashboardRedirect.js";
76
+ import { useVoiceInput as Hi } from "./shared/components/assistantWidget/useVoiceInput.js";
77
+ import { ASSISTANT_WIDGET_TOGGLE_EVENT as Ui, AssistantWidget as Wi } from "./shared/components/assistantWidget/AssistantWidget.js";
78
+ import { Markdown as Gi } from "./shared/components/Markdown.js";
79
+ import { useNativePlatform as Ki } from "./shared/native/hooks/useNativePlatform.js";
80
+ import { useSafeArea as qi } from "./shared/native/hooks/useSafeArea.js";
81
+ import { useNativeKeyboard as Ji } from "./shared/native/hooks/useNativeKeyboard.js";
82
+ import { useAppState as Yi } from "./shared/native/hooks/useAppState.js";
83
+ import { useDeviceInfo as Xi } from "./shared/native/hooks/useDeviceInfo.js";
84
+ import { useHaptics as Zi } from "./shared/native/hooks/useHaptics.js";
85
+ import { useStatusBar as Qi } from "./shared/native/hooks/useStatusBar.js";
86
+ import { resolveActionSheetOutcome as $i, useActionSheet as ea } from "./shared/native/hooks/useActionSheet.js";
87
+ import { useDesktop as ta } from "./shared/native/hooks/useDesktop.js";
88
+ import { useDesktopUpdateState as na } from "./shared/native/hooks/useDesktopUpdateState.js";
89
+ import { useDesktopWindowState as ra } from "./shared/native/hooks/useDesktopWindowState.js";
90
+ import { DesktopUpdateToast as ia } from "./shared/components/DesktopUpdateToast.js";
90
91
  import "./shared-components.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 { BIGCONSOLE_TOUR_ROUTE_CATALOG as Oo, BUILDMYIQ_TOUR_ROUTE_CATALOG as ko, BUILT_IN_TOUR_ROUTE_CATALOGS as Ao, COLLABKIN_TOUR_ROUTE_CATALOG as jo, FLUIDGRIDS_TOUR_ROUTE_CATALOG as Mo, INTELWATCHTOWER_TOUR_ROUTE_CATALOG as No, MANUFACTUREDOPS_TOUR_ROUTE_CATALOG as Po, VIBECONTROLS_TOUR_ROUTE_CATALOG as Fo, getBuiltInTourRouteCatalog as Io, listBuiltInTourRouteCatalogProductIds as Lo } from "./shared/tours/catalogs.js";
133
- import { createTourPageIdResolver as Ro, getTourContextRank as zo, getTourRouteCatalog as Bo, getTourRouteCatalogVersion as Vo, getTourRouteModules as Ho, getTourRoutePages as Uo, hasRegisteredTourRouteCatalog as Wo, isTourVisibleForContext as Go, normalizeTourPath as Ko, registerTourRouteCatalog as qo, resolveTourTargetPath as Jo, subscribeTourRouteCatalogs as Yo } from "./shared/tours/routeCatalog.js";
134
- import { ToursProvider as Xo, useAutoStartTour as Zo, useSafeToursContext as Qo, useTours as $o, useToursContext as es } from "./shared/tours/ToursContext.js";
135
- import { TourInitializer as ts } from "./shared/tours/TourInitializer.js";
136
- import { useRegisterTourRouteCatalog as ns, useTourRouteCatalog as rs } from "./shared/tours/useTourRouteCatalog.js";
137
- import { AppShellProvider as is, resolveAppShellObservabilityConfig as as } from "./shared/providers/AppShellProvider.js";
138
- import { MicrofrontendProvider as os } from "./shared-providers.js";
139
- import { TourTrigger as ss } from "./shared/tours/TourTrigger.js";
92
+ import { DevtoolsSink as aa } from "./shared/events/sinks/DevtoolsSink.js";
93
+ import { BroadcastChannelSink as oa } from "./shared/events/sinks/BroadcastChannelSink.js";
94
+ import { BackendAuditSink as sa } from "./shared/events/sinks/BackendAuditSink.js";
95
+ import { AnalyticsConsentBanner as ca, RybbitSink as la, readAnalyticsConsent as ua, readAnalyticsConsentChoice as da, setAnalyticsConsent as fa } from "./shared/events/sinks/RybbitSink.js";
96
+ import { OtelBrowserSink as pa } from "./shared/events/sinks/OtelBrowserSink.js";
97
+ import { EventBusProvider as ma, createEventBus as ha, useEvent as ga, useEventBus as _a, useEventEmitter as va } from "./shared-events.js";
98
+ import { useDebounce as ya } from "./shared/hooks/useDebounce.js";
99
+ import { useThrottle as ba } from "./shared/hooks/useThrottle.js";
100
+ import { BREAKPOINTS as xa, useBreakpoint as Sa, useMobileBreakpoint as Ca } from "./shared/hooks/useBreakpoint.js";
101
+ import { useOnClickOutside as wa, useOnClickOutsideWithRef as Ta } from "./shared/hooks/useOnClickOutside.js";
102
+ import { useKeyPress as Ea, useKeyboardShortcut as Da } from "./shared/hooks/useKeyPress.js";
103
+ import { useExclusiveMenu as Oa } from "./shared/hooks/useExclusiveMenu.js";
104
+ import { useLocalStorage as ka } from "./shared/hooks/useLocalStorage.js";
105
+ import { useSessionStorage as Aa } from "./shared/hooks/useSessionStorage.js";
106
+ import { usePrevious as ja, usePreviousDistinct as Ma, usePreviousHistory as Na } from "./shared/hooks/usePrevious.js";
107
+ import { useConditionalToggle as Pa, useToggle as Fa, useToggleObject as Ia } from "./shared/hooks/useToggle.js";
108
+ import { usePagination as La } from "./shared/hooks/usePagination.js";
109
+ import { useAsync as Ra, useAsyncImmediate as za } from "./shared/hooks/useAsync.js";
110
+ import { MODIFIER_KEYS as Ba, PLATFORM_TYPES as Va } from "./shared/keyboard/types.js";
111
+ import { useKeyboardShortcuts as Ha } from "./shared/keyboard/useKeyboardShortcuts.js";
112
+ import { useHotkeys as Ua } from "./shared/keyboard/useHotkeys.js";
113
+ import { useShortcutHelp as Wa } from "./shared/keyboard/useShortcutHelp.js";
114
+ import { GLOBAL_SHORTCUT_CATEGORIES as Ga, createGlobalShortcuts as Ka, getGlobalShortcutsByCategory as qa, mergeShortcuts as Ja } from "./shared/keyboard/globalShortcuts.js";
115
+ import { useLogger as Ya } from "./shared/logger/useLogger.js";
116
+ import { useHasAnimated as Xa } from "./shared/hooks/useHasAnimated.js";
117
+ import { useReferralAttribution as Za } from "./shared/hooks/useReferralAttribution.js";
118
+ import { useRecordProductVisit as Qa } from "./shared/hooks/useRecordProductVisit.js";
119
+ import { PUSH_DEVICE_ID_STORAGE_KEY as $a, getOrCreatePushDeviceId as eo, registerPushDevice as to, unregisterPushDevice as no } from "./shared/native/push-registration.js";
120
+ import { usePushDeviceRegistration as ro } from "./shared/hooks/usePushDeviceRegistration.js";
121
+ import { QUOTA_EXHAUSTED_EVENT as io, dispatchQuotaExhausted as ao, useQuotaErrorToast as oo } from "./shared/hooks/useQuotaErrorToast.js";
122
+ import { PLAN_USAGE_SNAPSHOT_EVENT as so, publishPlanUsageSnapshot as co, useUpgradePrompt as lo } from "./shared/hooks/useUpgradePrompt.js";
123
+ import { appendContextToPath as uo, useCurrentContextSearchParams as fo } from "./shared/hooks/useCurrentContextSearchParams.js";
124
+ import { UNSAVED_CHANGE_LABEL_MAX as po, listUnsavedChanges as mo, registerUnsavedChange as ho, unsavedChangesBlocking as go, useUnsavedChanges as _o } from "./shared/navigation/unsavedChanges.js";
125
+ import { MicrofrontendContext as vo, useMicrofrontendContext as yo } from "./shared-hooks.js";
126
+ import { withTourProgressStatus as bo } from "./shared/tours/progress.js";
127
+ import { detectDeviceType as xo, getResponsiveSelector as So } from "./shared/tours/types.js";
128
+ import { useTourPlayer as Co } from "./shared/tours/useTourPlayer.js";
129
+ import { TourSpotlight as wo } from "./shared/tours/TourSpotlight.js";
130
+ import { TourTooltip as To } from "./shared/tours/TourTooltip.js";
131
+ import { TourPlayerProvider as Eo, useIsTourPlaying as Do, useStartTour as Oo, useStopTour as ko, useTourPlayerContext as Ao } from "./shared/tours/TourPlayerProvider.js";
132
+ import { TourPlayer as jo, TourTriggerButton as Mo, usePlayTour as No } from "./shared/tours/TourPlayer.js";
133
+ import { BIGCONSOLE_TOUR_ROUTE_CATALOG as Po, BUILDMYIQ_TOUR_ROUTE_CATALOG as Fo, BUILT_IN_TOUR_ROUTE_CATALOGS as Io, COLLABKIN_TOUR_ROUTE_CATALOG as Lo, FLUIDGRIDS_TOUR_ROUTE_CATALOG as Ro, INTELWATCHTOWER_TOUR_ROUTE_CATALOG as zo, MANUFACTUREDOPS_TOUR_ROUTE_CATALOG as Bo, VIBECONTROLS_TOUR_ROUTE_CATALOG as Vo, getBuiltInTourRouteCatalog as Ho, listBuiltInTourRouteCatalogProductIds as Uo } from "./shared/tours/catalogs.js";
134
+ import { createTourPageIdResolver as Wo, getTourContextRank as Go, getTourRouteCatalog as Ko, getTourRouteCatalogVersion as qo, getTourRouteModules as Jo, getTourRoutePages as Yo, hasRegisteredTourRouteCatalog as Xo, isTourVisibleForContext as Zo, normalizeTourPath as Qo, registerTourRouteCatalog as $o, resolveTourTargetPath as es, subscribeTourRouteCatalogs as ts } from "./shared/tours/routeCatalog.js";
135
+ import { ToursProvider as ns, useAutoStartTour as rs, useSafeToursContext as is, useTours as as, useToursContext as os } from "./shared/tours/ToursContext.js";
136
+ import { TourInitializer as ss } from "./shared/tours/TourInitializer.js";
137
+ import { useRegisterTourRouteCatalog as cs, useTourRouteCatalog as ls } from "./shared/tours/useTourRouteCatalog.js";
138
+ import { AppShellProvider as us, resolveAppShellObservabilityConfig as ds } from "./shared/providers/AppShellProvider.js";
139
+ import { MicrofrontendProvider as fs } from "./shared-providers.js";
140
+ import { TourTrigger as ps } from "./shared/tours/TourTrigger.js";
140
141
  import "./shared-tours.js";
141
- import { acknowledgeNativePurchase as cs, getNativeProducts as ls, getNativePurchases as us, installNativeIAP as ds, isNativeIAPAvailable as fs, purchaseNativeProduct as ps, restoreNativePurchases as ms } from "./shared/native/purchases.js";
142
- import { getPushOptInController as hs, recordPushPermissionPromptDismissed as gs, registerPushOptInController as _s, shouldPromptForPushPermission as vs } from "./shared/native/push-optin.js";
142
+ import { acknowledgeNativePurchase as ms, getNativeProducts as hs, getNativePurchases as gs, installNativeIAP as _s, isNativeIAPAvailable as vs, purchaseNativeProduct as ys, restoreNativePurchases as bs } from "./shared/native/purchases.js";
143
+ import { getPushOptInController as xs, recordPushPermissionPromptDismissed as Ss, registerPushOptInController as Cs, shouldPromptForPushPermission as ws } from "./shared/native/push-optin.js";
143
144
  import "./shared-native.js";
144
145
  import "./shared/actors/index.js";
145
146
  //#region src/shared/index.ts
146
- var ys = "1.0.0";
147
+ var Ts = "1.0.0";
147
148
  //#endregion
148
- 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, is as AppShellProvider, Ri as AssistantWidget, it as BACKEND_ERROR_EVENT, Oo as BIGCONSOLE_TOUR_ROUTE_CATALOG, ze as BOTMANOR_PRODUCT_SLUG, ha as BREAKPOINTS, ko as BUILDMYIQ_TOUR_ROUTE_CATALOG, Ao as BUILT_IN_TOUR_ROUTE_CATALOGS, ta as BackendAuditSink, ea as BroadcastChannelSink, m as CHART_SERIES_COUNT, jo as COLLABKIN_TOUR_ROUTE_CATALOG, 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, ys as FE_SHARED_VERSION, Mo as FLUIDGRIDS_TOUR_ROUTE_CATALOG, Jr as FeatureFlagProvider, $r as FeatureGate, Qe as GATEWAYS, za as GLOBAL_SHORTCUT_CATEGORIES, Ot as GatewayProvider, or as INLINE_ENCODE, No as INTELWATCHTOWER_TOUR_ROUTE_CATALOG, Rt as InMemoryCache, mi as KeyboardHelpDialogWrapper, Mi as LandingGateView, Ni as LandingOrDashboardRedirect, Br as LoadingFallback, Vn as LogLevel, Un as LogManager, Hn as Logger, Po as MANUFACTUREDOPS_TOUR_ROUTE_CATALOG, Pa as MODIFIER_KEYS, zi as Markdown, fo as MicrofrontendContext, Ur as MicrofrontendErrorBoundary, os 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, ts as TourInitializer, To as TourPlayer, bo as TourPlayerProvider, vo as TourSpotlight, yo as TourTooltip, ss as TourTrigger, Eo as TourTriggerButton, Xo as ToursProvider, oo as UNSAVED_CHANGE_LABEL_MAX, er as UPGRADE_ERROR_CODES, gi as UPGRADE_PROMPT_EVENT, yi as UpgradeInlineBanner, _i as UpgradePromptModal, Fo as VIBECONTROLS_TOUR_ROUTE_CATALOG, Pt as WsLink, cs 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, Ro as createTourPageIdResolver, 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, Io as getBuiltInTourRouteCatalog, $ 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, ls as getNativeProducts, us as getNativePurchases, Ja as getOrCreatePushDeviceId, sn as getPlatform, Ue as getProductUrl, We as getProductsWithUrls, Xn as getProfileScopedKey, s as getProgressTokens, hs 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, zo as getTourContextRank, Bo as getTourRouteCatalog, Vo as getTourRouteCatalogVersion, Ho as getTourRouteModules, Uo as getTourRoutePages, u as getTrendTokens, Tt as getWorkspaceClient, nt as getWorkspaceTokenPayload, zt as gql, bt as graphqlFetch, qt as hasAuthGraphQLErrors, Wo as hasRegisteredTourRouteCatalog, Pi as hasStoredValidSession, Et as initializeAppClients, qn as initializeLogger, xe as installDesktopDeepLinkHandler, Se as installDesktopNavigateHandler, Oe as installGatewayFetchRewrite, ds 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, fs as isNativeIAPAvailable, ir as isQuotaExhaustedError, Ie as isSameProductSlug, en as isSharedSsoCookieDomain, Je as isShellLessRoute, Mn as isSsoNavigationPending, pn as isStandalonePWA, si as isTabletDevice, Go 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, Lo as listBuiltInTourRouteCatalogProductIds, 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, Ko 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, ps as purchaseNativeProduct, Ti as quotaEventKind, ia as readAnalyticsConsent, aa as readAnalyticsConsentChoice, br as readInitialNetworkStatus, nn as readShellSsoCookie, In as readSsoDepositState, gs as recordPushPermissionPromptDismissed, Xt as redirectToLogin, Tn as redirectToSSO, xr as reduceNetworkStatus, Ee as registerDesktopNavigator, Ya as registerPushDevice, _s as registerPushOptInController, qo as registerTourRouteCatalog, co as registerUnsavedChange, yn as replaceLocationWithAllowlist, Dt as resetAppClients, qi as resolveActionSheetOutcome, as as resolveAppShellObservabilityConfig, je as resolveAuthBridgeConfig, ke as resolveGatewayBases, xt as resolveGatewayUrl, De as resolveGatewayUrls, Fi as resolveLandingGate, Ei as resolveQuotaUpgradeCopy, Me as resolveShellAuthBridgeConfig, Jo as resolveTourTargetPath, ms 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, vs as shouldPromptForPushPermission, Ye as shouldShowBreadcrumb, ji as shouldShowNativeWelcome, Xe as shouldShowSidebar, ft as shouldToastBackendError, q as slugify, f as statusTokens, Yo as subscribeTourRouteCatalogs, 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, Zo 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, ns as useRegisterTourRouteCatalog, zn as useRegistryHelpers, Dr as useReturnFocus, Vi as useSafeArea, jt as useSafeGateway, Mt as useSafeGatewayClient, Qo 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, rs as useTourRouteCatalog, $o as useTours, es as useToursContext, uo as useUnsavedChanges, ro as useUpgradePrompt, Ii as useVoiceInput, ki as withQuotaDialogOwnership, mo as withTourProgressStatus };
149
+ export { Ui as ASSISTANT_WIDGET_TOGGLE_EVENT, Ur as AccessDenied, Pr as ActorIdentity, ca as AnalyticsConsentBanner, It as ApolloClient, Lt as ApolloProvider, $r as AppErrorBoundary, Rn as AppInitializer, us as AppShellProvider, Wi as AssistantWidget, it as BACKEND_ERROR_EVENT, Po as BIGCONSOLE_TOUR_ROUTE_CATALOG, ze as BOTMANOR_PRODUCT_SLUG, xa as BREAKPOINTS, Fo as BUILDMYIQ_TOUR_ROUTE_CATALOG, Io as BUILT_IN_TOUR_ROUTE_CATALOGS, sa as BackendAuditSink, oa as BroadcastChannelSink, m as CHART_SERIES_COUNT, Lo as COLLABKIN_TOUR_ROUTE_CATALOG, Ge as COMMON_SHELL_LESS_ROUTES, at as CONNECTION_STATUS_EVENT, Xr as ConditionalShell, Gn as ConsoleTransport, oi as ContextConversationWidget, h as DATA_TYPES, Ze as DEFAULT_PAGE_SIZE, Ei as DEFAULT_QUOTA_UPGRADE_COPY, Ke as DEFAULT_SHELL_CONFIG, te as DESKTOP_UPDATE_UNSUPPORTED, ne as DESKTOP_WINDOW_STATE_DEFAULT, ia as DesktopUpdateToast, aa as DevtoolsSink, g as EDGE_KINDS, Lr as ErrorBoundary, Gr as ErrorFallback, ma as EventBusProvider, Ts as FE_SHARED_VERSION, Ro as FLUIDGRIDS_TOUR_ROUTE_CATALOG, ei as FeatureFlagProvider, ai as FeatureGate, Qe as GATEWAYS, Ga as GLOBAL_SHORTCUT_CATEGORIES, Ot as GatewayProvider, or as INLINE_ENCODE, zo as INTELWATCHTOWER_TOUR_ROUTE_CATALOG, Rt as InMemoryCache, bi as KeyboardHelpDialogWrapper, Ri as LandingGateView, zi as LandingOrDashboardRedirect, Kr as LoadingFallback, Vn as LogLevel, Un as LogManager, Hn as Logger, yr as MAIN_CONTENT_ID, Bo as MANUFACTUREDOPS_TOUR_ROUTE_CATALOG, Ba as MODIFIER_KEYS, br as MainLandmark, Gi as Markdown, vo as MicrofrontendContext, Yr as MicrofrontendErrorBoundary, fs as MicrofrontendProvider, _ as NODE_CATEGORIES, v as NODE_STATES, pa as OtelBrowserSink, so as PLAN_USAGE_SNAPSHOT_EVENT, Va as PLATFORM_TYPES, Be as PRODUCTS, Ne as PRODUCT_SLUG_EMIT, Pe as PRODUCT_SLUG_RENAMES, Ve as PRODUCT_URLS, kr as PULL_TO_REFRESH_THRESHOLD, $a as PUSH_DEVICE_ID_STORAGE_KEY, Qr as PWAInstallBanner, qr as PageLoadingFallback, Br as PermissionButton, Wr as PermissionDenied, Vr as PermissionGate, Hr as PermissionLink, xr as PublicLayout, Zn as QUOTA_EXHAUSTED_CODE, io as QUOTA_EXHAUSTED_EVENT, xi as QuotaMeter, Di as QuotaUpgradeBridge, Qn as RESOURCE_CAP_EXCEEDED_CODE, Rr as RequireAuth, zr as RequireGuest, la as RybbitSink, St as SSELink, bn as SSORedirectSpinner, En as SSO_DEPOSITED_PARAM, $n as STORAGE_QUOTA_EXCEEDED_CODE, Tr as SafeAreaView, Jr as SectionLoadingFallback, Sr as SkipToContentLink, ss as TourInitializer, jo as TourPlayer, Eo as TourPlayerProvider, wo as TourSpotlight, To as TourTooltip, ps as TourTrigger, Mo as TourTriggerButton, ns as ToursProvider, po as UNSAVED_CHANGE_LABEL_MAX, er as UPGRADE_ERROR_CODES, Si as UPGRADE_PROMPT_EVENT, Ti as UpgradeInlineBanner, Ci as UpgradePromptModal, Vo as VIBECONTROLS_TOUR_ROUTE_CATALOG, Pt as WsLink, ms as acknowledgeNativePurchase, r as alertTokens, uo as appendContextToPath, gn as assignLocationWithAllowlist, Gt as attemptTokenRefresh, Dn as beginSsoNavigation, re as bootDesktopShell, Fr as buildActorFallback, tr as buildQuotaExhaustedMessage, On as buildSsoDepositUrl, j as capitalizeFirst, M as capitalizeWords, Oi as captureQuotaDialogOwners, i as categoryTokens, y as chartSeriesColor, b as chartSeriesIndex, xn as checkRemoteSLO, Sn as checkSLO, ki 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, Ar as computePullOffset, jr as computePullProgress, jn as consumeSsoDepositMarker, n as createApolloClient, ha as createEventBus, Ka as createGlobalShortcuts, Ct as createGraphQLClient, Yn as createProfileScopedStorage, Wo as createTourPageIdResolver, 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, xo as detectDeviceType, si as detectPlatform, ot as dispatchBackendErrorEvent, Ai as dispatchProductQuotaExhausted, ao as dispatchQuotaExhausted, wi as dispatchUpgradePrompt, sr as downscaleImage, C as edgeColor, Fe as emitProductSlug, st as extractBackendError, nr as extractQuotaExhaustedExtensions, rr as extractUpgradeErrorExtensions, He as findProductConfig, Cr as focusSkipTarget, N as formatBytes, P as formatCompactNumber, F as formatCurrency, I as formatCurrencyCompact, L as formatDate, R as formatDateTime, z as formatDuration, ci as formatKeyCombo, B as formatList, V as formatNumber, H as formatOrdinal, U as formatPercentage, W as formatRelativeTime, G as formatTime, a as getAlertTokens, Ho as getBuiltInTourRouteCatalog, $ 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, li as getDisplayKeysForPlatform, $e as getGatewayConfig, et as getGatewayUrl, wt as getGlobalClient, qa as getGlobalShortcutsByCategory, tt as getGraphQLEndpoint, be as getLegacyDesktopRuntime, on as getNativeBridge, Ii as getNativeEntryRoutes, hs as getNativeProducts, gs as getNativePurchases, eo as getOrCreatePushDeviceId, sn as getPlatform, Ue as getProductUrl, We as getProductsWithUrls, Xn as getProfileScopedKey, s as getProgressTokens, xs as getPushOptInController, So as getResponsiveSelector, wn as getSSORedirectUrl, $t as getSSoCookie, qe as getShellConfig, ui 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, Go as getTourContextRank, Ko as getTourRouteCatalog, qo as getTourRouteCatalogVersion, Jo as getTourRouteModules, Yo as getTourRoutePages, u as getTrendTokens, Tt as getWorkspaceClient, nt as getWorkspaceTokenPayload, zt as gql, bt as graphqlFetch, qt as hasAuthGraphQLErrors, Xo as hasRegisteredTourRouteCatalog, Bi as hasStoredValidSession, Et as initializeAppClients, qn as initializeLogger, xe as installDesktopDeepLinkHandler, Se as installDesktopNavigateHandler, Oe as installGatewayFetchRewrite, _s 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, di as isMac, fi as isMobileDevice, fn as isNative, vs as isNativeIAPAvailable, ir as isQuotaExhaustedError, Ie as isSameProductSlug, en as isSharedSsoCookieDomain, Je as isShellLessRoute, Mn as isSsoNavigationPending, pn as isStandalonePWA, pi as isTabletDevice, Zo 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, Uo as listBuiltInTourRouteCatalogProductIds, mo as listUnsavedChanges, Wn as logManager, dt as markConnectionHealthy, Nn as markSsoDepositDone, Pn as markSsoDepositPending, mi as matchesKeyCombo, Ja 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, hi as normalizeKey, gi as normalizePlatformCombo, Re as normalizeProductSlug, Qo as normalizeTourPath, we as onDesktopUpdateState, Te as onDesktopWindowState, vn as openUrlInNewTabWithAllowlist, _i as parseKeyCombo, K as pluralize, Ft as prepareWorkspaceRequest, d as progressTokens, co as publishPlanUsageSnapshot, ys as purchaseNativeProduct, ji as quotaEventKind, ua as readAnalyticsConsent, da as readAnalyticsConsentChoice, Er as readInitialNetworkStatus, nn as readShellSsoCookie, In as readSsoDepositState, Ss as recordPushPermissionPromptDismissed, Xt as redirectToLogin, Tn as redirectToSSO, Dr as reduceNetworkStatus, Ee as registerDesktopNavigator, to as registerPushDevice, Cs as registerPushOptInController, $o as registerTourRouteCatalog, ho as registerUnsavedChange, yn as replaceLocationWithAllowlist, Dt as resetAppClients, $i as resolveActionSheetOutcome, ds as resolveAppShellObservabilityConfig, je as resolveAuthBridgeConfig, ke as resolveGatewayBases, xt as resolveGatewayUrl, De as resolveGatewayUrls, Vi as resolveLandingGate, Mi as resolveQuotaUpgradeCopy, Me as resolveShellAuthBridgeConfig, es as resolveTourTargetPath, bs as restoreNativePurchases, cr as selectInlineBase64, fa as setAnalyticsConsent, rn as setSSoCookie, an as setShellSsoCookies, Jn as setUserContext, Ln as shouldAttemptSsoDeposit, vi as shouldEnableKeyboardShortcuts, yi as shouldIgnoreShortcut, ws as shouldPromptForPushPermission, Ye as shouldShowBreadcrumb, Li as shouldShowNativeWelcome, Xe as shouldShowSidebar, ft as shouldToastBackendError, q as slugify, f as statusTokens, ts as subscribeTourRouteCatalogs, Ae as suppressConsole, J as toCamelCase, k as toDataType, A as toNodeCategory, Y as toPascalCase, p as trendTokens, X as truncateText, no as unregisterPushDevice, go as unsavedChangesBlocking, ea as useActionSheet, Ir as useActorProfiles, Bt as useApolloClient, Yi as useAppState, Ra as useAsync, za as useAsyncImmediate, rs as useAutoStartTour, Sa as useBreakpoint, Pa as useConditionalToggle, e as useCopyToClipboard, fo as useCurrentContextSearchParams, ya as useDebounce, ta as useDesktop, na as useDesktopUpdateState, ra as useDesktopWindowState, Xi as useDeviceInfo, ga as useEvent, _a as useEventBus, va as useEventEmitter, Oa as useExclusiveMenu, ni as useFeatureFlag, ri as useFeatureFlagDetails, ii as useFeatureFlagValue, ti as useFeatureFlags, kt as useGateway, At as useGatewayClient, Zi as useHaptics, Xa as useHasAnimated, Nt as useHasAuthToken, Ua as useHotkeys, wr as useInsideMainLandmark, Do as useIsTourPlaying, Ea as useKeyPress, Da as useKeyboardShortcut, Ha as useKeyboardShortcuts, Vt as useLazyQuery, ka as useLocalStorage, Ya as useLogger, t as useMediaQuery, yo as useMicrofrontendContext, Ca as useMobileBreakpoint, Ht as useMutation, Ji as useNativeKeyboard, Ki as useNativePlatform, Or as useNetworkStatus, wa as useOnClickOutside, Ta as useOnClickOutsideWithRef, Zr as usePWA, La as usePagination, No as usePlayTour, ja as usePrevious, Ma as usePreviousDistinct, Na as usePreviousHistory, Mr as usePullToRefresh, ro as usePushDeviceRegistration, Ut as useQuery, Ni as useQuotaDialogOwnership, oo as useQuotaErrorToast, Pi as useQuotaUpgradeBridge, Qa as useRecordProductVisit, Za as useReferralAttribution, cs as useRegisterTourRouteCatalog, zn as useRegistryHelpers, Nr as useReturnFocus, qi as useSafeArea, jt as useSafeGateway, Mt as useSafeGatewayClient, is as useSafeToursContext, Aa as useSessionStorage, Bn as useShellNavigate, Wa as useShortcutHelp, Oo as useStartTour, Qi as useStatusBar, ko as useStopTour, Wt as useSubscription, ba as useThrottle, Fa as useToggle, Ia as useToggleObject, Co as useTourPlayer, Ao as useTourPlayerContext, ls as useTourRouteCatalog, as as useTours, os as useToursContext, _o as useUnsavedChanges, lo as useUpgradePrompt, Hi as useVoiceInput, Fi as withQuotaDialogOwnership, bo as withTourProgressStatus };
@@ -11,6 +11,10 @@ import { ReactNode, ComponentType } from 'react';
11
11
  * per-product brand accent (`--color-action-primary-bg`) auto-applies. Product
12
12
  * name comes from `useAppShell()`; all copy/features are passed as props so
13
13
  * each shell keeps its own messaging. No raw colors.
14
+ *
15
+ * Landmarks: a "Skip to content" link, the header, then one `<main>` holding
16
+ * the hero, features and closing CTA. Wrapped in `PublicLayout` or rendered
17
+ * inside the signed-in shell, it defers to the outer `<main>` and skip link.
14
18
  */
15
19
  type IconType = ComponentType<{
16
20
  className?: string;
@@ -1,146 +1,150 @@
1
1
  import { useAppShell as e } from "../shared/providers/shell/AppShellContext.js";
2
- import { ArrowRight as t, CheckCircle2 as n, Sparkles as r } from "lucide-react";
3
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
2
+ import { MainLandmark as t, SkipToContentLink as n } from "../shared/components/SkipToContent.js";
3
+ import { ArrowRight as r, CheckCircle2 as i, Sparkles as a } from "lucide-react";
4
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
4
5
  //#region src/ui/modern-landing.tsx
5
- var o = "\n.boff-landing{background:var(--color-bg-canvas);color:var(--color-text-primary);min-height:100vh}\n.boff-landing .bl-glow{background:\n radial-gradient(60% 50% at 20% 0%, color-mix(in oklab, var(--color-accent-primary, var(--color-action-primary-bg)) 18%, transparent), transparent 70%),\n radial-gradient(50% 50% at 90% 10%, color-mix(in oklab, var(--color-accent-secondary, var(--color-action-primary-bg)) 12%, transparent), transparent 70%)}\n.boff-landing .bl-grid{background-image:\n linear-gradient(to right, color-mix(in oklab, var(--color-border-subtle, var(--color-border-default)) 55%, transparent) 1px, transparent 1px),\n linear-gradient(to bottom, color-mix(in oklab, var(--color-border-subtle, var(--color-border-default)) 55%, transparent) 1px, transparent 1px);\n background-size:44px 44px;\n mask-image:radial-gradient(70% 60% at 50% 0%, #000 0%, transparent 75%);\n -webkit-mask-image:radial-gradient(70% 60% at 50% 0%, #000 0%, transparent 75%)}\n.boff-landing .bl-gradient-text{\n background:linear-gradient(100deg, var(--color-action-primary-bg), color-mix(in oklab, var(--color-action-primary-bg) 55%, var(--color-text-primary)));\n -webkit-background-clip:text;background-clip:text;color:transparent}\n@keyframes bl-fade-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}\n@keyframes bl-fade{from{opacity:0}to{opacity:1}}\n.boff-landing .bl-anim-up{animation:bl-fade-up .6s cubic-bezier(.16,1,.3,1) both}\n.boff-landing .bl-anim{animation:bl-fade .8s ease both}\n.boff-landing .bl-d1{animation-delay:.08s}.boff-landing .bl-d2{animation-delay:.16s}.boff-landing .bl-d3{animation-delay:.26s}\n.boff-landing .bl-card{transition:border-color .2s ease, box-shadow .2s ease}\n.boff-landing .bl-card:hover{border-color:var(--color-border-strong, var(--color-border-default));box-shadow:var(--shadow-elevation-1)}\n@media (prefers-reduced-motion: reduce){\n .boff-landing .bl-anim-up,.boff-landing .bl-anim{animation:none}\n}\n";
6
- function s({ eyebrow: s, headlineLead: c, headlineAccent: l, subheadline: u, highlights: d, features: f = [], featuresTitle: p, featuresSubtitle: m, primaryCtaLabel: h = "Get started", secondaryCtaLabel: g = "Sign in", onPrimaryCta: _, onSecondaryCta: v, closingTitle: y, closingSubtitle: b, footer: x }) {
7
- let { productName: S } = e();
8
- return /* @__PURE__ */ a("div", {
6
+ var c = "\n.boff-landing{background:var(--color-bg-canvas);color:var(--color-text-primary);min-height:100vh}\n.boff-landing .bl-glow{background:\n radial-gradient(60% 50% at 20% 0%, color-mix(in oklab, var(--color-accent-primary, var(--color-action-primary-bg)) 18%, transparent), transparent 70%),\n radial-gradient(50% 50% at 90% 10%, color-mix(in oklab, var(--color-accent-secondary, var(--color-action-primary-bg)) 12%, transparent), transparent 70%)}\n.boff-landing .bl-grid{background-image:\n linear-gradient(to right, color-mix(in oklab, var(--color-border-subtle, var(--color-border-default)) 55%, transparent) 1px, transparent 1px),\n linear-gradient(to bottom, color-mix(in oklab, var(--color-border-subtle, var(--color-border-default)) 55%, transparent) 1px, transparent 1px);\n background-size:44px 44px;\n mask-image:radial-gradient(70% 60% at 50% 0%, #000 0%, transparent 75%);\n -webkit-mask-image:radial-gradient(70% 60% at 50% 0%, #000 0%, transparent 75%)}\n.boff-landing .bl-gradient-text{\n background:linear-gradient(100deg, var(--color-action-primary-bg), color-mix(in oklab, var(--color-action-primary-bg) 55%, var(--color-text-primary)));\n -webkit-background-clip:text;background-clip:text;color:transparent}\n@keyframes bl-fade-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}\n@keyframes bl-fade{from{opacity:0}to{opacity:1}}\n.boff-landing .bl-anim-up{animation:bl-fade-up .6s cubic-bezier(.16,1,.3,1) both}\n.boff-landing .bl-anim{animation:bl-fade .8s ease both}\n.boff-landing .bl-d1{animation-delay:.08s}.boff-landing .bl-d2{animation-delay:.16s}.boff-landing .bl-d3{animation-delay:.26s}\n.boff-landing .bl-card{transition:border-color .2s ease, box-shadow .2s ease}\n.boff-landing .bl-card:hover{border-color:var(--color-border-strong, var(--color-border-default));box-shadow:var(--shadow-elevation-1)}\n@media (prefers-reduced-motion: reduce){\n .boff-landing .bl-anim-up,.boff-landing .bl-anim{animation:none}\n}\n";
7
+ function l({ eyebrow: l, headlineLead: u, headlineAccent: d, subheadline: f, highlights: p, features: m = [], featuresTitle: h, featuresSubtitle: g, primaryCtaLabel: _ = "Get started", secondaryCtaLabel: v = "Sign in", onPrimaryCta: y, onSecondaryCta: b, closingTitle: x, closingSubtitle: S, footer: C }) {
8
+ let { productName: w } = e();
9
+ return /* @__PURE__ */ s("div", {
9
10
  className: "boff-landing w-full overflow-x-hidden",
10
11
  children: [
11
- /* @__PURE__ */ i("style", { children: o }),
12
- /* @__PURE__ */ a("header", {
12
+ /* @__PURE__ */ o("style", { children: c }),
13
+ /* @__PURE__ */ o(n, {}),
14
+ /* @__PURE__ */ s("header", {
13
15
  className: "relative z-10 mx-auto flex max-w-7xl items-center justify-between px-6 py-5",
14
- children: [/* @__PURE__ */ i("span", {
16
+ children: [/* @__PURE__ */ o("span", {
15
17
  className: "text-lg font-semibold tracking-tight text-text-primary",
16
- children: S
17
- }), v && /* @__PURE__ */ i("button", {
18
+ children: w
19
+ }), b && /* @__PURE__ */ o("button", {
18
20
  type: "button",
19
- onClick: v,
21
+ onClick: b,
20
22
  className: "rounded-lg px-4 py-2 text-sm font-medium text-text-secondary transition hover:text-text-primary",
21
- children: g
23
+ children: v
22
24
  })]
23
25
  }),
24
- /* @__PURE__ */ a("section", {
25
- className: "relative overflow-hidden",
26
- children: [
27
- /* @__PURE__ */ i("div", {
28
- "aria-hidden": "true",
29
- className: "bl-glow pointer-events-none absolute inset-0"
30
- }),
31
- /* @__PURE__ */ i("div", {
32
- "aria-hidden": "true",
33
- className: "bl-grid pointer-events-none absolute inset-0 opacity-60"
34
- }),
35
- /* @__PURE__ */ a("div", {
36
- className: "relative mx-auto max-w-4xl px-6 pb-20 pt-16 text-center sm:pt-24",
37
- children: [
38
- s && /* @__PURE__ */ a("div", {
39
- className: "bl-anim mb-6 inline-flex items-center gap-2 rounded-full border border-border-subtle bg-bg-surface/60 px-4 py-1.5 text-sm font-medium text-text-secondary backdrop-blur",
40
- children: [/* @__PURE__ */ i(r, { className: "size-3.5 text-action-primary-bg" }), s]
41
- }),
42
- /* @__PURE__ */ a("h1", {
43
- className: "bl-anim-up mx-auto max-w-3xl text-4xl font-bold tracking-tight sm:text-5xl lg:text-6xl",
44
- children: [c && /* @__PURE__ */ i("span", {
45
- className: "block text-text-primary",
46
- children: c
47
- }), /* @__PURE__ */ i("span", {
48
- className: "bl-gradient-text block",
49
- children: l
50
- })]
51
- }),
52
- u && /* @__PURE__ */ i("p", {
53
- className: "bl-anim-up bl-d1 mx-auto mt-6 max-w-2xl text-lg leading-relaxed text-text-secondary",
54
- children: u
55
- }),
56
- /* @__PURE__ */ a("div", {
57
- className: "bl-anim-up bl-d2 mt-9 flex flex-wrap items-center justify-center gap-3",
58
- children: [_ && /* @__PURE__ */ a("button", {
59
- type: "button",
60
- onClick: _,
61
- className: "inline-flex items-center gap-2 rounded-lg bg-action-primary-bg px-6 py-3 text-sm font-semibold text-action-primary-text shadow-elevation-1 transition hover:bg-action-primary-bgHover active:scale-[0.98] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-bg-canvas",
62
- children: [h, /* @__PURE__ */ i(t, { className: "size-4" })]
63
- }), v && /* @__PURE__ */ i("button", {
64
- type: "button",
65
- onClick: v,
66
- className: "inline-flex items-center gap-2 rounded-lg border border-border-default bg-bg-surface px-6 py-3 text-sm font-semibold text-text-primary transition hover:bg-bg-sunken hover:border-border-strong focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
67
- children: g
68
- })]
69
- }),
70
- d && d.length > 0 && /* @__PURE__ */ i("ul", {
71
- className: "bl-anim bl-d3 mx-auto mt-9 flex max-w-2xl flex-wrap items-center justify-center gap-x-6 gap-y-2 text-sm text-text-secondary",
72
- children: d.map((e) => /* @__PURE__ */ a("li", {
73
- className: "flex items-center gap-2",
74
- children: [/* @__PURE__ */ i(n, { className: "size-4 shrink-0 text-action-primary-bg" }), e]
75
- }, e))
76
- })
77
- ]
78
- })
79
- ]
80
- }),
81
- f.length > 0 && /* @__PURE__ */ a("section", {
82
- className: "relative mx-auto max-w-7xl px-6 py-16 sm:py-20",
83
- children: [(p || m) && /* @__PURE__ */ a("div", {
84
- className: "mx-auto mb-12 max-w-2xl text-center",
85
- children: [p && /* @__PURE__ */ i("h2", {
86
- className: "text-2xl font-bold tracking-tight text-text-primary sm:text-3xl",
87
- children: p
88
- }), m && /* @__PURE__ */ i("p", {
89
- className: "mt-3 text-base text-text-secondary",
90
- children: m
91
- })]
92
- }), /* @__PURE__ */ i("div", {
93
- className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3",
94
- children: f.map((e) => {
95
- let t = e.icon;
96
- return /* @__PURE__ */ a("div", {
97
- className: "bl-card flex flex-col rounded-2xl border border-border-subtle bg-bg-surface p-6",
26
+ /* @__PURE__ */ s(t, { children: [
27
+ /* @__PURE__ */ s("section", {
28
+ className: "relative overflow-hidden",
29
+ children: [
30
+ /* @__PURE__ */ o("div", {
31
+ "aria-hidden": "true",
32
+ className: "bl-glow pointer-events-none absolute inset-0"
33
+ }),
34
+ /* @__PURE__ */ o("div", {
35
+ "aria-hidden": "true",
36
+ className: "bl-grid pointer-events-none absolute inset-0 opacity-60"
37
+ }),
38
+ /* @__PURE__ */ s("div", {
39
+ className: "relative mx-auto max-w-4xl px-6 pb-20 pt-16 text-center sm:pt-24",
98
40
  children: [
99
- t && /* @__PURE__ */ i("span", {
100
- className: "mb-4 inline-flex size-11 items-center justify-center rounded-xl bg-bg-sunken text-action-primary-bg",
101
- children: /* @__PURE__ */ i(t, { className: "size-5" })
41
+ l && /* @__PURE__ */ s("div", {
42
+ className: "bl-anim mb-6 inline-flex items-center gap-2 rounded-full border border-border-subtle bg-bg-surface/60 px-4 py-1.5 text-sm font-medium text-text-secondary backdrop-blur",
43
+ children: [/* @__PURE__ */ o(a, { className: "size-3.5 text-action-primary-bg" }), l]
44
+ }),
45
+ /* @__PURE__ */ s("h1", {
46
+ className: "bl-anim-up mx-auto max-w-3xl text-4xl font-bold tracking-tight sm:text-5xl lg:text-6xl",
47
+ children: [u && /* @__PURE__ */ o("span", {
48
+ className: "block text-text-primary",
49
+ children: u
50
+ }), /* @__PURE__ */ o("span", {
51
+ className: "bl-gradient-text block",
52
+ children: d
53
+ })]
102
54
  }),
103
- /* @__PURE__ */ i("h3", {
104
- className: "text-base font-semibold text-text-primary",
105
- children: e.title
55
+ f && /* @__PURE__ */ o("p", {
56
+ className: "bl-anim-up bl-d1 mx-auto mt-6 max-w-2xl text-lg leading-relaxed text-text-secondary",
57
+ children: f
106
58
  }),
107
- /* @__PURE__ */ i("p", {
108
- className: "mt-2 text-sm leading-relaxed text-text-secondary",
109
- children: e.description
59
+ /* @__PURE__ */ s("div", {
60
+ className: "bl-anim-up bl-d2 mt-9 flex flex-wrap items-center justify-center gap-3",
61
+ children: [y && /* @__PURE__ */ s("button", {
62
+ type: "button",
63
+ onClick: y,
64
+ className: "inline-flex items-center gap-2 rounded-lg bg-action-primary-bg px-6 py-3 text-sm font-semibold text-action-primary-text shadow-elevation-1 transition hover:bg-action-primary-bgHover active:scale-[0.98] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-bg-canvas",
65
+ children: [_, /* @__PURE__ */ o(r, { className: "size-4" })]
66
+ }), b && /* @__PURE__ */ o("button", {
67
+ type: "button",
68
+ onClick: b,
69
+ className: "inline-flex items-center gap-2 rounded-lg border border-border-default bg-bg-surface px-6 py-3 text-sm font-semibold text-text-primary transition hover:bg-bg-sunken hover:border-border-strong focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
70
+ children: v
71
+ })]
72
+ }),
73
+ p && p.length > 0 && /* @__PURE__ */ o("ul", {
74
+ className: "bl-anim bl-d3 mx-auto mt-9 flex max-w-2xl flex-wrap items-center justify-center gap-x-6 gap-y-2 text-sm text-text-secondary",
75
+ children: p.map((e) => /* @__PURE__ */ s("li", {
76
+ className: "flex items-center gap-2",
77
+ children: [/* @__PURE__ */ o(i, { className: "size-4 shrink-0 text-action-primary-bg" }), e]
78
+ }, e))
110
79
  })
111
80
  ]
112
- }, e.title);
113
- })
114
- })]
115
- }),
116
- (y || _) && /* @__PURE__ */ a("section", {
117
- className: "relative overflow-hidden border-t border-border-subtle bg-bg-sunken",
118
- children: [/* @__PURE__ */ i("div", {
119
- "aria-hidden": "true",
120
- className: "bl-glow pointer-events-none absolute inset-0 opacity-70"
121
- }), /* @__PURE__ */ a("div", {
122
- className: "relative mx-auto max-w-3xl px-6 py-16 text-center sm:py-20",
123
- children: [
124
- /* @__PURE__ */ i("h2", {
125
- className: "text-2xl font-bold tracking-tight text-text-primary sm:text-3xl",
126
- children: y ?? `Get started with ${S}`
127
- }),
128
- b && /* @__PURE__ */ i("p", {
129
- className: "mx-auto mt-3 max-w-xl text-base text-text-secondary",
130
- children: b
131
- }),
132
- _ && /* @__PURE__ */ a("button", {
133
- type: "button",
134
- onClick: _,
135
- className: "mt-8 inline-flex items-center gap-2 rounded-lg bg-action-primary-bg px-6 py-3 text-sm font-semibold text-action-primary-text shadow-elevation-1 transition hover:bg-action-primary-bgHover active:scale-[0.98] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-bg-canvas",
136
- children: [h, /* @__PURE__ */ i(t, { className: "size-4" })]
137
81
  })
138
82
  ]
139
- })]
140
- }),
141
- x
83
+ }),
84
+ m.length > 0 && /* @__PURE__ */ s("section", {
85
+ className: "relative mx-auto max-w-7xl px-6 py-16 sm:py-20",
86
+ children: [(h || g) && /* @__PURE__ */ s("div", {
87
+ className: "mx-auto mb-12 max-w-2xl text-center",
88
+ children: [h && /* @__PURE__ */ o("h2", {
89
+ className: "text-2xl font-bold tracking-tight text-text-primary sm:text-3xl",
90
+ children: h
91
+ }), g && /* @__PURE__ */ o("p", {
92
+ className: "mt-3 text-base text-text-secondary",
93
+ children: g
94
+ })]
95
+ }), /* @__PURE__ */ o("div", {
96
+ className: "grid gap-6 sm:grid-cols-2 lg:grid-cols-3",
97
+ children: m.map((e) => {
98
+ let t = e.icon;
99
+ return /* @__PURE__ */ s("div", {
100
+ className: "bl-card flex flex-col rounded-2xl border border-border-subtle bg-bg-surface p-6",
101
+ children: [
102
+ t && /* @__PURE__ */ o("span", {
103
+ className: "mb-4 inline-flex size-11 items-center justify-center rounded-xl bg-bg-sunken text-action-primary-bg",
104
+ children: /* @__PURE__ */ o(t, { className: "size-5" })
105
+ }),
106
+ /* @__PURE__ */ o("h3", {
107
+ className: "text-base font-semibold text-text-primary",
108
+ children: e.title
109
+ }),
110
+ /* @__PURE__ */ o("p", {
111
+ className: "mt-2 text-sm leading-relaxed text-text-secondary",
112
+ children: e.description
113
+ })
114
+ ]
115
+ }, e.title);
116
+ })
117
+ })]
118
+ }),
119
+ (x || y) && /* @__PURE__ */ s("section", {
120
+ className: "relative overflow-hidden border-t border-border-subtle bg-bg-sunken",
121
+ children: [/* @__PURE__ */ o("div", {
122
+ "aria-hidden": "true",
123
+ className: "bl-glow pointer-events-none absolute inset-0 opacity-70"
124
+ }), /* @__PURE__ */ s("div", {
125
+ className: "relative mx-auto max-w-3xl px-6 py-16 text-center sm:py-20",
126
+ children: [
127
+ /* @__PURE__ */ o("h2", {
128
+ className: "text-2xl font-bold tracking-tight text-text-primary sm:text-3xl",
129
+ children: x ?? `Get started with ${w}`
130
+ }),
131
+ S && /* @__PURE__ */ o("p", {
132
+ className: "mx-auto mt-3 max-w-xl text-base text-text-secondary",
133
+ children: S
134
+ }),
135
+ y && /* @__PURE__ */ s("button", {
136
+ type: "button",
137
+ onClick: y,
138
+ className: "mt-8 inline-flex items-center gap-2 rounded-lg bg-action-primary-bg px-6 py-3 text-sm font-semibold text-action-primary-text shadow-elevation-1 transition hover:bg-action-primary-bgHover active:scale-[0.98] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-bg-canvas",
139
+ children: [_, /* @__PURE__ */ o(r, { className: "size-4" })]
140
+ })
141
+ ]
142
+ })]
143
+ })
144
+ ] }),
145
+ C
142
146
  ]
143
147
  });
144
148
  }
145
149
  //#endregion
146
- export { s as ModernLanding };
150
+ export { l as ModernLanding };