@agg-build/ui 4.23.0 → 4.24.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.
@@ -8,7 +8,7 @@ import {
8
8
  EventListTabs,
9
9
  useEventListTabs,
10
10
  useEventListTabsHeaderOverflow
11
- } from "./chunk-H54RU7NF.mjs";
11
+ } from "./chunk-MDCFCGA3.mjs";
12
12
  import {
13
13
  OPEN_ORDER_FALLBACK_THUMBNAIL_SRC,
14
14
  OPEN_ORDER_QUERY_STATUSES,
@@ -21,7 +21,7 @@ import {
21
21
  parseRawMicroValue,
22
22
  selectOpenLimitOrders,
23
23
  useOpenOrderCancellation
24
- } from "./chunk-5ET2M3XX.mjs";
24
+ } from "./chunk-Q5NJCH5O.mjs";
25
25
  import {
26
26
  DEPOSIT_MODAL_OPEN_EVENT,
27
27
  WITHDRAW_MODAL_OPEN_EVENT,
@@ -266,7 +266,7 @@ var useHomePageModals = () => {
266
266
  // src/pages/home/index.tsx
267
267
  import { jsx, jsxs } from "react/jsx-runtime";
268
268
  var DeferredEventMarketPage = lazy(
269
- () => import("./event-market-IYPFVSSX.mjs").then((module) => ({ default: module.EventMarketPage }))
269
+ () => import("./event-market-YBWA2HRJ.mjs").then((module) => ({ default: module.EventMarketPage }))
270
270
  );
271
271
  var MIN_SEARCH_LENGTH = 3;
272
272
  var SEARCH_DEBOUNCE_MS = 300;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  isErrorWithStatus
4
- } from "./chunk-JR2XAAK6.mjs";
4
+ } from "./chunk-YYGS6S7N.mjs";
5
5
  import {
6
6
  Badge,
7
7
  Card,
@@ -449,7 +449,8 @@ var EventListItemContent = ({
449
449
  // the volume-sorted top-3 (the detail page omits context and keeps the
450
450
  // structured threshold/date order).
451
451
  context: "list",
452
- status: marketStatus
452
+ status: marketStatus,
453
+ minVolume: config.market.minVolume
453
454
  });
454
455
  const resolvedOutcomeMarkets = useMemo(() => {
455
456
  if (!isLazyMarketsQueryEnabled || lazyLoadedMarkets.length === 0) return allVenueMarkets;
@@ -1820,7 +1821,8 @@ var EventList = ({
1820
1821
  const labels = useLabels4();
1821
1822
  const { disabledVenues } = useAppConfig3();
1822
1823
  const {
1823
- features: { enableVenueEventDiscoveryFilters, showSportsMarkets }
1824
+ features: { enableVenueEventDiscoveryFilters, showSportsMarkets },
1825
+ market: { minVolume }
1824
1826
  } = useSdkUiConfig3();
1825
1827
  const isDiscoveryFiltersEnabled = enableVenueEventDiscoveryFilters && !search;
1826
1828
  const resolvedTabs = useEventListTabs();
@@ -2063,6 +2065,7 @@ var EventList = ({
2063
2065
  // markets experience is enabled (the sports event-detail view loads the
2064
2066
  // folded companions via aggKey). Gated on the same flag as that view.
2065
2067
  grouped: showSportsMarkets,
2068
+ minVolume,
2066
2069
  initialPages: initialLoadedPageCount,
2067
2070
  enabled: controlledCategoryPath == null || validatedCategoryPathKey === controlledCategoryPathValidationKey
2068
2071
  });
@@ -4,7 +4,7 @@ import {
4
4
  MarketDetails,
5
5
  MarketDetailsList,
6
6
  isErrorWithStatus
7
- } from "./chunk-JR2XAAK6.mjs";
7
+ } from "./chunk-YYGS6S7N.mjs";
8
8
  import {
9
9
  PlaceOrder,
10
10
  SettlementDetails,
@@ -50,7 +50,7 @@ import {
50
50
  useLabels as useLabels8,
51
51
  useMidpoints as useMidpoints2,
52
52
  useRecurringCryptoMarkets,
53
- useSdkUiConfig as useSdkUiConfig3,
53
+ useSdkUiConfig as useSdkUiConfig4,
54
54
  useResolvedExecutionMode as useResolvedExecutionMode2
55
55
  } from "@agg-build/hooks";
56
56
  import { useCallback as useCallback5, useEffect as useEffect6, useMemo as useMemo5, useRef as useRef5, useState as useState7 } from "react";
@@ -946,6 +946,7 @@ import {
946
946
  useEventTradingContext as useEventTradingContext3,
947
947
  useMidpoints,
948
948
  useResolvedExecutionMode,
949
+ useSdkUiConfig as useSdkUiConfig3,
949
950
  useSportsLive
950
951
  } from "@agg-build/hooks";
951
952
  import { useCallback as useCallback4, useEffect as useEffect5, useMemo as useMemo4, useRef as useRef4, useState as useState6 } from "react";
@@ -2690,7 +2691,8 @@ var SportsMarkets = ({
2690
2691
  onSectionMarketsChange,
2691
2692
  onOutcomeSelect,
2692
2693
  live,
2693
- midpointsResult
2694
+ midpointsResult,
2695
+ minVolume
2694
2696
  }) => {
2695
2697
  var _a, _b;
2696
2698
  const labels = useLabels7();
@@ -2700,6 +2702,7 @@ var SportsMarkets = ({
2700
2702
  aggKey: event.aggKey ? [event.aggKey] : void 0,
2701
2703
  limit: 100,
2702
2704
  status: MarketStatus2.open,
2705
+ minVolume,
2703
2706
  enabled: hasAggKey
2704
2707
  });
2705
2708
  const {
@@ -2746,6 +2749,7 @@ var SportsMarkets = ({
2746
2749
  // completion — hundreds of markets on prop-rich events) from ~15 calls to 1-3.
2747
2750
  limit: 100,
2748
2751
  status: MarketStatus2.open,
2752
+ minVolume,
2749
2753
  enabled: hasAggKey
2750
2754
  });
2751
2755
  const {
@@ -2941,6 +2945,9 @@ var SportsEventMarketPage = ({
2941
2945
  onBeforePrimaryAction,
2942
2946
  sharedKyc
2943
2947
  }) => {
2948
+ const {
2949
+ market: { minVolume }
2950
+ } = useSdkUiConfig3();
2944
2951
  const [sectionMarketsByKey, setSectionMarketsByKey] = useState6({});
2945
2952
  const composedEvent = useMemo4(() => {
2946
2953
  return mergeSportsSectionMarketsIntoEvent({
@@ -3048,6 +3055,7 @@ var SportsEventMarketPage = ({
3048
3055
  {
3049
3056
  event,
3050
3057
  onSectionMarketsChange: handleSectionMarketsChange,
3058
+ minVolume: defaultMarketId ? void 0 : minVolume,
3051
3059
  midpointsResult,
3052
3060
  onOutcomeSelect: isMobileViewport ? () => {
3053
3061
  setIsMobileTradeOpen(true);
@@ -3445,8 +3453,9 @@ var EventMarketPageContent = ({
3445
3453
  var EventMarketPage = (props) => {
3446
3454
  var _a;
3447
3455
  const {
3448
- features: { showSportsMarkets }
3449
- } = useSdkUiConfig3();
3456
+ features: { showSportsMarkets },
3457
+ market: { minVolume }
3458
+ } = useSdkUiConfig4();
3450
3459
  const labels = useLabels8();
3451
3460
  const hasEventProp = "event" in props && !!props.event;
3452
3461
  const {
@@ -3460,7 +3469,10 @@ var EventMarketPage = (props) => {
3460
3469
  } = useEnrichedVenueEvent({
3461
3470
  progressive: props.progressiveMarkets,
3462
3471
  eventId: hasEventProp ? "" : (_a = props.eventId) != null ? _a : "",
3463
- enabled: !props.isLoading && !hasEventProp && !!props.eventId
3472
+ enabled: !props.isLoading && !hasEventProp && !!props.eventId,
3473
+ // A deep-linked market may sit below the floor; filtering it out would make the
3474
+ // page silently select a different market, so the floor only applies to browsing.
3475
+ minVolume: props.defaultMarketId ? void 0 : minVolume
3464
3476
  });
3465
3477
  const renderEventContent = (event) => {
3466
3478
  const contentProps = __spreadProps(__spreadValues({}, props), {
@@ -4915,7 +4915,8 @@ var MarketDetailsList = ({
4915
4915
  var _a, _b, _c;
4916
4916
  const labels = useLabels9();
4917
4917
  const {
4918
- features: { enableLiveUpdates }
4918
+ features: { enableLiveUpdates },
4919
+ market: { minVolume }
4919
4920
  } = useSdkUiConfig6();
4920
4921
  const tradingContext = useEventTradingContext2();
4921
4922
  const selectedMarketId = (_a = tradingContext == null ? void 0 : tradingContext.selectedMarketId) != null ? _a : null;
@@ -4935,7 +4936,9 @@ var MarketDetailsList = ({
4935
4936
  // fetchAll drains every page — events can exceed any single-page limit
4936
4937
  // (e.g. 80 open markets on one staging event).
4937
4938
  limit: 100,
4938
- fetchAll: true
4939
+ fetchAll: true,
4940
+ // Same minVolume as useEnrichedVenueEvent's open query (also in the key).
4941
+ minVolume
4939
4942
  // No explicit sortBy: event-scoped /venue-markets sorts by the event's
4940
4943
  // type-aware order (structureOrderBy), matching the home-card top-3 and the
4941
4944
  // markets-under-an-event ordering. Passing sortBy here would override it.
@@ -6,8 +6,8 @@ import {
6
6
  EventOpenOrdersCard,
7
7
  formatRecurringCountdown,
8
8
  useEventOpenOrders
9
- } from "./chunk-5ET2M3XX.mjs";
10
- import "./chunk-JR2XAAK6.mjs";
9
+ } from "./chunk-Q5NJCH5O.mjs";
10
+ import "./chunk-YYGS6S7N.mjs";
11
11
  import "./chunk-HZXHDH6G.mjs";
12
12
  import "./chunk-WOCZ4TVT.mjs";
13
13
  import "./chunk-7ORC3TUJ.mjs";
package/dist/events.js CHANGED
@@ -9234,7 +9234,8 @@ var EventListItemContent = ({
9234
9234
  // the volume-sorted top-3 (the detail page omits context and keeps the
9235
9235
  // structured threshold/date order).
9236
9236
  context: "list",
9237
- status: marketStatus
9237
+ status: marketStatus,
9238
+ minVolume: config.market.minVolume
9238
9239
  });
9239
9240
  const resolvedOutcomeMarkets = (0, import_react14.useMemo)(() => {
9240
9241
  if (!isLazyMarketsQueryEnabled || lazyLoadedMarkets.length === 0) return allVenueMarkets;
@@ -16126,7 +16127,8 @@ var MarketDetailsList = ({
16126
16127
  var _a, _b, _c;
16127
16128
  const labels = (0, import_hooks55.useLabels)();
16128
16129
  const {
16129
- features: { enableLiveUpdates }
16130
+ features: { enableLiveUpdates },
16131
+ market: { minVolume }
16130
16132
  } = (0, import_hooks55.useSdkUiConfig)();
16131
16133
  const tradingContext = (0, import_hooks55.useEventTradingContext)();
16132
16134
  const selectedMarketId = (_a = tradingContext == null ? void 0 : tradingContext.selectedMarketId) != null ? _a : null;
@@ -16146,7 +16148,9 @@ var MarketDetailsList = ({
16146
16148
  // fetchAll drains every page — events can exceed any single-page limit
16147
16149
  // (e.g. 80 open markets on one staging event).
16148
16150
  limit: 100,
16149
- fetchAll: true
16151
+ fetchAll: true,
16152
+ // Same minVolume as useEnrichedVenueEvent's open query (also in the key).
16153
+ minVolume
16150
16154
  // No explicit sortBy: event-scoped /venue-markets sorts by the event's
16151
16155
  // type-aware order (structureOrderBy), matching the home-card top-3 and the
16152
16156
  // markets-under-an-event ordering. Passing sortBy here would override it.
@@ -17081,7 +17085,8 @@ var EventList = ({
17081
17085
  const labels = (0, import_hooks59.useLabels)();
17082
17086
  const { disabledVenues } = (0, import_hooks59.useAppConfig)();
17083
17087
  const {
17084
- features: { enableVenueEventDiscoveryFilters, showSportsMarkets }
17088
+ features: { enableVenueEventDiscoveryFilters, showSportsMarkets },
17089
+ market: { minVolume }
17085
17090
  } = (0, import_hooks59.useSdkUiConfig)();
17086
17091
  const isDiscoveryFiltersEnabled = enableVenueEventDiscoveryFilters && !search;
17087
17092
  const resolvedTabs = useEventListTabs();
@@ -17324,6 +17329,7 @@ var EventList = ({
17324
17329
  // markets experience is enabled (the sports event-detail view loads the
17325
17330
  // folded companions via aggKey). Gated on the same flag as that view.
17326
17331
  grouped: showSportsMarkets,
17332
+ minVolume,
17327
17333
  initialPages: initialLoadedPageCount,
17328
17334
  enabled: controlledCategoryPath == null || validatedCategoryPathKey === controlledCategoryPathValidationKey
17329
17335
  });
package/dist/events.mjs CHANGED
@@ -5,7 +5,7 @@ import {
5
5
  EventListItem,
6
6
  EventListItemV2,
7
7
  EventListVenueStrip
8
- } from "./chunk-H54RU7NF.mjs";
8
+ } from "./chunk-MDCFCGA3.mjs";
9
9
  import {
10
10
  EventListItemDetails,
11
11
  MarketDetails,
@@ -20,7 +20,7 @@ import {
20
20
  orderbookRowLimitDefault,
21
21
  resolveEventDetailsSyncKey,
22
22
  useCenterOrderbookSpread
23
- } from "./chunk-JR2XAAK6.mjs";
23
+ } from "./chunk-YYGS6S7N.mjs";
24
24
  import {
25
25
  formatProbabilityCents,
26
26
  resolveOrderBookRows,
package/dist/index.js CHANGED
@@ -20090,7 +20090,8 @@ var init_market_details = __esm({
20090
20090
  var _a, _b, _c;
20091
20091
  const labels = (0, import_hooks63.useLabels)();
20092
20092
  const {
20093
- features: { enableLiveUpdates }
20093
+ features: { enableLiveUpdates },
20094
+ market: { minVolume }
20094
20095
  } = (0, import_hooks63.useSdkUiConfig)();
20095
20096
  const tradingContext = (0, import_hooks63.useEventTradingContext)();
20096
20097
  const selectedMarketId = (_a = tradingContext == null ? void 0 : tradingContext.selectedMarketId) != null ? _a : null;
@@ -20110,7 +20111,9 @@ var init_market_details = __esm({
20110
20111
  // fetchAll drains every page — events can exceed any single-page limit
20111
20112
  // (e.g. 80 open markets on one staging event).
20112
20113
  limit: 100,
20113
- fetchAll: true
20114
+ fetchAll: true,
20115
+ // Same minVolume as useEnrichedVenueEvent's open query (also in the key).
20116
+ minVolume
20114
20117
  // No explicit sortBy: event-scoped /venue-markets sorts by the event's
20115
20118
  // type-aware order (structureOrderBy), matching the home-card top-3 and the
20116
20119
  // markets-under-an-event ordering. Passing sortBy here would override it.
@@ -33993,7 +33996,8 @@ var init_sports_markets = __esm({
33993
33996
  onSectionMarketsChange,
33994
33997
  onOutcomeSelect,
33995
33998
  live,
33996
- midpointsResult
33999
+ midpointsResult,
34000
+ minVolume
33997
34001
  }) => {
33998
34002
  var _a, _b;
33999
34003
  const labels = (0, import_hooks98.useLabels)();
@@ -34003,6 +34007,7 @@ var init_sports_markets = __esm({
34003
34007
  aggKey: event.aggKey ? [event.aggKey] : void 0,
34004
34008
  limit: 100,
34005
34009
  status: import_hooks98.MarketStatus.open,
34010
+ minVolume,
34006
34011
  enabled: hasAggKey
34007
34012
  });
34008
34013
  const {
@@ -34049,6 +34054,7 @@ var init_sports_markets = __esm({
34049
34054
  // completion — hundreds of markets on prop-rich events) from ~15 calls to 1-3.
34050
34055
  limit: 100,
34051
34056
  status: import_hooks98.MarketStatus.open,
34057
+ minVolume,
34052
34058
  enabled: hasAggKey
34053
34059
  });
34054
34060
  const {
@@ -34262,6 +34268,9 @@ var init_sports_event_market_page = __esm({
34262
34268
  onBeforePrimaryAction,
34263
34269
  sharedKyc
34264
34270
  }) => {
34271
+ const {
34272
+ market: { minVolume }
34273
+ } = (0, import_hooks99.useSdkUiConfig)();
34265
34274
  const [sectionMarketsByKey, setSectionMarketsByKey] = (0, import_react68.useState)({});
34266
34275
  const composedEvent = (0, import_react68.useMemo)(() => {
34267
34276
  return mergeSportsSectionMarketsIntoEvent({
@@ -34369,6 +34378,7 @@ var init_sports_event_market_page = __esm({
34369
34378
  {
34370
34379
  event,
34371
34380
  onSectionMarketsChange: handleSectionMarketsChange,
34381
+ minVolume: defaultMarketId ? void 0 : minVolume,
34372
34382
  midpointsResult,
34373
34383
  onOutcomeSelect: isMobileViewport ? () => {
34374
34384
  setIsMobileTradeOpen(true);
@@ -34799,7 +34809,8 @@ var init_event_market = __esm({
34799
34809
  EventMarketPage = (props) => {
34800
34810
  var _a;
34801
34811
  const {
34802
- features: { showSportsMarkets }
34812
+ features: { showSportsMarkets },
34813
+ market: { minVolume }
34803
34814
  } = (0, import_hooks100.useSdkUiConfig)();
34804
34815
  const labels = (0, import_hooks100.useLabels)();
34805
34816
  const hasEventProp = "event" in props && !!props.event;
@@ -34814,7 +34825,10 @@ var init_event_market = __esm({
34814
34825
  } = (0, import_hooks100.useEnrichedVenueEvent)({
34815
34826
  progressive: props.progressiveMarkets,
34816
34827
  eventId: hasEventProp ? "" : (_a = props.eventId) != null ? _a : "",
34817
- enabled: !props.isLoading && !hasEventProp && !!props.eventId
34828
+ enabled: !props.isLoading && !hasEventProp && !!props.eventId,
34829
+ // A deep-linked market may sit below the floor; filtering it out would make the
34830
+ // page silently select a different market, so the floor only applies to browsing.
34831
+ minVolume: props.defaultMarketId ? void 0 : minVolume
34818
34832
  });
34819
34833
  const renderEventContent = (event) => {
34820
34834
  const contentProps = __spreadProps(__spreadValues({}, props), {
@@ -36406,7 +36420,8 @@ var EventListItemContent = ({
36406
36420
  // the volume-sorted top-3 (the detail page omits context and keeps the
36407
36421
  // structured threshold/date order).
36408
36422
  context: "list",
36409
- status: marketStatus
36423
+ status: marketStatus,
36424
+ minVolume: config.market.minVolume
36410
36425
  });
36411
36426
  const resolvedOutcomeMarkets = (0, import_react22.useMemo)(() => {
36412
36427
  if (!isLazyMarketsQueryEnabled || lazyLoadedMarkets.length === 0) return allVenueMarkets;
@@ -37782,7 +37797,8 @@ var EventList = ({
37782
37797
  const labels = (0, import_hooks67.useLabels)();
37783
37798
  const { disabledVenues } = (0, import_hooks67.useAppConfig)();
37784
37799
  const {
37785
- features: { enableVenueEventDiscoveryFilters, showSportsMarkets }
37800
+ features: { enableVenueEventDiscoveryFilters, showSportsMarkets },
37801
+ market: { minVolume }
37786
37802
  } = (0, import_hooks67.useSdkUiConfig)();
37787
37803
  const isDiscoveryFiltersEnabled = enableVenueEventDiscoveryFilters && !search;
37788
37804
  const resolvedTabs = useEventListTabs();
@@ -38025,6 +38041,7 @@ var EventList = ({
38025
38041
  // markets experience is enabled (the sports event-detail view loads the
38026
38042
  // folded companions via aggKey). Gated on the same flag as that view.
38027
38043
  grouped: showSportsMarkets,
38044
+ minVolume,
38028
38045
  initialPages: initialLoadedPageCount,
38029
38046
  enabled: controlledCategoryPath == null || validatedCategoryPathKey === controlledCategoryPathValidationKey
38030
38047
  });
package/dist/index.mjs CHANGED
@@ -16,13 +16,13 @@ import {
16
16
  buildAggTxExplorerHref,
17
17
  formatShareAmount,
18
18
  useHomePageModals
19
- } from "./chunk-J75RLLP2.mjs";
19
+ } from "./chunk-G4KXZ5XX.mjs";
20
20
  import {
21
21
  EventList,
22
22
  EventListItem,
23
23
  EventListItemV2,
24
24
  EventListVenueStrip
25
- } from "./chunk-H54RU7NF.mjs";
25
+ } from "./chunk-MDCFCGA3.mjs";
26
26
  import {
27
27
  CARD_NETWORK_OPTIONS,
28
28
  DepositModal,
@@ -40,7 +40,7 @@ import {
40
40
  EventOpenOrdersCard,
41
41
  formatRecurringCountdown,
42
42
  useEventOpenOrders
43
- } from "./chunk-5ET2M3XX.mjs";
43
+ } from "./chunk-Q5NJCH5O.mjs";
44
44
  import {
45
45
  EventListItemDetails,
46
46
  MarketDetails,
@@ -55,7 +55,7 @@ import {
55
55
  orderbookRowLimitDefault,
56
56
  resolveEventDetailsSyncKey,
57
57
  useCenterOrderbookSpread
58
- } from "./chunk-JR2XAAK6.mjs";
58
+ } from "./chunk-YYGS6S7N.mjs";
59
59
  import {
60
60
  AggNotificationEventsProvider,
61
61
  DEPOSIT_MODAL_OPEN_EVENT,
package/dist/pages.js CHANGED
@@ -19319,7 +19319,8 @@ var init_market_details = __esm({
19319
19319
  var _a, _b, _c;
19320
19320
  const labels = (0, import_hooks63.useLabels)();
19321
19321
  const {
19322
- features: { enableLiveUpdates }
19322
+ features: { enableLiveUpdates },
19323
+ market: { minVolume }
19323
19324
  } = (0, import_hooks63.useSdkUiConfig)();
19324
19325
  const tradingContext = (0, import_hooks63.useEventTradingContext)();
19325
19326
  const selectedMarketId = (_a = tradingContext == null ? void 0 : tradingContext.selectedMarketId) != null ? _a : null;
@@ -19339,7 +19340,9 @@ var init_market_details = __esm({
19339
19340
  // fetchAll drains every page — events can exceed any single-page limit
19340
19341
  // (e.g. 80 open markets on one staging event).
19341
19342
  limit: 100,
19342
- fetchAll: true
19343
+ fetchAll: true,
19344
+ // Same minVolume as useEnrichedVenueEvent's open query (also in the key).
19345
+ minVolume
19343
19346
  // No explicit sortBy: event-scoped /venue-markets sorts by the event's
19344
19347
  // type-aware order (structureOrderBy), matching the home-card top-3 and the
19345
19348
  // markets-under-an-event ordering. Passing sortBy here would override it.
@@ -33268,7 +33271,8 @@ var init_sports_markets = __esm({
33268
33271
  onSectionMarketsChange,
33269
33272
  onOutcomeSelect,
33270
33273
  live,
33271
- midpointsResult
33274
+ midpointsResult,
33275
+ minVolume
33272
33276
  }) => {
33273
33277
  var _a, _b;
33274
33278
  const labels = (0, import_hooks95.useLabels)();
@@ -33278,6 +33282,7 @@ var init_sports_markets = __esm({
33278
33282
  aggKey: event.aggKey ? [event.aggKey] : void 0,
33279
33283
  limit: 100,
33280
33284
  status: import_hooks95.MarketStatus.open,
33285
+ minVolume,
33281
33286
  enabled: hasAggKey
33282
33287
  });
33283
33288
  const {
@@ -33324,6 +33329,7 @@ var init_sports_markets = __esm({
33324
33329
  // completion — hundreds of markets on prop-rich events) from ~15 calls to 1-3.
33325
33330
  limit: 100,
33326
33331
  status: import_hooks95.MarketStatus.open,
33332
+ minVolume,
33327
33333
  enabled: hasAggKey
33328
33334
  });
33329
33335
  const {
@@ -33537,6 +33543,9 @@ var init_sports_event_market_page = __esm({
33537
33543
  onBeforePrimaryAction,
33538
33544
  sharedKyc
33539
33545
  }) => {
33546
+ const {
33547
+ market: { minVolume }
33548
+ } = (0, import_hooks96.useSdkUiConfig)();
33540
33549
  const [sectionMarketsByKey, setSectionMarketsByKey] = (0, import_react68.useState)({});
33541
33550
  const composedEvent = (0, import_react68.useMemo)(() => {
33542
33551
  return mergeSportsSectionMarketsIntoEvent({
@@ -33644,6 +33653,7 @@ var init_sports_event_market_page = __esm({
33644
33653
  {
33645
33654
  event,
33646
33655
  onSectionMarketsChange: handleSectionMarketsChange,
33656
+ minVolume: defaultMarketId ? void 0 : minVolume,
33647
33657
  midpointsResult,
33648
33658
  onOutcomeSelect: isMobileViewport ? () => {
33649
33659
  setIsMobileTradeOpen(true);
@@ -34074,7 +34084,8 @@ var init_event_market = __esm({
34074
34084
  EventMarketPage = (props) => {
34075
34085
  var _a;
34076
34086
  const {
34077
- features: { showSportsMarkets }
34087
+ features: { showSportsMarkets },
34088
+ market: { minVolume }
34078
34089
  } = (0, import_hooks97.useSdkUiConfig)();
34079
34090
  const labels = (0, import_hooks97.useLabels)();
34080
34091
  const hasEventProp = "event" in props && !!props.event;
@@ -34089,7 +34100,10 @@ var init_event_market = __esm({
34089
34100
  } = (0, import_hooks97.useEnrichedVenueEvent)({
34090
34101
  progressive: props.progressiveMarkets,
34091
34102
  eventId: hasEventProp ? "" : (_a = props.eventId) != null ? _a : "",
34092
- enabled: !props.isLoading && !hasEventProp && !!props.eventId
34103
+ enabled: !props.isLoading && !hasEventProp && !!props.eventId,
34104
+ // A deep-linked market may sit below the floor; filtering it out would make the
34105
+ // page silently select a different market, so the floor only applies to browsing.
34106
+ minVolume: props.defaultMarketId ? void 0 : minVolume
34093
34107
  });
34094
34108
  const renderEventContent = (event) => {
34095
34109
  const contentProps = __spreadProps(__spreadValues({}, props), {
@@ -34594,7 +34608,8 @@ var EventListItemContent = ({
34594
34608
  // the volume-sorted top-3 (the detail page omits context and keeps the
34595
34609
  // structured threshold/date order).
34596
34610
  context: "list",
34597
- status: marketStatus
34611
+ status: marketStatus,
34612
+ minVolume: config.market.minVolume
34598
34613
  });
34599
34614
  const resolvedOutcomeMarkets = (0, import_react21.useMemo)(() => {
34600
34615
  if (!isLazyMarketsQueryEnabled || lazyLoadedMarkets.length === 0) return allVenueMarkets;
@@ -35970,7 +35985,8 @@ var EventList = ({
35970
35985
  const labels = (0, import_hooks44.useLabels)();
35971
35986
  const { disabledVenues } = (0, import_hooks44.useAppConfig)();
35972
35987
  const {
35973
- features: { enableVenueEventDiscoveryFilters, showSportsMarkets }
35988
+ features: { enableVenueEventDiscoveryFilters, showSportsMarkets },
35989
+ market: { minVolume }
35974
35990
  } = (0, import_hooks44.useSdkUiConfig)();
35975
35991
  const isDiscoveryFiltersEnabled = enableVenueEventDiscoveryFilters && !search;
35976
35992
  const resolvedTabs = useEventListTabs();
@@ -36213,6 +36229,7 @@ var EventList = ({
36213
36229
  // markets experience is enabled (the sports event-detail view loads the
36214
36230
  // folded companions via aggKey). Gated on the same flag as that view.
36215
36231
  grouped: showSportsMarkets,
36232
+ minVolume,
36216
36233
  initialPages: initialLoadedPageCount,
36217
36234
  enabled: controlledCategoryPath == null || validatedCategoryPathKey === controlledCategoryPathValidationKey
36218
36235
  });
package/dist/pages.mjs CHANGED
@@ -13,16 +13,16 @@ import {
13
13
  buildAggTxExplorerHref,
14
14
  formatShareAmount,
15
15
  useHomePageModals
16
- } from "./chunk-J75RLLP2.mjs";
17
- import "./chunk-H54RU7NF.mjs";
16
+ } from "./chunk-G4KXZ5XX.mjs";
17
+ import "./chunk-MDCFCGA3.mjs";
18
18
  import {
19
19
  EventMarketPage,
20
20
  EventOpenOrders,
21
21
  EventOpenOrdersCard,
22
22
  formatRecurringCountdown,
23
23
  useEventOpenOrders
24
- } from "./chunk-5ET2M3XX.mjs";
25
- import "./chunk-JR2XAAK6.mjs";
24
+ } from "./chunk-Q5NJCH5O.mjs";
25
+ import "./chunk-YYGS6S7N.mjs";
26
26
  import {
27
27
  DEPOSIT_MODAL_OPEN_EVENT,
28
28
  WITHDRAW_MODAL_OPEN_EVENT,
@@ -5,8 +5,10 @@ export type SportsMarketsProps = {
5
5
  onOutcomeSelect?: () => void;
6
6
  live?: boolean;
7
7
  midpointsResult?: UseMidpointsResult;
8
+ /** Lifetime-volume floor for both market queries (unset = no filter). */
9
+ minVolume?: number;
8
10
  };
9
11
  export declare const SportsMarkets: {
10
- ({ event, onSectionMarketsChange, onOutcomeSelect, live, midpointsResult, }: SportsMarketsProps): import("react/jsx-runtime").JSX.Element;
12
+ ({ event, onSectionMarketsChange, onOutcomeSelect, live, midpointsResult, minVolume, }: SportsMarketsProps): import("react/jsx-runtime").JSX.Element;
11
13
  displayName: string;
12
14
  };
@@ -5,8 +5,10 @@ export type SportsMarketsProps = {
5
5
  onOutcomeSelect?: () => void;
6
6
  live?: boolean;
7
7
  midpointsResult?: UseMidpointsResult;
8
+ /** Lifetime-volume floor for both market queries (unset = no filter). */
9
+ minVolume?: number;
8
10
  };
9
11
  export declare const SportsMarkets: {
10
- ({ event, onSectionMarketsChange, onOutcomeSelect, live, midpointsResult, }: SportsMarketsProps): import("react/jsx-runtime").JSX.Element;
12
+ ({ event, onSectionMarketsChange, onOutcomeSelect, live, midpointsResult, minVolume, }: SportsMarketsProps): import("react/jsx-runtime").JSX.Element;
11
13
  displayName: string;
12
14
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agg-build/ui",
3
- "version": "4.23.0",
3
+ "version": "4.24.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",
@@ -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/hooks": "^4.23.0",
104
- "@agg-build/sdk": "^4.23.0"
103
+ "@agg-build/hooks": "^4.24.0",
104
+ "@agg-build/sdk": "^4.24.0"
105
105
  },
106
106
  "dependencies": {
107
107
  "@number-flow/react": "^0.6.0",