@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/hooks/index.d.ts +1 -0
- package/dist/shared/hooks/index.d.ts.map +1 -1
- package/dist/shared/hooks/useExclusiveMenu.d.ts +2 -0
- package/dist/shared/hooks/useExclusiveMenu.d.ts.map +1 -0
- package/dist/shared/hooks/useExclusiveMenu.js +19 -0
- package/dist/shared/hooks/usePagination.d.ts +20 -0
- package/dist/shared/hooks/usePagination.d.ts.map +1 -0
- package/dist/shared/hooks/usePagination.js +29 -0
- package/dist/shared/motion/variants.d.ts +1 -8
- package/dist/shared/motion/variants.d.ts.map +1 -1
- package/dist/shared/motion/variants.js +2 -9
- package/dist/shared/pages/NotFoundPage.d.ts +23 -0
- package/dist/shared/pages/NotFoundPage.d.ts.map +1 -0
- package/dist/shared/pages/NotFoundPage.js +68 -0
- package/dist/shared/pages/index.d.ts +2 -0
- package/dist/shared/pages/index.d.ts.map +1 -1
- package/dist/shared/tours/TourTrigger.d.ts.map +1 -1
- package/dist/shared/tours/TourTrigger.js +95 -92
- package/dist/shared-hooks.js +32 -31
- package/dist/shared-pages.js +2 -1
- package/dist/shared.js +108 -107
- package/dist/ui/entity-id-modal.d.ts +35 -0
- package/dist/ui/entity-id-modal.d.ts.map +1 -0
- package/dist/ui/entity-id-modal.js +88 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/pagination.d.ts +15 -0
- package/dist/ui/pagination.d.ts.map +1 -0
- package/dist/ui/pagination.js +86 -0
- package/dist/ui/responsive-dialog.js +13 -13
- package/dist/ui.js +34 -32
- package/package.json +1 -1
package/dist/shared.js
CHANGED
|
@@ -1,118 +1,119 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
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
|
|
50
|
-
import { detectPlatform as
|
|
51
|
-
import { KeyboardHelpDialogWrapper as
|
|
52
|
-
import { QuotaMeter as
|
|
53
|
-
import { UPGRADE_PROMPT_EVENT as
|
|
54
|
-
import { UpgradeInlineBanner as
|
|
55
|
-
import { useVoiceInput as
|
|
56
|
-
import { ASSISTANT_WIDGET_TOGGLE_EVENT as
|
|
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
|
|
59
|
-
import { BroadcastChannelSink as
|
|
60
|
-
import { BackendAuditSink as
|
|
61
|
-
import { RybbitSink as
|
|
62
|
-
import { OtelBrowserSink as
|
|
63
|
-
import { EventBusProvider as
|
|
64
|
-
import { useDebounce as
|
|
65
|
-
import { useThrottle as
|
|
66
|
-
import { BREAKPOINTS as
|
|
67
|
-
import { useOnClickOutside as
|
|
68
|
-
import { useKeyPress as
|
|
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 {
|
|
75
|
-
import {
|
|
76
|
-
import {
|
|
77
|
-
import {
|
|
78
|
-
import {
|
|
79
|
-
import {
|
|
80
|
-
import {
|
|
81
|
-
import {
|
|
82
|
-
import {
|
|
83
|
-
import {
|
|
84
|
-
import {
|
|
85
|
-
import {
|
|
86
|
-
import {
|
|
87
|
-
import {
|
|
88
|
-
import {
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
91
|
-
import {
|
|
92
|
-
import {
|
|
93
|
-
import {
|
|
94
|
-
import {
|
|
95
|
-
import {
|
|
96
|
-
import {
|
|
97
|
-
import {
|
|
98
|
-
import {
|
|
99
|
-
import {
|
|
100
|
-
import {
|
|
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
|
|
103
|
-
import { getPlatform as
|
|
104
|
-
import { nativeConfirm as
|
|
105
|
-
import { SafeAreaView as
|
|
106
|
-
import { useNativePlatform as
|
|
107
|
-
import { useSafeArea as
|
|
108
|
-
import { useNativeKeyboard as
|
|
109
|
-
import { useAppState as
|
|
110
|
-
import { useDeviceInfo as
|
|
111
|
-
import { useHaptics as
|
|
112
|
-
import { useStatusBar as
|
|
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
|
|
117
|
+
var wi = "1.0.0";
|
|
117
118
|
//#endregion
|
|
118
|
-
export {
|
|
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 };
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/ui/index.d.ts.map
CHANGED
|
@@ -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":"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"}
|
|
@@ -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 };
|