@agg-build/ui 1.0.1 → 1.1.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 (80) hide show
  1. package/dist/{chunk-5ES2VJHO.mjs → chunk-7JEJIGG4.mjs} +162 -253
  2. package/dist/{chunk-BYMLPLEZ.mjs → chunk-F3SU7BRE.mjs} +10 -10
  3. package/dist/{chunk-WLXYCBZV.mjs → chunk-IT2Y62MG.mjs} +31 -35
  4. package/dist/{chunk-43K4PFBC.mjs → chunk-JDYZJKTE.mjs} +2 -2
  5. package/dist/{chunk-HD6HBTK2.mjs → chunk-KDMNFHPL.mjs} +369 -19
  6. package/dist/{chunk-LPNZOX3E.mjs → chunk-OHEZGKFM.mjs} +443 -884
  7. package/dist/{chunk-YZNO6IUD.mjs → chunk-R6DETAZ6.mjs} +1343 -1173
  8. package/dist/events.js +1886 -1545
  9. package/dist/events.mjs +3 -3
  10. package/dist/index.js +3748 -3707
  11. package/dist/index.mjs +191 -118
  12. package/dist/modals.js +1042 -943
  13. package/dist/modals.mjs +3 -3
  14. package/dist/pages.js +2822 -2864
  15. package/dist/pages.mjs +6 -6
  16. package/dist/primitives.js +1322 -1166
  17. package/dist/primitives.mjs +9 -1
  18. package/dist/styles.css +1 -1
  19. package/dist/tailwind.css +1 -1
  20. package/dist/trading.js +3770 -3718
  21. package/dist/trading.mjs +10 -12
  22. package/dist/types/events/item-details/settlement-summary.d.mts +6 -2
  23. package/dist/types/events/item-details/settlement-summary.d.ts +6 -2
  24. package/dist/types/events/list/event-list.types.d.mts +1 -1
  25. package/dist/types/events/list/event-list.types.d.ts +1 -1
  26. package/dist/types/events/list/event-list.utils.d.mts +1 -1
  27. package/dist/types/events/list/event-list.utils.d.ts +1 -1
  28. package/dist/types/pages/event-market/event-market.types.d.mts +1 -3
  29. package/dist/types/pages/event-market/event-market.types.d.ts +1 -3
  30. package/dist/types/pages/user-profile/components/available-balance-card.d.mts +0 -1
  31. package/dist/types/pages/user-profile/components/available-balance-card.d.ts +0 -1
  32. package/dist/types/primitives/icon/icon.types.d.mts +1 -2
  33. package/dist/types/primitives/icon/icon.types.d.ts +1 -2
  34. package/dist/types/primitives/icon/index.d.mts +4 -1
  35. package/dist/types/primitives/icon/index.d.ts +4 -1
  36. package/dist/types/primitives/icon/registry.d.mts +12 -0
  37. package/dist/types/primitives/icon/registry.d.ts +12 -0
  38. package/dist/types/primitives/icon/svg/apps.d.mts +5 -0
  39. package/dist/types/primitives/icon/svg/apps.d.ts +5 -0
  40. package/dist/types/primitives/icon/svg/circle-overlap.d.mts +5 -0
  41. package/dist/types/primitives/icon/svg/circle-overlap.d.ts +5 -0
  42. package/dist/types/primitives/icon/svg/lock.d.mts +5 -0
  43. package/dist/types/primitives/icon/svg/lock.d.ts +5 -0
  44. package/dist/types/primitives/select/index.d.mts +1 -1
  45. package/dist/types/primitives/select/index.d.ts +1 -1
  46. package/dist/types/primitives/select/select.types.d.mts +1 -1
  47. package/dist/types/primitives/select/select.types.d.ts +1 -1
  48. package/dist/types/primitives/select/select.utils.d.mts +0 -1
  49. package/dist/types/primitives/select/select.utils.d.ts +0 -1
  50. package/dist/types/primitives/skeleton/index.d.mts +2 -1
  51. package/dist/types/primitives/skeleton/index.d.ts +2 -1
  52. package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.mts +4 -0
  53. package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.ts +4 -0
  54. package/dist/types/primitives/typography/index.d.mts +1 -1
  55. package/dist/types/primitives/typography/index.d.ts +1 -1
  56. package/dist/types/primitives/typography/typography.types.d.mts +3 -1
  57. package/dist/types/primitives/typography/typography.types.d.ts +3 -1
  58. package/dist/types/shared/utils.d.mts +3 -1
  59. package/dist/types/shared/utils.d.ts +3 -1
  60. package/dist/types/trading/index.d.mts +0 -1
  61. package/dist/types/trading/index.d.ts +0 -1
  62. package/dist/types/trading/place-order/index.place-order.types.d.mts +0 -1
  63. package/dist/types/trading/place-order/index.place-order.types.d.ts +0 -1
  64. package/dist/types/trading/place-order/index.place-order.utils.d.mts +0 -4
  65. package/dist/types/trading/place-order/index.place-order.utils.d.ts +0 -4
  66. package/dist/types/trading/settlement/index.d.mts +9 -6
  67. package/dist/types/trading/settlement/index.d.ts +9 -6
  68. package/dist/types/trading/settlement/settlement-text-renderer.d.mts +8 -0
  69. package/dist/types/trading/settlement/settlement-text-renderer.d.ts +8 -0
  70. package/dist/types/trading/settlement/settlement-text.utils.d.mts +36 -0
  71. package/dist/types/trading/settlement/settlement-text.utils.d.ts +36 -0
  72. package/dist/types/trading/types.d.mts +0 -19
  73. package/dist/types/trading/types.d.ts +0 -19
  74. package/dist/types/trading/utils.d.mts +0 -1
  75. package/dist/types/trading/utils.d.ts +0 -1
  76. package/package.json +3 -3
  77. package/dist/types/primitives/card/card.constants.d.mts +0 -4
  78. package/dist/types/primitives/card/card.constants.d.ts +0 -4
  79. package/dist/types/trading/settlement/settlement-details.utils.d.mts +0 -7
  80. package/dist/types/trading/settlement/settlement-details.utils.d.ts +0 -7
@@ -38,8 +38,9 @@ import {
38
38
  cn,
39
39
  formatCompactUsd,
40
40
  getMotionClassName,
41
+ shortenAddress,
41
42
  venueLogoLabels
42
- } from "./chunk-YZNO6IUD.mjs";
43
+ } from "./chunk-R6DETAZ6.mjs";
43
44
 
44
45
  // src/deposit/index.tsx
45
46
  import { useEffect as useEffect3, useMemo, useRef, useState as useState2 } from "react";
@@ -3695,18 +3696,17 @@ var ProfileModal = ({
3695
3696
  handleDisconnectTwitter
3696
3697
  ]
3697
3698
  );
3698
- const shortenAddress = (address) => {
3699
- if (address.length <= 12) return address;
3700
- return `${address.slice(0, 6)}...${address.slice(-4)}`;
3701
- };
3702
3699
  const resolvedWallets = useMemo2(() => {
3703
3700
  var _a2, _b2;
3704
3701
  if (wallets) return wallets;
3705
- return (_b2 = (_a2 = user == null ? void 0 : user.wallets) == null ? void 0 : _a2.map((wallet) => ({
3706
- chain: wallet.chain,
3707
- address: wallet.address,
3708
- displayAddress: shortenAddress(wallet.address)
3709
- }))) != null ? _b2 : [];
3702
+ return (_b2 = (_a2 = user == null ? void 0 : user.wallets) == null ? void 0 : _a2.map((wallet) => {
3703
+ var _a3;
3704
+ return {
3705
+ chain: wallet.chain,
3706
+ address: wallet.address,
3707
+ displayAddress: (_a3 = shortenAddress(wallet.address, { chain: wallet.chain })) != null ? _a3 : wallet.address
3708
+ };
3709
+ })) != null ? _b2 : [];
3710
3710
  }, [user == null ? void 0 : user.wallets, wallets]);
3711
3711
  const resolvedExchanges = useMemo2(() => {
3712
3712
  var _a2, _b2;
@@ -9,13 +9,13 @@ import {
9
9
  isErrorWithStatus,
10
10
  useEventListTabs,
11
11
  useEventListTabsHeaderOverflow
12
- } from "./chunk-5ES2VJHO.mjs";
12
+ } from "./chunk-7JEJIGG4.mjs";
13
13
  import {
14
14
  DEPOSIT_MODAL_OPEN_EVENT,
15
15
  PlaceOrder,
16
16
  SettlementDetails,
17
17
  WITHDRAW_MODAL_OPEN_EVENT
18
- } from "./chunk-LPNZOX3E.mjs";
18
+ } from "./chunk-OHEZGKFM.mjs";
19
19
  import {
20
20
  AggErrorBoundary,
21
21
  Button,
@@ -43,8 +43,8 @@ import {
43
43
  cn,
44
44
  filterOpenEvents,
45
45
  resolveTabVenus,
46
- venueLogoNames
47
- } from "./chunk-YZNO6IUD.mjs";
46
+ shortenAddress
47
+ } from "./chunk-R6DETAZ6.mjs";
48
48
 
49
49
  // src/pages/home/index.tsx
50
50
  import {
@@ -105,7 +105,7 @@ var resolveEventMarketPageStickyState = ({
105
105
  contentClassName: cn("lg:items-stretch!"),
106
106
  sidebarClassName: cn(
107
107
  "py-4 sm:py-6 md:py-8",
108
- "lg:self-start lg:sticky lg:top-[var(--agg-event-market-sidebar-top)] lg:max-h-[calc(100dvh-var(--agg-event-market-sidebar-top))] lg:overflow-y-auto lg:overscroll-contain",
108
+ "lg:self-start lg:sticky lg:top-[var(--agg-event-market-sidebar-top)] lg:max-h-[calc(100vh-var(--agg-event-market-sidebar-top))] lg:overflow-y-auto lg:overscroll-contain",
109
109
  stickyOrderPanel == null ? void 0 : stickyOrderPanel.className
110
110
  ),
111
111
  placeOrder: "",
@@ -285,7 +285,6 @@ var EventMarketPageNotFoundState = ({
285
285
  );
286
286
  };
287
287
  var EventMarketPageLoadingState = ({
288
- settlement: _settlement,
289
288
  classNames,
290
289
  stickyOrderPanel
291
290
  }) => {
@@ -342,7 +341,7 @@ var EventMarketPageLoadingState = ({
342
341
  {
343
342
  className: cn(
344
343
  "agg-sidebar",
345
- "hidden w-full shrink-0 lg:block lg:w-[343px] lg:shrink-0",
344
+ "hidden w-full shrink-0 lg:block lg:w-[342px] lg:shrink-0",
346
345
  stickyOrderPanelState == null ? void 0 : stickyOrderPanelState.sidebarClassName,
347
346
  classNames == null ? void 0 : classNames.sidebar
348
347
  ),
@@ -451,7 +450,7 @@ var EventMarketPageContent = ({
451
450
  "aside",
452
451
  {
453
452
  className: cn(
454
- "agg-sidebar hidden w-full lg:block lg:max-w-[360px] lg:shrink-0",
453
+ "agg-sidebar hidden w-full lg:block lg:max-w-[342px] lg:shrink-0",
455
454
  stickyOrderPanelState == null ? void 0 : stickyOrderPanelState.sidebarClassName,
456
455
  classNames == null ? void 0 : classNames.sidebar
457
456
  ),
@@ -498,7 +497,6 @@ var EventMarketPage = (props) => {
498
497
  return /* @__PURE__ */ jsx(
499
498
  EventMarketPageLoadingState,
500
499
  {
501
- settlement: props.settlement,
502
500
  classNames: props.classNames,
503
501
  stickyOrderPanel: props.stickyOrderPanel
504
502
  }
@@ -511,7 +509,6 @@ var EventMarketPage = (props) => {
511
509
  return /* @__PURE__ */ jsx(
512
510
  EventMarketPageLoadingState,
513
511
  {
514
- settlement: props.settlement,
515
512
  classNames: props.classNames,
516
513
  stickyOrderPanel: props.stickyOrderPanel
517
514
  }
@@ -1137,6 +1134,14 @@ var CHAIN_ID_TO_ICON = {
1137
1134
  "42161": "arbitrum",
1138
1135
  "792703809": "solana"
1139
1136
  };
1137
+ var CHAIN_VENUE_MAP = {
1138
+ "137": ["polymarket"],
1139
+ // Polygon
1140
+ "792703809": ["kalshi"],
1141
+ // Solana
1142
+ "56": ["limitless", "opinion"]
1143
+ // BNB
1144
+ };
1140
1145
  var chainIconName = (label, key) => {
1141
1146
  if (key && CHAIN_ID_TO_ICON[key]) return CHAIN_ID_TO_ICON[key];
1142
1147
  const k = label.trim().toLowerCase();
@@ -1150,14 +1155,6 @@ var chainIconName = (label, key) => {
1150
1155
  if (k.includes("ethereum") || k.includes("eth")) return "ethereum";
1151
1156
  return void 0;
1152
1157
  };
1153
- var venueNameSet = new Set(venueLogoNames);
1154
- var isKnownVenueName = (venue) => {
1155
- return venueNameSet.has(venue);
1156
- };
1157
- var getDisplayVenues = (venues) => {
1158
- if (!Array.isArray(venues) || venues.length === 0) return [];
1159
- return venues.filter(isKnownVenueName);
1160
- };
1161
1158
  var AvailableBalanceCard = ({
1162
1159
  label = "Available Balance",
1163
1160
  valueLabel,
@@ -1206,6 +1203,7 @@ var AvailableBalanceCard = ({
1206
1203
  content: /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-4 items-start justify-start", children: [
1207
1204
  /* @__PURE__ */ jsx3("div", { className: "font-agg-sans text-agg-base leading-agg-6 font-agg-bold text-agg-foreground", children: "Balance by network" }),
1208
1205
  /* @__PURE__ */ jsx3("div", { role: "list", className: "agg-balance-list flex flex-col gap-3 w-full", children: chains.map((row) => {
1206
+ var _a;
1209
1207
  const icon = chainIconName(row.label, row.key);
1210
1208
  return /* @__PURE__ */ jsxs3(
1211
1209
  "div",
@@ -1223,7 +1221,7 @@ var AvailableBalanceCard = ({
1223
1221
  minimumFractionDigits: Number.isInteger(row.balance) ? 0 : 1,
1224
1222
  maximumFractionDigits: 2
1225
1223
  }) }),
1226
- /* @__PURE__ */ jsx3("div", { className: "flex w-12 shrink-0 items-center justify-end gap-1 empty:hidden", children: getDisplayVenues(row.venues).slice(0, 2).map((venue, venueIndex) => /* @__PURE__ */ jsx3(
1224
+ /* @__PURE__ */ jsx3("div", { className: "flex w-12 shrink-0 items-center justify-end gap-1 empty:hidden", children: ((_a = CHAIN_VENUE_MAP[row.key]) != null ? _a : []).slice(0, 2).map((venue, venueIndex) => /* @__PURE__ */ jsx3(
1227
1225
  VenueLogo,
1228
1226
  {
1229
1227
  venue,
@@ -2513,7 +2511,7 @@ var UserInfoCard = ({
2513
2511
  className
2514
2512
  ),
2515
2513
  children: [
2516
- /* @__PURE__ */ jsxs10("div", { className: "agg-profile-header flex w-full flex-row flex-wrap items-start gap-4 sm:gap-5 pt-5", children: [
2514
+ /* @__PURE__ */ jsxs10("div", { className: "agg-profile-header flex w-full flex-row flex-wrap items-center gap-4 sm:gap-5 pt-5", children: [
2517
2515
  /* @__PURE__ */ jsx10("div", { className: "agg-profile-avatar shrink-0", children: user.avatarUrl ? /* @__PURE__ */ jsx10(
2518
2516
  RemoteImage,
2519
2517
  {
@@ -2675,11 +2673,6 @@ var TOKEN_DECIMALS_BY_CHAIN_AND_SYMBOL = {
2675
2673
  USDT: 18
2676
2674
  }
2677
2675
  };
2678
- var shortenAddress = (address) => {
2679
- if (!address) return void 0;
2680
- if (address.length <= 12) return address;
2681
- return `${address.slice(0, 6)}...${address.slice(-5)}`;
2682
- };
2683
2676
  var parseRawMicroValue = (value) => {
2684
2677
  if (!value) return null;
2685
2678
  if (value.startsWith("0x") || value.startsWith("0X")) {
@@ -3092,7 +3085,8 @@ var UserProfilePage = ({
3092
3085
  var _a, _b, _c, _d, _e, _f;
3093
3086
  if (user) return user;
3094
3087
  const fullUser = profileUser != null ? profileUser : currentUser;
3095
- const fallbackUsername = (fullUser == null ? void 0 : fullUser.id) ? `user_${fullUser.id.slice(0, 6)}` : "User";
3088
+ const walletAddress = getWalletAddressFromUserProfile(fullUser);
3089
+ const fallbackUsername = walletAddress && shortenAddress(walletAddress) || "username";
3096
3090
  const twitterAccount = (_a = fullUser == null ? void 0 : fullUser.accounts) == null ? void 0 : _a.find(
3097
3091
  (account) => String(account.provider).toLowerCase() === "twitter"
3098
3092
  );
@@ -3100,9 +3094,10 @@ var UserProfilePage = ({
3100
3094
  const walletAccounts = (_d = (_c = fullUser == null ? void 0 : fullUser.accounts) == null ? void 0 : _c.filter((a) => a.provider === "wallet" || a.provider === "solana_wallet")) != null ? _d : [];
3101
3095
  const connectedWallets = walletAccounts.map((a) => {
3102
3096
  var _a2;
3097
+ const chain = a.provider === "solana_wallet" ? "solana" : "evm";
3103
3098
  return {
3104
- chain: a.provider === "solana_wallet" ? "solana" : "evm",
3105
- displayAddress: (_a2 = shortenAddress(a.providerAccountId)) != null ? _a2 : a.providerAccountId
3099
+ chain,
3100
+ displayAddress: (_a2 = shortenAddress(a.providerAccountId, { chain })) != null ? _a2 : a.providerAccountId
3106
3101
  };
3107
3102
  });
3108
3103
  return {
@@ -3116,7 +3111,7 @@ var UserProfilePage = ({
3116
3111
  ] : [],
3117
3112
  connectedExchanges: connectedVenues.map((venue) => ({ venue })),
3118
3113
  connectedWallets,
3119
- displayAddress: shortenAddress(getWalletAddressFromUserProfile(fullUser)),
3114
+ displayAddress: shortenAddress(walletAddress),
3120
3115
  socialHandle: normalizedTwitterHandle != null ? normalizedTwitterHandle : void 0
3121
3116
  };
3122
3117
  }, [connectedVenues, currentUser, profileUser, user]);
@@ -3272,6 +3267,7 @@ var UserProfilePage = ({
3272
3267
  const marketId = group.targetMarketId;
3273
3268
  return group.venueMarket.venueMarketOutcomes.map((outcome) => {
3274
3269
  var _a2, _b2, _c, _d;
3270
+ const isUnpriced = outcome.priceSource === "entry";
3275
3271
  const currentPriceCents = Math.round(outcome.currentPrice * 100);
3276
3272
  const averagePriceCents = Math.round(outcome.avgEntryPrice * 100);
3277
3273
  const pnlPrefix = outcome.unrealizedPnl >= 0 ? "+" : "";
@@ -3285,10 +3281,10 @@ var UserProfilePage = ({
3285
3281
  outcomeLabel: ((_c = outcome.title) == null ? void 0 : _c.trim()) || outcome.label,
3286
3282
  venueShareBreakdown: buildVenueShareBreakdown(outcome),
3287
3283
  averageLabel: `${averagePriceCents}\xA2`,
3288
- currentLabel: `${currentPriceCents}\xA2`,
3289
- valueLabel: formatUsd(outcome.totalValue),
3290
- pnlLabel: `${pnlPrefix}${formatUsd(outcome.unrealizedPnl)} (${pnlPrefix}${pnlPercent}%)`,
3291
- isPnlPositive: outcome.unrealizedPnl >= 0,
3284
+ currentLabel: isUnpriced ? "\u2014" : `${currentPriceCents}\xA2`,
3285
+ valueLabel: isUnpriced ? "\u2014" : formatUsd(outcome.totalValue),
3286
+ pnlLabel: isUnpriced ? "\u2014" : `${pnlPrefix}${formatUsd(outcome.unrealizedPnl)} (${pnlPrefix}${pnlPercent}%)`,
3287
+ isPnlPositive: !isUnpriced && outcome.unrealizedPnl >= 0,
3292
3288
  status: group.status,
3293
3289
  marketStatus: group.venueMarket.status,
3294
3290
  winner: (_d = outcome.winner) != null ? _d : null,
@@ -3309,8 +3305,8 @@ var UserProfilePage = ({
3309
3305
  return adaptPositionGroups(activePositionsQuery.positions);
3310
3306
  }, [activePositions, activePositionsQuery.positions, adaptPositionGroups]);
3311
3307
  const resolvedClosedPositions = useMemo3(() => {
3312
- if (closedPositions) return closedPositions;
3313
- return adaptPositionGroups(closedPositionsQuery.positions);
3308
+ const base = closedPositions != null ? closedPositions : adaptPositionGroups(closedPositionsQuery.positions);
3309
+ return base.filter((p) => p.marketStatus === "resolved");
3314
3310
  }, [closedPositions, closedPositionsQuery.positions, adaptPositionGroups]);
3315
3311
  return /* @__PURE__ */ jsx11(AggErrorBoundary, { onError, children: /* @__PURE__ */ jsx11(
3316
3312
  "section",
@@ -3,7 +3,7 @@ import {
3
3
  AGG_TERMS_OF_SERVICE_URL,
4
4
  Icon,
5
5
  cn
6
- } from "./chunk-YZNO6IUD.mjs";
6
+ } from "./chunk-R6DETAZ6.mjs";
7
7
 
8
8
  // src/geo-block-banner/index.tsx
9
9
  import { useLabels } from "@agg-build/hooks";
@@ -18,7 +18,7 @@ var GeoBlockBanner = ({
18
18
  return /* @__PURE__ */ jsxs(
19
19
  "div",
20
20
  {
21
- className: cn("flex items-center gap-5 rounded-agg-sm bg-agg-secondary-hover p-3", className),
21
+ className: cn("flex items-center gap-5 rounded-agg-lg bg-agg-secondary-hover p-3", className),
22
22
  role: "status",
23
23
  children: [
24
24
  /* @__PURE__ */ jsxs("p", { className: "min-w-0 flex-1 text-agg-xs leading-agg-4 text-agg-foreground", children: [