@burdenoff/fe-libs 2026.623.4 → 2026.623.6

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
@@ -1,118 +1,119 @@
1
- import { useMediaQuery as e } from "./shared/hooks/useMediaQuery.js";
2
- import { createApolloClient as t } from "./shared/utils/apollo.js";
3
- import { alertTokens as n, categoryTokens as r, getAlertTokens as i, getCategoryTokens as a, getProgressTokens as o, getStatusBadgeTokens as s, getStatusTokens as c, getTrendTokens as l, progressTokens as u, statusTokens as d, trendTokens as f } from "./shared/utils/tokens.js";
4
- import { capitalizeFirst as p, capitalizeWords as m, formatBytes as h, formatCompactNumber as g, formatCurrency as _, formatCurrencyCompact as v, formatDate as y, formatDateTime as b, formatDuration as x, formatList as S, formatNumber as C, formatOrdinal as w, formatPercentage as T, formatRelativeTime as E, formatTime as D, pluralize as O, slugify as k, toCamelCase as A, toPascalCase as j, truncateText as M } from "./shared/utils/format.js";
5
- import { isChunkLoadError as N, lazyWithRetry as P } from "./shared/utils/lazyWithRetry.js";
6
- import { resolveGatewayUrls as F } from "./shared/config/gatewayUrls.js";
7
- import { installGatewayFetchRewrite as I, resolveGatewayBases as L, suppressConsole as R } from "./shared/utils/gatewayFetchRewrite.js";
8
- import { resolveAuthBridgeConfig as z } from "./shared/config/authBridgeUrls.js";
9
- import { PRODUCTS as B, PRODUCT_URLS as V, getProductUrl as H, getProductsWithUrls as U } from "./shared/config/products.js";
10
- import { COMMON_SHELL_LESS_ROUTES as W, DEFAULT_SHELL_CONFIG as G, getShellConfig as K, isShellLessRoute as q, shouldShowBreadcrumb as J, shouldShowSidebar as Y } from "./shared/config/shellRoutes.js";
11
- import { DEFAULT_PAGE_SIZE as X, GATEWAYS as Z, getGatewayConfig as Q, getGatewayUrl as $, getGraphQLEndpoint as ee } from "./shared-config.js";
12
- import { getWorkspaceTokenPayload as te, isWorkspaceTokenValidForContext as ne } from "./shared/graphql/workspaceToken.js";
13
- import { BACKEND_ERROR_EVENT as re, CONNECTION_STATUS_EVENT as ie, dispatchBackendErrorEvent as ae, extractBackendError as oe, isAbortError as se, isBackendErrorDisplay as ce, isTransportError as le, markConnectionHealthy as ue, shouldToastBackendError as de } from "./shared/utils/backendErrors.js";
14
- import { getStoredAuthToken as fe, getStoredLocale as pe, getStoredOrganizationId as me, getStoredProjectId as he, getStoredWorkspaceId as ge, getStoredWorkspaceToken as _e, graphqlFetch as ve, resolveGatewayUrl as ye } from "./shared/graphql/fetch.js";
15
- import { SSELink as be } from "./shared/graphql/links/sse-link.js";
16
- import { createGraphQLClient as xe, getGlobalClient as Se, getWorkspaceClient as Ce, initializeAppClients as we, resetAppClients as Te } from "./shared/graphql/client.js";
17
- import { GatewayProvider as Ee, useGateway as De, useGatewayClient as Oe, useSafeGateway as ke, useSafeGatewayClient as Ae } from "./shared/graphql/GatewayContext.js";
18
- import { WsLink as je } from "./shared/graphql/links/ws-link.js";
19
- import { ApolloClient as Me, ApolloProvider as Ne, InMemoryCache as Pe, gql as Fe, useApolloClient as Ie, useLazyQuery as Le, useMutation as Re, useQuery as ze, useSubscription as Be } from "./shared-graphql.js";
20
- import { attemptTokenRefresh as Ve, clearAuthSessionStorage as He, hasAuthGraphQLErrors as Ue, isAuthGraphQLError as We, isAuthNetworkError as Ge, redirectToLogin as Ke } from "./shared/utils/authErrorHandling.js";
21
- import { clearSSoCookie as qe, clearShellSsoCookies as Je, getSSoCookie as Ye, isSharedSsoCookieDomain as Xe, isTrustedSsoOrigin as Ze, readShellSsoCookie as Qe, setSSoCookie as $e, setShellSsoCookies as et } from "./shared/utils/authCookie.js";
22
- import { SSORedirectSpinner as tt, checkRemoteSLO as nt, checkSLO as rt, clearLocalAuthState as it, getSSORedirectUrl as at } from "./shared/components/SSORedirectGuard.js";
23
- import { AppInitializer as ot, useRegistryHelpers as st, useShellNavigate as ct } from "./shared/utils/appHelpers.js";
24
- import { LogLevel as lt } from "./shared/logger/types.js";
25
- import { Logger as ut } from "./shared/logger/Logger.js";
26
- import { LogManager as dt, logManager as ft } from "./shared/logger/LogManager.js";
27
- import { ConsoleTransport as pt } from "./shared/logger/ConsoleTransport.js";
28
- import { clearUserContext as mt, initializeLogger as ht, setUserContext as gt } from "./shared/utils/loggerInit.js";
29
- import { createProfileScopedStorage as _t, getProfileScopedKey as vt } from "./shared/utils/profileScopedStorage.js";
30
- import { QUOTA_EXHAUSTED_CODE as yt, RESOURCE_CAP_EXCEEDED_CODE as bt, STORAGE_QUOTA_EXCEEDED_CODE as xt, UPGRADE_ERROR_CODES as St, buildQuotaExhaustedMessage as Ct, extractQuotaExhaustedExtensions as wt, extractUpgradeErrorExtensions as Tt, isQuotaExhaustedError as Et, isUpgradeError as Dt } from "./shared/utils/quotaErrors.js";
31
- import { cn as Ot } from "./shared-utils.js";
32
- import { ActorIdentity as kt } from "./shared/actors/ActorIdentity.js";
33
- import { buildActorFallback as At, useActorProfiles as jt } from "./shared/actors/useActorProfiles.js";
34
- import { ErrorBoundary as Mt } from "./shared/components/ErrorBoundary.js";
35
- import { RequireAuth as Nt, RequireGuest as Pt } from "./shared/components/RequireAuth.js";
36
- import { PermissionButton as Ft, PermissionGate as It, PermissionLink as Lt } from "./shared/components/PermissionGate.js";
37
- import { AccessDenied as Rt, PermissionDenied as zt } from "./shared/components/AccessDenied.js";
38
- import { ErrorFallback as Bt } from "./shared/components/ErrorFallback.js";
39
- import { LoadingFallback as Vt, PageLoadingFallback as Ht, SectionLoadingFallback as Ut } from "./shared/components/LoadingFallback.js";
40
- import { MicrofrontendErrorBoundary as Wt } from "./shared/components/MicrofrontendErrorBoundary.js";
41
- import { ConditionalShell as Gt } from "./shared/components/ConditionalShell.js";
42
- import { usePWA as Kt } from "./shared/hooks/usePWA.js";
43
- import { PWAInstallBanner as qt } from "./shared/components/PWAInstallBanner.js";
44
- import { ErrorBoundary as Jt } from "./shared/components/AppErrorBoundary.js";
45
- import { FeatureFlagProvider as Yt, useFeatureFlags as Xt } from "./shared/feature-flags/FeatureFlagProvider.js";
46
- import { useFeatureFlag as Zt, useFeatureFlagDetails as Qt, useFeatureFlagValue as $t } from "./shared/feature-flags/useFeatureFlag.js";
47
- import { FeatureGate as en } from "./shared/feature-flags/FeatureGate.js";
1
+ import { useCopyToClipboard as e } from "./shared/hooks/useCopyToClipboard.js";
2
+ import { useMediaQuery as t } from "./shared/hooks/useMediaQuery.js";
3
+ import { createApolloClient as n } from "./shared/utils/apollo.js";
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 { resolveGatewayUrls as I } from "./shared/config/gatewayUrls.js";
8
+ import { installGatewayFetchRewrite as L, resolveGatewayBases as R, suppressConsole as z } from "./shared/utils/gatewayFetchRewrite.js";
9
+ import { resolveAuthBridgeConfig as B } from "./shared/config/authBridgeUrls.js";
10
+ import { PRODUCTS as V, PRODUCT_URLS as H, getProductUrl as U, getProductsWithUrls as W } from "./shared/config/products.js";
11
+ import { COMMON_SHELL_LESS_ROUTES as G, DEFAULT_SHELL_CONFIG as K, getShellConfig as q, isShellLessRoute as J, shouldShowBreadcrumb as Y, shouldShowSidebar as X } from "./shared/config/shellRoutes.js";
12
+ import { DEFAULT_PAGE_SIZE as Z, GATEWAYS as Q, getGatewayConfig as $, getGatewayUrl as ee, getGraphQLEndpoint as te } from "./shared-config.js";
13
+ import { getWorkspaceTokenPayload as ne, isWorkspaceTokenValidForContext as re } from "./shared/graphql/workspaceToken.js";
14
+ import { BACKEND_ERROR_EVENT as ie, CONNECTION_STATUS_EVENT as ae, dispatchBackendErrorEvent as oe, extractBackendError as se, isAbortError as ce, isBackendErrorDisplay as le, isTransportError as ue, markConnectionHealthy as de, shouldToastBackendError as fe } from "./shared/utils/backendErrors.js";
15
+ import { getStoredAuthToken as pe, getStoredLocale as me, getStoredOrganizationId as he, getStoredProjectId as ge, getStoredWorkspaceId as _e, getStoredWorkspaceToken as ve, graphqlFetch as ye, resolveGatewayUrl as be } from "./shared/graphql/fetch.js";
16
+ import { SSELink as xe } from "./shared/graphql/links/sse-link.js";
17
+ import { createGraphQLClient as Se, getGlobalClient as Ce, getWorkspaceClient as we, initializeAppClients as Te, resetAppClients as Ee } from "./shared/graphql/client.js";
18
+ import { GatewayProvider as De, useGateway as Oe, useGatewayClient as ke, useSafeGateway as Ae, useSafeGatewayClient as je } from "./shared/graphql/GatewayContext.js";
19
+ import { WsLink as Me } from "./shared/graphql/links/ws-link.js";
20
+ import { ApolloClient as Ne, ApolloProvider as Pe, InMemoryCache as Fe, gql as Ie, useApolloClient as Le, useLazyQuery as Re, useMutation as ze, useQuery as Be, useSubscription as Ve } from "./shared-graphql.js";
21
+ import { attemptTokenRefresh as He, clearAuthSessionStorage as Ue, hasAuthGraphQLErrors as We, isAuthGraphQLError as Ge, isAuthNetworkError as Ke, redirectToLogin as qe } from "./shared/utils/authErrorHandling.js";
22
+ import { clearSSoCookie as Je, clearShellSsoCookies as Ye, getSSoCookie as Xe, isSharedSsoCookieDomain as Ze, isTrustedSsoOrigin as Qe, readShellSsoCookie as $e, setSSoCookie as et, setShellSsoCookies as tt } from "./shared/utils/authCookie.js";
23
+ import { SSORedirectSpinner as nt, checkRemoteSLO as rt, checkSLO as it, clearLocalAuthState as at, getSSORedirectUrl as ot } from "./shared/components/SSORedirectGuard.js";
24
+ import { AppInitializer as st, useRegistryHelpers as ct, useShellNavigate as lt } from "./shared/utils/appHelpers.js";
25
+ import { LogLevel as ut } from "./shared/logger/types.js";
26
+ import { Logger as dt } from "./shared/logger/Logger.js";
27
+ import { LogManager as ft, logManager as pt } from "./shared/logger/LogManager.js";
28
+ import { ConsoleTransport as mt } from "./shared/logger/ConsoleTransport.js";
29
+ import { clearUserContext as ht, initializeLogger as gt, setUserContext as _t } from "./shared/utils/loggerInit.js";
30
+ import { createProfileScopedStorage as vt, getProfileScopedKey as yt } from "./shared/utils/profileScopedStorage.js";
31
+ import { QUOTA_EXHAUSTED_CODE as bt, RESOURCE_CAP_EXCEEDED_CODE as xt, STORAGE_QUOTA_EXCEEDED_CODE as St, UPGRADE_ERROR_CODES as Ct, buildQuotaExhaustedMessage as wt, extractQuotaExhaustedExtensions as Tt, extractUpgradeErrorExtensions as Et, isQuotaExhaustedError as Dt, isUpgradeError as Ot } from "./shared/utils/quotaErrors.js";
32
+ import { cn as kt } from "./shared-utils.js";
33
+ import { ActorIdentity as At } from "./shared/actors/ActorIdentity.js";
34
+ import { buildActorFallback as jt, useActorProfiles as Mt } from "./shared/actors/useActorProfiles.js";
35
+ import { ErrorBoundary as Nt } from "./shared/components/ErrorBoundary.js";
36
+ import { RequireAuth as Pt, RequireGuest as Ft } from "./shared/components/RequireAuth.js";
37
+ import { PermissionButton as It, PermissionGate as Lt, PermissionLink as Rt } from "./shared/components/PermissionGate.js";
38
+ import { AccessDenied as zt, PermissionDenied as Bt } from "./shared/components/AccessDenied.js";
39
+ import { ErrorFallback as Vt } from "./shared/components/ErrorFallback.js";
40
+ import { LoadingFallback as Ht, PageLoadingFallback as Ut, SectionLoadingFallback as Wt } from "./shared/components/LoadingFallback.js";
41
+ import { MicrofrontendErrorBoundary as Gt } from "./shared/components/MicrofrontendErrorBoundary.js";
42
+ import { ConditionalShell as Kt } from "./shared/components/ConditionalShell.js";
43
+ import { usePWA as qt } from "./shared/hooks/usePWA.js";
44
+ import { PWAInstallBanner as Jt } from "./shared/components/PWAInstallBanner.js";
45
+ import { ErrorBoundary as Yt } from "./shared/components/AppErrorBoundary.js";
46
+ import { FeatureFlagProvider as Xt, useFeatureFlags as Zt } from "./shared/feature-flags/FeatureFlagProvider.js";
47
+ import { useFeatureFlag as Qt, useFeatureFlagDetails as $t, useFeatureFlagValue as en } from "./shared/feature-flags/useFeatureFlag.js";
48
+ import { FeatureGate as tn } from "./shared/feature-flags/FeatureGate.js";
48
49
  import "./shared-feature-flags.js";
49
- import { ContextConversationWidget as tn } from "./shared/components/ContextConversationWidget.js";
50
- import { detectPlatform as nn, formatKeyCombo as rn, getDisplayKeysForPlatform as an, getShortcutLabel as on, isMac as sn, isMobileDevice as cn, isTabletDevice as ln, matchesKeyCombo as un, normalizeKey as dn, normalizePlatformCombo as fn, parseKeyCombo as pn, shouldEnableKeyboardShortcuts as mn, shouldIgnoreShortcut as hn } from "./shared/keyboard/utils.js";
51
- import { KeyboardHelpDialogWrapper as gn } from "./shared/components/KeyboardHelpDialogWrapper.js";
52
- import { QuotaMeter as _n } from "./shared/components/QuotaMeter.js";
53
- import { UPGRADE_PROMPT_EVENT as vn, UpgradePromptModal as yn, dispatchUpgradePrompt as bn } from "./shared/components/UpgradePromptModal.js";
54
- import { UpgradeInlineBanner as xn } from "./shared/components/UpgradeInlineBanner.js";
55
- import { useVoiceInput as Sn } from "./shared/components/assistantWidget/useVoiceInput.js";
56
- import { ASSISTANT_WIDGET_TOGGLE_EVENT as Cn, AssistantWidget as wn } from "./shared/components/assistantWidget/AssistantWidget.js";
50
+ import { ContextConversationWidget as nn } from "./shared/components/ContextConversationWidget.js";
51
+ import { detectPlatform as rn, formatKeyCombo as an, getDisplayKeysForPlatform as on, getShortcutLabel as sn, isMac as cn, isMobileDevice as ln, isTabletDevice as un, matchesKeyCombo as dn, normalizeKey as fn, normalizePlatformCombo as pn, parseKeyCombo as mn, shouldEnableKeyboardShortcuts as hn, shouldIgnoreShortcut as gn } from "./shared/keyboard/utils.js";
52
+ import { KeyboardHelpDialogWrapper as _n } from "./shared/components/KeyboardHelpDialogWrapper.js";
53
+ import { QuotaMeter as vn } from "./shared/components/QuotaMeter.js";
54
+ import { UPGRADE_PROMPT_EVENT as yn, UpgradePromptModal as bn, dispatchUpgradePrompt as xn } from "./shared/components/UpgradePromptModal.js";
55
+ import { UpgradeInlineBanner as Sn } from "./shared/components/UpgradeInlineBanner.js";
56
+ import { useVoiceInput as Cn } from "./shared/components/assistantWidget/useVoiceInput.js";
57
+ import { ASSISTANT_WIDGET_TOGGLE_EVENT as wn, AssistantWidget as Tn } from "./shared/components/assistantWidget/AssistantWidget.js";
57
58
  import "./shared-components.js";
58
- import { DevtoolsSink as Tn } from "./shared/events/sinks/DevtoolsSink.js";
59
- import { BroadcastChannelSink as En } from "./shared/events/sinks/BroadcastChannelSink.js";
60
- import { BackendAuditSink as Dn } from "./shared/events/sinks/BackendAuditSink.js";
61
- import { RybbitSink as On } from "./shared/events/sinks/RybbitSink.js";
62
- import { OtelBrowserSink as kn } from "./shared/events/sinks/OtelBrowserSink.js";
63
- import { EventBusProvider as An, createEventBus as jn, useEvent as Mn, useEventBus as Nn, useEventEmitter as Pn } from "./shared-events.js";
64
- import { useDebounce as Fn } from "./shared/hooks/useDebounce.js";
65
- import { useThrottle as In } from "./shared/hooks/useThrottle.js";
66
- import { BREAKPOINTS as Ln, useBreakpoint as Rn, useMobileBreakpoint as zn } from "./shared/hooks/useBreakpoint.js";
67
- import { useOnClickOutside as Bn, useOnClickOutsideWithRef as Vn } from "./shared/hooks/useOnClickOutside.js";
68
- import { useKeyPress as Hn, useKeyboardShortcut as Un } from "./shared/hooks/useKeyPress.js";
69
- import { useCopyToClipboard as Wn } from "./shared/hooks/useCopyToClipboard.js";
59
+ import { DevtoolsSink as En } from "./shared/events/sinks/DevtoolsSink.js";
60
+ import { BroadcastChannelSink as Dn } from "./shared/events/sinks/BroadcastChannelSink.js";
61
+ import { BackendAuditSink as On } from "./shared/events/sinks/BackendAuditSink.js";
62
+ import { RybbitSink as kn } from "./shared/events/sinks/RybbitSink.js";
63
+ import { OtelBrowserSink as An } from "./shared/events/sinks/OtelBrowserSink.js";
64
+ import { EventBusProvider as jn, createEventBus as Mn, useEvent as Nn, useEventBus as Pn, useEventEmitter as Fn } from "./shared-events.js";
65
+ import { useDebounce as In } from "./shared/hooks/useDebounce.js";
66
+ import { useThrottle as Ln } from "./shared/hooks/useThrottle.js";
67
+ import { BREAKPOINTS as Rn, useBreakpoint as zn, useMobileBreakpoint as Bn } from "./shared/hooks/useBreakpoint.js";
68
+ import { useOnClickOutside as Vn, useOnClickOutsideWithRef as Hn } from "./shared/hooks/useOnClickOutside.js";
69
+ import { useKeyPress as Un, useKeyboardShortcut as Wn } from "./shared/hooks/useKeyPress.js";
70
70
  import { useLocalStorage as Gn } from "./shared/hooks/useLocalStorage.js";
71
71
  import { useSessionStorage as Kn } from "./shared/hooks/useSessionStorage.js";
72
72
  import { usePrevious as qn, usePreviousDistinct as Jn, usePreviousHistory as Yn } from "./shared/hooks/usePrevious.js";
73
73
  import { useConditionalToggle as Xn, useToggle as Zn, useToggleObject as Qn } from "./shared/hooks/useToggle.js";
74
- import { useAsync as $n, useAsyncImmediate as er } from "./shared/hooks/useAsync.js";
75
- import { MODIFIER_KEYS as tr, PLATFORM_TYPES as nr } from "./shared/keyboard/types.js";
76
- import { useKeyboardShortcuts as rr } from "./shared/keyboard/useKeyboardShortcuts.js";
77
- import { useHotkeys as ir } from "./shared/keyboard/useHotkeys.js";
78
- import { useShortcutHelp as ar } from "./shared/keyboard/useShortcutHelp.js";
79
- import { GLOBAL_SHORTCUT_CATEGORIES as or, createGlobalShortcuts as sr, getGlobalShortcutsByCategory as cr, mergeShortcuts as lr } from "./shared/keyboard/globalShortcuts.js";
80
- import { useLogger as ur } from "./shared/logger/useLogger.js";
81
- import { useHasAnimated as dr } from "./shared/hooks/useHasAnimated.js";
82
- import { useReferralAttribution as fr } from "./shared/hooks/useReferralAttribution.js";
83
- import { useRecordProductVisit as pr } from "./shared/hooks/useRecordProductVisit.js";
84
- import { QUOTA_EXHAUSTED_EVENT as mr, dispatchQuotaExhausted as hr, useQuotaErrorToast as gr } from "./shared/hooks/useQuotaErrorToast.js";
85
- import { PLAN_USAGE_SNAPSHOT_EVENT as _r, publishPlanUsageSnapshot as vr, useUpgradePrompt as yr } from "./shared/hooks/useUpgradePrompt.js";
86
- import { appendContextToPath as br, useCurrentContextSearchParams as xr } from "./shared/hooks/useCurrentContextSearchParams.js";
87
- import { MicrofrontendContext as Sr, useMicrofrontendContext as Cr } from "./shared-hooks.js";
88
- import { detectDeviceType as wr, getResponsiveSelector as Tr } from "./shared/tours/types.js";
89
- import { useTourPlayer as Er } from "./shared/tours/useTourPlayer.js";
90
- import { TourSpotlight as Dr } from "./shared/tours/TourSpotlight.js";
91
- import { TourTooltip as Or } from "./shared/tours/TourTooltip.js";
92
- import { TourPlayerProvider as kr, useIsTourPlaying as Ar, useStartTour as jr, useStopTour as Mr, useTourPlayerContext as Nr } from "./shared/tours/TourPlayerProvider.js";
93
- import { TourPlayer as Pr, TourTriggerButton as Fr, usePlayTour as Ir } from "./shared/tours/TourPlayer.js";
94
- import { getTourContextRank as Lr, getTourRouteCatalog as Rr, getTourRouteModules as zr, getTourRoutePages as Br, isTourVisibleForContext as Vr, normalizeTourPath as Hr, registerTourRouteCatalog as Ur, resolveTourTargetPath as Wr } from "./shared/tours/routeCatalog.js";
95
- import { withTourProgressStatus as Gr } from "./shared/tours/progress.js";
96
- import { ToursProvider as Kr, useAutoStartTour as qr, useSafeToursContext as Jr, useTours as Yr, useToursContext as Xr } from "./shared/tours/ToursContext.js";
97
- import { TourInitializer as Zr } from "./shared/tours/TourInitializer.js";
98
- import { AppShellProvider as Qr, resolveAppShellObservabilityConfig as $r } from "./shared/providers/AppShellProvider.js";
99
- import { MicrofrontendProvider as ei } from "./shared-providers.js";
100
- import { TourTrigger as ti } from "./shared/tours/TourTrigger.js";
74
+ import { usePagination as $n } from "./shared/hooks/usePagination.js";
75
+ import { useAsync as er, useAsyncImmediate as tr } from "./shared/hooks/useAsync.js";
76
+ import { MODIFIER_KEYS as nr, PLATFORM_TYPES as rr } from "./shared/keyboard/types.js";
77
+ import { useKeyboardShortcuts as ir } from "./shared/keyboard/useKeyboardShortcuts.js";
78
+ import { useHotkeys as ar } from "./shared/keyboard/useHotkeys.js";
79
+ import { useShortcutHelp as or } from "./shared/keyboard/useShortcutHelp.js";
80
+ import { GLOBAL_SHORTCUT_CATEGORIES as sr, createGlobalShortcuts as cr, getGlobalShortcutsByCategory as lr, mergeShortcuts as ur } from "./shared/keyboard/globalShortcuts.js";
81
+ import { useLogger as dr } from "./shared/logger/useLogger.js";
82
+ import { useHasAnimated as fr } from "./shared/hooks/useHasAnimated.js";
83
+ import { useReferralAttribution as pr } from "./shared/hooks/useReferralAttribution.js";
84
+ import { useRecordProductVisit as mr } from "./shared/hooks/useRecordProductVisit.js";
85
+ import { QUOTA_EXHAUSTED_EVENT as hr, dispatchQuotaExhausted as gr, useQuotaErrorToast as _r } from "./shared/hooks/useQuotaErrorToast.js";
86
+ import { PLAN_USAGE_SNAPSHOT_EVENT as vr, publishPlanUsageSnapshot as yr, useUpgradePrompt as br } from "./shared/hooks/useUpgradePrompt.js";
87
+ import { appendContextToPath as xr, useCurrentContextSearchParams as Sr } from "./shared/hooks/useCurrentContextSearchParams.js";
88
+ import { MicrofrontendContext as Cr, useMicrofrontendContext as wr } from "./shared-hooks.js";
89
+ import { detectDeviceType as Tr, getResponsiveSelector as Er } from "./shared/tours/types.js";
90
+ import { useTourPlayer as Dr } from "./shared/tours/useTourPlayer.js";
91
+ import { TourSpotlight as Or } from "./shared/tours/TourSpotlight.js";
92
+ import { TourTooltip as kr } from "./shared/tours/TourTooltip.js";
93
+ import { TourPlayerProvider as Ar, useIsTourPlaying as jr, useStartTour as Mr, useStopTour as Nr, useTourPlayerContext as Pr } from "./shared/tours/TourPlayerProvider.js";
94
+ import { TourPlayer as Fr, TourTriggerButton as Ir, usePlayTour as Lr } from "./shared/tours/TourPlayer.js";
95
+ import { getTourContextRank as Rr, getTourRouteCatalog as zr, getTourRouteModules as Br, getTourRoutePages as Vr, isTourVisibleForContext as Hr, normalizeTourPath as Ur, registerTourRouteCatalog as Wr, resolveTourTargetPath as Gr } from "./shared/tours/routeCatalog.js";
96
+ import { withTourProgressStatus as Kr } from "./shared/tours/progress.js";
97
+ import { ToursProvider as qr, useAutoStartTour as Jr, useSafeToursContext as Yr, useTours as Xr, useToursContext as Zr } from "./shared/tours/ToursContext.js";
98
+ import { TourInitializer as Qr } from "./shared/tours/TourInitializer.js";
99
+ import { AppShellProvider as $r, resolveAppShellObservabilityConfig as ei } from "./shared/providers/AppShellProvider.js";
100
+ import { MicrofrontendProvider as ti } from "./shared-providers.js";
101
+ import { TourTrigger as ni } from "./shared/tours/TourTrigger.js";
101
102
  import "./shared-tours.js";
102
- import { getNativeBridge as ni } from "./shared/native/bridge.js";
103
- import { getPlatform as ri, isAndroid as ii, isIOS as ai, isNative as oi, isWeb as si } from "./shared/native/platform.js";
104
- import { nativeConfirm as ci, nativeCopyText as li, nativeImpact as ui, nativeNotify as di, nativeOpenUrl as fi, nativeShare as pi, nativeToast as mi } from "./shared/native/consumers.js";
105
- import { SafeAreaView as hi } from "./shared/native/SafeAreaView.js";
106
- import { useNativePlatform as gi } from "./shared/native/hooks/useNativePlatform.js";
107
- import { useSafeArea as _i } from "./shared/native/hooks/useSafeArea.js";
108
- import { useNativeKeyboard as vi } from "./shared/native/hooks/useNativeKeyboard.js";
109
- import { useAppState as yi } from "./shared/native/hooks/useAppState.js";
110
- import { useDeviceInfo as bi } from "./shared/native/hooks/useDeviceInfo.js";
111
- import { useHaptics as xi } from "./shared/native/hooks/useHaptics.js";
112
- import { useStatusBar as Si } from "./shared/native/hooks/useStatusBar.js";
103
+ import { getNativeBridge as ri } from "./shared/native/bridge.js";
104
+ import { getPlatform as ii, isAndroid as ai, isIOS as oi, isNative as si, isWeb as ci } from "./shared/native/platform.js";
105
+ import { nativeConfirm as li, nativeCopyText as ui, nativeImpact as di, nativeNotify as fi, nativeOpenUrl as pi, nativeShare as mi, nativeToast as hi } from "./shared/native/consumers.js";
106
+ import { SafeAreaView as gi } from "./shared/native/SafeAreaView.js";
107
+ import { useNativePlatform as _i } from "./shared/native/hooks/useNativePlatform.js";
108
+ import { useSafeArea as vi } from "./shared/native/hooks/useSafeArea.js";
109
+ import { useNativeKeyboard as yi } from "./shared/native/hooks/useNativeKeyboard.js";
110
+ import { useAppState as bi } from "./shared/native/hooks/useAppState.js";
111
+ import { useDeviceInfo as xi } from "./shared/native/hooks/useDeviceInfo.js";
112
+ import { useHaptics as Si } from "./shared/native/hooks/useHaptics.js";
113
+ import { useStatusBar as Ci } from "./shared/native/hooks/useStatusBar.js";
113
114
  import "./shared-native.js";
114
115
  import "./shared/actors/index.js";
115
116
  //#region src/shared/index.ts
116
- var Ci = "1.0.0";
117
+ var wi = "1.0.0";
117
118
  //#endregion
118
- export { Cn as ASSISTANT_WIDGET_TOGGLE_EVENT, Rt as AccessDenied, kt as ActorIdentity, Me as ApolloClient, Ne as ApolloProvider, Jt as AppErrorBoundary, ot as AppInitializer, Qr as AppShellProvider, wn as AssistantWidget, re as BACKEND_ERROR_EVENT, Ln as BREAKPOINTS, Dn as BackendAuditSink, En as BroadcastChannelSink, W as COMMON_SHELL_LESS_ROUTES, ie as CONNECTION_STATUS_EVENT, Gt as ConditionalShell, pt as ConsoleTransport, tn as ContextConversationWidget, X as DEFAULT_PAGE_SIZE, G as DEFAULT_SHELL_CONFIG, Tn as DevtoolsSink, Mt as ErrorBoundary, Bt as ErrorFallback, An as EventBusProvider, Ci as FE_SHARED_VERSION, Yt as FeatureFlagProvider, en as FeatureGate, Z as GATEWAYS, or as GLOBAL_SHORTCUT_CATEGORIES, Ee as GatewayProvider, Pe as InMemoryCache, gn as KeyboardHelpDialogWrapper, Vt as LoadingFallback, lt as LogLevel, dt as LogManager, ut as Logger, tr as MODIFIER_KEYS, Sr as MicrofrontendContext, Wt as MicrofrontendErrorBoundary, ei as MicrofrontendProvider, kn as OtelBrowserSink, _r as PLAN_USAGE_SNAPSHOT_EVENT, nr as PLATFORM_TYPES, B as PRODUCTS, V as PRODUCT_URLS, qt as PWAInstallBanner, Ht as PageLoadingFallback, Ft as PermissionButton, zt as PermissionDenied, It as PermissionGate, Lt as PermissionLink, yt as QUOTA_EXHAUSTED_CODE, mr as QUOTA_EXHAUSTED_EVENT, _n as QuotaMeter, bt as RESOURCE_CAP_EXCEEDED_CODE, Nt as RequireAuth, Pt as RequireGuest, On as RybbitSink, be as SSELink, tt as SSORedirectSpinner, xt as STORAGE_QUOTA_EXCEEDED_CODE, hi as SafeAreaView, Ut as SectionLoadingFallback, Zr as TourInitializer, Pr as TourPlayer, kr as TourPlayerProvider, Dr as TourSpotlight, Or as TourTooltip, ti as TourTrigger, Fr as TourTriggerButton, Kr as ToursProvider, St as UPGRADE_ERROR_CODES, vn as UPGRADE_PROMPT_EVENT, xn as UpgradeInlineBanner, yn as UpgradePromptModal, je as WsLink, n as alertTokens, br as appendContextToPath, Ve as attemptTokenRefresh, At as buildActorFallback, Ct as buildQuotaExhaustedMessage, p as capitalizeFirst, m as capitalizeWords, r as categoryTokens, nt as checkRemoteSLO, rt as checkSLO, He as clearAuthSessionStorage, it as clearLocalAuthState, qe as clearSSoCookie, Je as clearShellSsoCookies, mt as clearUserContext, Ot as cn, t as createApolloClient, jn as createEventBus, sr as createGlobalShortcuts, xe as createGraphQLClient, _t as createProfileScopedStorage, wr as detectDeviceType, nn as detectPlatform, ae as dispatchBackendErrorEvent, hr as dispatchQuotaExhausted, bn as dispatchUpgradePrompt, oe as extractBackendError, wt as extractQuotaExhaustedExtensions, Tt as extractUpgradeErrorExtensions, h as formatBytes, g as formatCompactNumber, _ as formatCurrency, v as formatCurrencyCompact, y as formatDate, b as formatDateTime, x as formatDuration, rn as formatKeyCombo, S as formatList, C as formatNumber, w as formatOrdinal, T as formatPercentage, E as formatRelativeTime, D as formatTime, i as getAlertTokens, a as getCategoryTokens, an as getDisplayKeysForPlatform, Q as getGatewayConfig, $ as getGatewayUrl, Se as getGlobalClient, cr as getGlobalShortcutsByCategory, ee as getGraphQLEndpoint, ni as getNativeBridge, ri as getPlatform, H as getProductUrl, U as getProductsWithUrls, vt as getProfileScopedKey, o as getProgressTokens, Tr as getResponsiveSelector, at as getSSORedirectUrl, Ye as getSSoCookie, K as getShellConfig, on as getShortcutLabel, s as getStatusBadgeTokens, c as getStatusTokens, fe as getStoredAuthToken, pe as getStoredLocale, me as getStoredOrganizationId, he as getStoredProjectId, ge as getStoredWorkspaceId, _e as getStoredWorkspaceToken, Lr as getTourContextRank, Rr as getTourRouteCatalog, zr as getTourRouteModules, Br as getTourRoutePages, l as getTrendTokens, Ce as getWorkspaceClient, te as getWorkspaceTokenPayload, Fe as gql, ve as graphqlFetch, Ue as hasAuthGraphQLErrors, we as initializeAppClients, ht as initializeLogger, I as installGatewayFetchRewrite, se as isAbortError, ii as isAndroid, We as isAuthGraphQLError, Ge as isAuthNetworkError, ce as isBackendErrorDisplay, N as isChunkLoadError, ai as isIOS, sn as isMac, cn as isMobileDevice, oi as isNative, Et as isQuotaExhaustedError, Xe as isSharedSsoCookieDomain, q as isShellLessRoute, ln as isTabletDevice, Vr as isTourVisibleForContext, le as isTransportError, Ze as isTrustedSsoOrigin, Dt as isUpgradeError, si as isWeb, ne as isWorkspaceTokenValidForContext, P as lazyWithRetry, ft as logManager, ue as markConnectionHealthy, un as matchesKeyCombo, lr as mergeShortcuts, ci as nativeConfirm, li as nativeCopyText, ui as nativeImpact, di as nativeNotify, fi as nativeOpenUrl, pi as nativeShare, mi as nativeToast, dn as normalizeKey, fn as normalizePlatformCombo, Hr as normalizeTourPath, pn as parseKeyCombo, O as pluralize, u as progressTokens, vr as publishPlanUsageSnapshot, Qe as readShellSsoCookie, Ke as redirectToLogin, Ur as registerTourRouteCatalog, Te as resetAppClients, $r as resolveAppShellObservabilityConfig, z as resolveAuthBridgeConfig, L as resolveGatewayBases, ye as resolveGatewayUrl, F as resolveGatewayUrls, Wr as resolveTourTargetPath, $e as setSSoCookie, et as setShellSsoCookies, gt as setUserContext, mn as shouldEnableKeyboardShortcuts, hn as shouldIgnoreShortcut, J as shouldShowBreadcrumb, Y as shouldShowSidebar, de as shouldToastBackendError, k as slugify, d as statusTokens, R as suppressConsole, A as toCamelCase, j as toPascalCase, f as trendTokens, M as truncateText, jt as useActorProfiles, Ie as useApolloClient, yi as useAppState, $n as useAsync, er as useAsyncImmediate, qr as useAutoStartTour, Rn as useBreakpoint, Xn as useConditionalToggle, Wn as useCopyToClipboard, xr as useCurrentContextSearchParams, Fn as useDebounce, bi as useDeviceInfo, Mn as useEvent, Nn as useEventBus, Pn as useEventEmitter, Zt as useFeatureFlag, Qt as useFeatureFlagDetails, $t as useFeatureFlagValue, Xt as useFeatureFlags, De as useGateway, Oe as useGatewayClient, xi as useHaptics, dr as useHasAnimated, ir as useHotkeys, Ar as useIsTourPlaying, Hn as useKeyPress, Un as useKeyboardShortcut, rr as useKeyboardShortcuts, Le as useLazyQuery, Gn as useLocalStorage, ur as useLogger, e as useMediaQuery, Cr as useMicrofrontendContext, zn as useMobileBreakpoint, Re as useMutation, vi as useNativeKeyboard, gi as useNativePlatform, Bn as useOnClickOutside, Vn as useOnClickOutsideWithRef, Kt as usePWA, Ir as usePlayTour, qn as usePrevious, Jn as usePreviousDistinct, Yn as usePreviousHistory, ze as useQuery, gr as useQuotaErrorToast, pr as useRecordProductVisit, fr as useReferralAttribution, st as useRegistryHelpers, _i as useSafeArea, ke as useSafeGateway, Ae as useSafeGatewayClient, Jr as useSafeToursContext, Kn as useSessionStorage, ct as useShellNavigate, ar as useShortcutHelp, jr as useStartTour, Si as useStatusBar, Mr as useStopTour, Be as useSubscription, In as useThrottle, Zn as useToggle, Qn as useToggleObject, Er as useTourPlayer, Nr as useTourPlayerContext, Yr as useTours, Xr as useToursContext, yr as useUpgradePrompt, Sn as useVoiceInput, Gr as withTourProgressStatus };
119
+ export { wn as ASSISTANT_WIDGET_TOGGLE_EVENT, zt as AccessDenied, At as ActorIdentity, Ne as ApolloClient, Pe as ApolloProvider, Yt as AppErrorBoundary, st as AppInitializer, $r as AppShellProvider, Tn as AssistantWidget, ie as BACKEND_ERROR_EVENT, Rn as BREAKPOINTS, On as BackendAuditSink, Dn as BroadcastChannelSink, G as COMMON_SHELL_LESS_ROUTES, ae as CONNECTION_STATUS_EVENT, Kt as ConditionalShell, mt as ConsoleTransport, nn as ContextConversationWidget, Z as DEFAULT_PAGE_SIZE, K as DEFAULT_SHELL_CONFIG, En as DevtoolsSink, Nt as ErrorBoundary, Vt as ErrorFallback, jn as EventBusProvider, wi as FE_SHARED_VERSION, Xt as FeatureFlagProvider, tn as FeatureGate, Q as GATEWAYS, sr as GLOBAL_SHORTCUT_CATEGORIES, De as GatewayProvider, Fe as InMemoryCache, _n as KeyboardHelpDialogWrapper, Ht as LoadingFallback, ut as LogLevel, ft as LogManager, dt as Logger, nr as MODIFIER_KEYS, Cr as MicrofrontendContext, Gt as MicrofrontendErrorBoundary, ti as MicrofrontendProvider, An as OtelBrowserSink, vr as PLAN_USAGE_SNAPSHOT_EVENT, rr as PLATFORM_TYPES, V as PRODUCTS, H as PRODUCT_URLS, Jt as PWAInstallBanner, Ut as PageLoadingFallback, It as PermissionButton, Bt as PermissionDenied, Lt as PermissionGate, Rt as PermissionLink, bt as QUOTA_EXHAUSTED_CODE, hr as QUOTA_EXHAUSTED_EVENT, vn as QuotaMeter, xt as RESOURCE_CAP_EXCEEDED_CODE, Pt as RequireAuth, Ft as RequireGuest, kn as RybbitSink, xe as SSELink, nt as SSORedirectSpinner, St as STORAGE_QUOTA_EXCEEDED_CODE, gi as SafeAreaView, Wt as SectionLoadingFallback, Qr as TourInitializer, Fr as TourPlayer, Ar as TourPlayerProvider, Or as TourSpotlight, kr as TourTooltip, ni as TourTrigger, Ir as TourTriggerButton, qr as ToursProvider, Ct as UPGRADE_ERROR_CODES, yn as UPGRADE_PROMPT_EVENT, Sn as UpgradeInlineBanner, bn as UpgradePromptModal, Me as WsLink, r as alertTokens, xr as appendContextToPath, He as attemptTokenRefresh, jt as buildActorFallback, wt as buildQuotaExhaustedMessage, m as capitalizeFirst, h as capitalizeWords, i as categoryTokens, rt as checkRemoteSLO, it as checkSLO, Ue as clearAuthSessionStorage, at as clearLocalAuthState, Je as clearSSoCookie, Ye as clearShellSsoCookies, ht as clearUserContext, kt as cn, n as createApolloClient, Mn as createEventBus, cr as createGlobalShortcuts, Se as createGraphQLClient, vt as createProfileScopedStorage, Tr as detectDeviceType, rn as detectPlatform, oe as dispatchBackendErrorEvent, gr as dispatchQuotaExhausted, xn as dispatchUpgradePrompt, se as extractBackendError, Tt as extractQuotaExhaustedExtensions, Et as extractUpgradeErrorExtensions, g as formatBytes, _ as formatCompactNumber, v as formatCurrency, y as formatCurrencyCompact, b as formatDate, x as formatDateTime, S as formatDuration, an as formatKeyCombo, C as formatList, w as formatNumber, T as formatOrdinal, E as formatPercentage, D as formatRelativeTime, O as formatTime, a as getAlertTokens, o as getCategoryTokens, on as getDisplayKeysForPlatform, $ as getGatewayConfig, ee as getGatewayUrl, Ce as getGlobalClient, lr as getGlobalShortcutsByCategory, te as getGraphQLEndpoint, ri as getNativeBridge, ii as getPlatform, U as getProductUrl, W as getProductsWithUrls, yt as getProfileScopedKey, s as getProgressTokens, Er as getResponsiveSelector, ot as getSSORedirectUrl, Xe as getSSoCookie, q as getShellConfig, sn as getShortcutLabel, c as getStatusBadgeTokens, l as getStatusTokens, pe as getStoredAuthToken, me as getStoredLocale, he as getStoredOrganizationId, ge as getStoredProjectId, _e as getStoredWorkspaceId, ve as getStoredWorkspaceToken, Rr as getTourContextRank, zr as getTourRouteCatalog, Br as getTourRouteModules, Vr as getTourRoutePages, u as getTrendTokens, we as getWorkspaceClient, ne as getWorkspaceTokenPayload, Ie as gql, ye as graphqlFetch, We as hasAuthGraphQLErrors, Te as initializeAppClients, gt as initializeLogger, L as installGatewayFetchRewrite, ce as isAbortError, ai as isAndroid, Ge as isAuthGraphQLError, Ke as isAuthNetworkError, le as isBackendErrorDisplay, P as isChunkLoadError, oi as isIOS, cn as isMac, ln as isMobileDevice, si as isNative, Dt as isQuotaExhaustedError, Ze as isSharedSsoCookieDomain, J as isShellLessRoute, un as isTabletDevice, Hr as isTourVisibleForContext, ue as isTransportError, Qe as isTrustedSsoOrigin, Ot as isUpgradeError, ci as isWeb, re as isWorkspaceTokenValidForContext, F as lazyWithRetry, pt as logManager, de as markConnectionHealthy, dn as matchesKeyCombo, ur as mergeShortcuts, li as nativeConfirm, ui as nativeCopyText, di as nativeImpact, fi as nativeNotify, pi as nativeOpenUrl, mi as nativeShare, hi as nativeToast, fn as normalizeKey, pn as normalizePlatformCombo, Ur as normalizeTourPath, mn as parseKeyCombo, k as pluralize, d as progressTokens, yr as publishPlanUsageSnapshot, $e as readShellSsoCookie, qe as redirectToLogin, Wr as registerTourRouteCatalog, Ee as resetAppClients, ei as resolveAppShellObservabilityConfig, B as resolveAuthBridgeConfig, R as resolveGatewayBases, be as resolveGatewayUrl, I as resolveGatewayUrls, Gr as resolveTourTargetPath, et as setSSoCookie, tt as setShellSsoCookies, _t as setUserContext, hn as shouldEnableKeyboardShortcuts, gn as shouldIgnoreShortcut, Y as shouldShowBreadcrumb, X as shouldShowSidebar, fe as shouldToastBackendError, A as slugify, f as statusTokens, z as suppressConsole, j as toCamelCase, M as toPascalCase, p as trendTokens, N as truncateText, Mt as useActorProfiles, Le as useApolloClient, bi as useAppState, er as useAsync, tr as useAsyncImmediate, Jr as useAutoStartTour, zn as useBreakpoint, Xn as useConditionalToggle, e as useCopyToClipboard, Sr as useCurrentContextSearchParams, In as useDebounce, xi as useDeviceInfo, Nn as useEvent, Pn as useEventBus, Fn as useEventEmitter, Qt as useFeatureFlag, $t as useFeatureFlagDetails, en as useFeatureFlagValue, Zt as useFeatureFlags, Oe as useGateway, ke as useGatewayClient, Si as useHaptics, fr as useHasAnimated, ar as useHotkeys, jr as useIsTourPlaying, Un as useKeyPress, Wn as useKeyboardShortcut, ir as useKeyboardShortcuts, Re as useLazyQuery, Gn as useLocalStorage, dr as useLogger, t as useMediaQuery, wr as useMicrofrontendContext, Bn as useMobileBreakpoint, ze as useMutation, yi as useNativeKeyboard, _i as useNativePlatform, Vn as useOnClickOutside, Hn as useOnClickOutsideWithRef, qt as usePWA, $n as usePagination, Lr as usePlayTour, qn as usePrevious, Jn as usePreviousDistinct, Yn as usePreviousHistory, Be as useQuery, _r as useQuotaErrorToast, mr as useRecordProductVisit, pr as useReferralAttribution, ct as useRegistryHelpers, vi as useSafeArea, Ae as useSafeGateway, je as useSafeGatewayClient, Yr as useSafeToursContext, Kn as useSessionStorage, lt as useShellNavigate, or as useShortcutHelp, Mr as useStartTour, Ci as useStatusBar, Nr as useStopTour, Ve as useSubscription, Ln as useThrottle, Zn as useToggle, Qn as useToggleObject, Dr as useTourPlayer, Pr as useTourPlayerContext, Xr as useTours, Zr as useToursContext, br as useUpgradePrompt, Cn as useVoiceInput, Kr as withTourProgressStatus };
@@ -0,0 +1,35 @@
1
+ export interface EntityIdInfo {
2
+ /** The raw identifier (usually a UUID) to display + copy. */
3
+ id: string;
4
+ /** Human name of the entity (e.g. "My Project"). Shown as the dialog subtitle. */
5
+ name?: string;
6
+ /** Entity kind (e.g. "Project", "Agent", "Vibe"). Used in the title. */
7
+ type?: string;
8
+ /** Optional extra copyable fields (e.g. slug, workspace id). */
9
+ details?: Array<{
10
+ label: string;
11
+ value: string;
12
+ }>;
13
+ }
14
+ export interface EntityIdModalControl {
15
+ open: boolean;
16
+ entity: EntityIdInfo | null;
17
+ /** Open the modal for a given entity. */
18
+ show: (entity: EntityIdInfo) => void;
19
+ hide: () => void;
20
+ setOpen: (open: boolean) => void;
21
+ }
22
+ /**
23
+ * State manager for the reusable {@link EntityIdModal}. Use it once per page,
24
+ * then call `show({ id, name, type, details })` from a "Get ID" menu item.
25
+ */
26
+ export declare function useEntityIdModal(): EntityIdModalControl;
27
+ /**
28
+ * Reusable modal that shows an entity's identifier (and optional detail fields)
29
+ * with click-to-copy. Pair with {@link useEntityIdModal} and a "Get ID" action
30
+ * in the entity's dropdown so raw UUIDs never have to be rendered inline.
31
+ */
32
+ export declare function EntityIdModal({ control }: {
33
+ control: EntityIdModalControl;
34
+ }): import("react/jsx-runtime").JSX.Element;
35
+ //# sourceMappingURL=entity-id-modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-id-modal.d.ts","sourceRoot":"","sources":["../../src/ui/entity-id-modal.tsx"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,kFAAkF;IAClF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,yCAAyC;IACzC,IAAI,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACrC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,oBAAoB,CASvD;AA4BD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,oBAAoB,CAAA;CAAE,2CA+B3E"}
@@ -0,0 +1,88 @@
1
+ import { Dialog as e, DialogContent as t, DialogDescription as n, DialogHeader as r, DialogTitle as i } from "./dialog.js";
2
+ import { useCopyToClipboard as a } from "../shared/hooks/useCopyToClipboard.js";
3
+ import { useCallback as o, useState as s } from "react";
4
+ import { Check as c, Copy as l, Fingerprint as u } from "lucide-react";
5
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
6
+ //#region src/ui/entity-id-modal.tsx
7
+ function p() {
8
+ let [e, t] = s(!1), [n, r] = s(null);
9
+ return {
10
+ open: e,
11
+ entity: n,
12
+ show: o((e) => {
13
+ r(e), t(!0);
14
+ }, []),
15
+ hide: o(() => t(!1), []),
16
+ setOpen: t
17
+ };
18
+ }
19
+ function m({ label: e, value: t }) {
20
+ let { copied: n, copy: r } = a();
21
+ return /* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("p", {
22
+ className: "mb-1 text-xs font-medium text-text-secondary",
23
+ children: e
24
+ }), /* @__PURE__ */ f("button", {
25
+ type: "button",
26
+ onClick: () => void r(t),
27
+ title: "Click to copy",
28
+ className: "group flex w-full items-center gap-2 rounded-input border border-border-default bg-bg-sunken px-3 py-2 text-left transition-colors hover:bg-bg-elevated hover:border-border-strong focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-focus-ring)]",
29
+ children: [
30
+ /* @__PURE__ */ d("code", {
31
+ className: "min-w-0 flex-1 truncate font-mono text-sm text-text-primary",
32
+ children: t
33
+ }),
34
+ n ? /* @__PURE__ */ d(c, {
35
+ className: "size-4 shrink-0 text-status-success-text",
36
+ "aria-hidden": "true"
37
+ }) : /* @__PURE__ */ d(l, {
38
+ className: "size-4 shrink-0 text-text-muted group-hover:text-text-secondary",
39
+ "aria-hidden": "true"
40
+ }),
41
+ /* @__PURE__ */ d("span", {
42
+ className: "sr-only",
43
+ children: n ? "Copied" : "Copy " + e
44
+ })
45
+ ]
46
+ })] });
47
+ }
48
+ function h({ control: a }) {
49
+ let { open: o, entity: s, setOpen: c } = a, l = s?.type ? `${s.type} ID` : "Identifier";
50
+ return /* @__PURE__ */ d(e, {
51
+ open: o,
52
+ onOpenChange: c,
53
+ children: /* @__PURE__ */ f(t, {
54
+ className: "sm:max-w-md",
55
+ children: [/* @__PURE__ */ f(r, { children: [/* @__PURE__ */ f(i, {
56
+ className: "flex items-center gap-2",
57
+ children: [/* @__PURE__ */ d("span", {
58
+ className: "flex size-8 items-center justify-center rounded-lg bg-[var(--color-accent-soft)]",
59
+ children: /* @__PURE__ */ d(u, {
60
+ className: "size-4 text-action-primary-bg",
61
+ "aria-hidden": "true"
62
+ })
63
+ }), l]
64
+ }), s?.name && /* @__PURE__ */ d(n, {
65
+ className: "truncate",
66
+ children: s.name
67
+ })] }), s && /* @__PURE__ */ f("div", {
68
+ className: "space-y-4",
69
+ children: [
70
+ /* @__PURE__ */ d(m, {
71
+ label: "ID",
72
+ value: s.id
73
+ }),
74
+ s.details?.map((e) => /* @__PURE__ */ d(m, {
75
+ label: e.label,
76
+ value: e.value
77
+ }, e.label)),
78
+ /* @__PURE__ */ d("p", {
79
+ className: "text-xs text-text-muted",
80
+ children: "Click a value to copy it to your clipboard."
81
+ })
82
+ ]
83
+ })]
84
+ })
85
+ });
86
+ }
87
+ //#endregion
88
+ export { h as EntityIdModal, p as useEntityIdModal };
@@ -1,8 +1,10 @@
1
1
  export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from './accordion';
2
+ export { EntityIdModal, useEntityIdModal, type EntityIdInfo, type EntityIdModalControl, } from './entity-id-modal';
2
3
  export { OptionalFields, type OptionalFieldsProps } from './optional-fields';
3
4
  export { BottomSheet, BottomSheetClose, BottomSheetContent, BottomSheetDescription, BottomSheetFooter, BottomSheetHeader, BottomSheetTitle, BottomSheetTrigger, type BottomSheetContentProps, type BottomSheetProps, } from './bottom-sheet';
4
5
  export { ResponsiveDialog, ResponsiveDialogClose, ResponsiveDialogContent, ResponsiveDialogDescription, ResponsiveDialogFooter, ResponsiveDialogHeader, ResponsiveDialogTitle, ResponsiveDialogTrigger, type ResponsiveDialogContentProps, } from './responsive-dialog';
5
6
  export { ResponsiveTable, type ResponsiveTableColumn, type ResponsiveTableColumnPriority, type ResponsiveTableProps, } from './responsive-table';
7
+ export { Pagination, type PaginationProps } from './pagination';
6
8
  export { Stepper, type StepperProps, type StepperStep } from './stepper';
7
9
  export { ResponsiveStack, type ResponsiveStackProps } from './responsive-stack';
8
10
  export { EmptyState, type EmptyStateProps } from './empty-state';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG3F,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,KAAK,YAAY,EACjB,KAAK,oBAAoB,GAC1B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAGzE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAGjE,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAGhE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAGpE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAG/F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGnF,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EACL,MAAM,EACN,aAAa,EACb,WAAW,EACX,UAAU,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,GACZ,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,OAAO,EACL,KAAK,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,GACT,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAGlE,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGrF,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,GAC1B,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface PaginationProps {
2
+ page: number;
3
+ pageSize: number;
4
+ totalItems?: number | null;
5
+ totalPages?: number | null;
6
+ hasNextPage?: boolean;
7
+ hasPreviousPage?: boolean;
8
+ loading?: boolean;
9
+ pageSizeOptions?: readonly number[];
10
+ onPageChange: (page: number) => void;
11
+ onPageSizeChange?: (pageSize: number) => void;
12
+ className?: string;
13
+ }
14
+ export declare function Pagination({ page, pageSize, totalItems, totalPages, hasNextPage, hasPreviousPage, loading, pageSizeOptions, onPageChange, onPageSizeChange, className, }: PaginationProps): import("react/jsx-runtime").JSX.Element;
15
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../src/ui/pagination.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,eAAe,EACf,OAAe,EACf,eAAmC,EACnC,YAAY,EACZ,gBAAgB,EAChB,SAAS,GACV,EAAE,eAAe,2CAoFjB"}
@@ -0,0 +1,86 @@
1
+ import { cn as e } from "../lib/utils.js";
2
+ import { Button as t } from "./button.js";
3
+ import { Select as n, SelectContent as r, SelectItem as i, SelectTrigger as a, SelectValue as o } from "./select.js";
4
+ import { ChevronLeft as s, ChevronRight as c } from "lucide-react";
5
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
6
+ //#region src/ui/pagination.tsx
7
+ function d(e, t, n) {
8
+ return typeof e == "number" && Number.isFinite(e) ? Math.max(1, Math.floor(e)) : typeof t == "number" && Number.isFinite(t) && n > 0 ? Math.max(1, Math.ceil(t / n)) : null;
9
+ }
10
+ function f(e, t) {
11
+ if (t == null) return [e];
12
+ let n = Math.max(1, Math.min(e - 2, t - 4)), r = Math.min(t, n + 4);
13
+ return Array.from({ length: r - n + 1 }, (e, t) => n + t);
14
+ }
15
+ function p({ page: p, pageSize: m, totalItems: h, totalPages: g, hasNextPage: _, hasPreviousPage: v, loading: y = !1, pageSizeOptions: b = [
16
+ 10,
17
+ 25,
18
+ 50,
19
+ 100
20
+ ], onPageChange: x, onPageSizeChange: S, className: C }) {
21
+ let w = Math.max(1, Math.floor(p)), T = d(g, h, m), E = !y && (v ?? w > 1), D = !y && (_ ?? (T == null ? !1 : w < T)), O = f(w, T), k = typeof h == "number" && h > 0 ? (w - 1) * m + 1 : null, A = typeof h == "number" && h > 0 && k != null ? Math.min(h, k + m - 1) : null;
22
+ return /* @__PURE__ */ u("nav", {
23
+ "aria-label": "Pagination",
24
+ className: e("flex flex-col gap-3 rounded-card border border-border-subtle bg-bg-surface p-3 sm:flex-row sm:items-center sm:justify-between", C),
25
+ children: [/* @__PURE__ */ l("div", {
26
+ className: "text-sm text-text-secondary",
27
+ "aria-live": "polite",
28
+ children: k != null && A != null && h != null ? /* @__PURE__ */ u("span", { children: [
29
+ "Showing ",
30
+ k.toLocaleString(),
31
+ "-",
32
+ A.toLocaleString(),
33
+ " of ",
34
+ h.toLocaleString()
35
+ ] }) : /* @__PURE__ */ u("span", { children: ["Page ", w.toLocaleString()] })
36
+ }), /* @__PURE__ */ u("div", {
37
+ className: "flex flex-wrap items-center gap-2",
38
+ children: [
39
+ S ? /* @__PURE__ */ u(n, {
40
+ value: String(m),
41
+ onValueChange: (e) => S(Number(e)),
42
+ disabled: y,
43
+ children: [/* @__PURE__ */ l(a, {
44
+ className: "h-8 w-[6.5rem] rounded-button",
45
+ "aria-label": "Rows per page",
46
+ children: /* @__PURE__ */ l(o, {})
47
+ }), /* @__PURE__ */ l(r, { children: b.map((e) => /* @__PURE__ */ u(i, {
48
+ value: String(e),
49
+ children: [e, " / page"]
50
+ }, e)) })]
51
+ }) : null,
52
+ /* @__PURE__ */ u(t, {
53
+ type: "button",
54
+ variant: "outline",
55
+ size: "sm",
56
+ onClick: () => x(Math.max(1, w - 1)),
57
+ disabled: !E,
58
+ children: [/* @__PURE__ */ l(s, { className: "size-4" }), "Previous"]
59
+ }),
60
+ /* @__PURE__ */ l("div", {
61
+ className: "flex items-center gap-1",
62
+ "aria-label": "Pages",
63
+ children: O.map((e) => /* @__PURE__ */ l(t, {
64
+ type: "button",
65
+ variant: e === w ? "default" : "outline",
66
+ size: "icon-sm",
67
+ "aria-current": e === w ? "page" : void 0,
68
+ onClick: () => x(e),
69
+ disabled: y || e === w,
70
+ children: e
71
+ }, e))
72
+ }),
73
+ /* @__PURE__ */ u(t, {
74
+ type: "button",
75
+ variant: "outline",
76
+ size: "sm",
77
+ onClick: () => x(w + 1),
78
+ disabled: !D,
79
+ children: ["Next", /* @__PURE__ */ l(c, { className: "size-4" })]
80
+ })
81
+ ]
82
+ })]
83
+ });
84
+ }
85
+ //#endregion
86
+ export { p as Pagination };