@agg-build/ui 1.2.12 → 2.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 (61) hide show
  1. package/README.md +34 -1
  2. package/dist/{chunk-U55T5BPE.mjs → chunk-2UKDQ7WP.mjs} +44 -13
  3. package/dist/{chunk-X3KCFWXN.mjs → chunk-2ZS3BPSF.mjs} +1433 -1349
  4. package/dist/{chunk-IBOE7DRY.mjs → chunk-4CM4F4S6.mjs} +26 -27
  5. package/dist/{chunk-YSW4ULL5.mjs → chunk-HH7L3KLS.mjs} +1 -1
  6. package/dist/{chunk-3JXBOU24.mjs → chunk-R3U6YXSQ.mjs} +146 -81
  7. package/dist/{chunk-J6WELNCX.mjs → chunk-RF2EPYLN.mjs} +572 -181
  8. package/dist/{chunk-4WBQTUPW.mjs → chunk-RWOF44TC.mjs} +606 -324
  9. package/dist/events.js +2081 -1727
  10. package/dist/events.mjs +5 -3
  11. package/dist/index.js +4535 -3695
  12. package/dist/index.mjs +13 -9
  13. package/dist/modals.js +964 -899
  14. package/dist/modals.mjs +3 -3
  15. package/dist/pages.js +3945 -3123
  16. package/dist/pages.mjs +6 -6
  17. package/dist/primitives.js +1344 -1251
  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 +828 -688
  22. package/dist/trading.mjs +4 -4
  23. package/dist/types/events/item/event-list-item-v2.utils.d.mts +28 -0
  24. package/dist/types/events/item/event-list-item-v2.utils.d.ts +28 -0
  25. package/dist/types/events/item/event-list-item.constants.d.mts +1 -1
  26. package/dist/types/events/item/event-list-item.constants.d.ts +1 -1
  27. package/dist/types/events/item/index.d.mts +4 -0
  28. package/dist/types/events/item/index.d.ts +4 -0
  29. package/dist/types/events/list/event-list.types.d.mts +2 -0
  30. package/dist/types/events/list/event-list.types.d.ts +2 -0
  31. package/dist/types/events/list/event-list.utils.d.mts +17 -2
  32. package/dist/types/events/list/event-list.utils.d.ts +17 -2
  33. package/dist/types/events/list/index.d.mts +1 -1
  34. package/dist/types/events/list/index.d.ts +1 -1
  35. package/dist/types/pages/home/home.types.d.mts +1 -0
  36. package/dist/types/pages/home/home.types.d.ts +1 -0
  37. package/dist/types/pages/user-profile/user-profile.types.d.mts +30 -4
  38. package/dist/types/pages/user-profile/user-profile.types.d.ts +30 -4
  39. package/dist/types/primitives/icon/index.d.mts +2 -1
  40. package/dist/types/primitives/icon/index.d.ts +2 -1
  41. package/dist/types/primitives/icon/registry.d.mts +4 -0
  42. package/dist/types/primitives/icon/registry.d.ts +4 -0
  43. package/dist/types/primitives/icon/svg/gift-bonus.d.mts +5 -0
  44. package/dist/types/primitives/icon/svg/gift-bonus.d.ts +5 -0
  45. package/dist/types/primitives/search/search.types.d.mts +2 -1
  46. package/dist/types/primitives/search/search.types.d.ts +2 -1
  47. package/dist/types/primitives/skeleton/index.d.mts +1 -1
  48. package/dist/types/primitives/skeleton/index.d.ts +1 -1
  49. package/dist/types/primitives/skeleton/skeleton.types.d.mts +4 -0
  50. package/dist/types/primitives/skeleton/skeleton.types.d.ts +4 -0
  51. package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.mts +1 -1
  52. package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.ts +1 -1
  53. package/dist/types/profile/tabs/accounts-wallets-tab.d.mts +1 -1
  54. package/dist/types/profile/tabs/accounts-wallets-tab.d.ts +1 -1
  55. package/dist/types/trading/place-order/index.d.mts +1 -1
  56. package/dist/types/trading/place-order/index.d.ts +1 -1
  57. package/dist/types/trading/place-order/index.place-order.types.d.mts +4 -1
  58. package/dist/types/trading/place-order/index.place-order.types.d.ts +4 -1
  59. package/dist/types/trading/place-order/index.place-order.utils.d.mts +2 -0
  60. package/dist/types/trading/place-order/index.place-order.utils.d.ts +2 -0
  61. package/package.json +3 -3
package/README.md CHANGED
@@ -82,7 +82,40 @@ Override theme tokens with CSS variables on the `.agg-root` container (automatic
82
82
  --agg-color-primary: #ed8200;
83
83
  --agg-color-foreground: #1a1a1a;
84
84
  --agg-radius-md: 8px;
85
- --agg-font-family-sans: "Inter", sans-serif;
85
+ --agg-font-family-sans: "Your Font", ui-sans-serif, system-ui, sans-serif;
86
+ }
87
+ ```
88
+
89
+ You can also set `--agg-font-family-sans` on `:root`; a value on `.agg-root` wins because it is
90
+ scoped closer to the AGG UI tree.
91
+
92
+ With Next.js `next/font`, expose the generated font variable on an ancestor, then map it into the
93
+ AGG token on `.agg-root`:
94
+
95
+ ```tsx
96
+ import { Inter } from "next/font/google";
97
+
98
+ const inter = Inter({
99
+ subsets: ["latin"],
100
+ variable: "--font-inter",
101
+ });
102
+
103
+ export default function App() {
104
+ return (
105
+ <div className={inter.variable}>
106
+ <AggProvider>
107
+ <div className="agg-root">
108
+ <AggApp />
109
+ </div>
110
+ </AggProvider>
111
+ </div>
112
+ );
113
+ }
114
+ ```
115
+
116
+ ```css
117
+ .agg-root {
118
+ --agg-font-family-sans: var(--font-inter), ui-sans-serif, system-ui, sans-serif;
86
119
  }
87
120
  ```
88
121
 
@@ -38,7 +38,7 @@ import {
38
38
  shortenAddress,
39
39
  useOptionalToast,
40
40
  venueLogoLabels
41
- } from "./chunk-X3KCFWXN.mjs";
41
+ } from "./chunk-2ZS3BPSF.mjs";
42
42
 
43
43
  // src/deposit/index.tsx
44
44
  import { useAggAuthState, useAggUiConfig, useDepositAddresses, useLabels as useLabels11 } from "@agg-build/hooks";
@@ -3294,7 +3294,7 @@ var OnboardingModal = ({
3294
3294
  OnboardingModal.displayName = "OnboardingModal";
3295
3295
 
3296
3296
  // src/profile/index.tsx
3297
- import { useState as useState10, useEffect as useEffect7, useCallback as useCallback9, useMemo as useMemo2 } from "react";
3297
+ import { useState as useState10, useEffect as useEffect7, useCallback as useCallback9, useMemo as useMemo3 } from "react";
3298
3298
  import { useAggClient as useAggClient2, useAggAuthState as useAggAuthState2 } from "@agg-build/hooks";
3299
3299
 
3300
3300
  // src/profile/profile-modal.constants.ts
@@ -3483,6 +3483,13 @@ var DisconnectTextButton = ({ onClick }) => /* @__PURE__ */ jsx24(
3483
3483
  }
3484
3484
  );
3485
3485
  var VerifiedBadge = () => /* @__PURE__ */ jsx24(Icon, { name: "check-badge", size: "small", color: "var(--agg-color-primary, #536dfe)" });
3486
+ var getWalletIconName = (wallet) => {
3487
+ const chain = wallet.chain.toLowerCase();
3488
+ if (chain === "solana" || chain === "svm") {
3489
+ return "solana";
3490
+ }
3491
+ return "ethereum";
3492
+ };
3486
3493
  var ConnectedAccountRow = ({
3487
3494
  icon,
3488
3495
  label,
@@ -3511,7 +3518,6 @@ var AccountsWalletsTab = ({
3511
3518
  onDisconnectGoogle,
3512
3519
  onConnectApple,
3513
3520
  onDisconnectApple,
3514
- onDisconnectWallet,
3515
3521
  onConnectEmail
3516
3522
  }) => {
3517
3523
  const twitter = socialAccounts == null ? void 0 : socialAccounts.twitter;
@@ -3579,7 +3585,7 @@ var AccountsWalletsTab = ({
3579
3585
  /* @__PURE__ */ jsx24(
3580
3586
  AccountIdentity,
3581
3587
  {
3582
- icon: "wallet",
3588
+ icon: getWalletIconName(wallet),
3583
3589
  iconClassName: "text-agg-foreground",
3584
3590
  label: (_a = wallet.displayAddress) != null ? _a : wallet.address
3585
3591
  }
@@ -3593,8 +3599,16 @@ var AccountsWalletsTab = ({
3593
3599
  AccountsWalletsTab.displayName = "AccountsWalletsTab";
3594
3600
 
3595
3601
  // src/profile/tabs/trading-access-tab.tsx
3596
- import { useAggClient, useDepositAddresses as useDepositAddresses2, useLabels as useLabels22 } from "@agg-build/hooks";
3597
- import { useCallback as useCallback8, useEffect as useEffect6, useState as useState9 } from "react";
3602
+ import {
3603
+ getVenueAvailabilityState,
3604
+ getVisibleVenuesByConfig,
3605
+ useAggClient,
3606
+ useAppConfig,
3607
+ useDepositAddresses as useDepositAddresses2,
3608
+ useGeoBlock,
3609
+ useLabels as useLabels22
3610
+ } from "@agg-build/hooks";
3611
+ import { useCallback as useCallback8, useEffect as useEffect6, useMemo as useMemo2, useState as useState9 } from "react";
3598
3612
  import { jsx as jsx25, jsxs as jsxs25 } from "react/jsx-runtime";
3599
3613
  var TRADING_ACCESS_VENUES = [
3600
3614
  "kalshi",
@@ -3606,7 +3620,7 @@ var TRADING_ACCESS_VENUES = [
3606
3620
  "myriad",
3607
3621
  "hyperliquid"
3608
3622
  ];
3609
- var UNAVAILABLE_VENUES = /* @__PURE__ */ new Set([]);
3623
+ var TRADING_ACCESS_VENUE_ITEMS = TRADING_ACCESS_VENUES.map((id) => ({ id }));
3610
3624
  var SectionTitle2 = ({ children }) => /* @__PURE__ */ jsx25("h3", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children });
3611
3625
  var AccessRow = ({ children }) => /* @__PURE__ */ jsx25(
3612
3626
  "div",
@@ -3667,32 +3681,49 @@ var AvailableStatus = () => /* @__PURE__ */ jsxs25("div", { className: "flex ite
3667
3681
  /* @__PURE__ */ jsx25(Icon, { name: "check-badge", size: "small", color: "var(--agg-color-primary, #536dfe)" }),
3668
3682
  /* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground whitespace-nowrap", children: "Available" })
3669
3683
  ] });
3684
+ var GeoblockedStatus = () => {
3685
+ const labels = useLabels22();
3686
+ return /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-2 text-agg-muted-foreground", children: [
3687
+ /* @__PURE__ */ jsx25(Icon, { name: "warning-filled", size: "small", color: "currentColor" }),
3688
+ /* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 whitespace-nowrap", children: labels.trading.venueUnavailableInRegion })
3689
+ ] });
3690
+ };
3670
3691
  var TradingAccessTab = ({
3671
3692
  venueAccounts,
3672
3693
  onKycError
3673
3694
  }) => {
3674
3695
  const labels = useLabels22();
3696
+ const { disabledVenues } = useAppConfig();
3697
+ const { isLocationBlocked } = useGeoBlock();
3698
+ const visibleVenues = useMemo2(
3699
+ () => getVisibleVenuesByConfig(TRADING_ACCESS_VENUE_ITEMS, disabledVenues),
3700
+ [disabledVenues]
3701
+ );
3675
3702
  return /* @__PURE__ */ jsxs25("div", { className: "agg-trading-access-section flex flex-col gap-4", children: [
3676
3703
  /* @__PURE__ */ jsx25(SectionTitle2, { children: "Venues" }),
3677
- /* @__PURE__ */ jsx25("div", { className: "flex flex-col gap-3", children: TRADING_ACCESS_VENUES.map((venue) => {
3704
+ /* @__PURE__ */ jsx25("div", { className: "flex flex-col gap-3", children: visibleVenues.map(({ id: venue }) => {
3678
3705
  var _a;
3679
3706
  const venueAccount = venueAccounts == null ? void 0 : venueAccounts.find((account) => account.venue === venue);
3680
3707
  const isKalshi = venue === "kalshi";
3681
3708
  const isVerified = (venueAccount == null ? void 0 : venueAccount.kycStatus) === "verified";
3682
- const isUnavailable = UNAVAILABLE_VENUES.has(venue);
3709
+ const availabilityState = getVenueAvailabilityState({
3710
+ venueId: venue,
3711
+ disabledVenues,
3712
+ isLocationBlocked
3713
+ });
3683
3714
  const displayName = (_a = venueLogoLabels[venue]) != null ? _a : venue;
3684
3715
  return /* @__PURE__ */ jsxs25(AccessRow, { children: [
3685
3716
  /* @__PURE__ */ jsxs25("div", { className: "flex min-w-0 items-center gap-3", children: [
3686
3717
  /* @__PURE__ */ jsx25(VenueLogo, { venue, size: "small" }),
3687
3718
  /* @__PURE__ */ jsx25("span", { className: "truncate text-agg-base font-agg-normal leading-6 text-agg-foreground", children: displayName })
3688
3719
  ] }),
3689
- isKalshi && !isVerified ? /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-4", children: [
3720
+ availabilityState === "geoblocked" ? /* @__PURE__ */ jsx25(GeoblockedStatus, {}) : isKalshi && !isVerified ? /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-4", children: [
3690
3721
  /* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: labels.trading.kycRequired }),
3691
3722
  /* @__PURE__ */ jsx25(VerifyIdentityButton, { onError: onKycError })
3692
3723
  ] }) : isKalshi && isVerified ? /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-4", children: [
3693
3724
  /* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: labels.trading.verified }),
3694
3725
  /* @__PURE__ */ jsx25(AvailableStatus, {})
3695
- ] }) : isUnavailable ? /* @__PURE__ */ jsx25("span", { className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground whitespace-nowrap", children: labels.trading.venueUnavailableInRegion }) : /* @__PURE__ */ jsx25(AvailableStatus, {})
3726
+ ] }) : /* @__PURE__ */ jsx25(AvailableStatus, {})
3696
3727
  ] }, venue);
3697
3728
  }) })
3698
3729
  ] });
@@ -3940,7 +3971,7 @@ var ProfileModal = ({
3940
3971
  }),
3941
3972
  [client, onDisconnectWallet]
3942
3973
  );
3943
- const providerActionMap = useMemo2(
3974
+ const providerActionMap = useMemo3(
3944
3975
  () => ({
3945
3976
  twitter: {
3946
3977
  connect: () => {
@@ -3982,7 +4013,7 @@ var ProfileModal = ({
3982
4013
  handleDisconnectTwitter
3983
4014
  ]
3984
4015
  );
3985
- const resolvedWallets = useMemo2(() => {
4016
+ const resolvedWallets = useMemo3(() => {
3986
4017
  var _a2, _b2;
3987
4018
  if (wallets) return wallets;
3988
4019
  return (_b2 = (_a2 = user == null ? void 0 : user.wallets) == null ? void 0 : _a2.map((wallet) => {