@provex/components 1.2.3

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.
@@ -0,0 +1,601 @@
1
+ import { BoxProps } from '@chakra-ui/react';
2
+ import { Hex } from 'viem';
3
+ import * as React$1 from 'react';
4
+ import React__default, { ReactNode, CSSProperties } from 'react';
5
+ import * as react_jsx_runtime from 'react/jsx-runtime';
6
+
7
+ /**
8
+ * @fileoverview Card container components.
9
+ *
10
+ * Provides styled card containers for content sections with:
11
+ * - Semantic token support for automatic light/dark mode
12
+ * - Optional horizontal-rule variant for edge-aligned content
13
+ * - No border radius for efficient horizontal space usage
14
+ */
15
+
16
+ /**
17
+ * Card component for wrapping content sections.
18
+ * Features:
19
+ * - No border radius for better horizontal space usage
20
+ * - Box shadow instead of border to avoid affecting scrolling behavior
21
+ * - Configurable padding and background
22
+ * - Uses Chakra semantic tokens for automatic theming
23
+ */
24
+ declare function Card(props: BoxProps): JSX.Element;
25
+ /**
26
+ * Card variant with only top and bottom borders.
27
+ * Useful for content that should align with full-width elements
28
+ * without side padding or margins.
29
+ *
30
+ * Features:
31
+ * - Only top and bottom borders (no side borders)
32
+ * - No side margin to align with container edges
33
+ * - Configurable padding and background
34
+ * - Uses Chakra semantic tokens for automatic theming
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * <CardHorizontalRule>
39
+ * <CurrencyList currencies={currencies} />
40
+ * </CardHorizontalRule>
41
+ * ```
42
+ */
43
+ declare function CardHorizontalRule(props: BoxProps): JSX.Element;
44
+
45
+ /**
46
+ * @fileoverview Currency flag icon component.
47
+ *
48
+ * Displays a country/region flag representing a fiat currency.
49
+ * Uses the currency's contractId (keccak256 hash) to look up flag data.
50
+ */
51
+
52
+ /**
53
+ * Display a fiat currency's flag icon in a circular frame.
54
+ *
55
+ * Looks up the currency by its contract ID (keccak256 hash of the ticker)
56
+ * and displays the associated country flag. Falls back to a "?" indicator
57
+ * for unknown currencies.
58
+ *
59
+ * @param currencyId - The currency contract ID (keccak256 hash of ticker like "USD")
60
+ * @param size - The size of the icon in pixels (default: 16)
61
+ * @param useZoom - Whether to apply the currency's zoom level for better framing (default: true)
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * // Display USD flag
66
+ * <CurrencyIcon currencyId="0x..." size={24} />
67
+ * ```
68
+ */
69
+ declare const CurrencyIcon: ({ currencyId, size, useZoom }: {
70
+ currencyId: Hex;
71
+ size?: number;
72
+ useZoom?: boolean;
73
+ }) => JSX.Element;
74
+
75
+ /**
76
+ * @fileoverview Deposit identifier display component.
77
+ *
78
+ * Displays a compact deposit identifier showing [chain icon][#id].
79
+ * Used throughout the UI to identify deposits uniquely across chains.
80
+ */
81
+
82
+ /**
83
+ * Props for DepositIdentifier component.
84
+ */
85
+ interface DepositIdentifierProps {
86
+ /** Chain icon element to display */
87
+ chainIcon: ReactNode;
88
+ /** @deprecated Version badge has been removed - this prop is ignored */
89
+ version?: "v2" | "v3";
90
+ /** The local deposit ID */
91
+ localId: bigint | number | string;
92
+ /** @deprecated Version badge has been removed - this prop is ignored */
93
+ versionBadgeColors?: {
94
+ bgV2: string;
95
+ bgV3: string;
96
+ text: string;
97
+ };
98
+ /** Size for each item in the stack (default: 20) */
99
+ itemSize?: number;
100
+ /** Gap between items in pixels (default: 2) */
101
+ gap?: number;
102
+ /** Text color for the ID (default: inherit) */
103
+ textColor?: string;
104
+ }
105
+ /**
106
+ * A compound identifier component that displays [chain][localId] in a compact stack.
107
+ * Used to uniquely identify deposits across chains.
108
+ *
109
+ * @example
110
+ * ```tsx
111
+ * <DepositIdentifier
112
+ * chainIcon={<ChainIcon chainId={1} size={20} />}
113
+ * localId={42}
114
+ * />
115
+ * ```
116
+ */
117
+ declare function DepositIdentifier({ chainIcon, localId, itemSize, gap, textColor, }: DepositIdentifierProps): JSX.Element;
118
+
119
+ /**
120
+ * @fileoverview Flag icon component with error handling.
121
+ *
122
+ * Displays a flag image in a circular frame with graceful fallback
123
+ * when the image fails to load. Creates a canvas-based placeholder
124
+ * showing the first 3 characters of the alt text.
125
+ */
126
+
127
+ /**
128
+ * Props for FlagIcon component.
129
+ */
130
+ interface FlagIconProps {
131
+ flag: string;
132
+ alt?: string;
133
+ size?: number;
134
+ className?: string;
135
+ borderColor?: string;
136
+ }
137
+ /**
138
+ * Display a flag icon with error handling fallback
139
+ * @param flag - URL to the flag image
140
+ * @param alt - Alt text for the image
141
+ * @param size - Size of the icon in pixels (default: 32)
142
+ * @param className - Additional CSS class names
143
+ * @param borderColor - Border color (default: #e5e7eb)
144
+ */
145
+ declare const FlagIcon: React__default.FC<FlagIconProps>;
146
+
147
+ /**
148
+ * @fileoverview Popover component for dropdown menus and tooltips.
149
+ *
150
+ * Provides a reusable popover with:
151
+ * - Automatic positioning to stay within viewport
152
+ * - Click-outside and Escape key handling
153
+ * - Header, section, and footer sub-components
154
+ * - Theme color customization
155
+ */
156
+
157
+ /**
158
+ * Colors required by Popover components.
159
+ * Pass these from your app's theme context.
160
+ */
161
+ interface PopoverColors {
162
+ bgCard: string;
163
+ border: string;
164
+ text: string;
165
+ textMuted: string;
166
+ }
167
+ interface PopoverProps {
168
+ /** Whether the popover is open */
169
+ isOpen: boolean;
170
+ /** Callback when popover should close */
171
+ onClose: () => void;
172
+ /** The trigger button */
173
+ trigger: ReactNode;
174
+ /** The popover content */
175
+ children: ReactNode;
176
+ /** Theme colors */
177
+ colors: PopoverColors;
178
+ /** Placement of popover relative to trigger */
179
+ placement?: "bottom-start" | "bottom-end" | "top-start" | "top-end";
180
+ /** Width of popover */
181
+ width?: number;
182
+ /** Min width of popover */
183
+ minWidth?: number;
184
+ /** When true, wrapper uses display:block and dropdown matches trigger width */
185
+ fullWidth?: boolean;
186
+ /** Gap in pixels between trigger and dropdown (default: 4) */
187
+ gap?: number;
188
+ }
189
+ /**
190
+ * Reusable popover component with positioning and click-outside handling.
191
+ * Uses fixed positioning to avoid clipping by overflow containers.
192
+ * @param isOpen - Whether the popover is open
193
+ * @param onClose - Callback when popover should close
194
+ * @param trigger - The trigger button element
195
+ * @param children - The popover content
196
+ * @param colors - Theme colors for styling
197
+ * @param placement - Placement relative to trigger (default: "bottom-start")
198
+ * @param width - Width of popover in pixels
199
+ * @param minWidth - Min width of popover in pixels (default: 200)
200
+ */
201
+ declare function Popover({ isOpen, onClose, trigger, children, colors, placement, width, minWidth, fullWidth, gap, }: PopoverProps): JSX.Element;
202
+ interface PopoverHeaderProps {
203
+ children: ReactNode;
204
+ colors: Pick<PopoverColors, "text">;
205
+ }
206
+ /**
207
+ * Popover header component with padding
208
+ * @param children - Header content
209
+ * @param colors - Theme colors for styling
210
+ */
211
+ declare function PopoverHeader({ children, colors }: PopoverHeaderProps): JSX.Element;
212
+ /**
213
+ * Popover section component for scrollable content.
214
+ * No padding so scrollbar hugs the edge.
215
+ * Items inside should have their own padding.
216
+ * @param children - Section content
217
+ */
218
+ declare function PopoverSection({ children }: {
219
+ children: ReactNode;
220
+ }): JSX.Element;
221
+ /**
222
+ * Popover footer component - no padding so buttons can hug edges
223
+ * @param children - Footer content
224
+ */
225
+ declare function PopoverFooter({ children }: {
226
+ children: ReactNode;
227
+ }): JSX.Element;
228
+
229
+ /**
230
+ * @fileoverview Single-select dropdown menu built on the Popover primitive.
231
+ *
232
+ * Unified menu component for all select-pattern dropdowns. Supports:
233
+ * - Default bordered trigger or custom trigger via renderTrigger
234
+ * - Per-option disabled state and icons
235
+ * - Consistent sizing: sm (32px) and md (40px) for both triggers and options
236
+ * - Fixed checkmark column (no layout shift on selection)
237
+ * - Keyboard navigation (Arrow keys, Enter, Escape)
238
+ * - ScrollContainer for consistent scrollbar styling
239
+ */
240
+
241
+ interface MenuSelectOption<T extends string = string> {
242
+ value: T;
243
+ label: string;
244
+ icon?: ReactNode;
245
+ isDisabled?: boolean;
246
+ }
247
+ interface MenuSelectColors extends PopoverColors {
248
+ bg: string;
249
+ }
250
+ /** Trigger render prop args */
251
+ interface MenuSelectTriggerProps {
252
+ /** Currently selected option (undefined if no selection) */
253
+ selected: {
254
+ value: string;
255
+ label: string;
256
+ icon?: ReactNode;
257
+ } | undefined;
258
+ /** Whether the dropdown is open */
259
+ isOpen: boolean;
260
+ /** Whether the control is disabled */
261
+ isDisabled: boolean;
262
+ }
263
+ interface MenuSelectProps<T extends string = string> {
264
+ /** Available options */
265
+ options: MenuSelectOption<T>[];
266
+ /** Currently selected value (empty string for no selection) */
267
+ value: T | "";
268
+ /** Callback when a new value is selected */
269
+ onChange: (value: T) => void;
270
+ /** Placeholder text when no value is selected */
271
+ placeholder?: string;
272
+ /** Whether the control is disabled */
273
+ isDisabled?: boolean;
274
+ /** Theme colors */
275
+ colors: MenuSelectColors;
276
+ /** Size variant — controls trigger and option heights uniformly */
277
+ size?: "sm" | "md";
278
+ /** Minimum width in pixels */
279
+ minWidth?: number;
280
+ /** Maximum dropdown height in pixels (default: 240) */
281
+ maxDropdownHeight?: number;
282
+ /** Dropdown placement relative to trigger (default: "bottom-start") */
283
+ placement?: "bottom-start" | "bottom-end" | "top-start" | "top-end";
284
+ /**
285
+ * Custom trigger render prop. When provided, replaces the default bordered
286
+ * trigger button. The rendered element receives click/keyboard handlers
287
+ * automatically via wrapper — just return the visual element.
288
+ */
289
+ renderTrigger?: (props: MenuSelectTriggerProps) => ReactNode;
290
+ }
291
+ declare function MenuSelect<T extends string = string>({ options, value, onChange, placeholder, isDisabled, colors, size, minWidth, maxDropdownHeight, placement, renderTrigger, }: MenuSelectProps<T>): JSX.Element;
292
+
293
+ /**
294
+ * @fileoverview Multi-select filter component with icon stack display.
295
+ *
296
+ * A reusable filter pattern for selecting multiple items (currencies, payment methods, etc.)
297
+ * with a compact button showing selected items as an overlapping icon stack, and a
298
+ * popover dropdown for making selections.
299
+ */
300
+
301
+ /**
302
+ * Colors required by MultiSelectFilter component.
303
+ * Pass these from your app's theme context.
304
+ */
305
+ interface MultiSelectFilterColors extends PopoverColors {
306
+ bg: string;
307
+ }
308
+ /**
309
+ * Item with usage count for ordering
310
+ */
311
+ interface ItemStat<T> {
312
+ item: T;
313
+ count: number;
314
+ }
315
+ /**
316
+ * Props for MultiSelectFilter component
317
+ */
318
+ interface MultiSelectFilterProps<T extends string> {
319
+ /** All available item IDs */
320
+ allItems: Set<T>;
321
+ /** Currently selected item IDs */
322
+ selectedItems: Set<T>;
323
+ /** Callback when selection changes */
324
+ onSelectionChange: (items: Set<T>) => void;
325
+ /** Item usage stats for ordering (most used first) - used as fallback if getVolumeRank not provided */
326
+ itemStats: ItemStat<T>[];
327
+ /** Render function for item icon in the button's OverlappingStack */
328
+ renderIcon: (item: T) => ReactNode;
329
+ /** Render function for item icon in the dropdown list (can be smaller/different) */
330
+ renderListIcon?: (item: T) => ReactNode;
331
+ /** Get display label for an item */
332
+ getLabel: (item: T) => string;
333
+ /** Title shown in popover header */
334
+ title: string;
335
+ /** Theme colors */
336
+ colors: MultiSelectFilterColors;
337
+ /** Placeholder text when no items available */
338
+ placeholder?: string;
339
+ /** Button min/max width */
340
+ buttonWidth?: number;
341
+ /** Icon size in OverlappingStack */
342
+ iconSize?: number;
343
+ /** Max icons to show in button */
344
+ iconLimit?: number;
345
+ /** Overlap amount for icons */
346
+ iconOverlap?: number;
347
+ /** Whether rightmost icons overlap leftmost */
348
+ reverseZIndex?: boolean;
349
+ /**
350
+ * Optional function to get volume rank for an item (lower = more volume).
351
+ * If provided, items are sorted by volume rank first, then by stats count.
352
+ * This enables sorting by monthly usage data from MonthlyStatsContext.
353
+ */
354
+ getVolumeRank?: (item: T) => number;
355
+ }
356
+ /**
357
+ * Reusable multi-select filter component with icon stack button and popover.
358
+ * Used for currencies, payment methods, and similar filter patterns.
359
+ *
360
+ * @param allItems - Set of all available item IDs
361
+ * @param selectedItems - Currently selected item IDs
362
+ * @param onSelectionChange - Callback when selection changes
363
+ * @param itemStats - Item usage stats for ordering
364
+ * @param renderIcon - Render function for item icon in button
365
+ * @param renderListIcon - Render function for item icon in list (defaults to renderIcon)
366
+ * @param getLabel - Get display label for an item
367
+ * @param title - Title shown in popover header
368
+ * @param colors - Theme colors for styling
369
+ * @param placeholder - Placeholder when no items (default: title)
370
+ * @param buttonWidth - Button width (default: 112)
371
+ * @param iconSize - Icon size in stack (default: 24)
372
+ * @param iconLimit - Max icons in button (default: 3)
373
+ * @param iconOverlap - Overlap amount (default: 8)
374
+ * @param reverseZIndex - Rightmost icons overlap leftmost (default: true)
375
+ * @param getVolumeRank - Optional function to get volume rank for sorting by monthly data
376
+ */
377
+ declare function MultiSelectFilter<T extends string>({ allItems, selectedItems, onSelectionChange, itemStats, renderIcon, renderListIcon, getLabel, title, colors, placeholder: _placeholder, buttonWidth, iconSize, iconLimit, iconOverlap, reverseZIndex, getVolumeRank, }: MultiSelectFilterProps<T>): JSX.Element;
378
+
379
+ /**
380
+ * Props for OverlappingStack component.
381
+ */
382
+ interface OverlappingStackProps {
383
+ /** Array of items to display */
384
+ items: ReactNode[];
385
+ /** Maximum items to show before "+X" */
386
+ limit?: number;
387
+ /**
388
+ * Overlap/spacing distance in pixels (default: 8)
389
+ * - Positive values create overlap (e.g., 8 = items overlap by 8px)
390
+ * - Zero creates no spacing (items are side-by-side)
391
+ * - Negative values create spacing (e.g., -2 = 2px gap between items)
392
+ */
393
+ overlap?: number;
394
+ /** Size of each item (for consistent sizing) */
395
+ itemSize?: number;
396
+ /**
397
+ * If true, rightmost items will overlap leftmost items (default: false)
398
+ * By default, leftmost items overlap rightmost items
399
+ */
400
+ reverseZIndex?: boolean;
401
+ }
402
+ /**
403
+ * Component to display items in an overlapping stack with overflow count.
404
+ * Useful for showing chain icons, version badges, and IDs in a compact space.
405
+ *
406
+ * @param items - Array of ReactNode items to display
407
+ * @param limit - Maximum items to show (default: 3)
408
+ * @param overlap - Overlap/spacing distance in pixels (default: 8). Use negative values for spacing.
409
+ * @param itemSize - Size of each item in pixels (default: 24)
410
+ * @param reverseZIndex - If true, rightmost items overlap leftmost (default: false)
411
+ */
412
+ declare function OverlappingStack({ items, limit, overlap, itemSize, reverseZIndex, }: OverlappingStackProps): react_jsx_runtime.JSX.Element;
413
+
414
+ /**
415
+ * @fileoverview Combined payment method and currency icon component.
416
+ *
417
+ * Displays a composite icon with the currency flag as background and
418
+ * the payment method icon as a small badge overlay. Used in tables
419
+ * and lists to show both the payment method and currency in a single
420
+ * compact visual element.
421
+ */
422
+
423
+ /**
424
+ * Colors required by PaymentCurrencyCombo component.
425
+ * Pass these from your app's theme context.
426
+ */
427
+ interface PaymentCurrencyComboColors {
428
+ bg: string;
429
+ }
430
+ /**
431
+ * Display a combined payment method and currency icon
432
+ * Shows currency flag as background with payment provider badge overlay
433
+ * @param paymentMethodIcon - React node for the payment method icon
434
+ * @param currencyId - The currency contract ID (keccak256 hash of ticker)
435
+ * @param size - The height of the container in pixels (default: 20)
436
+ * @param colors - Theme colors
437
+ */
438
+ declare const PaymentCurrencyCombo: ({ paymentMethodIcon, currencyId, size, colors, }: {
439
+ paymentMethodIcon: React__default.ReactNode;
440
+ currencyId: Hex;
441
+ size?: number;
442
+ colors: PaymentCurrencyComboColors;
443
+ }) => JSX.Element;
444
+
445
+ /**
446
+ * @fileoverview Payment method icon component.
447
+ *
448
+ * Displays payment provider icons (Venmo, Zelle, etc.) using Iconify.
449
+ * This is a pure rendering component - the host app determines which
450
+ * icon, color, and properties to display.
451
+ */
452
+ /**
453
+ * Props for PaymentMethodIcon component.
454
+ */
455
+ interface PaymentMethodIconProps {
456
+ /** Iconify icon identifier (e.g., "simple-icons:zelle") */
457
+ icon: string;
458
+ /** Icon color */
459
+ color?: string;
460
+ /** Background color for icons that need contrast */
461
+ backgroundColor?: string;
462
+ /** Size of the icon in pixels */
463
+ size?: number;
464
+ /** Whether this is an unknown/unrecognized payment method */
465
+ isUnknown?: boolean;
466
+ /** Tooltip text */
467
+ tooltip?: string;
468
+ }
469
+ /**
470
+ * Display a payment method icon using Iconify.
471
+ * This is a pure rendering component - use your app's payment method
472
+ * resolution logic to determine the icon, color, and other properties.
473
+ *
474
+ * @param icon - Iconify icon identifier (e.g., "simple-icons:zelle", "mdi:credit-card")
475
+ * @param color - Icon color (default: "#6b7280" for gray)
476
+ * @param backgroundColor - Optional background color for icons that need contrast (e.g., Revolut white on blue)
477
+ * @param size - Size of the icon in pixels (default: 16)
478
+ * @param isUnknown - Whether this is an unknown payment method (shows warning indicator)
479
+ * @param tooltip - Tooltip text on hover
480
+ */
481
+ declare function PaymentMethodIcon({ icon, color, backgroundColor, size, isUnknown, tooltip, }: PaymentMethodIconProps): JSX.Element;
482
+ /**
483
+ * Default icon for unknown payment methods
484
+ */
485
+ declare const DEFAULT_PAYMENT_ICON = "mdi:credit-card";
486
+ /**
487
+ * Default color for unknown payment methods
488
+ */
489
+ declare const DEFAULT_PAYMENT_COLOR = "#6b7280";
490
+
491
+ type ScrollDirection = "horizontal" | "vertical" | "both";
492
+ declare function injectScrollbarStyles(direction: string): void;
493
+ /** Returns the CSS class name for a given scroll direction. */
494
+ declare function scrollbarClassName(direction: string): string;
495
+ interface ScrollContainerProps {
496
+ children: ReactNode;
497
+ /** Scroll direction (default: "both") */
498
+ direction?: ScrollDirection;
499
+ /** Container height */
500
+ height?: number | string;
501
+ /** Maximum container height */
502
+ maxHeight?: number | string;
503
+ /** Container width */
504
+ width?: number | string;
505
+ /** Use negative margin to extend scrollbar to parent edges */
506
+ extendToEdges?: boolean;
507
+ /** Padding value when extendToEdges is true (default: 16) */
508
+ edgePadding?: number;
509
+ /** Additional CSS class name */
510
+ className?: string;
511
+ /** Additional inline styles */
512
+ style?: CSSProperties;
513
+ /** Scroll event handler */
514
+ onScroll?: (e: React.UIEvent<HTMLDivElement>) => void;
515
+ /** Controlled scroll position (0 to 1) for synchronized scrolling */
516
+ scrollPosition?: number;
517
+ /** Callback when scroll position changes (0 to 1) */
518
+ onScrollPositionChange?: (position: number) => void;
519
+ /** Scroll to end on initial mount */
520
+ scrollToEnd?: boolean;
521
+ /** Scrollbar position (default: "right") */
522
+ scrollbarPosition?: "left" | "right";
523
+ }
524
+ declare const ScrollContainer: React$1.ForwardRefExoticComponent<ScrollContainerProps & React$1.RefAttributes<HTMLDivElement>>;
525
+
526
+ /**
527
+ * @fileoverview Tooltip component for hover hints.
528
+ *
529
+ * Simple hover tooltip with automatic top/bottom placement.
530
+ * Uses inline positioning — no portal or z-index layering required.
531
+ */
532
+
533
+ interface TooltipProps {
534
+ /** Text shown in the tooltip */
535
+ label: string;
536
+ children: ReactNode;
537
+ /** Suppress the tooltip entirely */
538
+ isDisabled?: boolean;
539
+ /** Preferred placement relative to the trigger (default: "top") */
540
+ placement?: "top" | "bottom";
541
+ /**
542
+ * CSS display mode for the wrapper span.
543
+ * - "inline-flex" (default): wraps tightly around inline children
544
+ * - "flex" or "block": takes full width — use for block-level children
545
+ * - "contents": wrapper is invisible to layout — children render as if unwrapped
546
+ */
547
+ display?: CSSProperties["display"];
548
+ }
549
+ /**
550
+ * Wraps any element and shows a tooltip on hover.
551
+ *
552
+ * @example
553
+ * ```tsx
554
+ * <Tooltip label="Loaded from: https://rpc.pulsechain.com">
555
+ * <Badge>RPC</Badge>
556
+ * </Tooltip>
557
+ * ```
558
+ */
559
+ declare function Tooltip({ label, children, isDisabled, placement, display }: TooltipProps): JSX.Element;
560
+
561
+ /**
562
+ * @fileoverview Version badge component.
563
+ *
564
+ * Displays a small badge indicating the protocol version (v2 or v3).
565
+ * Used to visually distinguish deposits and transactions from different
566
+ * protocol versions.
567
+ */
568
+
569
+ /**
570
+ * Color props for VersionBadge component.
571
+ * Pass these from your app's theme context.
572
+ */
573
+ interface VersionBadgeColors {
574
+ /** Background color for v2 version */
575
+ bgV2: string;
576
+ /** Background color for v3 version */
577
+ bgV3: string;
578
+ /** Text color */
579
+ text: string;
580
+ }
581
+ type Version = "v2" | "v3";
582
+ /**
583
+ * VersionBadge displays the protocol version (v2 or v3) as a small badge.
584
+ * Use this to indicate which version of the zkp2p protocol a deposit or
585
+ * transaction belongs to.
586
+ *
587
+ * @example
588
+ * ```tsx
589
+ * <VersionBadge version="v3" colors={themeColors} />
590
+ * ```
591
+ */
592
+ declare function VersionBadge(props: {
593
+ /** The protocol version to display */
594
+ version: Version;
595
+ /** Color configuration for the badge */
596
+ colors: VersionBadgeColors;
597
+ /** Optional additional styles */
598
+ style?: React__default.CSSProperties;
599
+ }): JSX.Element;
600
+
601
+ export { Card, CardHorizontalRule, CurrencyIcon, DEFAULT_PAYMENT_COLOR, DEFAULT_PAYMENT_ICON, DepositIdentifier, type DepositIdentifierProps, FlagIcon, type ItemStat, MenuSelect, type MenuSelectColors, type MenuSelectOption, type MenuSelectProps, type MenuSelectTriggerProps, MultiSelectFilter, type MultiSelectFilterColors, type MultiSelectFilterProps, OverlappingStack, type OverlappingStackProps, PaymentCurrencyCombo, type PaymentCurrencyComboColors, PaymentMethodIcon, type PaymentMethodIconProps, Popover, type PopoverColors, PopoverFooter, PopoverHeader, type PopoverHeaderProps, type PopoverProps, PopoverSection, ScrollContainer, type ScrollContainerProps, Tooltip, type TooltipProps, type Version, VersionBadge, type VersionBadgeColors, injectScrollbarStyles, scrollbarClassName };