@agg-market/ui 11.0.0 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/README.md +1 -0
  2. package/dist/{chunk-HMUMJUIL.mjs → chunk-3ST2TN6E.mjs} +613 -312
  3. package/dist/{chunk-IUJXJEDQ.mjs → chunk-B56YA2YQ.mjs} +872 -650
  4. package/dist/chunk-CHVTY3OB.mjs +3140 -0
  5. package/dist/{chunk-2KGE5AJQ.mjs → chunk-GQ4P3AHJ.mjs} +66 -131
  6. package/dist/{chunk-UONHGMFI.mjs → chunk-T4WFRR6D.mjs} +23 -45
  7. package/dist/events.js +1013 -924
  8. package/dist/events.mjs +2 -2
  9. package/dist/index.js +3653 -2943
  10. package/dist/index.mjs +14 -7
  11. package/dist/modals.js +2578 -2190
  12. package/dist/modals.mjs +2 -2
  13. package/dist/pages.js +2192 -1763
  14. package/dist/pages.mjs +4 -4
  15. package/dist/primitives.js +860 -628
  16. package/dist/primitives.mjs +9 -1
  17. package/dist/styles.css +2 -2
  18. package/dist/tailwind.css +2 -2
  19. package/dist/trading.js +823 -673
  20. package/dist/trading.mjs +2 -2
  21. package/dist/types/deposit/deposit-modal.constants.d.mts +0 -4
  22. package/dist/types/deposit/deposit-modal.constants.d.ts +0 -4
  23. package/dist/types/deposit/deposit-modal.types.d.mts +110 -14
  24. package/dist/types/deposit/deposit-modal.types.d.ts +110 -14
  25. package/dist/types/deposit/index.d.mts +1 -1
  26. package/dist/types/deposit/index.d.ts +1 -1
  27. package/dist/types/deposit/steps/card-deposit.d.mts +13 -3
  28. package/dist/types/deposit/steps/card-deposit.d.ts +13 -3
  29. package/dist/types/deposit/steps/card-provider.d.mts +10 -0
  30. package/dist/types/deposit/steps/card-provider.d.ts +10 -0
  31. package/dist/types/deposit/steps/card-purchase-success.d.mts +7 -0
  32. package/dist/types/deposit/steps/card-purchase-success.d.ts +7 -0
  33. package/dist/types/deposit/steps/crypto-transfer.d.mts +13 -3
  34. package/dist/types/deposit/steps/crypto-transfer.d.ts +13 -3
  35. package/dist/types/deposit/steps/deposit-method.d.mts +6 -4
  36. package/dist/types/deposit/steps/deposit-method.d.ts +6 -4
  37. package/dist/types/deposit/steps/wallet-form.d.mts +20 -0
  38. package/dist/types/deposit/steps/wallet-form.d.ts +20 -0
  39. package/dist/types/deposit/steps/wallet-processing.d.mts +6 -0
  40. package/dist/types/deposit/steps/wallet-processing.d.ts +6 -0
  41. package/dist/types/deposit/steps/wallet-success.d.mts +7 -0
  42. package/dist/types/deposit/steps/wallet-success.d.ts +7 -0
  43. package/dist/types/pages/home/index.d.mts +1 -1
  44. package/dist/types/pages/home/index.d.ts +1 -1
  45. package/dist/types/pages/user-profile/components/available-balance-card.d.mts +17 -0
  46. package/dist/types/pages/user-profile/components/available-balance-card.d.ts +17 -0
  47. package/dist/types/pages/user-profile/components/balance-display.d.mts +3 -5
  48. package/dist/types/pages/user-profile/components/balance-display.d.ts +3 -5
  49. package/dist/types/pages/user-profile/components/positions-activity.d.mts +11 -1
  50. package/dist/types/pages/user-profile/components/positions-activity.d.ts +11 -1
  51. package/dist/types/pages/user-profile/components/positions-value-card.d.mts +10 -0
  52. package/dist/types/pages/user-profile/components/positions-value-card.d.ts +10 -0
  53. package/dist/types/pages/user-profile/components/user-info-card.d.mts +3 -1
  54. package/dist/types/pages/user-profile/components/user-info-card.d.ts +3 -1
  55. package/dist/types/pages/user-profile/index.d.mts +2 -2
  56. package/dist/types/pages/user-profile/index.d.ts +2 -2
  57. package/dist/types/pages/user-profile/user-profile.constants.d.mts +1 -2
  58. package/dist/types/pages/user-profile/user-profile.constants.d.ts +1 -2
  59. package/dist/types/pages/user-profile/user-profile.types.d.mts +29 -16
  60. package/dist/types/pages/user-profile/user-profile.types.d.ts +29 -16
  61. package/dist/types/primitives/icon/index.d.mts +4 -1
  62. package/dist/types/primitives/icon/index.d.ts +4 -1
  63. package/dist/types/primitives/icon/registry.d.mts +12 -0
  64. package/dist/types/primitives/icon/registry.d.ts +12 -0
  65. package/dist/types/primitives/icon/svg/bnb.d.mts +5 -0
  66. package/dist/types/primitives/icon/svg/bnb.d.ts +5 -0
  67. package/dist/types/primitives/icon/svg/polygon.d.mts +5 -0
  68. package/dist/types/primitives/icon/svg/polygon.d.ts +5 -0
  69. package/dist/types/primitives/icon/svg/success-check.d.mts +5 -0
  70. package/dist/types/primitives/icon/svg/success-check.d.ts +5 -0
  71. package/dist/types/primitives/index.d.mts +1 -0
  72. package/dist/types/primitives/index.d.ts +1 -0
  73. package/dist/types/primitives/skeleton/skeleton.types.d.mts +2 -0
  74. package/dist/types/primitives/skeleton/skeleton.types.d.ts +2 -0
  75. package/dist/types/primitives/skeleton/views/user-profile-overview-skeleton-view.d.mts +5 -0
  76. package/dist/types/primitives/skeleton/views/user-profile-overview-skeleton-view.d.ts +5 -0
  77. package/dist/types/primitives/skeleton/views/user-profile-positions-activity-skeleton-view.d.mts +5 -0
  78. package/dist/types/primitives/skeleton/views/user-profile-positions-activity-skeleton-view.d.ts +5 -0
  79. package/dist/types/primitives/tooltip/index.d.mts +6 -0
  80. package/dist/types/primitives/tooltip/index.d.ts +6 -0
  81. package/dist/types/primitives/tooltip/tooltip.constants.d.mts +2 -0
  82. package/dist/types/primitives/tooltip/tooltip.constants.d.ts +2 -0
  83. package/dist/types/primitives/tooltip/tooltip.types.d.mts +27 -0
  84. package/dist/types/primitives/tooltip/tooltip.types.d.ts +27 -0
  85. package/dist/types/profile/tabs/about-tab.d.mts +1 -1
  86. package/dist/types/profile/tabs/about-tab.d.ts +1 -1
  87. package/dist/types/profile/tabs/accounts-wallets-tab.d.mts +1 -1
  88. package/dist/types/profile/tabs/accounts-wallets-tab.d.ts +1 -1
  89. package/dist/types/withdraw/index.d.mts +2 -2
  90. package/dist/types/withdraw/index.d.ts +2 -2
  91. package/dist/types/withdraw/steps/withdraw-amount.d.mts +14 -5
  92. package/dist/types/withdraw/steps/withdraw-amount.d.ts +14 -5
  93. package/dist/types/withdraw/steps/withdraw-method.d.mts +3 -4
  94. package/dist/types/withdraw/steps/withdraw-method.d.ts +3 -4
  95. package/dist/types/withdraw/steps/withdraw-provider.d.mts +10 -0
  96. package/dist/types/withdraw/steps/withdraw-provider.d.ts +10 -0
  97. package/dist/types/withdraw/steps/withdraw-success.d.mts +7 -0
  98. package/dist/types/withdraw/steps/withdraw-success.d.ts +7 -0
  99. package/dist/types/withdraw/withdraw-modal.constants.d.mts +0 -4
  100. package/dist/types/withdraw/withdraw-modal.constants.d.ts +0 -4
  101. package/dist/types/withdraw/withdraw-modal.types.d.mts +47 -23
  102. package/dist/types/withdraw/withdraw-modal.types.d.ts +47 -23
  103. package/package.json +3 -2
  104. package/dist/chunk-5FSWOXEG.mjs +0 -2857
  105. package/dist/types/deposit/steps/kalshi-deposit.d.mts +0 -5
  106. package/dist/types/deposit/steps/kalshi-deposit.d.ts +0 -5
  107. package/dist/types/withdraw/steps/kalshi-withdraw.d.mts +0 -5
  108. package/dist/types/withdraw/steps/kalshi-withdraw.d.ts +0 -5
  109. package/dist/types/withdraw/steps/venue-selection.d.mts +0 -6
  110. package/dist/types/withdraw/steps/venue-selection.d.ts +0 -6
@@ -1,12 +1,10 @@
1
- import type { UserProfileBalance, UserProfileTimeRange } from "../user-profile.types";
1
+ import type { UserProfileBalance } from "../user-profile.types";
2
2
  type BalanceDisplayProps = {
3
- balance?: Partial<Record<UserProfileTimeRange, UserProfileBalance>>;
4
- defaultTimeRange?: UserProfileTimeRange;
5
- onTimeRangeChange?: (range: UserProfileTimeRange) => void;
3
+ balance?: UserProfileBalance;
6
4
  className?: string;
7
5
  };
8
6
  export declare const BalanceDisplay: {
9
- ({ balance, defaultTimeRange, onTimeRangeChange, className, }: BalanceDisplayProps): JSX.Element;
7
+ ({ balance, className }: BalanceDisplayProps): JSX.Element;
10
8
  displayName: string;
11
9
  };
12
10
  export {};
@@ -5,10 +5,20 @@ type PositionsActivityProps = {
5
5
  activities?: UserProfileActivity[];
6
6
  onPositionClick?: (position: UserProfilePosition) => void;
7
7
  onActivityClick?: (activity: UserProfileActivity) => void;
8
+ isLoadingPositions?: boolean;
9
+ isLoadingActivities?: boolean;
10
+ positionsError?: boolean;
11
+ activitiesError?: boolean;
12
+ hasMorePositions?: boolean;
13
+ isLoadingMorePositions?: boolean;
14
+ onLoadMorePositions?: () => void;
15
+ hasMoreActivities?: boolean;
16
+ isLoadingMoreActivities?: boolean;
17
+ onLoadMoreActivities?: () => void;
8
18
  className?: string;
9
19
  };
10
20
  export declare const PositionsActivity: {
11
- ({ activePositions, closedPositions, activities, onPositionClick, onActivityClick, className, }: PositionsActivityProps): JSX.Element;
21
+ ({ activePositions, closedPositions, activities, onPositionClick, onActivityClick, isLoadingPositions, isLoadingActivities, positionsError, activitiesError, hasMorePositions, isLoadingMorePositions, onLoadMorePositions, hasMoreActivities, isLoadingMoreActivities, onLoadMoreActivities, className, }: PositionsActivityProps): JSX.Element;
12
22
  displayName: string;
13
23
  };
14
24
  export {};
@@ -5,10 +5,20 @@ type PositionsActivityProps = {
5
5
  activities?: UserProfileActivity[];
6
6
  onPositionClick?: (position: UserProfilePosition) => void;
7
7
  onActivityClick?: (activity: UserProfileActivity) => void;
8
+ isLoadingPositions?: boolean;
9
+ isLoadingActivities?: boolean;
10
+ positionsError?: boolean;
11
+ activitiesError?: boolean;
12
+ hasMorePositions?: boolean;
13
+ isLoadingMorePositions?: boolean;
14
+ onLoadMorePositions?: () => void;
15
+ hasMoreActivities?: boolean;
16
+ isLoadingMoreActivities?: boolean;
17
+ onLoadMoreActivities?: () => void;
8
18
  className?: string;
9
19
  };
10
20
  export declare const PositionsActivity: {
11
- ({ activePositions, closedPositions, activities, onPositionClick, onActivityClick, className, }: PositionsActivityProps): JSX.Element;
21
+ ({ activePositions, closedPositions, activities, onPositionClick, onActivityClick, isLoadingPositions, isLoadingActivities, positionsError, activitiesError, hasMorePositions, isLoadingMorePositions, onLoadMorePositions, hasMoreActivities, isLoadingMoreActivities, onLoadMoreActivities, className, }: PositionsActivityProps): JSX.Element;
12
22
  displayName: string;
13
23
  };
14
24
  export {};
@@ -0,0 +1,10 @@
1
+ type PositionsValueCardProps = {
2
+ label?: string;
3
+ valueLabel: string;
4
+ className?: string;
5
+ };
6
+ export declare const PositionsValueCard: {
7
+ ({ label, valueLabel, className, }: PositionsValueCardProps): JSX.Element;
8
+ displayName: string;
9
+ };
10
+ export {};
@@ -0,0 +1,10 @@
1
+ type PositionsValueCardProps = {
2
+ label?: string;
3
+ valueLabel: string;
4
+ className?: string;
5
+ };
6
+ export declare const PositionsValueCard: {
7
+ ({ label, valueLabel, className, }: PositionsValueCardProps): JSX.Element;
8
+ displayName: string;
9
+ };
10
+ export {};
@@ -2,10 +2,12 @@ import type { UserProfileInfo } from "../user-profile.types";
2
2
  type UserInfoCardProps = {
3
3
  user: UserProfileInfo;
4
4
  onEditProfile?: () => void;
5
+ onDeposit?: () => void;
6
+ onWithdraw?: () => void;
5
7
  className?: string;
6
8
  };
7
9
  export declare const UserInfoCard: {
8
- ({ user, onEditProfile, className, }: UserInfoCardProps): JSX.Element;
10
+ ({ user, onEditProfile, onDeposit, onWithdraw, className, }: UserInfoCardProps): JSX.Element;
9
11
  displayName: string;
10
12
  };
11
13
  export {};
@@ -2,10 +2,12 @@ import type { UserProfileInfo } from "../user-profile.types";
2
2
  type UserInfoCardProps = {
3
3
  user: UserProfileInfo;
4
4
  onEditProfile?: () => void;
5
+ onDeposit?: () => void;
6
+ onWithdraw?: () => void;
5
7
  className?: string;
6
8
  };
7
9
  export declare const UserInfoCard: {
8
- ({ user, onEditProfile, className, }: UserInfoCardProps): JSX.Element;
10
+ ({ user, onEditProfile, onDeposit, onWithdraw, className, }: UserInfoCardProps): JSX.Element;
9
11
  displayName: string;
10
12
  };
11
13
  export {};
@@ -1,6 +1,6 @@
1
1
  import type { UserProfilePageProps } from "./user-profile.types";
2
- export type { UserProfileActivity, UserProfileBalance, UserProfileConnectedExchange, UserProfileInfo, UserProfilePageClassNames, UserProfilePageProps, UserProfilePosition, UserProfilePositionFilter, UserProfileSocialLink, UserProfileTimeRange, UserProfileVenueBalance, } from "./user-profile.types";
2
+ export type { UserProfileActivity, UserProfileBalance, UserProfileConnectedExchange, UserProfileInfo, UserProfilePageClassNames, UserProfilePageProps, UserProfilePosition, UserProfilePositionFilter, UserProfileSocialLink, UserProfileVenueBalance, } from "./user-profile.types";
3
3
  export declare const UserProfilePage: {
4
- ({ user, venueBalances, balance, defaultTimeRange, onTimeRangeChange, activePositions, closedPositions, activities, onEditProfile, onDeposit, onWithdraw, onPositionClick, onActivityClick, classNames, }: UserProfilePageProps): JSX.Element;
4
+ ({ user, venueBalances: _venueBalances, balance, activePositions, closedPositions, activities, onEditProfile, onDeposit, onWithdraw, onPositionClick, onActivityClick, isLoadingPositions, isLoadingActivities, positionsError, activitiesError, hasMorePositions, isLoadingMorePositions, onLoadMorePositions, hasMoreActivities, isLoadingMoreActivities, onLoadMoreActivities, classNames, }: UserProfilePageProps): JSX.Element;
5
5
  displayName: string;
6
6
  };
@@ -1,6 +1,6 @@
1
1
  import type { UserProfilePageProps } from "./user-profile.types";
2
- export type { UserProfileActivity, UserProfileBalance, UserProfileConnectedExchange, UserProfileInfo, UserProfilePageClassNames, UserProfilePageProps, UserProfilePosition, UserProfilePositionFilter, UserProfileSocialLink, UserProfileTimeRange, UserProfileVenueBalance, } from "./user-profile.types";
2
+ export type { UserProfileActivity, UserProfileBalance, UserProfileConnectedExchange, UserProfileInfo, UserProfilePageClassNames, UserProfilePageProps, UserProfilePosition, UserProfilePositionFilter, UserProfileSocialLink, UserProfileVenueBalance, } from "./user-profile.types";
3
3
  export declare const UserProfilePage: {
4
- ({ user, venueBalances, balance, defaultTimeRange, onTimeRangeChange, activePositions, closedPositions, activities, onEditProfile, onDeposit, onWithdraw, onPositionClick, onActivityClick, classNames, }: UserProfilePageProps): JSX.Element;
4
+ ({ user, venueBalances: _venueBalances, balance, activePositions, closedPositions, activities, onEditProfile, onDeposit, onWithdraw, onPositionClick, onActivityClick, isLoadingPositions, isLoadingActivities, positionsError, activitiesError, hasMorePositions, isLoadingMorePositions, onLoadMorePositions, hasMoreActivities, isLoadingMoreActivities, onLoadMoreActivities, classNames, }: UserProfilePageProps): JSX.Element;
5
5
  displayName: string;
6
6
  };
@@ -1,8 +1,7 @@
1
- import type { UserProfilePositionFilter, UserProfileTimeRange } from "./user-profile.types";
1
+ import type { UserProfilePositionFilter } from "./user-profile.types";
2
2
  export declare const USER_PROFILE_TAB_POSITIONS: "positions";
3
3
  export declare const USER_PROFILE_TAB_ACTIVITY: "activity";
4
4
  export type UserProfileTabValue = typeof USER_PROFILE_TAB_POSITIONS | typeof USER_PROFILE_TAB_ACTIVITY;
5
- export declare const USER_PROFILE_TIME_RANGES: UserProfileTimeRange[];
6
5
  export declare const USER_PROFILE_POSITION_FILTERS: {
7
6
  value: UserProfilePositionFilter;
8
7
  label: string;
@@ -1,8 +1,7 @@
1
- import type { UserProfilePositionFilter, UserProfileTimeRange } from "./user-profile.types";
1
+ import type { UserProfilePositionFilter } from "./user-profile.types";
2
2
  export declare const USER_PROFILE_TAB_POSITIONS: "positions";
3
3
  export declare const USER_PROFILE_TAB_ACTIVITY: "activity";
4
4
  export type UserProfileTabValue = typeof USER_PROFILE_TAB_POSITIONS | typeof USER_PROFILE_TAB_ACTIVITY;
5
- export declare const USER_PROFILE_TIME_RANGES: UserProfileTimeRange[];
6
5
  export declare const USER_PROFILE_POSITION_FILTERS: {
7
6
  value: UserProfilePositionFilter;
8
7
  label: string;
@@ -23,20 +23,20 @@ export interface UserProfileInfo {
23
23
  socialHandleVenue?: VenueLogoName;
24
24
  }
25
25
  export interface UserProfileVenueBalance {
26
- venue: VenueLogoName;
26
+ chain: string;
27
+ accountCount?: number;
27
28
  /** Balance formatted as a string, e.g. "$1,234.56" */
28
29
  balanceLabel: string;
29
30
  }
30
- export type UserProfileTimeRange = "1D" | "1W" | "1M" | "All";
31
31
  export interface UserProfileBalance {
32
32
  /** Formatted total value, e.g. "$103,456.00" */
33
33
  totalLabel: string;
34
- /** Formatted change value, e.g. "+$1,234.56" */
35
- changeLabel: string;
36
- /** Formatted change percentage, e.g. "+12.3%" */
37
- changePercentLabel: string;
38
- /** True when the change is positive (green), false when negative (red) */
39
- isPositive: boolean;
34
+ /** Formatted change value, e.g. "+$1,234.56" (deprecated; optional) */
35
+ changeLabel?: string;
36
+ /** Formatted change percentage, e.g. "+12.3%" (deprecated; optional) */
37
+ changePercentLabel?: string;
38
+ /** True when the change is positive (green), false when negative (deprecated; optional) */
39
+ isPositive?: boolean;
40
40
  }
41
41
  export interface UserProfilePosition {
42
42
  id: string;
@@ -92,16 +92,12 @@ export type UserProfilePageClassNames = Partial<{
92
92
  positionsActivity: string;
93
93
  }>;
94
94
  export interface UserProfilePageProps {
95
- /** User information */
96
- user: UserProfileInfo;
95
+ /** User information. When omitted, page resolves current authenticated user via hooks. */
96
+ user?: UserProfileInfo;
97
97
  /** Venue balances shown in the sidebar card */
98
98
  venueBalances?: UserProfileVenueBalance[];
99
- /** Balance / P&L data keyed by time range */
100
- balance?: Partial<Record<UserProfileTimeRange, UserProfileBalance>>;
101
- /** Default time range selection */
102
- defaultTimeRange?: UserProfileTimeRange;
103
- /** Called when the time range filter changes */
104
- onTimeRangeChange?: (range: UserProfileTimeRange) => void;
99
+ /** Consolidated Balance / P&L data */
100
+ balance?: UserProfileBalance;
105
101
  /** Active positions */
106
102
  activePositions?: UserProfilePosition[];
107
103
  /** Closed positions */
@@ -118,6 +114,23 @@ export interface UserProfilePageProps {
118
114
  onPositionClick?: (position: UserProfilePosition) => void;
119
115
  /** Called when an activity row is clicked */
120
116
  onActivityClick?: (activity: UserProfileActivity) => void;
117
+ /** Optional runtime loading/error controls for tab content */
118
+ isLoadingPositions?: boolean;
119
+ isLoadingActivities?: boolean;
120
+ positionsError?: boolean;
121
+ activitiesError?: boolean;
122
+ /** Whether there are more positions to fetch in connected mode. */
123
+ hasMorePositions?: boolean;
124
+ /** Loading state for positions pagination. */
125
+ isLoadingMorePositions?: boolean;
126
+ /** Cursor pagination handler for positions. */
127
+ onLoadMorePositions?: () => void;
128
+ /** Whether there are more activity items to fetch in connected mode. */
129
+ hasMoreActivities?: boolean;
130
+ /** Loading state for activity pagination. */
131
+ isLoadingMoreActivities?: boolean;
132
+ /** Cursor pagination handler for activity. */
133
+ onLoadMoreActivities?: () => void;
121
134
  /** Custom class names for sub-sections */
122
135
  classNames?: UserProfilePageClassNames;
123
136
  }
@@ -23,20 +23,20 @@ export interface UserProfileInfo {
23
23
  socialHandleVenue?: VenueLogoName;
24
24
  }
25
25
  export interface UserProfileVenueBalance {
26
- venue: VenueLogoName;
26
+ chain: string;
27
+ accountCount?: number;
27
28
  /** Balance formatted as a string, e.g. "$1,234.56" */
28
29
  balanceLabel: string;
29
30
  }
30
- export type UserProfileTimeRange = "1D" | "1W" | "1M" | "All";
31
31
  export interface UserProfileBalance {
32
32
  /** Formatted total value, e.g. "$103,456.00" */
33
33
  totalLabel: string;
34
- /** Formatted change value, e.g. "+$1,234.56" */
35
- changeLabel: string;
36
- /** Formatted change percentage, e.g. "+12.3%" */
37
- changePercentLabel: string;
38
- /** True when the change is positive (green), false when negative (red) */
39
- isPositive: boolean;
34
+ /** Formatted change value, e.g. "+$1,234.56" (deprecated; optional) */
35
+ changeLabel?: string;
36
+ /** Formatted change percentage, e.g. "+12.3%" (deprecated; optional) */
37
+ changePercentLabel?: string;
38
+ /** True when the change is positive (green), false when negative (deprecated; optional) */
39
+ isPositive?: boolean;
40
40
  }
41
41
  export interface UserProfilePosition {
42
42
  id: string;
@@ -92,16 +92,12 @@ export type UserProfilePageClassNames = Partial<{
92
92
  positionsActivity: string;
93
93
  }>;
94
94
  export interface UserProfilePageProps {
95
- /** User information */
96
- user: UserProfileInfo;
95
+ /** User information. When omitted, page resolves current authenticated user via hooks. */
96
+ user?: UserProfileInfo;
97
97
  /** Venue balances shown in the sidebar card */
98
98
  venueBalances?: UserProfileVenueBalance[];
99
- /** Balance / P&L data keyed by time range */
100
- balance?: Partial<Record<UserProfileTimeRange, UserProfileBalance>>;
101
- /** Default time range selection */
102
- defaultTimeRange?: UserProfileTimeRange;
103
- /** Called when the time range filter changes */
104
- onTimeRangeChange?: (range: UserProfileTimeRange) => void;
99
+ /** Consolidated Balance / P&L data */
100
+ balance?: UserProfileBalance;
105
101
  /** Active positions */
106
102
  activePositions?: UserProfilePosition[];
107
103
  /** Closed positions */
@@ -118,6 +114,23 @@ export interface UserProfilePageProps {
118
114
  onPositionClick?: (position: UserProfilePosition) => void;
119
115
  /** Called when an activity row is clicked */
120
116
  onActivityClick?: (activity: UserProfileActivity) => void;
117
+ /** Optional runtime loading/error controls for tab content */
118
+ isLoadingPositions?: boolean;
119
+ isLoadingActivities?: boolean;
120
+ positionsError?: boolean;
121
+ activitiesError?: boolean;
122
+ /** Whether there are more positions to fetch in connected mode. */
123
+ hasMorePositions?: boolean;
124
+ /** Loading state for positions pagination. */
125
+ isLoadingMorePositions?: boolean;
126
+ /** Cursor pagination handler for positions. */
127
+ onLoadMorePositions?: () => void;
128
+ /** Whether there are more activity items to fetch in connected mode. */
129
+ hasMoreActivities?: boolean;
130
+ /** Loading state for activity pagination. */
131
+ isLoadingMoreActivities?: boolean;
132
+ /** Cursor pagination handler for activity. */
133
+ onLoadMoreActivities?: () => void;
121
134
  /** Custom class names for sub-sections */
122
135
  classNames?: UserProfilePageClassNames;
123
136
  }
@@ -3,6 +3,7 @@ import { ArrowTrendUpIcon } from "./svg/arrow-trend-up";
3
3
  import { ArrowsToDotIcon } from "./svg/arrows-to-dot";
4
4
  import { BankIcon } from "./svg/bank";
5
5
  import { BestPricesIcon } from "./svg/best-prices";
6
+ import { BnbIcon } from "./svg/bnb";
6
7
  import { BoltIcon } from "./svg/bolt";
7
8
  import { CheckCircleIcon } from "./svg/check-circle";
8
9
  import { ChartCandlestickIcon } from "./svg/chart-candlestick";
@@ -29,12 +30,14 @@ import { iconNames } from "./registry";
29
30
  import { LinkAccountsIcon } from "./svg/link-accounts";
30
31
  import { PencilIcon } from "./svg/pencil";
31
32
  import { PlaySquareIcon } from "./svg/play-square";
33
+ import { PolygonIcon } from "./svg/polygon";
32
34
  import { ProfileIcon } from "./svg/profile";
33
35
  import { RevenueAltIcon } from "./svg/revenue-alt";
34
36
  import { SearchIcon } from "./svg/search";
35
37
  import { ShieldTrustIcon } from "./svg/shield-trust";
36
38
  import { SolanaIcon } from "./svg/solana";
37
39
  import { StayInControlIcon } from "./svg/stay-in-control";
40
+ import { SuccessCheckIcon } from "./svg/success-check";
38
41
  import { TriangleDownIcon } from "./svg/triangle-down";
39
42
  import { TriangleUpFilledIcon } from "./svg/triangle-up-filled";
40
43
  import { TriangleUpIcon } from "./svg/triangle-up";
@@ -51,4 +54,4 @@ export declare const Icon: {
51
54
  ({ name, color, size, className, style, ...props }: IconProps): JSX.Element;
52
55
  displayName: string;
53
56
  };
54
- export { AppleIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BestPricesIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GoogleIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, PencilIcon, PlaySquareIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, StayInControlIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, WalletAvatarIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
57
+ export { AppleIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BestPricesIcon, BnbIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GoogleIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, PencilIcon, PlaySquareIcon, PolygonIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, StayInControlIcon, SuccessCheckIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, WalletAvatarIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
@@ -3,6 +3,7 @@ import { ArrowTrendUpIcon } from "./svg/arrow-trend-up";
3
3
  import { ArrowsToDotIcon } from "./svg/arrows-to-dot";
4
4
  import { BankIcon } from "./svg/bank";
5
5
  import { BestPricesIcon } from "./svg/best-prices";
6
+ import { BnbIcon } from "./svg/bnb";
6
7
  import { BoltIcon } from "./svg/bolt";
7
8
  import { CheckCircleIcon } from "./svg/check-circle";
8
9
  import { ChartCandlestickIcon } from "./svg/chart-candlestick";
@@ -29,12 +30,14 @@ import { iconNames } from "./registry";
29
30
  import { LinkAccountsIcon } from "./svg/link-accounts";
30
31
  import { PencilIcon } from "./svg/pencil";
31
32
  import { PlaySquareIcon } from "./svg/play-square";
33
+ import { PolygonIcon } from "./svg/polygon";
32
34
  import { ProfileIcon } from "./svg/profile";
33
35
  import { RevenueAltIcon } from "./svg/revenue-alt";
34
36
  import { SearchIcon } from "./svg/search";
35
37
  import { ShieldTrustIcon } from "./svg/shield-trust";
36
38
  import { SolanaIcon } from "./svg/solana";
37
39
  import { StayInControlIcon } from "./svg/stay-in-control";
40
+ import { SuccessCheckIcon } from "./svg/success-check";
38
41
  import { TriangleDownIcon } from "./svg/triangle-down";
39
42
  import { TriangleUpFilledIcon } from "./svg/triangle-up-filled";
40
43
  import { TriangleUpIcon } from "./svg/triangle-up";
@@ -51,4 +54,4 @@ export declare const Icon: {
51
54
  ({ name, color, size, className, style, ...props }: IconProps): JSX.Element;
52
55
  displayName: string;
53
56
  };
54
- export { AppleIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BestPricesIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GoogleIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, PencilIcon, PlaySquareIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, StayInControlIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, WalletAvatarIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
57
+ export { AppleIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BestPricesIcon, BnbIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GoogleIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, PencilIcon, PlaySquareIcon, PolygonIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, StayInControlIcon, SuccessCheckIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, WalletAvatarIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
@@ -20,6 +20,10 @@ export declare const iconRegistry: {
20
20
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
21
21
  displayName: string;
22
22
  };
23
+ readonly bnb: {
24
+ ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
25
+ displayName: string;
26
+ };
23
27
  readonly bolt: {
24
28
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
25
29
  displayName: string;
@@ -132,6 +136,10 @@ export declare const iconRegistry: {
132
136
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
133
137
  displayName: string;
134
138
  };
139
+ readonly polygon: {
140
+ ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
141
+ displayName: string;
142
+ };
135
143
  readonly profile: {
136
144
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
137
145
  displayName: string;
@@ -156,6 +164,10 @@ export declare const iconRegistry: {
156
164
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
157
165
  displayName: string;
158
166
  };
167
+ readonly "success-check": {
168
+ ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
169
+ displayName: string;
170
+ };
159
171
  readonly telegram: {
160
172
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
161
173
  displayName: string;
@@ -20,6 +20,10 @@ export declare const iconRegistry: {
20
20
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
21
21
  displayName: string;
22
22
  };
23
+ readonly bnb: {
24
+ ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
25
+ displayName: string;
26
+ };
23
27
  readonly bolt: {
24
28
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
25
29
  displayName: string;
@@ -132,6 +136,10 @@ export declare const iconRegistry: {
132
136
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
133
137
  displayName: string;
134
138
  };
139
+ readonly polygon: {
140
+ ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
141
+ displayName: string;
142
+ };
135
143
  readonly profile: {
136
144
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
137
145
  displayName: string;
@@ -156,6 +164,10 @@ export declare const iconRegistry: {
156
164
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
157
165
  displayName: string;
158
166
  };
167
+ readonly "success-check": {
168
+ ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
169
+ displayName: string;
170
+ };
159
171
  readonly telegram: {
160
172
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
161
173
  displayName: string;
@@ -0,0 +1,5 @@
1
+ import type { IconSvgProps } from "../types";
2
+ export declare const BnbIcon: {
3
+ ({ title, className, ...props }: IconSvgProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,5 @@
1
+ import type { IconSvgProps } from "../types";
2
+ export declare const BnbIcon: {
3
+ ({ title, className, ...props }: IconSvgProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,5 @@
1
+ import type { IconSvgProps } from "../types";
2
+ export declare const PolygonIcon: {
3
+ ({ title, className, ...props }: IconSvgProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,5 @@
1
+ import type { IconSvgProps } from "../types";
2
+ export declare const PolygonIcon: {
3
+ ({ title, className, ...props }: IconSvgProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,5 @@
1
+ import type { IconSvgProps } from "../types";
2
+ export declare const SuccessCheckIcon: {
3
+ ({ title, className, ...props }: IconSvgProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,5 @@
1
+ import type { IconSvgProps } from "../types";
2
+ export declare const SuccessCheckIcon: {
3
+ ({ title, className, ...props }: IconSvgProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -19,3 +19,4 @@ export * from "./tabs";
19
19
  export * from "./modal";
20
20
  export * from "./remote-image";
21
21
  export * from "./header";
22
+ export * from "./tooltip";
@@ -19,3 +19,4 @@ export * from "./tabs";
19
19
  export * from "./modal";
20
20
  export * from "./remote-image";
21
21
  export * from "./header";
22
+ export * from "./tooltip";
@@ -7,6 +7,8 @@ export declare const skeletonViews: {
7
7
  readonly settlement: "settlement";
8
8
  readonly placeOrder: "place-order";
9
9
  readonly search: "search";
10
+ readonly userProfileOverview: "user-profile-overview";
11
+ readonly userProfilePositionsActivity: "user-profile-positions-activity";
10
12
  };
11
13
  export type SkeletonView = (typeof skeletonViews)[keyof typeof skeletonViews];
12
14
  export type SkeletonProps = {
@@ -7,6 +7,8 @@ export declare const skeletonViews: {
7
7
  readonly settlement: "settlement";
8
8
  readonly placeOrder: "place-order";
9
9
  readonly search: "search";
10
+ readonly userProfileOverview: "user-profile-overview";
11
+ readonly userProfilePositionsActivity: "user-profile-positions-activity";
10
12
  };
11
13
  export type SkeletonView = (typeof skeletonViews)[keyof typeof skeletonViews];
12
14
  export type SkeletonProps = {
@@ -0,0 +1,5 @@
1
+ import type { SkeletonViewProps } from "../skeleton.types";
2
+ export declare const UserProfileOverviewSkeletonView: {
3
+ ({ className, ariaLabel, }: SkeletonViewProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,5 @@
1
+ import type { SkeletonViewProps } from "../skeleton.types";
2
+ export declare const UserProfileOverviewSkeletonView: {
3
+ ({ className, ariaLabel, }: SkeletonViewProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,5 @@
1
+ import type { SkeletonViewProps } from "../skeleton.types";
2
+ export declare const UserProfilePositionsActivitySkeletonView: {
3
+ ({ className, ariaLabel, }: SkeletonViewProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,5 @@
1
+ import type { SkeletonViewProps } from "../skeleton.types";
2
+ export declare const UserProfilePositionsActivitySkeletonView: {
3
+ ({ className, ariaLabel, }: SkeletonViewProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -0,0 +1,6 @@
1
+ import type { TooltipProps } from "./tooltip.types";
2
+ export type { TooltipProps } from "./tooltip.types";
3
+ export declare const Tooltip: {
4
+ ({ content, children, size, side, delayDuration, collisionPadding, classNames, "aria-label": ariaLabel, }: TooltipProps): JSX.Element;
5
+ displayName: string;
6
+ };
@@ -0,0 +1,6 @@
1
+ import type { TooltipProps } from "./tooltip.types";
2
+ export type { TooltipProps } from "./tooltip.types";
3
+ export declare const Tooltip: {
4
+ ({ content, children, size, side, delayDuration, collisionPadding, classNames, "aria-label": ariaLabel, }: TooltipProps): JSX.Element;
5
+ displayName: string;
6
+ };
@@ -0,0 +1,2 @@
1
+ import type { TooltipSize } from "./tooltip.types";
2
+ export declare const tooltipSizeClasses: Record<TooltipSize, string>;
@@ -0,0 +1,2 @@
1
+ import type { TooltipSize } from "./tooltip.types";
2
+ export declare const tooltipSizeClasses: Record<TooltipSize, string>;
@@ -0,0 +1,27 @@
1
+ import type { ReactNode } from "react";
2
+ import type { AvailableSizes } from "../../shared/types";
3
+ export type TooltipSide = "top" | "right" | "bottom" | "left";
4
+ export type TooltipClassNames = {
5
+ content?: string;
6
+ trigger?: string;
7
+ arrow?: string;
8
+ };
9
+ export interface TooltipProps {
10
+ /** Content rendered inside the tooltip surface. */
11
+ content: ReactNode;
12
+ /** Trigger element. If omitted, a default info icon trigger is rendered. */
13
+ children?: ReactNode;
14
+ /** Semantic size controlling padding and arrow radius. */
15
+ size?: Exclude<AvailableSizes, "large">;
16
+ /** Preferred side to display the tooltip. */
17
+ side?: TooltipSide;
18
+ /** Delay in ms before opening on hover/focus. */
19
+ delayDuration?: number;
20
+ /** Collision padding for viewport/surface boundaries. */
21
+ collisionPadding?: number;
22
+ /** Optional className overrides for internal parts. */
23
+ classNames?: TooltipClassNames;
24
+ /** Accessible label for the default icon trigger. Ignored when a custom trigger is provided. */
25
+ "aria-label"?: string;
26
+ }
27
+ export type TooltipSize = NonNullable<TooltipProps["size"]>;
@@ -0,0 +1,27 @@
1
+ import type { ReactNode } from "react";
2
+ import type { AvailableSizes } from "../../shared/types";
3
+ export type TooltipSide = "top" | "right" | "bottom" | "left";
4
+ export type TooltipClassNames = {
5
+ content?: string;
6
+ trigger?: string;
7
+ arrow?: string;
8
+ };
9
+ export interface TooltipProps {
10
+ /** Content rendered inside the tooltip surface. */
11
+ content: ReactNode;
12
+ /** Trigger element. If omitted, a default info icon trigger is rendered. */
13
+ children?: ReactNode;
14
+ /** Semantic size controlling padding and arrow radius. */
15
+ size?: Exclude<AvailableSizes, "large">;
16
+ /** Preferred side to display the tooltip. */
17
+ side?: TooltipSide;
18
+ /** Delay in ms before opening on hover/focus. */
19
+ delayDuration?: number;
20
+ /** Collision padding for viewport/surface boundaries. */
21
+ collisionPadding?: number;
22
+ /** Optional className overrides for internal parts. */
23
+ classNames?: TooltipClassNames;
24
+ /** Accessible label for the default icon trigger. Ignored when a custom trigger is provided. */
25
+ "aria-label"?: string;
26
+ }
27
+ export type TooltipSize = NonNullable<TooltipProps["size"]>;
@@ -11,6 +11,6 @@ export interface AboutTabProps {
11
11
  draftAvatarPreview?: string;
12
12
  }
13
13
  export declare const AboutTab: {
14
- ({ avatarPreview, onDeleteProfile, draftUsername, onDraftUsernameChange, onDraftAvatarChange, draftAvatarPreview, }: AboutTabProps): JSX.Element;
14
+ ({ avatarPreview, onDeleteProfile: _onDeleteProfile, draftUsername, onDraftUsernameChange, onDraftAvatarChange, draftAvatarPreview, }: AboutTabProps): JSX.Element;
15
15
  displayName: string;
16
16
  };