@agg-build/ui 2.7.0 → 2.7.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.
@@ -4908,7 +4908,10 @@ var MarketDetailsList = ({
4908
4908
  } = useVenueMarkets2({
4909
4909
  venueEventId: resolvedEventId,
4910
4910
  enabled: !providedMarkets && !!resolvedEventId,
4911
- status: MarketStatus.open
4911
+ status: MarketStatus.open,
4912
+ // Keep in lockstep with useEnrichedVenueEvent: limit is part of the React
4913
+ // Query key, so a mismatch would fork the shared cache into two requests.
4914
+ limit: 40
4912
4915
  // No explicit sortBy: event-scoped /venue-markets sorts by the event's
4913
4916
  // type-aware order (structureOrderBy), matching the home-card top-3 and the
4914
4917
  // markets-under-an-event ordering. Passing sortBy here would override it.
@@ -10,7 +10,7 @@ import {
10
10
  isErrorWithStatus,
11
11
  useEventListTabs,
12
12
  useEventListTabsHeaderOverflow
13
- } from "./chunk-XAG432PJ.mjs";
13
+ } from "./chunk-BVNXMHSL.mjs";
14
14
  import {
15
15
  DEPOSIT_MODAL_OPEN_EVENT,
16
16
  PlaceOrder,
@@ -480,9 +480,9 @@ var SPORTS_PERIOD_ORDER = [
480
480
  "first_inning",
481
481
  "second_inning",
482
482
  "third_inning",
483
- "first_5_innings",
484
483
  "other"
485
484
  ];
485
+ var FIRST_N_INNINGS_PATTERN = /^first_(\d{1,2})_innings$/;
486
486
  var SPORTS_MARKET_TYPE_ORDER = [
487
487
  "to_advance",
488
488
  "moneyline",
@@ -513,6 +513,10 @@ var stripLineValueFromQuestion = (question) => {
513
513
  var SPORTS_PERIOD_FAMILY_ORDER = ["period", "inning", "set", "map", "game"];
514
514
  var getSportsPeriodOrderIndex = (period) => {
515
515
  var _a, _b;
516
+ const inningsMatch = FIRST_N_INNINGS_PATTERN.exec(period);
517
+ if (inningsMatch) {
518
+ return SPORTS_PERIOD_ORDER.indexOf("third_inning") + 1 + Number(inningsMatch[1]) / 100;
519
+ }
516
520
  const periodIndex = SPORTS_PERIOD_ORDER.indexOf(period);
517
521
  if (periodIndex >= 0) {
518
522
  return period === "other" ? Number.MAX_SAFE_INTEGER : periodIndex;
@@ -615,6 +619,28 @@ var resolveMarketSectionTabKey = (market) => {
615
619
  if (category === "other") return "other";
616
620
  return null;
617
621
  };
622
+ var SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS = {
623
+ halves: /* @__PURE__ */ new Set(["soccer", "basketball", "american_football", "rugby", "aussie_rules"]),
624
+ quarters: /* @__PURE__ */ new Set(["basketball", "american_football", "lacrosse", "aussie_rules"]),
625
+ innings: /* @__PURE__ */ new Set(["baseball"]),
626
+ sets: /* @__PURE__ */ new Set(["tennis", "table_tennis", "volleyball"]),
627
+ maps: /* @__PURE__ */ new Set(["esports"]),
628
+ ot: /* @__PURE__ */ new Set(["basketball", "american_football", "hockey", "soccer"])
629
+ };
630
+ var PERIOD_N_FAMILY_PATTERN = /^period_\d{1,2}$/;
631
+ var isPeriodFamilyAllowedForSport = (family, sport) => {
632
+ if (!sport || sport === "other_sport") return true;
633
+ if (PERIOD_N_FAMILY_PATTERN.test(family)) return sport === "hockey";
634
+ const normalizedFamily = FIRST_N_INNINGS_PATTERN.test(family) ? "innings" : family;
635
+ const allowedSports = SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS[normalizedFamily];
636
+ return !allowedSports || allowedSports.has(sport);
637
+ };
638
+ var resolveEffectiveMarketSectionTabKey = (market, sport) => {
639
+ const key = resolveMarketSectionTabKey(market);
640
+ if (!key || !key.startsWith("period:")) return key;
641
+ const family = key.slice("period:".length);
642
+ return isPeriodFamilyAllowedForSport(family, sport) ? key : "other";
643
+ };
618
644
  var resolveVisibleSportsSectionTabs = (event) => {
619
645
  var _a, _b, _c;
620
646
  const periodsByFamily = /* @__PURE__ */ new Map();
@@ -623,7 +649,7 @@ var resolveVisibleSportsSectionTabs = (event) => {
623
649
  let hasExactScore = false;
624
650
  let hasOther = false;
625
651
  for (const market of event.venueMarkets) {
626
- const key = resolveMarketSectionTabKey(market);
652
+ const key = resolveEffectiveMarketSectionTabKey(market, event.sport);
627
653
  if (!key) continue;
628
654
  if (key === "game_lines") hasGameLines = true;
629
655
  else if (key === "exact_score") hasExactScore = true;
@@ -745,16 +771,19 @@ var dropDecomposedLegsMergedIntoSingle = (markets) => {
745
771
  var resolveSportsSectionMarkets = ({
746
772
  tab,
747
773
  eventMarkets,
748
- sectionMarkets
774
+ sectionMarkets,
775
+ sport
749
776
  }) => {
750
- const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter((market) => resolveMarketSectionTabKey(market) === tab.key);
777
+ const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter(
778
+ (market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
779
+ );
751
780
  const filteredSectionMarkets = effectiveSectionMarkets.filter(
752
- (market) => resolveMarketSectionTabKey(market) === tab.key
781
+ (market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
753
782
  );
754
783
  if (tab.key === "other" || tab.key === `stat:${SPORTS_GENERIC_STAT}`) {
755
784
  const seenIds = new Set(filteredSectionMarkets.map((market) => market.id));
756
785
  const strayMarkets = eventMarkets.filter(
757
- (market) => !seenIds.has(market.id) && resolveMarketSectionTabKey(market) === tab.key
786
+ (market) => !seenIds.has(market.id) && resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
758
787
  );
759
788
  return [...filteredSectionMarkets, ...strayMarkets];
760
789
  }
@@ -1857,9 +1886,10 @@ var SportsMarkets = ({
1857
1886
  () => resolveSportsSectionMarkets({
1858
1887
  tab: activeTab,
1859
1888
  eventMarkets: tabSourceMarkets,
1860
- sectionMarkets
1889
+ sectionMarkets,
1890
+ sport: event.sport
1861
1891
  }),
1862
- [activeTab, tabSourceMarkets, sectionMarkets]
1892
+ [activeTab, tabSourceMarkets, sectionMarkets, event.sport]
1863
1893
  );
1864
1894
  const isSectionSettled = !isSectionLoading && !hasNextPage && !isFetchingNextPage;
1865
1895
  const stableSectionMarkets = stableMarketsByTab[activeTabKey];
package/dist/events.js CHANGED
@@ -13706,7 +13706,10 @@ var MarketDetailsList = ({
13706
13706
  } = (0, import_hooks43.useVenueMarkets)({
13707
13707
  venueEventId: resolvedEventId,
13708
13708
  enabled: !providedMarkets && !!resolvedEventId,
13709
- status: import_hooks43.MarketStatus.open
13709
+ status: import_hooks43.MarketStatus.open,
13710
+ // Keep in lockstep with useEnrichedVenueEvent: limit is part of the React
13711
+ // Query key, so a mismatch would fork the shared cache into two requests.
13712
+ limit: 40
13710
13713
  // No explicit sortBy: event-scoped /venue-markets sorts by the event's
13711
13714
  // type-aware order (structureOrderBy), matching the home-card top-3 and the
13712
13715
  // markets-under-an-event ordering. Passing sortBy here would override it.
package/dist/events.mjs CHANGED
@@ -16,7 +16,7 @@ import {
16
16
  orderbookRowLimitDefault,
17
17
  resolveEventDetailsSyncKey,
18
18
  useCenterOrderbookSpread
19
- } from "./chunk-XAG432PJ.mjs";
19
+ } from "./chunk-BVNXMHSL.mjs";
20
20
  import {
21
21
  formatProbabilityCents,
22
22
  resolveOrderBookRows,
package/dist/index.js CHANGED
@@ -17648,7 +17648,10 @@ var MarketDetailsList = ({
17648
17648
  } = (0, import_hooks51.useVenueMarkets)({
17649
17649
  venueEventId: resolvedEventId,
17650
17650
  enabled: !providedMarkets && !!resolvedEventId,
17651
- status: import_hooks51.MarketStatus.open
17651
+ status: import_hooks51.MarketStatus.open,
17652
+ // Keep in lockstep with useEnrichedVenueEvent: limit is part of the React
17653
+ // Query key, so a mismatch would fork the shared cache into two requests.
17654
+ limit: 40
17652
17655
  // No explicit sortBy: event-scoped /venue-markets sorts by the event's
17653
17656
  // type-aware order (structureOrderBy), matching the home-card top-3 and the
17654
17657
  // markets-under-an-event ordering. Passing sortBy here would override it.
@@ -25760,9 +25763,9 @@ var SPORTS_PERIOD_ORDER = [
25760
25763
  "first_inning",
25761
25764
  "second_inning",
25762
25765
  "third_inning",
25763
- "first_5_innings",
25764
25766
  "other"
25765
25767
  ];
25768
+ var FIRST_N_INNINGS_PATTERN = /^first_(\d{1,2})_innings$/;
25766
25769
  var SPORTS_MARKET_TYPE_ORDER = [
25767
25770
  "to_advance",
25768
25771
  "moneyline",
@@ -25793,6 +25796,10 @@ var stripLineValueFromQuestion = (question) => {
25793
25796
  var SPORTS_PERIOD_FAMILY_ORDER = ["period", "inning", "set", "map", "game"];
25794
25797
  var getSportsPeriodOrderIndex = (period) => {
25795
25798
  var _a, _b;
25799
+ const inningsMatch = FIRST_N_INNINGS_PATTERN.exec(period);
25800
+ if (inningsMatch) {
25801
+ return SPORTS_PERIOD_ORDER.indexOf("third_inning") + 1 + Number(inningsMatch[1]) / 100;
25802
+ }
25796
25803
  const periodIndex = SPORTS_PERIOD_ORDER.indexOf(period);
25797
25804
  if (periodIndex >= 0) {
25798
25805
  return period === "other" ? Number.MAX_SAFE_INTEGER : periodIndex;
@@ -25895,6 +25902,28 @@ var resolveMarketSectionTabKey = (market) => {
25895
25902
  if (category === "other") return "other";
25896
25903
  return null;
25897
25904
  };
25905
+ var SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS = {
25906
+ halves: /* @__PURE__ */ new Set(["soccer", "basketball", "american_football", "rugby", "aussie_rules"]),
25907
+ quarters: /* @__PURE__ */ new Set(["basketball", "american_football", "lacrosse", "aussie_rules"]),
25908
+ innings: /* @__PURE__ */ new Set(["baseball"]),
25909
+ sets: /* @__PURE__ */ new Set(["tennis", "table_tennis", "volleyball"]),
25910
+ maps: /* @__PURE__ */ new Set(["esports"]),
25911
+ ot: /* @__PURE__ */ new Set(["basketball", "american_football", "hockey", "soccer"])
25912
+ };
25913
+ var PERIOD_N_FAMILY_PATTERN = /^period_\d{1,2}$/;
25914
+ var isPeriodFamilyAllowedForSport = (family, sport) => {
25915
+ if (!sport || sport === "other_sport") return true;
25916
+ if (PERIOD_N_FAMILY_PATTERN.test(family)) return sport === "hockey";
25917
+ const normalizedFamily = FIRST_N_INNINGS_PATTERN.test(family) ? "innings" : family;
25918
+ const allowedSports = SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS[normalizedFamily];
25919
+ return !allowedSports || allowedSports.has(sport);
25920
+ };
25921
+ var resolveEffectiveMarketSectionTabKey = (market, sport) => {
25922
+ const key = resolveMarketSectionTabKey(market);
25923
+ if (!key || !key.startsWith("period:")) return key;
25924
+ const family = key.slice("period:".length);
25925
+ return isPeriodFamilyAllowedForSport(family, sport) ? key : "other";
25926
+ };
25898
25927
  var resolveVisibleSportsSectionTabs = (event) => {
25899
25928
  var _a, _b, _c;
25900
25929
  const periodsByFamily = /* @__PURE__ */ new Map();
@@ -25903,7 +25932,7 @@ var resolveVisibleSportsSectionTabs = (event) => {
25903
25932
  let hasExactScore = false;
25904
25933
  let hasOther = false;
25905
25934
  for (const market of event.venueMarkets) {
25906
- const key = resolveMarketSectionTabKey(market);
25935
+ const key = resolveEffectiveMarketSectionTabKey(market, event.sport);
25907
25936
  if (!key) continue;
25908
25937
  if (key === "game_lines") hasGameLines = true;
25909
25938
  else if (key === "exact_score") hasExactScore = true;
@@ -26025,16 +26054,19 @@ var dropDecomposedLegsMergedIntoSingle = (markets) => {
26025
26054
  var resolveSportsSectionMarkets = ({
26026
26055
  tab,
26027
26056
  eventMarkets,
26028
- sectionMarkets
26057
+ sectionMarkets,
26058
+ sport
26029
26059
  }) => {
26030
- const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter((market) => resolveMarketSectionTabKey(market) === tab.key);
26060
+ const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter(
26061
+ (market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
26062
+ );
26031
26063
  const filteredSectionMarkets = effectiveSectionMarkets.filter(
26032
- (market) => resolveMarketSectionTabKey(market) === tab.key
26064
+ (market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
26033
26065
  );
26034
26066
  if (tab.key === "other" || tab.key === `stat:${SPORTS_GENERIC_STAT}`) {
26035
26067
  const seenIds = new Set(filteredSectionMarkets.map((market) => market.id));
26036
26068
  const strayMarkets = eventMarkets.filter(
26037
- (market) => !seenIds.has(market.id) && resolveMarketSectionTabKey(market) === tab.key
26069
+ (market) => !seenIds.has(market.id) && resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
26038
26070
  );
26039
26071
  return [...filteredSectionMarkets, ...strayMarkets];
26040
26072
  }
@@ -27131,9 +27163,10 @@ var SportsMarkets = ({
27131
27163
  () => resolveSportsSectionMarkets({
27132
27164
  tab: activeTab,
27133
27165
  eventMarkets: tabSourceMarkets,
27134
- sectionMarkets
27166
+ sectionMarkets,
27167
+ sport: event.sport
27135
27168
  }),
27136
- [activeTab, tabSourceMarkets, sectionMarkets]
27169
+ [activeTab, tabSourceMarkets, sectionMarkets, event.sport]
27137
27170
  );
27138
27171
  const isSectionSettled = !isSectionLoading && !hasNextPage && !isFetchingNextPage;
27139
27172
  const stableSectionMarkets = stableMarketsByTab[activeTabKey];
package/dist/index.mjs CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  UserProfilePage,
12
12
  buildAggTxExplorerHref,
13
13
  useHomePageModals
14
- } from "./chunk-C247AYH7.mjs";
14
+ } from "./chunk-KFNTS2TV.mjs";
15
15
  import {
16
16
  EventList,
17
17
  EventListItem,
@@ -28,7 +28,7 @@ import {
28
28
  orderbookRowLimitDefault,
29
29
  resolveEventDetailsSyncKey,
30
30
  useCenterOrderbookSpread
31
- } from "./chunk-XAG432PJ.mjs";
31
+ } from "./chunk-BVNXMHSL.mjs";
32
32
  import {
33
33
  CARD_NETWORK_OPTIONS,
34
34
  DepositModal,
package/dist/pages.js CHANGED
@@ -16213,7 +16213,10 @@ var MarketDetailsList = ({
16213
16213
  } = (0, import_hooks49.useVenueMarkets)({
16214
16214
  venueEventId: resolvedEventId,
16215
16215
  enabled: !providedMarkets && !!resolvedEventId,
16216
- status: import_hooks49.MarketStatus.open
16216
+ status: import_hooks49.MarketStatus.open,
16217
+ // Keep in lockstep with useEnrichedVenueEvent: limit is part of the React
16218
+ // Query key, so a mismatch would fork the shared cache into two requests.
16219
+ limit: 40
16217
16220
  // No explicit sortBy: event-scoped /venue-markets sorts by the event's
16218
16221
  // type-aware order (structureOrderBy), matching the home-card top-3 and the
16219
16222
  // markets-under-an-event ordering. Passing sortBy here would override it.
@@ -23539,9 +23542,9 @@ var SPORTS_PERIOD_ORDER = [
23539
23542
  "first_inning",
23540
23543
  "second_inning",
23541
23544
  "third_inning",
23542
- "first_5_innings",
23543
23545
  "other"
23544
23546
  ];
23547
+ var FIRST_N_INNINGS_PATTERN = /^first_(\d{1,2})_innings$/;
23545
23548
  var SPORTS_MARKET_TYPE_ORDER = [
23546
23549
  "to_advance",
23547
23550
  "moneyline",
@@ -23572,6 +23575,10 @@ var stripLineValueFromQuestion = (question) => {
23572
23575
  var SPORTS_PERIOD_FAMILY_ORDER = ["period", "inning", "set", "map", "game"];
23573
23576
  var getSportsPeriodOrderIndex = (period) => {
23574
23577
  var _a, _b;
23578
+ const inningsMatch = FIRST_N_INNINGS_PATTERN.exec(period);
23579
+ if (inningsMatch) {
23580
+ return SPORTS_PERIOD_ORDER.indexOf("third_inning") + 1 + Number(inningsMatch[1]) / 100;
23581
+ }
23575
23582
  const periodIndex = SPORTS_PERIOD_ORDER.indexOf(period);
23576
23583
  if (periodIndex >= 0) {
23577
23584
  return period === "other" ? Number.MAX_SAFE_INTEGER : periodIndex;
@@ -23674,6 +23681,28 @@ var resolveMarketSectionTabKey = (market) => {
23674
23681
  if (category === "other") return "other";
23675
23682
  return null;
23676
23683
  };
23684
+ var SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS = {
23685
+ halves: /* @__PURE__ */ new Set(["soccer", "basketball", "american_football", "rugby", "aussie_rules"]),
23686
+ quarters: /* @__PURE__ */ new Set(["basketball", "american_football", "lacrosse", "aussie_rules"]),
23687
+ innings: /* @__PURE__ */ new Set(["baseball"]),
23688
+ sets: /* @__PURE__ */ new Set(["tennis", "table_tennis", "volleyball"]),
23689
+ maps: /* @__PURE__ */ new Set(["esports"]),
23690
+ ot: /* @__PURE__ */ new Set(["basketball", "american_football", "hockey", "soccer"])
23691
+ };
23692
+ var PERIOD_N_FAMILY_PATTERN = /^period_\d{1,2}$/;
23693
+ var isPeriodFamilyAllowedForSport = (family, sport) => {
23694
+ if (!sport || sport === "other_sport") return true;
23695
+ if (PERIOD_N_FAMILY_PATTERN.test(family)) return sport === "hockey";
23696
+ const normalizedFamily = FIRST_N_INNINGS_PATTERN.test(family) ? "innings" : family;
23697
+ const allowedSports = SPORTS_PERIOD_FAMILY_ALLOWED_SPORTS[normalizedFamily];
23698
+ return !allowedSports || allowedSports.has(sport);
23699
+ };
23700
+ var resolveEffectiveMarketSectionTabKey = (market, sport) => {
23701
+ const key = resolveMarketSectionTabKey(market);
23702
+ if (!key || !key.startsWith("period:")) return key;
23703
+ const family = key.slice("period:".length);
23704
+ return isPeriodFamilyAllowedForSport(family, sport) ? key : "other";
23705
+ };
23677
23706
  var resolveVisibleSportsSectionTabs = (event) => {
23678
23707
  var _a, _b, _c;
23679
23708
  const periodsByFamily = /* @__PURE__ */ new Map();
@@ -23682,7 +23711,7 @@ var resolveVisibleSportsSectionTabs = (event) => {
23682
23711
  let hasExactScore = false;
23683
23712
  let hasOther = false;
23684
23713
  for (const market of event.venueMarkets) {
23685
- const key = resolveMarketSectionTabKey(market);
23714
+ const key = resolveEffectiveMarketSectionTabKey(market, event.sport);
23686
23715
  if (!key) continue;
23687
23716
  if (key === "game_lines") hasGameLines = true;
23688
23717
  else if (key === "exact_score") hasExactScore = true;
@@ -23804,16 +23833,19 @@ var dropDecomposedLegsMergedIntoSingle = (markets) => {
23804
23833
  var resolveSportsSectionMarkets = ({
23805
23834
  tab,
23806
23835
  eventMarkets,
23807
- sectionMarkets
23836
+ sectionMarkets,
23837
+ sport
23808
23838
  }) => {
23809
- const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter((market) => resolveMarketSectionTabKey(market) === tab.key);
23839
+ const effectiveSectionMarkets = sectionMarkets.length > 0 ? sectionMarkets : eventMarkets.filter(
23840
+ (market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
23841
+ );
23810
23842
  const filteredSectionMarkets = effectiveSectionMarkets.filter(
23811
- (market) => resolveMarketSectionTabKey(market) === tab.key
23843
+ (market) => resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
23812
23844
  );
23813
23845
  if (tab.key === "other" || tab.key === `stat:${SPORTS_GENERIC_STAT}`) {
23814
23846
  const seenIds = new Set(filteredSectionMarkets.map((market) => market.id));
23815
23847
  const strayMarkets = eventMarkets.filter(
23816
- (market) => !seenIds.has(market.id) && resolveMarketSectionTabKey(market) === tab.key
23848
+ (market) => !seenIds.has(market.id) && resolveEffectiveMarketSectionTabKey(market, sport) === tab.key
23817
23849
  );
23818
23850
  return [...filteredSectionMarkets, ...strayMarkets];
23819
23851
  }
@@ -24910,9 +24942,10 @@ var SportsMarkets = ({
24910
24942
  () => resolveSportsSectionMarkets({
24911
24943
  tab: activeTab,
24912
24944
  eventMarkets: tabSourceMarkets,
24913
- sectionMarkets
24945
+ sectionMarkets,
24946
+ sport: event.sport
24914
24947
  }),
24915
- [activeTab, tabSourceMarkets, sectionMarkets]
24948
+ [activeTab, tabSourceMarkets, sectionMarkets, event.sport]
24916
24949
  );
24917
24950
  const isSectionSettled = !isSectionLoading && !hasNextPage && !isFetchingNextPage;
24918
24951
  const stableSectionMarkets = stableMarketsByTab[activeTabKey];
package/dist/pages.mjs CHANGED
@@ -8,8 +8,8 @@ import {
8
8
  UserProfilePage,
9
9
  buildAggTxExplorerHref,
10
10
  useHomePageModals
11
- } from "./chunk-C247AYH7.mjs";
12
- import "./chunk-XAG432PJ.mjs";
11
+ } from "./chunk-KFNTS2TV.mjs";
12
+ import "./chunk-BVNXMHSL.mjs";
13
13
  import {
14
14
  DEPOSIT_MODAL_OPEN_EVENT,
15
15
  WITHDRAW_MODAL_OPEN_EVENT,
@@ -44,6 +44,7 @@ export type SportsPeriodGroup = {
44
44
  markets: VenueMarket[];
45
45
  groups: SportsMarketDisplayGroup[];
46
46
  };
47
+ export declare const getSportsPeriodOrderIndex: (period: SportsPeriodKey) => number;
47
48
  /**
48
49
  * Collapse a period into its display FAMILY, so one tab covers the periods a
49
50
  * viewer thinks of together: soccer's 1h+2h are a single "Halves" tab (as
@@ -73,17 +74,26 @@ export declare const resolveSportsStatToken: (market: Pick<VenueMarket, "marketS
73
74
  * ungrouped market list instead of inventing an empty tab.
74
75
  */
75
76
  export declare const resolveMarketSectionTabKey: (market: Pick<VenueMarket, "marketGroup" | "marketCategory" | "marketSubtype" | "question" | "sportsMarketType" | "period">) => string | null;
76
- export declare const resolveVisibleSportsSectionTabs: (event: Pick<VenueEventWithMarkets, "categories" | "title" | "venueMarkets">) => SportsSectionTab[];
77
+ /**
78
+ * `resolveMarketSectionTabKey`, sport-gated: a "period:<family>" key whose
79
+ * family isn't plausible for the event's sport demotes to "other" so the
80
+ * market surfaces under the Other tab instead of a nonsense period tab. Used
81
+ * by both the visible-tabs builder and the section-market filter so a
82
+ * demoted market is never silently dropped from either.
83
+ */
84
+ export declare const resolveEffectiveMarketSectionTabKey: (market: Parameters<typeof resolveMarketSectionTabKey>[0], sport?: string | null) => string | null;
85
+ export declare const resolveVisibleSportsSectionTabs: (event: Pick<VenueEventWithMarkets, "categories" | "title" | "venueMarkets" | "sport">) => SportsSectionTab[];
77
86
  export declare const resolveSportsSectionFilters: (tab: SportsSectionTab) => {
78
87
  marketGroup?: SportsMarketGroupKey[];
79
88
  marketCategory?: SportsMarketCategoryKey[];
80
89
  sportsMarketType?: SportsMarketTypeKey[];
81
90
  period?: SportsPeriodKey[];
82
91
  };
83
- export declare const resolveSportsSectionMarkets: ({ tab, eventMarkets, sectionMarkets, }: {
92
+ export declare const resolveSportsSectionMarkets: ({ tab, eventMarkets, sectionMarkets, sport, }: {
84
93
  tab: SportsSectionTab;
85
94
  eventMarkets: VenueMarket[];
86
95
  sectionMarkets: VenueMarket[];
96
+ sport?: string | null;
87
97
  }) => VenueMarket[];
88
98
  export declare const resolveSportsMarketCardVariant: (market: VenueMarket) => SportsMarketCardVariant;
89
99
  export declare const isBinarySportsMoneylineMarket: (market: VenueMarket) => boolean;
@@ -44,6 +44,7 @@ export type SportsPeriodGroup = {
44
44
  markets: VenueMarket[];
45
45
  groups: SportsMarketDisplayGroup[];
46
46
  };
47
+ export declare const getSportsPeriodOrderIndex: (period: SportsPeriodKey) => number;
47
48
  /**
48
49
  * Collapse a period into its display FAMILY, so one tab covers the periods a
49
50
  * viewer thinks of together: soccer's 1h+2h are a single "Halves" tab (as
@@ -73,17 +74,26 @@ export declare const resolveSportsStatToken: (market: Pick<VenueMarket, "marketS
73
74
  * ungrouped market list instead of inventing an empty tab.
74
75
  */
75
76
  export declare const resolveMarketSectionTabKey: (market: Pick<VenueMarket, "marketGroup" | "marketCategory" | "marketSubtype" | "question" | "sportsMarketType" | "period">) => string | null;
76
- export declare const resolveVisibleSportsSectionTabs: (event: Pick<VenueEventWithMarkets, "categories" | "title" | "venueMarkets">) => SportsSectionTab[];
77
+ /**
78
+ * `resolveMarketSectionTabKey`, sport-gated: a "period:<family>" key whose
79
+ * family isn't plausible for the event's sport demotes to "other" so the
80
+ * market surfaces under the Other tab instead of a nonsense period tab. Used
81
+ * by both the visible-tabs builder and the section-market filter so a
82
+ * demoted market is never silently dropped from either.
83
+ */
84
+ export declare const resolveEffectiveMarketSectionTabKey: (market: Parameters<typeof resolveMarketSectionTabKey>[0], sport?: string | null) => string | null;
85
+ export declare const resolveVisibleSportsSectionTabs: (event: Pick<VenueEventWithMarkets, "categories" | "title" | "venueMarkets" | "sport">) => SportsSectionTab[];
77
86
  export declare const resolveSportsSectionFilters: (tab: SportsSectionTab) => {
78
87
  marketGroup?: SportsMarketGroupKey[];
79
88
  marketCategory?: SportsMarketCategoryKey[];
80
89
  sportsMarketType?: SportsMarketTypeKey[];
81
90
  period?: SportsPeriodKey[];
82
91
  };
83
- export declare const resolveSportsSectionMarkets: ({ tab, eventMarkets, sectionMarkets, }: {
92
+ export declare const resolveSportsSectionMarkets: ({ tab, eventMarkets, sectionMarkets, sport, }: {
84
93
  tab: SportsSectionTab;
85
94
  eventMarkets: VenueMarket[];
86
95
  sectionMarkets: VenueMarket[];
96
+ sport?: string | null;
87
97
  }) => VenueMarket[];
88
98
  export declare const resolveSportsMarketCardVariant: (market: VenueMarket) => SportsMarketCardVariant;
89
99
  export declare const isBinarySportsMoneylineMarket: (market: VenueMarket) => boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agg-build/ui",
3
- "version": "2.7.0",
3
+ "version": "2.7.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",