@agg-build/ui 4.13.2 → 4.15.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.
@@ -19,7 +19,7 @@ import {
19
19
  selectPrimaryVenueMarket,
20
20
  skeletonViews,
21
21
  sortOutcomes
22
- } from "./chunk-W7HQVQ22.mjs";
22
+ } from "./chunk-U6ANP4P5.mjs";
23
23
 
24
24
  // src/trading/trading-context/index.tsx
25
25
  import { useEventTradingContext } from "@agg-build/hooks";
@@ -24,7 +24,7 @@ import {
24
24
  resolveUnifiedOrderBookEntries,
25
25
  sortOutcomeSelectorOutcomes,
26
26
  useEventTradingContext
27
- } from "./chunk-6EHT5OFU.mjs";
27
+ } from "./chunk-2OQCZNGY.mjs";
28
28
  import {
29
29
  AutocompleteSelect,
30
30
  Badge,
@@ -78,7 +78,7 @@ import {
78
78
  sortOutcomes,
79
79
  splitEventsByLifecycle,
80
80
  validateSubcategoryPath
81
- } from "./chunk-W7HQVQ22.mjs";
81
+ } from "./chunk-U6ANP4P5.mjs";
82
82
 
83
83
  // src/events/item/index.tsx
84
84
  import {
@@ -3062,9 +3062,7 @@ var EventListItemDetailsContent = ({
3062
3062
  {
3063
3063
  className: cn("group/agg-event-details", detailsBaseCardClassName, classNames == null ? void 0 : classNames.root),
3064
3064
  "aria-label": ariaLabel != null ? ariaLabel : [resolvedTitle.title, (_c = recurringMarkets == null ? void 0 : recurringMarkets.windowLabel) != null ? _c : resolvedTitle.timestampLabel].filter(Boolean).join(" "),
3065
- onClick: () => {
3066
- onClick == null ? void 0 : onClick(event);
3067
- },
3065
+ onClick: onClick ? () => onClick(event) : void 0,
3068
3066
  children: [
3069
3067
  /* @__PURE__ */ jsxs5(
3070
3068
  "div",
@@ -9,13 +9,13 @@ import {
9
9
  getTradingVenueLabel,
10
10
  prepareSettlementDifferences,
11
11
  resolveOrderEligibilityMessage
12
- } from "./chunk-6EHT5OFU.mjs";
12
+ } from "./chunk-2OQCZNGY.mjs";
13
13
  import {
14
14
  ConnectKalshiModal,
15
15
  GeoBlockBanner,
16
16
  SharedKycModal,
17
17
  subscribeAggDepositNotification
18
- } from "./chunk-TXQJUVRW.mjs";
18
+ } from "./chunk-QQ2Q75BF.mjs";
19
19
  import {
20
20
  AGG_TERMS_OF_SERVICE_URL,
21
21
  Button,
@@ -48,7 +48,7 @@ import {
48
48
  resolveResolvedOutcomeLabel,
49
49
  skeletonViews,
50
50
  useOptionalToast
51
- } from "./chunk-W7HQVQ22.mjs";
51
+ } from "./chunk-U6ANP4P5.mjs";
52
52
 
53
53
  // src/trading/types.ts
54
54
  import { Venue, enumGuard, isFiniteNonNeg, safeParse } from "@agg-build/sdk";
@@ -5011,7 +5011,7 @@ var PlaceOrder = ({
5011
5011
  disabledVenues,
5012
5012
  isConfigLoading: isAppConfigLoading
5013
5013
  }) === "available";
5014
- const needsKalshiConnection = isAuthenticated && hasKalshiConnectionState && isKalshiAvailable && isKalshiRoute && !isKalshiAccountActive;
5014
+ const needsKalshiConnection = !isPaperMode && isAuthenticated && hasKalshiConnectionState && isKalshiAvailable && isKalshiRoute && !isKalshiAccountActive;
5015
5015
  const handleVerifyKalshi = useCallback3(
5016
5016
  (credentials) => __async(null, null, function* () {
5017
5017
  if (onConnectKalshi) {
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  ConnectKalshiModal,
4
4
  dispatchAggDepositNotification
5
- } from "./chunk-TXQJUVRW.mjs";
5
+ } from "./chunk-QQ2Q75BF.mjs";
6
6
  import {
7
7
  BoltIcon,
8
8
  Button,
@@ -36,7 +36,7 @@ import {
36
36
  shortenAddress,
37
37
  useOptionalToast,
38
38
  venueLogoLabels
39
- } from "./chunk-W7HQVQ22.mjs";
39
+ } from "./chunk-U6ANP4P5.mjs";
40
40
 
41
41
  // src/deposit/index.tsx
42
42
  import { useAggAuthState, useAggUiConfig, useDepositAddresses, useLabels as useLabels11 } from "@agg-build/hooks";
@@ -2489,12 +2489,16 @@ var PaperTradingBadge = ({
2489
2489
  placement = "chip",
2490
2490
  isAuthenticated = false,
2491
2491
  forceVisible = false,
2492
+ label,
2493
+ showWhenAuthenticated = false,
2492
2494
  classNames
2493
2495
  }) => {
2494
2496
  const labels = useLabels15();
2495
2497
  const { isPaperMode, isResolving } = useResolvedExecutionMode();
2496
2498
  if (!forceVisible && (isResolving || !isPaperMode)) return null;
2497
- if (placement === "brand" && isAuthenticated && !forceVisible) return null;
2499
+ if (placement === "brand" && isAuthenticated && !forceVisible && !showWhenAuthenticated) {
2500
+ return null;
2501
+ }
2498
2502
  const placementClassName = {
2499
2503
  brand: "inline-flex md:hidden",
2500
2504
  chip: "inline-flex",
@@ -2538,7 +2542,7 @@ var PaperTradingBadge = ({
2538
2542
  "text-[10px] leading-[14px] font-agg-bold uppercase whitespace-nowrap",
2539
2543
  classNames == null ? void 0 : classNames.pill
2540
2544
  ),
2541
- children: labels.paperTrading.badge
2545
+ children: label != null ? label : labels.paperTrading.badge
2542
2546
  }
2543
2547
  )
2544
2548
  }
@@ -20,7 +20,7 @@ import {
20
20
  __spreadProps,
21
21
  __spreadValues,
22
22
  cn
23
- } from "./chunk-W7HQVQ22.mjs";
23
+ } from "./chunk-U6ANP4P5.mjs";
24
24
 
25
25
  // src/geo-block-banner/index.tsx
26
26
  import { useLabels } from "@agg-build/hooks";
@@ -4049,7 +4049,8 @@ var getCardClassName = ({
4049
4049
  "relative flex w-full flex-col font-agg-sans rounded-[calc(var(--agg-radius-xl)-1px)] bg-agg-secondary text-agg-foreground shadow-agg-card",
4050
4050
  (hasOnClick || hasHref) && "cursor-pointer",
4051
4051
  hasHref && "no-underline text-inherit",
4052
- getMotionClassName(
4052
+ // Only interactive cards lift on hover; a lift on a static card reads as clickable.
4053
+ (hasOnClick || hasHref) && getMotionClassName(
4053
4054
  enableAnimations,
4054
4055
  "transition-shadow hover:shadow-agg-card-hover duration-300 ease-in-out"
4055
4056
  ),
@@ -12,7 +12,7 @@ import {
12
12
  isErrorWithStatus,
13
13
  useEventListTabs,
14
14
  useEventListTabsHeaderOverflow
15
- } from "./chunk-IS45S6R3.mjs";
15
+ } from "./chunk-BTQGP257.mjs";
16
16
  import {
17
17
  DEPOSIT_MODAL_OPEN_EVENT,
18
18
  PlaceOrder,
@@ -21,12 +21,12 @@ import {
21
21
  formatChainIdLabel,
22
22
  useClaimWinnings,
23
23
  useResolvedMarketClaim
24
- } from "./chunk-VHKGW4DB.mjs";
24
+ } from "./chunk-HK4DEG4E.mjs";
25
25
  import {
26
26
  getDisplayOutcomePrice,
27
27
  resolveHeaderOutcomeItems,
28
28
  resolveMarketFromVenueMarkets
29
- } from "./chunk-6EHT5OFU.mjs";
29
+ } from "./chunk-2OQCZNGY.mjs";
30
30
  import {
31
31
  AggErrorBoundary,
32
32
  Button,
@@ -62,7 +62,7 @@ import {
62
62
  skeletonViews,
63
63
  sortCategoriesForNavigation,
64
64
  useOptionalToast
65
- } from "./chunk-W7HQVQ22.mjs";
65
+ } from "./chunk-U6ANP4P5.mjs";
66
66
 
67
67
  // src/pages/home/index.tsx
68
68
  import {
package/dist/events.js CHANGED
@@ -3755,7 +3755,8 @@ var getCardClassName = ({
3755
3755
  "relative flex w-full flex-col font-agg-sans rounded-[calc(var(--agg-radius-xl)-1px)] bg-agg-secondary text-agg-foreground shadow-agg-card",
3756
3756
  (hasOnClick || hasHref) && "cursor-pointer",
3757
3757
  hasHref && "no-underline text-inherit",
3758
- getMotionClassName(
3758
+ // Only interactive cards lift on hover; a lift on a static card reads as clickable.
3759
+ (hasOnClick || hasHref) && getMotionClassName(
3759
3760
  enableAnimations,
3760
3761
  "transition-shadow hover:shadow-agg-card-hover duration-300 ease-in-out"
3761
3762
  ),
@@ -12434,9 +12435,7 @@ var EventListItemDetailsContent = ({
12434
12435
  {
12435
12436
  className: cn("group/agg-event-details", detailsBaseCardClassName, classNames == null ? void 0 : classNames.root),
12436
12437
  "aria-label": ariaLabel != null ? ariaLabel : [resolvedTitle.title, (_c = recurringMarkets == null ? void 0 : recurringMarkets.windowLabel) != null ? _c : resolvedTitle.timestampLabel].filter(Boolean).join(" "),
12437
- onClick: () => {
12438
- onClick == null ? void 0 : onClick(event);
12439
- },
12438
+ onClick: onClick ? () => onClick(event) : void 0,
12440
12439
  children: [
12441
12440
  /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(
12442
12441
  "div",
package/dist/events.mjs CHANGED
@@ -17,13 +17,13 @@ import {
17
17
  orderbookRowLimitDefault,
18
18
  resolveEventDetailsSyncKey,
19
19
  useCenterOrderbookSpread
20
- } from "./chunk-IS45S6R3.mjs";
20
+ } from "./chunk-BTQGP257.mjs";
21
21
  import {
22
22
  formatProbabilityCents,
23
23
  resolveOrderBookRows,
24
24
  resolveUnifiedOrderBookEntries
25
- } from "./chunk-6EHT5OFU.mjs";
26
- import "./chunk-W7HQVQ22.mjs";
25
+ } from "./chunk-2OQCZNGY.mjs";
26
+ import "./chunk-U6ANP4P5.mjs";
27
27
  export {
28
28
  EventList,
29
29
  EventListItem,
package/dist/index.js CHANGED
@@ -4287,7 +4287,8 @@ var getCardClassName = ({
4287
4287
  "relative flex w-full flex-col font-agg-sans rounded-[calc(var(--agg-radius-xl)-1px)] bg-agg-secondary text-agg-foreground shadow-agg-card",
4288
4288
  (hasOnClick || hasHref) && "cursor-pointer",
4289
4289
  hasHref && "no-underline text-inherit",
4290
- getMotionClassName(
4290
+ // Only interactive cards lift on hover; a lift on a static card reads as clickable.
4291
+ (hasOnClick || hasHref) && getMotionClassName(
4291
4292
  enableAnimations,
4292
4293
  "transition-shadow hover:shadow-agg-card-hover duration-300 ease-in-out"
4293
4294
  ),
@@ -11133,12 +11134,16 @@ var PaperTradingBadge = ({
11133
11134
  placement = "chip",
11134
11135
  isAuthenticated = false,
11135
11136
  forceVisible = false,
11137
+ label: label2,
11138
+ showWhenAuthenticated = false,
11136
11139
  classNames
11137
11140
  }) => {
11138
11141
  const labels = (0, import_hooks41.useLabels)();
11139
11142
  const { isPaperMode, isResolving } = (0, import_hooks41.useResolvedExecutionMode)();
11140
11143
  if (!forceVisible && (isResolving || !isPaperMode)) return null;
11141
- if (placement === "brand" && isAuthenticated && !forceVisible) return null;
11144
+ if (placement === "brand" && isAuthenticated && !forceVisible && !showWhenAuthenticated) {
11145
+ return null;
11146
+ }
11142
11147
  const placementClassName = {
11143
11148
  brand: "inline-flex md:hidden",
11144
11149
  chip: "inline-flex",
@@ -11182,7 +11187,7 @@ var PaperTradingBadge = ({
11182
11187
  "text-[10px] leading-[14px] font-agg-bold uppercase whitespace-nowrap",
11183
11188
  classNames == null ? void 0 : classNames.pill
11184
11189
  ),
11185
- children: labels.paperTrading.badge
11190
+ children: label2 != null ? label2 : labels.paperTrading.badge
11186
11191
  }
11187
11192
  )
11188
11193
  }
@@ -16362,9 +16367,7 @@ var EventListItemDetailsContent = ({
16362
16367
  {
16363
16368
  className: cn("group/agg-event-details", detailsBaseCardClassName, classNames == null ? void 0 : classNames.root),
16364
16369
  "aria-label": ariaLabel != null ? ariaLabel : [resolvedTitle.title, (_c = recurringMarkets == null ? void 0 : recurringMarkets.windowLabel) != null ? _c : resolvedTitle.timestampLabel].filter(Boolean).join(" "),
16365
- onClick: () => {
16366
- onClick == null ? void 0 : onClick(event);
16367
- },
16370
+ onClick: onClick ? () => onClick(event) : void 0,
16368
16371
  children: [
16369
16372
  /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)(
16370
16373
  "div",
@@ -25432,7 +25435,7 @@ var PlaceOrder = ({
25432
25435
  disabledVenues,
25433
25436
  isConfigLoading: isAppConfigLoading
25434
25437
  }) === "available";
25435
- const needsKalshiConnection = isAuthenticated && hasKalshiConnectionState && isKalshiAvailable && isKalshiRoute && !isKalshiAccountActive;
25438
+ const needsKalshiConnection = !isPaperMode && isAuthenticated && hasKalshiConnectionState && isKalshiAvailable && isKalshiRoute && !isKalshiAccountActive;
25436
25439
  const handleVerifyKalshi = (0, import_react41.useCallback)(
25437
25440
  (credentials) => __async(null, null, function* () {
25438
25441
  if (onConnectKalshi) {
package/dist/index.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  formatRecurringCountdown,
15
15
  formatShareAmount,
16
16
  useHomePageModals
17
- } from "./chunk-VAL2IB3M.mjs";
17
+ } from "./chunk-UFU5HUHC.mjs";
18
18
  import {
19
19
  EventList,
20
20
  EventListItem,
@@ -32,7 +32,7 @@ import {
32
32
  orderbookRowLimitDefault,
33
33
  resolveEventDetailsSyncKey,
34
34
  useCenterOrderbookSpread
35
- } from "./chunk-IS45S6R3.mjs";
35
+ } from "./chunk-BTQGP257.mjs";
36
36
  import {
37
37
  CARD_NETWORK_OPTIONS,
38
38
  DepositModal,
@@ -45,7 +45,7 @@ import {
45
45
  buildTerminalSummary,
46
46
  clearPendingCardSession,
47
47
  getPendingCardSession
48
- } from "./chunk-UVJ5FBZF.mjs";
48
+ } from "./chunk-MR6AORPA.mjs";
49
49
  import {
50
50
  AggNotificationEventsProvider,
51
51
  DEPOSIT_MODAL_OPEN_EVENT,
@@ -67,7 +67,7 @@ import {
67
67
  useResolvedMarketClaim,
68
68
  useSharedKycFlow,
69
69
  venueRequiresSharedKyc
70
- } from "./chunk-VHKGW4DB.mjs";
70
+ } from "./chunk-HK4DEG4E.mjs";
71
71
  import {
72
72
  SETTLEMENT_SECTION_ID,
73
73
  Settlement,
@@ -88,7 +88,7 @@ import {
88
88
  resolveOrderBookRows,
89
89
  resolveUnifiedOrderBookEntries,
90
90
  useEventTradingContext
91
- } from "./chunk-6EHT5OFU.mjs";
91
+ } from "./chunk-2OQCZNGY.mjs";
92
92
  import {
93
93
  ConnectAccountsStep,
94
94
  ConnectKalshiModal,
@@ -98,7 +98,7 @@ import {
98
98
  OnboardingModal,
99
99
  ProfileSetupStep,
100
100
  SharedKycModal
101
- } from "./chunk-TXQJUVRW.mjs";
101
+ } from "./chunk-QQ2Q75BF.mjs";
102
102
  import {
103
103
  AGG_DEFAULT_URL,
104
104
  AGG_DOCS_URL,
@@ -220,7 +220,7 @@ import {
220
220
  useOptionalToast,
221
221
  useToast,
222
222
  venueLogoNames
223
- } from "./chunk-W7HQVQ22.mjs";
223
+ } from "./chunk-U6ANP4P5.mjs";
224
224
 
225
225
  // src/notifications/agg-toast-provider.tsx
226
226
  import { jsx } from "react/jsx-runtime";
package/dist/modals.js CHANGED
@@ -9331,12 +9331,16 @@ var PaperTradingBadge = ({
9331
9331
  placement = "chip",
9332
9332
  isAuthenticated = false,
9333
9333
  forceVisible = false,
9334
+ label: label2,
9335
+ showWhenAuthenticated = false,
9334
9336
  classNames
9335
9337
  }) => {
9336
9338
  const labels = (0, import_hooks41.useLabels)();
9337
9339
  const { isPaperMode, isResolving } = (0, import_hooks41.useResolvedExecutionMode)();
9338
9340
  if (!forceVisible && (isResolving || !isPaperMode)) return null;
9339
- if (placement === "brand" && isAuthenticated && !forceVisible) return null;
9341
+ if (placement === "brand" && isAuthenticated && !forceVisible && !showWhenAuthenticated) {
9342
+ return null;
9343
+ }
9340
9344
  const placementClassName = {
9341
9345
  brand: "inline-flex md:hidden",
9342
9346
  chip: "inline-flex",
@@ -9380,7 +9384,7 @@ var PaperTradingBadge = ({
9380
9384
  "text-[10px] leading-[14px] font-agg-bold uppercase whitespace-nowrap",
9381
9385
  classNames == null ? void 0 : classNames.pill
9382
9386
  ),
9383
- children: labels.paperTrading.badge
9387
+ children: label2 != null ? label2 : labels.paperTrading.badge
9384
9388
  }
9385
9389
  )
9386
9390
  }
package/dist/modals.mjs CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  buildTerminalSummary,
12
12
  clearPendingCardSession,
13
13
  getPendingCardSession
14
- } from "./chunk-UVJ5FBZF.mjs";
14
+ } from "./chunk-MR6AORPA.mjs";
15
15
  import {
16
16
  ConnectAccountsStep,
17
17
  ConnectKalshiModal,
@@ -21,8 +21,8 @@ import {
21
21
  OnboardingModal,
22
22
  ProfileSetupStep,
23
23
  SharedKycModal
24
- } from "./chunk-TXQJUVRW.mjs";
25
- import "./chunk-W7HQVQ22.mjs";
24
+ } from "./chunk-QQ2Q75BF.mjs";
25
+ import "./chunk-U6ANP4P5.mjs";
26
26
  export {
27
27
  CARD_NETWORK_OPTIONS,
28
28
  ConnectAccountsStep,
package/dist/pages.js CHANGED
@@ -4067,7 +4067,8 @@ var getCardClassName = ({
4067
4067
  "relative flex w-full flex-col font-agg-sans rounded-[calc(var(--agg-radius-xl)-1px)] bg-agg-secondary text-agg-foreground shadow-agg-card",
4068
4068
  (hasOnClick || hasHref) && "cursor-pointer",
4069
4069
  hasHref && "no-underline text-inherit",
4070
- getMotionClassName(
4070
+ // Only interactive cards lift on hover; a lift on a static card reads as clickable.
4071
+ (hasOnClick || hasHref) && getMotionClassName(
4071
4072
  enableAnimations,
4072
4073
  "transition-shadow hover:shadow-agg-card-hover duration-300 ease-in-out"
4073
4074
  ),
@@ -14929,9 +14930,7 @@ var EventListItemDetailsContent = ({
14929
14930
  {
14930
14931
  className: cn("group/agg-event-details", detailsBaseCardClassName, classNames == null ? void 0 : classNames.root),
14931
14932
  "aria-label": ariaLabel != null ? ariaLabel : [resolvedTitle.title, (_c = recurringMarkets == null ? void 0 : recurringMarkets.windowLabel) != null ? _c : resolvedTitle.timestampLabel].filter(Boolean).join(" "),
14932
- onClick: () => {
14933
- onClick == null ? void 0 : onClick(event);
14934
- },
14933
+ onClick: onClick ? () => onClick(event) : void 0,
14935
14934
  children: [
14936
14935
  /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)(
14937
14936
  "div",
@@ -23107,7 +23106,7 @@ var PlaceOrder = ({
23107
23106
  disabledVenues,
23108
23107
  isConfigLoading: isAppConfigLoading
23109
23108
  }) === "available";
23110
- const needsKalshiConnection = isAuthenticated && hasKalshiConnectionState && isKalshiAvailable && isKalshiRoute && !isKalshiAccountActive;
23109
+ const needsKalshiConnection = !isPaperMode && isAuthenticated && hasKalshiConnectionState && isKalshiAvailable && isKalshiRoute && !isKalshiAccountActive;
23111
23110
  const handleVerifyKalshi = (0, import_react38.useCallback)(
23112
23111
  (credentials) => __async(null, null, function* () {
23113
23112
  if (onConnectKalshi) {
package/dist/pages.mjs CHANGED
@@ -11,17 +11,17 @@ import {
11
11
  formatRecurringCountdown,
12
12
  formatShareAmount,
13
13
  useHomePageModals
14
- } from "./chunk-VAL2IB3M.mjs";
15
- import "./chunk-IS45S6R3.mjs";
14
+ } from "./chunk-UFU5HUHC.mjs";
15
+ import "./chunk-BTQGP257.mjs";
16
16
  import {
17
17
  DEPOSIT_MODAL_OPEN_EVENT,
18
18
  WITHDRAW_MODAL_OPEN_EVENT,
19
19
  requestAggDepositModalOpen,
20
20
  requestAggWithdrawModalOpen
21
- } from "./chunk-VHKGW4DB.mjs";
22
- import "./chunk-6EHT5OFU.mjs";
23
- import "./chunk-TXQJUVRW.mjs";
24
- import "./chunk-W7HQVQ22.mjs";
21
+ } from "./chunk-HK4DEG4E.mjs";
22
+ import "./chunk-2OQCZNGY.mjs";
23
+ import "./chunk-QQ2Q75BF.mjs";
24
+ import "./chunk-U6ANP4P5.mjs";
25
25
  export {
26
26
  DEPOSIT_MODAL_OPEN_EVENT,
27
27
  EventMarketPage,
@@ -4012,7 +4012,8 @@ var getCardClassName = ({
4012
4012
  "relative flex w-full flex-col font-agg-sans rounded-[calc(var(--agg-radius-xl)-1px)] bg-agg-secondary text-agg-foreground shadow-agg-card",
4013
4013
  (hasOnClick || hasHref) && "cursor-pointer",
4014
4014
  hasHref && "no-underline text-inherit",
4015
- getMotionClassName(
4015
+ // Only interactive cards lift on hover; a lift on a static card reads as clickable.
4016
+ (hasOnClick || hasHref) && getMotionClassName(
4016
4017
  enableAnimations,
4017
4018
  "transition-shadow hover:shadow-agg-card-hover duration-300 ease-in-out"
4018
4019
  ),
@@ -100,7 +100,7 @@ import {
100
100
  useOptionalToast,
101
101
  useToast,
102
102
  venueLogoNames
103
- } from "./chunk-W7HQVQ22.mjs";
103
+ } from "./chunk-U6ANP4P5.mjs";
104
104
  export {
105
105
  ActivityChartIcon,
106
106
  AggErrorBoundary,
package/dist/trading.js CHANGED
@@ -300,7 +300,8 @@ var getCardClassName = ({
300
300
  "relative flex w-full flex-col font-agg-sans rounded-[calc(var(--agg-radius-xl)-1px)] bg-agg-secondary text-agg-foreground shadow-agg-card",
301
301
  (hasOnClick || hasHref) && "cursor-pointer",
302
302
  hasHref && "no-underline text-inherit",
303
- getMotionClassName(
303
+ // Only interactive cards lift on hover; a lift on a static card reads as clickable.
304
+ (hasOnClick || hasHref) && getMotionClassName(
304
305
  enableAnimations,
305
306
  "transition-shadow hover:shadow-agg-card-hover duration-300 ease-in-out"
306
307
  ),
@@ -12914,7 +12915,7 @@ var PlaceOrder = ({
12914
12915
  disabledVenues,
12915
12916
  isConfigLoading: isAppConfigLoading
12916
12917
  }) === "available";
12917
- const needsKalshiConnection = isAuthenticated && hasKalshiConnectionState && isKalshiAvailable && isKalshiRoute && !isKalshiAccountActive;
12918
+ const needsKalshiConnection = !isPaperMode && isAuthenticated && hasKalshiConnectionState && isKalshiAvailable && isKalshiRoute && !isKalshiAccountActive;
12918
12919
  const handleVerifyKalshi = (0, import_react17.useCallback)(
12919
12920
  (credentials) => __async(null, null, function* () {
12920
12921
  if (onConnectKalshi) {
package/dist/trading.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  useClaimWinnings,
15
15
  useResolvedMarketClaim,
16
16
  venueRequiresSharedKyc
17
- } from "./chunk-VHKGW4DB.mjs";
17
+ } from "./chunk-HK4DEG4E.mjs";
18
18
  import {
19
19
  SETTLEMENT_SECTION_ID,
20
20
  Settlement,
@@ -32,9 +32,9 @@ import {
32
32
  prepareSettlementDifferences,
33
33
  resolveDifferenceIconClassName,
34
34
  useEventTradingContext
35
- } from "./chunk-6EHT5OFU.mjs";
36
- import "./chunk-TXQJUVRW.mjs";
37
- import "./chunk-W7HQVQ22.mjs";
35
+ } from "./chunk-2OQCZNGY.mjs";
36
+ import "./chunk-QQ2Q75BF.mjs";
37
+ import "./chunk-U6ANP4P5.mjs";
38
38
  export {
39
39
  FundKalshiModal,
40
40
  PlaceOrder,
@@ -30,6 +30,18 @@ export type PaperTradingBadgeProps = {
30
30
  * disappears in a live app. Used by Storybook.
31
31
  */
32
32
  forceVisible?: boolean;
33
+ /**
34
+ * Pill text. Defaults to `labels.paperTrading.badge`. Lets a host shorten
35
+ * one placement — e.g. the mobile `brand` pill, where header width is tight —
36
+ * without changing the copy everywhere else.
37
+ */
38
+ label?: string;
39
+ /**
40
+ * Keep the `brand` pill on a signed-in phone. Off by default — see the
41
+ * TEMPORARY note in the component. A host that shortens the pill (via
42
+ * `label`) so it fits beside the wallet chip can opt back in.
43
+ */
44
+ showWhenAuthenticated?: boolean;
33
45
  classNames?: PaperTradingBadgeClassNames;
34
46
  };
35
47
  /**
@@ -45,6 +57,6 @@ export type PaperTradingBadgeProps = {
45
57
  * mistake here that would genuinely mislead someone about their funds.
46
58
  */
47
59
  export declare const PaperTradingBadge: {
48
- ({ placement, isAuthenticated, forceVisible, classNames, }: PaperTradingBadgeProps): JSX.Element | null;
60
+ ({ placement, isAuthenticated, forceVisible, label, showWhenAuthenticated, classNames, }: PaperTradingBadgeProps): JSX.Element | null;
49
61
  displayName: string;
50
62
  };
@@ -30,6 +30,18 @@ export type PaperTradingBadgeProps = {
30
30
  * disappears in a live app. Used by Storybook.
31
31
  */
32
32
  forceVisible?: boolean;
33
+ /**
34
+ * Pill text. Defaults to `labels.paperTrading.badge`. Lets a host shorten
35
+ * one placement — e.g. the mobile `brand` pill, where header width is tight —
36
+ * without changing the copy everywhere else.
37
+ */
38
+ label?: string;
39
+ /**
40
+ * Keep the `brand` pill on a signed-in phone. Off by default — see the
41
+ * TEMPORARY note in the component. A host that shortens the pill (via
42
+ * `label`) so it fits beside the wallet chip can opt back in.
43
+ */
44
+ showWhenAuthenticated?: boolean;
33
45
  classNames?: PaperTradingBadgeClassNames;
34
46
  };
35
47
  /**
@@ -45,6 +57,6 @@ export type PaperTradingBadgeProps = {
45
57
  * mistake here that would genuinely mislead someone about their funds.
46
58
  */
47
59
  export declare const PaperTradingBadge: {
48
- ({ placement, isAuthenticated, forceVisible, classNames, }: PaperTradingBadgeProps): JSX.Element | null;
60
+ ({ placement, isAuthenticated, forceVisible, label, showWhenAuthenticated, classNames, }: PaperTradingBadgeProps): JSX.Element | null;
49
61
  displayName: string;
50
62
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agg-build/ui",
3
- "version": "4.13.2",
3
+ "version": "4.15.0",
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",
@@ -101,7 +101,7 @@
101
101
  "react": "^18.0.0 || ^19.0.0",
102
102
  "react-dom": "^18.0.0 || ^19.0.0",
103
103
  "@agg-build/hooks": "^4.11.0",
104
- "@agg-build/sdk": "^4.13.1"
104
+ "@agg-build/sdk": "^4.15.0"
105
105
  },
106
106
  "dependencies": {
107
107
  "@number-flow/react": "^0.6.0",