@agg-build/ui 1.1.0 → 1.2.1

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 (39) hide show
  1. package/README.md +1 -1
  2. package/dist/{chunk-IT2Y62MG.mjs → chunk-2S2NFV7W.mjs} +589 -340
  3. package/dist/{chunk-R6DETAZ6.mjs → chunk-34L7ZKJW.mjs} +804 -776
  4. package/dist/{chunk-JDYZJKTE.mjs → chunk-5FXMHTVR.mjs} +1 -1
  5. package/dist/{chunk-7JEJIGG4.mjs → chunk-E45WOOMN.mjs} +24 -8
  6. package/dist/{chunk-OHEZGKFM.mjs → chunk-FDTLV74F.mjs} +89 -5
  7. package/dist/{chunk-F3SU7BRE.mjs → chunk-Q2BRDVBU.mjs} +1 -1
  8. package/dist/{chunk-KDMNFHPL.mjs → chunk-TBKDLNOE.mjs} +27 -16
  9. package/dist/events.js +957 -906
  10. package/dist/events.mjs +3 -3
  11. package/dist/index.js +2937 -2550
  12. package/dist/index.mjs +17 -15
  13. package/dist/modals.js +816 -792
  14. package/dist/modals.mjs +3 -3
  15. package/dist/pages.js +2215 -1830
  16. package/dist/pages.mjs +6 -6
  17. package/dist/primitives.js +799 -773
  18. package/dist/primitives.mjs +3 -1
  19. package/dist/styles.css +1 -1
  20. package/dist/tailwind.css +1 -1
  21. package/dist/trading.js +868 -639
  22. package/dist/trading.mjs +4 -4
  23. package/dist/types/events/market-details/index.d.mts +1 -1
  24. package/dist/types/events/market-details/index.d.ts +1 -1
  25. package/dist/types/events/market-details/market-details.types.d.mts +11 -0
  26. package/dist/types/events/market-details/market-details.types.d.ts +11 -0
  27. package/dist/types/pages/user-profile/position-view-model.d.mts +54 -0
  28. package/dist/types/pages/user-profile/position-view-model.d.ts +54 -0
  29. package/dist/types/pages/user-profile/user-profile.types.d.mts +22 -0
  30. package/dist/types/pages/user-profile/user-profile.types.d.ts +22 -0
  31. package/dist/types/primitives/icon/index.d.mts +2 -1
  32. package/dist/types/primitives/icon/index.d.ts +2 -1
  33. package/dist/types/primitives/icon/registry.d.mts +4 -0
  34. package/dist/types/primitives/icon/registry.d.ts +4 -0
  35. package/dist/types/primitives/icon/svg/hourglass-start.d.mts +5 -0
  36. package/dist/types/primitives/icon/svg/hourglass-start.d.ts +5 -0
  37. package/dist/types/shared/utils.d.mts +5 -1
  38. package/dist/types/shared/utils.d.ts +5 -1
  39. package/package.json +3 -3
package/dist/trading.mjs CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  SettlementDetails,
7
7
  parseAmount,
8
8
  parseVenue
9
- } from "./chunk-OHEZGKFM.mjs";
9
+ } from "./chunk-FDTLV74F.mjs";
10
10
  import {
11
11
  SETTLEMENT_SECTION_ID,
12
12
  Settlement,
@@ -21,9 +21,9 @@ import {
21
21
  getTradingValueLabel,
22
22
  getTradingVenueLabel,
23
23
  useEventTradingContext
24
- } from "./chunk-KDMNFHPL.mjs";
25
- import "./chunk-JDYZJKTE.mjs";
26
- import "./chunk-R6DETAZ6.mjs";
24
+ } from "./chunk-TBKDLNOE.mjs";
25
+ import "./chunk-5FXMHTVR.mjs";
26
+ import "./chunk-34L7ZKJW.mjs";
27
27
  export {
28
28
  PlaceOrder,
29
29
  PlaceOrderFailureView,
@@ -7,6 +7,6 @@ export declare const MarketDetails: {
7
7
  displayName: string;
8
8
  };
9
9
  export declare const MarketDetailsList: {
10
- ({ eventId, markets: providedMarkets, eventTradingState, onClick, onExpandedMarketChange, defaultTab, classNames, live, }: MarketDetailsListProps): JSX.Element;
10
+ ({ eventId, markets: providedMarkets, eventTradingState, onClick, onOutcomeSelect, onExpandedMarketChange, defaultTab, classNames, live, }: MarketDetailsListProps): JSX.Element;
11
11
  displayName: string;
12
12
  };
@@ -7,6 +7,6 @@ export declare const MarketDetails: {
7
7
  displayName: string;
8
8
  };
9
9
  export declare const MarketDetailsList: {
10
- ({ eventId, markets: providedMarkets, eventTradingState, onClick, onExpandedMarketChange, defaultTab, classNames, live, }: MarketDetailsListProps): JSX.Element;
10
+ ({ eventId, markets: providedMarkets, eventTradingState, onClick, onOutcomeSelect, onExpandedMarketChange, defaultTab, classNames, live, }: MarketDetailsListProps): JSX.Element;
11
11
  displayName: string;
12
12
  };
@@ -26,6 +26,11 @@ export type MarketDetailsBaseProps = {
26
26
  onOpenChange?: (marketId: string) => void;
27
27
  /** Called when the market details surface is clicked. */
28
28
  onClick?: (market?: VenueMarket) => void;
29
+ /** Called when a user explicitly selects an outcome from this market header. */
30
+ onOutcomeSelect?: (selection: {
31
+ marketId: string;
32
+ outcomeId: string;
33
+ }) => void;
29
34
  /** Default tab shown when the details open. */
30
35
  defaultTab?: MarketDetailsTab;
31
36
  /** Default outcome label used for order book and graph context. */
@@ -102,6 +107,11 @@ export type MarketDetailsListProps = {
102
107
  onExpandedMarketChange?: (marketId: string | null) => void;
103
108
  /** Called when a market is clicked. */
104
109
  onClick?: (market: VenueMarket) => void;
110
+ /** Called when a user explicitly selects an outcome from any market card. */
111
+ onOutcomeSelect?: (selection: {
112
+ marketId: string;
113
+ outcomeId: string;
114
+ }) => void;
105
115
  /** Default tab to display. */
106
116
  defaultTab?: MarketDetailsTab;
107
117
  /** Class names for the market details list. */
@@ -115,6 +125,7 @@ export type MarketDetailsOutcomeTone = MarketDetailsOrderBookTone;
115
125
  export type MarketDetailsHeaderOutcomeItem = {
116
126
  id: string;
117
127
  label: string;
128
+ title: string;
118
129
  probability: number | undefined;
119
130
  tone: MarketDetailsOutcomeTone;
120
131
  venue: VenueLogoName;
@@ -26,6 +26,11 @@ export type MarketDetailsBaseProps = {
26
26
  onOpenChange?: (marketId: string) => void;
27
27
  /** Called when the market details surface is clicked. */
28
28
  onClick?: (market?: VenueMarket) => void;
29
+ /** Called when a user explicitly selects an outcome from this market header. */
30
+ onOutcomeSelect?: (selection: {
31
+ marketId: string;
32
+ outcomeId: string;
33
+ }) => void;
29
34
  /** Default tab shown when the details open. */
30
35
  defaultTab?: MarketDetailsTab;
31
36
  /** Default outcome label used for order book and graph context. */
@@ -102,6 +107,11 @@ export type MarketDetailsListProps = {
102
107
  onExpandedMarketChange?: (marketId: string | null) => void;
103
108
  /** Called when a market is clicked. */
104
109
  onClick?: (market: VenueMarket) => void;
110
+ /** Called when a user explicitly selects an outcome from any market card. */
111
+ onOutcomeSelect?: (selection: {
112
+ marketId: string;
113
+ outcomeId: string;
114
+ }) => void;
105
115
  /** Default tab to display. */
106
116
  defaultTab?: MarketDetailsTab;
107
117
  /** Class names for the market details list. */
@@ -115,6 +125,7 @@ export type MarketDetailsOutcomeTone = MarketDetailsOrderBookTone;
115
125
  export type MarketDetailsHeaderOutcomeItem = {
116
126
  id: string;
117
127
  label: string;
128
+ title: string;
118
129
  probability: number | undefined;
119
130
  tone: MarketDetailsOutcomeTone;
120
131
  venue: VenueLogoName;
@@ -0,0 +1,54 @@
1
+ import type { UserProfilePosition } from "./user-profile.types";
2
+ export type PositionStatus = "open" | "won_unclaimed" | "won_claimed" | "lost" | "sold";
3
+ export type PositionBucket = "active" | "closed";
4
+ export type PositionTone = "positive" | "negative" | "neutral";
5
+ export type PositionValueDisplay = {
6
+ primaryLabel: string;
7
+ deltaLabel: string;
8
+ priceLabel: string;
9
+ percentLabel: string;
10
+ tone: PositionTone;
11
+ };
12
+ export type PositionTotalTradedDisplay = {
13
+ primaryLabel: string;
14
+ averageLabel: string;
15
+ };
16
+ export type PositionRowViewModel = {
17
+ position: UserProfilePosition;
18
+ positionStatus: PositionStatus;
19
+ bucket: PositionBucket;
20
+ title: string;
21
+ thumbnailSrc: string;
22
+ selectedOutcomeLabel: string;
23
+ resolutionLabel: string;
24
+ venueShareBreakdown: UserProfilePosition["venueShareBreakdown"];
25
+ totalTraded: PositionTotalTradedDisplay;
26
+ currentValue: PositionValueDisplay;
27
+ payout: PositionValueDisplay;
28
+ canClaim: boolean;
29
+ };
30
+ export type PositionViewModelLabels = {
31
+ avgPrefix: string;
32
+ nowPrefix: string;
33
+ finalPrefix: string;
34
+ };
35
+ export declare const formatCurrency: (value: number | null | undefined) => string;
36
+ export declare const formatSignedCurrency: (value: number | null | undefined) => string;
37
+ export declare const formatPriceCents: (value: number | null | undefined) => string;
38
+ export declare const formatSignedPercent: (value: number | null | undefined) => string;
39
+ export declare const resolvePositionStatus: (position: UserProfilePosition) => PositionStatus;
40
+ export declare const resolvePositionBucket: (position: UserProfilePosition) => PositionBucket;
41
+ export declare const shouldDisplayPosition: (position: UserProfilePosition) => boolean;
42
+ export declare const partitionPositions: (positions: UserProfilePosition[]) => Record<PositionBucket, UserProfilePosition[]>;
43
+ export declare const getTotalTradedValue: (position: UserProfilePosition) => number | null;
44
+ export declare const getAveragePrice: (position: UserProfilePosition) => number | null;
45
+ export declare const getCurrentPrice: (position: UserProfilePosition) => number | null;
46
+ export declare const getCurrentValue: (position: UserProfilePosition) => number | null;
47
+ export declare const getFinalPayoutValue: (position: UserProfilePosition) => number | null;
48
+ export declare const getFinalPrice: (position: UserProfilePosition) => number | null;
49
+ export declare const getPnlValue: (position: UserProfilePosition, value: number | null) => number | null;
50
+ export declare const getPnlPercent: (position: UserProfilePosition, pnlValue: number | null) => number | null;
51
+ export declare const getFinalPnlValue: (position: UserProfilePosition, value: number | null) => number | null;
52
+ export declare const getFinalPnlPercent: (position: UserProfilePosition, pnlValue: number | null) => number | null;
53
+ export declare const getPositionTone: (value: number | null | undefined) => PositionTone;
54
+ export declare const toPositionRowViewModel: (position: UserProfilePosition, labels?: PositionViewModelLabels) => PositionRowViewModel;
@@ -0,0 +1,54 @@
1
+ import type { UserProfilePosition } from "./user-profile.types";
2
+ export type PositionStatus = "open" | "won_unclaimed" | "won_claimed" | "lost" | "sold";
3
+ export type PositionBucket = "active" | "closed";
4
+ export type PositionTone = "positive" | "negative" | "neutral";
5
+ export type PositionValueDisplay = {
6
+ primaryLabel: string;
7
+ deltaLabel: string;
8
+ priceLabel: string;
9
+ percentLabel: string;
10
+ tone: PositionTone;
11
+ };
12
+ export type PositionTotalTradedDisplay = {
13
+ primaryLabel: string;
14
+ averageLabel: string;
15
+ };
16
+ export type PositionRowViewModel = {
17
+ position: UserProfilePosition;
18
+ positionStatus: PositionStatus;
19
+ bucket: PositionBucket;
20
+ title: string;
21
+ thumbnailSrc: string;
22
+ selectedOutcomeLabel: string;
23
+ resolutionLabel: string;
24
+ venueShareBreakdown: UserProfilePosition["venueShareBreakdown"];
25
+ totalTraded: PositionTotalTradedDisplay;
26
+ currentValue: PositionValueDisplay;
27
+ payout: PositionValueDisplay;
28
+ canClaim: boolean;
29
+ };
30
+ export type PositionViewModelLabels = {
31
+ avgPrefix: string;
32
+ nowPrefix: string;
33
+ finalPrefix: string;
34
+ };
35
+ export declare const formatCurrency: (value: number | null | undefined) => string;
36
+ export declare const formatSignedCurrency: (value: number | null | undefined) => string;
37
+ export declare const formatPriceCents: (value: number | null | undefined) => string;
38
+ export declare const formatSignedPercent: (value: number | null | undefined) => string;
39
+ export declare const resolvePositionStatus: (position: UserProfilePosition) => PositionStatus;
40
+ export declare const resolvePositionBucket: (position: UserProfilePosition) => PositionBucket;
41
+ export declare const shouldDisplayPosition: (position: UserProfilePosition) => boolean;
42
+ export declare const partitionPositions: (positions: UserProfilePosition[]) => Record<PositionBucket, UserProfilePosition[]>;
43
+ export declare const getTotalTradedValue: (position: UserProfilePosition) => number | null;
44
+ export declare const getAveragePrice: (position: UserProfilePosition) => number | null;
45
+ export declare const getCurrentPrice: (position: UserProfilePosition) => number | null;
46
+ export declare const getCurrentValue: (position: UserProfilePosition) => number | null;
47
+ export declare const getFinalPayoutValue: (position: UserProfilePosition) => number | null;
48
+ export declare const getFinalPrice: (position: UserProfilePosition) => number | null;
49
+ export declare const getPnlValue: (position: UserProfilePosition, value: number | null) => number | null;
50
+ export declare const getPnlPercent: (position: UserProfilePosition, pnlValue: number | null) => number | null;
51
+ export declare const getFinalPnlValue: (position: UserProfilePosition, value: number | null) => number | null;
52
+ export declare const getFinalPnlPercent: (position: UserProfilePosition, pnlValue: number | null) => number | null;
53
+ export declare const getPositionTone: (value: number | null | undefined) => PositionTone;
54
+ export declare const toPositionRowViewModel: (position: UserProfilePosition, labels?: PositionViewModelLabels) => PositionRowViewModel;
@@ -67,14 +67,26 @@ export interface UserProfilePosition {
67
67
  outcomeLabel: string;
68
68
  /** Per-venue position sizes with logos below the pill. */
69
69
  venueShareBreakdown: UserProfilePositionVenueShare[];
70
+ /** Total shares/contracts represented by this row. */
71
+ totalShares?: number | null;
70
72
  /** Average price, e.g. "29¢" */
71
73
  averageLabel: string;
74
+ /** Average entry price as a 0-1 decimal, e.g. 0.29. */
75
+ averagePrice?: number | null;
72
76
  /** Current price, e.g. "25¢" */
73
77
  currentLabel: string;
78
+ /** Current or mark price as a 0-1 decimal, e.g. 0.25. */
79
+ currentPrice?: number | null;
74
80
  /** Total value, e.g. "$25.86" */
75
81
  valueLabel: string;
82
+ /** Current position value in USD. */
83
+ currentValue?: number | null;
76
84
  /** P&L label, e.g. "-$4.14 (-13.79%)" */
77
85
  pnlLabel: string;
86
+ /** Absolute P&L in USD. */
87
+ pnlValue?: number | null;
88
+ /** P&L percentage as display percent, e.g. -13.79 for -13.79%. */
89
+ pnlPercent?: number | null;
78
90
  /** True when P&L is positive */
79
91
  isPnlPositive: boolean;
80
92
  /** Bucket the backend placed this row in. */
@@ -87,8 +99,18 @@ export interface UserProfilePosition {
87
99
  resolutionDate: string | null;
88
100
  /** Closed-table total traded label, e.g. "$310.11". */
89
101
  closedTotalTradedLabel?: string;
102
+ /** Total order cost in USD. */
103
+ totalTradedValue?: number | null;
90
104
  /** Closed-table amount won label, e.g. "$469.95". */
91
105
  closedAmountWonLabel?: string;
106
+ /** Final payout value in USD. */
107
+ finalPayoutValue?: number | null;
108
+ /** Final absolute P&L in USD. */
109
+ finalPnlValue?: number | null;
110
+ /** Final P&L percentage as display percent, e.g. -100 for -100%. */
111
+ finalPnlPercent?: number | null;
112
+ /** Final price as a 0-1 decimal, e.g. 1 for 100¢. */
113
+ finalPrice?: number | null;
92
114
  /** Closed-table return label, e.g. "+51.54%". */
93
115
  closedReturnLabel?: string;
94
116
  /** Redeem state used by the closed-table Claim column. */
@@ -67,14 +67,26 @@ export interface UserProfilePosition {
67
67
  outcomeLabel: string;
68
68
  /** Per-venue position sizes with logos below the pill. */
69
69
  venueShareBreakdown: UserProfilePositionVenueShare[];
70
+ /** Total shares/contracts represented by this row. */
71
+ totalShares?: number | null;
70
72
  /** Average price, e.g. "29¢" */
71
73
  averageLabel: string;
74
+ /** Average entry price as a 0-1 decimal, e.g. 0.29. */
75
+ averagePrice?: number | null;
72
76
  /** Current price, e.g. "25¢" */
73
77
  currentLabel: string;
78
+ /** Current or mark price as a 0-1 decimal, e.g. 0.25. */
79
+ currentPrice?: number | null;
74
80
  /** Total value, e.g. "$25.86" */
75
81
  valueLabel: string;
82
+ /** Current position value in USD. */
83
+ currentValue?: number | null;
76
84
  /** P&L label, e.g. "-$4.14 (-13.79%)" */
77
85
  pnlLabel: string;
86
+ /** Absolute P&L in USD. */
87
+ pnlValue?: number | null;
88
+ /** P&L percentage as display percent, e.g. -13.79 for -13.79%. */
89
+ pnlPercent?: number | null;
78
90
  /** True when P&L is positive */
79
91
  isPnlPositive: boolean;
80
92
  /** Bucket the backend placed this row in. */
@@ -87,8 +99,18 @@ export interface UserProfilePosition {
87
99
  resolutionDate: string | null;
88
100
  /** Closed-table total traded label, e.g. "$310.11". */
89
101
  closedTotalTradedLabel?: string;
102
+ /** Total order cost in USD. */
103
+ totalTradedValue?: number | null;
90
104
  /** Closed-table amount won label, e.g. "$469.95". */
91
105
  closedAmountWonLabel?: string;
106
+ /** Final payout value in USD. */
107
+ finalPayoutValue?: number | null;
108
+ /** Final absolute P&L in USD. */
109
+ finalPnlValue?: number | null;
110
+ /** Final P&L percentage as display percent, e.g. -100 for -100%. */
111
+ finalPnlPercent?: number | null;
112
+ /** Final price as a 0-1 decimal, e.g. 1 for 100¢. */
113
+ finalPrice?: number | null;
92
114
  /** Closed-table return label, e.g. "+51.54%". */
93
115
  closedReturnLabel?: string;
94
116
  /** Redeem state used by the closed-table Claim column. */
@@ -30,6 +30,7 @@ import { ErrorFilledIcon } from "./svg/error-filled";
30
30
  import { ExternalLinkIcon } from "./svg/external-link";
31
31
  import { EthereumIcon } from "./svg/ethereum";
32
32
  import { GoogleIcon } from "./svg/google";
33
+ import { HourglassStartIcon } from "./svg/hourglass-start";
33
34
  import { ImageIcon } from "./svg/image";
34
35
  import { InfoIcon } from "./svg/info";
35
36
  import { iconNames } from "./registry";
@@ -68,4 +69,4 @@ export declare const Icon: {
68
69
  ({ name, color, size, className, style, ...props }: IconProps): JSX.Element | null;
69
70
  displayName: string;
70
71
  };
71
- export { ActivityChartIcon, AppleIcon, AppsIcon, BadgeCheckThinIcon, ArbitrumIcon, ArrowRightIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BaseIcon, BestPricesIcon, BnbIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, CircleOverlapIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GoogleIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, LockIcon, PencilIcon, PlaySquareIcon, PolygonIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, SparklesFilledIcon, StayInControlIcon, SuccessCheckIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, UserTrustIcon, UsdcIcon, PaperPlaneIcon, WalletAvatarIcon, WalletFilledIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
72
+ export { ActivityChartIcon, AppleIcon, AppsIcon, BadgeCheckThinIcon, ArbitrumIcon, ArrowRightIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BaseIcon, BestPricesIcon, BnbIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, CircleOverlapIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GoogleIcon, HourglassStartIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, LockIcon, PencilIcon, PlaySquareIcon, PolygonIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, SparklesFilledIcon, StayInControlIcon, SuccessCheckIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, UserTrustIcon, UsdcIcon, PaperPlaneIcon, WalletAvatarIcon, WalletFilledIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
@@ -30,6 +30,7 @@ import { ErrorFilledIcon } from "./svg/error-filled";
30
30
  import { ExternalLinkIcon } from "./svg/external-link";
31
31
  import { EthereumIcon } from "./svg/ethereum";
32
32
  import { GoogleIcon } from "./svg/google";
33
+ import { HourglassStartIcon } from "./svg/hourglass-start";
33
34
  import { ImageIcon } from "./svg/image";
34
35
  import { InfoIcon } from "./svg/info";
35
36
  import { iconNames } from "./registry";
@@ -68,4 +69,4 @@ export declare const Icon: {
68
69
  ({ name, color, size, className, style, ...props }: IconProps): JSX.Element | null;
69
70
  displayName: string;
70
71
  };
71
- export { ActivityChartIcon, AppleIcon, AppsIcon, BadgeCheckThinIcon, ArbitrumIcon, ArrowRightIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BaseIcon, BestPricesIcon, BnbIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, CircleOverlapIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GoogleIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, LockIcon, PencilIcon, PlaySquareIcon, PolygonIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, SparklesFilledIcon, StayInControlIcon, SuccessCheckIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, UserTrustIcon, UsdcIcon, PaperPlaneIcon, WalletAvatarIcon, WalletFilledIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
72
+ export { ActivityChartIcon, AppleIcon, AppsIcon, BadgeCheckThinIcon, ArbitrumIcon, ArrowRightIcon, ArrowTrendUpIcon, ArrowsToDotIcon, BankIcon, BaseIcon, BestPricesIcon, BnbIcon, BoltIcon, CheckCircleIcon, ChartCandlestickIcon, ChartLineIcon, CircleOverlapIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CloseIcon, CopyIcon, CreateAccountIcon, CreditCardIcon, DisconnectIcon, DotsHorizontalIcon, DocumentIcon, DownloadIcon, ErrorFilledIcon, EthereumIcon, ExternalLinkIcon, GoogleIcon, HourglassStartIcon, iconNames, ImageIcon, InfoIcon, LinkAccountsIcon, LockIcon, PencilIcon, PlaySquareIcon, PolygonIcon, ProfileIcon, RevenueAltIcon, SearchIcon, ShieldTrustIcon, SolanaIcon, SparklesFilledIcon, StayInControlIcon, SuccessCheckIcon, TriangleDownIcon, TriangleUpFilledIcon, TriangleUpIcon, UploadIcon, UserTrustIcon, UsdcIcon, PaperPlaneIcon, WalletAvatarIcon, WalletFilledIcon, WalletIcon, WarningFilledIcon, WarningIcon, };
@@ -156,6 +156,10 @@ export declare const iconRegistry: {
156
156
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
157
157
  displayName: string;
158
158
  };
159
+ readonly "hourglass-start": {
160
+ ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
161
+ displayName: string;
162
+ };
159
163
  readonly image: {
160
164
  ({ title, className, isDarkTheme, ...props }: import("./types").IconSvgProps): JSX.Element;
161
165
  displayName: string;
@@ -156,6 +156,10 @@ export declare const iconRegistry: {
156
156
  ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
157
157
  displayName: string;
158
158
  };
159
+ readonly "hourglass-start": {
160
+ ({ title, className, ...props }: import("./types").IconSvgProps): JSX.Element;
161
+ displayName: string;
162
+ };
159
163
  readonly image: {
160
164
  ({ title, className, isDarkTheme, ...props }: import("./types").IconSvgProps): JSX.Element;
161
165
  displayName: string;
@@ -0,0 +1,5 @@
1
+ import type { IconSvgProps } from "../types";
2
+ export declare const HourglassStartIcon: {
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 HourglassStartIcon: {
3
+ ({ title, className, ...props }: IconSvgProps): JSX.Element;
4
+ displayName: string;
5
+ };
@@ -10,7 +10,11 @@ export declare const toDate: (value: string | Date | undefined) => Date | null;
10
10
  export declare const shortenAddress: (value: string | null | undefined, options?: {
11
11
  chain?: string;
12
12
  }) => string | undefined;
13
- export declare const formatUsd: (value: number) => string;
13
+ type FormatUsdOptions = {
14
+ maximumFractionDigits?: number;
15
+ minimumFractionDigits?: number;
16
+ };
17
+ export declare const formatUsd: (value: number, options?: FormatUsdOptions) => string;
14
18
  /** Compact USD format (e.g. 127.8 → "$127.8", 50 → "$50"). */
15
19
  export declare const formatCompactUsd: (amount: number) => string;
16
20
  /** Format a raw numeric string for the amount input (adds locale grouping). */
@@ -10,7 +10,11 @@ export declare const toDate: (value: string | Date | undefined) => Date | null;
10
10
  export declare const shortenAddress: (value: string | null | undefined, options?: {
11
11
  chain?: string;
12
12
  }) => string | undefined;
13
- export declare const formatUsd: (value: number) => string;
13
+ type FormatUsdOptions = {
14
+ maximumFractionDigits?: number;
15
+ minimumFractionDigits?: number;
16
+ };
17
+ export declare const formatUsd: (value: number, options?: FormatUsdOptions) => string;
14
18
  /** Compact USD format (e.g. 127.8 → "$127.8", 50 → "$50"). */
15
19
  export declare const formatCompactUsd: (amount: number) => string;
16
20
  /** Format a raw numeric string for the amount input (adds locale grouping). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agg-build/ui",
3
- "version": "1.1.0",
3
+ "version": "1.2.1",
4
4
  "description": "Pre-built React component library for the AGG prediction market aggregator. Tailwind-based, themeable, with primitives, event surfaces, trading flows, full pages, and modals.",
5
5
  "sideEffects": false,
6
6
  "license": "MIT",
@@ -100,8 +100,8 @@
100
100
  "liveline": "^0.0.7",
101
101
  "react": "^18.0.0 || ^19.0.0",
102
102
  "react-dom": "^18.0.0 || ^19.0.0",
103
- "@agg-build/sdk": "^1.0.1",
104
- "@agg-build/hooks": "^1.0.2"
103
+ "@agg-build/hooks": "^1.2.0",
104
+ "@agg-build/sdk": "^1.2.0"
105
105
  },
106
106
  "dependencies": {
107
107
  "@number-flow/react": "^0.6.0",