@agg-build/ui 1.3.0 → 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.
package/dist/events.js CHANGED
@@ -4005,266 +4005,8 @@ var LineChart = ({
4005
4005
  LineChart.displayName = "LineChart";
4006
4006
 
4007
4007
  // src/events/list/event-list.utils.ts
4008
- var import_hooks8 = require("@agg-build/hooks");
4009
- var import_sdk = require("@agg-build/sdk");
4010
-
4011
- // src/events/item/event-list-item.utils.ts
4012
4008
  var import_hooks7 = require("@agg-build/hooks");
4013
-
4014
- // src/events/shared/venue-market-cluster.ts
4015
- var toNonEmptyString = (value) => {
4016
- if (typeof value !== "string") return void 0;
4017
- const trimmedValue = value.trim();
4018
- return trimmedValue ? trimmedValue : void 0;
4019
- };
4020
- var addGraphEdge = (adjacencyById, fromMarketId, toMarketId) => {
4021
- var _a, _b;
4022
- if (fromMarketId === toMarketId) return;
4023
- const fromNeighbors = (_a = adjacencyById.get(fromMarketId)) != null ? _a : /* @__PURE__ */ new Set();
4024
- fromNeighbors.add(toMarketId);
4025
- adjacencyById.set(fromMarketId, fromNeighbors);
4026
- const toNeighbors = (_b = adjacencyById.get(toMarketId)) != null ? _b : /* @__PURE__ */ new Set();
4027
- toNeighbors.add(fromMarketId);
4028
- adjacencyById.set(toMarketId, toNeighbors);
4029
- };
4030
- var dedupeSourceMarketsById = (markets) => {
4031
- const seenMarketIds = /* @__PURE__ */ new Set();
4032
- return markets.filter((market) => {
4033
- if (seenMarketIds.has(market.id)) {
4034
- return false;
4035
- }
4036
- seenMarketIds.add(market.id);
4037
- return true;
4038
- });
4039
- };
4040
- var collectDirectRelationMarkets = (market) => {
4041
- var _a, _b, _c;
4042
- const relationMarkets = [];
4043
- const seenRelationIds = /* @__PURE__ */ new Set();
4044
- const addRelationMarket = (relationMarket) => {
4045
- if (!relationMarket) return;
4046
- if (seenRelationIds.has(relationMarket.id)) return;
4047
- seenRelationIds.add(relationMarket.id);
4048
- relationMarkets.push(relationMarket);
4049
- };
4050
- for (const matchedVenueMarket of (_a = market.matchedVenueMarkets) != null ? _a : []) {
4051
- addRelationMarket(matchedVenueMarket);
4052
- }
4053
- addRelationMarket(
4054
- (_c = (_b = market.matchEntry) == null ? void 0 : _b.targetVenueMarket) != null ? _c : void 0
4055
- );
4056
- return relationMarkets;
4057
- };
4058
- var collectUniqueRelatedMarkets = (markets, sourceMarketsById) => {
4059
- const relatedMarketsById = /* @__PURE__ */ new Map();
4060
- for (const market of markets) {
4061
- for (const relatedMarket of collectDirectRelationMarkets(market)) {
4062
- if (sourceMarketsById.has(relatedMarket.id) || relatedMarketsById.has(relatedMarket.id)) {
4063
- continue;
4064
- }
4065
- relatedMarketsById.set(relatedMarket.id, relatedMarket);
4066
- }
4067
- }
4068
- return Array.from(relatedMarketsById.values());
4069
- };
4070
- var normalizeVenueMarketCluster = (markets, selectedMarketId) => {
4071
- var _a, _b;
4072
- if (markets.length === 0) return [];
4073
- const orderedSourceMarkets = dedupeSourceMarketsById(markets);
4074
- const sourceMarketsById = new Map(orderedSourceMarkets.map((market) => [market.id, market]));
4075
- const orderedRelatedMarkets = collectUniqueRelatedMarkets(
4076
- orderedSourceMarkets,
4077
- sourceMarketsById
4078
- );
4079
- const relatedMarketsById = new Map(orderedRelatedMarkets.map((market) => [market.id, market]));
4080
- const resolvedSelectedMarketId = toNonEmptyString(selectedMarketId);
4081
- if (!resolvedSelectedMarketId) {
4082
- return [...orderedSourceMarkets, ...orderedRelatedMarkets];
4083
- }
4084
- const adjacencyById = /* @__PURE__ */ new Map();
4085
- for (const market of orderedSourceMarkets) {
4086
- for (const relatedMarket of collectDirectRelationMarkets(market)) {
4087
- addGraphEdge(adjacencyById, market.id, relatedMarket.id);
4088
- }
4089
- const targetVenueMarketId = toNonEmptyString((_a = market.matchEntry) == null ? void 0 : _a.targetVenueMarketId);
4090
- if (targetVenueMarketId) {
4091
- addGraphEdge(adjacencyById, market.id, targetVenueMarketId);
4092
- }
4093
- }
4094
- if (!sourceMarketsById.has(resolvedSelectedMarketId) && !relatedMarketsById.has(resolvedSelectedMarketId)) {
4095
- return [];
4096
- }
4097
- const visitedMarketIds = /* @__PURE__ */ new Set();
4098
- const queue = [resolvedSelectedMarketId];
4099
- while (queue.length > 0) {
4100
- const currentMarketId = queue.shift();
4101
- if (!currentMarketId || visitedMarketIds.has(currentMarketId)) {
4102
- continue;
4103
- }
4104
- visitedMarketIds.add(currentMarketId);
4105
- const neighborMarketIds = adjacencyById.get(currentMarketId);
4106
- for (const neighborMarketId of Array.from(neighborMarketIds != null ? neighborMarketIds : /* @__PURE__ */ new Set())) {
4107
- if (!visitedMarketIds.has(neighborMarketId)) {
4108
- queue.push(neighborMarketId);
4109
- }
4110
- }
4111
- }
4112
- const orderedClusterMarkets = [];
4113
- const appendedMarketIds = /* @__PURE__ */ new Set();
4114
- const appendMarket = (market) => {
4115
- if (!market) return;
4116
- if (!visitedMarketIds.has(market.id)) return;
4117
- if (appendedMarketIds.has(market.id)) return;
4118
- appendedMarketIds.add(market.id);
4119
- orderedClusterMarkets.push(market);
4120
- };
4121
- appendMarket(
4122
- (_b = sourceMarketsById.get(resolvedSelectedMarketId)) != null ? _b : relatedMarketsById.get(resolvedSelectedMarketId)
4123
- );
4124
- for (const market of orderedSourceMarkets) {
4125
- appendMarket(market);
4126
- }
4127
- for (const market of orderedRelatedMarkets) {
4128
- appendMarket(market);
4129
- }
4130
- return orderedClusterMarkets;
4131
- };
4132
-
4133
- // src/events/item/event-list-item.utils.ts
4134
- var resolveEventListItemEvent = (fetchedEvent) => {
4135
- if (!fetchedEvent) return void 0;
4136
- if (!fetchedEvent.venueMarkets || fetchedEvent.venueMarkets.length === 0) return void 0;
4137
- return fetchedEvent;
4138
- };
4139
- var normalizeProbability = (value) => {
4140
- if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
4141
- if (value < 0) return 0;
4142
- if (value > 1) return 1;
4143
- return value;
4144
- };
4145
- var formatWholePercent = (value) => {
4146
- return `${Math.round(value * 100)}%`;
4147
- };
4148
- var hasDateLabel = (outcome) => {
4149
- return !!toDate(outcome.label);
4150
- };
4151
- var isYesLabel = (label2) => label2.trim().toLowerCase() === "yes";
4152
- var isNoLabel = (label2) => label2.trim().toLowerCase() === "no";
4153
- var hasBinaryOutcomes = (outcomes) => {
4154
- return outcomes.some((o) => isYesLabel(o.label)) && outcomes.some((o) => isNoLabel(o.label));
4155
- };
4156
- var sortYesFirst = (outcomes) => {
4157
- return [...outcomes].sort((a, b) => {
4158
- if (isYesLabel(a.label) && !isYesLabel(b.label)) return -1;
4159
- if (!isYesLabel(a.label) && isYesLabel(b.label)) return 1;
4160
- return 0;
4161
- });
4162
- };
4163
- var resolveYesOutcome = (market) => {
4164
- return market.venueMarketOutcomes.find((outcome) => isYesLabel(outcome.label));
4165
- };
4166
- var resolveYesOutcomeProbability = (market) => {
4167
- var _a;
4168
- return normalizeProbability((_a = resolveYesOutcome(market)) == null ? void 0 : _a.price);
4169
- };
4170
- var formatMarketProbabilityPercent = (value, formatPercent = formatWholePercent) => {
4171
- const probability = normalizeProbability(value);
4172
- if (probability == null) return "-";
4173
- const formattedValue = formatPercent(probability);
4174
- if (probability > 0 && formattedValue === formatPercent(0)) {
4175
- return "<1%";
4176
- }
4177
- return formattedValue;
4178
- };
4179
- var formatPriceGapPercent = (value) => {
4180
- if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
4181
- if (value < import_hooks7.MIN_PRICE_GAP_PCT) return void 0;
4182
- if (value > import_hooks7.MAX_PRICE_GAP_PCT) return void 0;
4183
- return `${Math.round(value)}%`;
4184
- };
4185
- var sortOutcomes = (outcomes) => {
4186
- if (outcomes.length <= 1) return outcomes;
4187
- if (hasBinaryOutcomes(outcomes)) {
4188
- return sortYesFirst(outcomes);
4189
- }
4190
- const now = Date.now();
4191
- if (outcomes.some(hasDateLabel)) {
4192
- return [...outcomes].sort((a, b) => {
4193
- var _a, _b, _c, _d;
4194
- const aDate = (_b = (_a = toDate(a.label)) == null ? void 0 : _a.getTime()) != null ? _b : 0;
4195
- const bDate = (_d = (_c = toDate(b.label)) == null ? void 0 : _c.getTime()) != null ? _d : 0;
4196
- return Math.abs(aDate - now) - Math.abs(bDate - now);
4197
- });
4198
- }
4199
- return [...outcomes].sort((a, b) => {
4200
- var _a, _b;
4201
- const aPrice = (_a = normalizeProbability(a.price)) != null ? _a : 0;
4202
- const bPrice = (_b = normalizeProbability(b.price)) != null ? _b : 0;
4203
- return bPrice - aPrice;
4204
- });
4205
- };
4206
- var dedupeVenueMarketsById = (venueMarkets) => {
4207
- const seenClusterIds = /* @__PURE__ */ new Set();
4208
- return venueMarkets.filter((venueMarket) => {
4209
- var _a;
4210
- if (seenClusterIds.has(venueMarket.id)) {
4211
- return false;
4212
- }
4213
- seenClusterIds.add(venueMarket.id);
4214
- for (const sibling of (_a = venueMarket.matchedVenueMarkets) != null ? _a : []) {
4215
- seenClusterIds.add(sibling.id);
4216
- }
4217
- return true;
4218
- });
4219
- };
4220
- var resolveOutcomeTitle = (outcome) => {
4221
- var _a, _b;
4222
- return (_b = (_a = outcome == null ? void 0 : outcome.title) != null ? _a : outcome == null ? void 0 : outcome.label) == null ? void 0 : _b.trim();
4223
- };
4224
- var selectPrimaryVenueMarket = (venueMarkets) => {
4225
- if (venueMarkets.length === 0) return void 0;
4226
- if (venueMarkets.length === 1) return venueMarkets[0];
4227
- return [...venueMarkets].sort((a, b) => {
4228
- const aVolume = typeof a.volume === "number" ? a.volume : -1;
4229
- const bVolume = typeof b.volume === "number" ? b.volume : -1;
4230
- return bVolume - aVolume;
4231
- })[0];
4232
- };
4233
- var getVenueSummary = (venueMarkets, options) => {
4234
- const normalizedVenueMarkets = normalizeVenueMarketCluster(venueMarkets);
4235
- const tradableVenues = options == null ? void 0 : options.tradableVenues;
4236
- const isVenueTradable = (venue) => {
4237
- if (tradableVenues == null) return true;
4238
- return tradableVenues.has(venue);
4239
- };
4240
- const uniqueVenues = Array.from(
4241
- new Set(
4242
- normalizedVenueMarkets.filter((market) => isVenueTradable(market.venue)).map((market) => market.venue)
4243
- )
4244
- );
4245
- return {
4246
- marketCount: normalizedVenueMarkets.length,
4247
- venueCount: uniqueVenues.length,
4248
- singleVenue: uniqueVenues.length === 1 ? uniqueVenues[0] : void 0
4249
- };
4250
- };
4251
- var resolveVenueLabel = (venue, venueInfo, labels) => {
4252
- var _a, _b;
4253
- if (!venue) return labels.eventItem.venueSingular;
4254
- return (_b = (_a = venueInfo == null ? void 0 : venueInfo[venue]) == null ? void 0 : _a.label) != null ? _b : labels.venues[venue];
4255
- };
4256
- var resolveDisplayVolume = (eventVolume, venueMarkets) => {
4257
- if (typeof eventVolume === "number" && eventVolume > 0) return eventVolume;
4258
- const clusterMarkets = normalizeVenueMarketCluster(venueMarkets);
4259
- const marketSum = clusterMarkets.reduce(
4260
- (acc, m) => acc + (typeof m.volume === "number" ? m.volume : 0),
4261
- 0
4262
- );
4263
- if (marketSum > 0) return marketSum;
4264
- return void 0;
4265
- };
4266
-
4267
- // src/events/list/event-list.utils.ts
4009
+ var import_sdk = require("@agg-build/sdk");
4268
4010
  var resolveEventVolume = (event) => {
4269
4011
  if (typeof event.volume === "number" && Number.isFinite(event.volume)) {
4270
4012
  return event.volume;
@@ -4292,20 +4034,20 @@ var sortEventsByVolumeDesc = (events, sortEventsBy) => {
4292
4034
  };
4293
4035
  var resolveEventLifecycle = (event) => {
4294
4036
  const hasOpenMarket = event.venueMarkets.some(
4295
- (market) => !market.status || market.status === import_hooks8.MarketStatus.open
4037
+ (market) => !market.status || market.status === import_hooks7.MarketStatus.open
4296
4038
  );
4297
4039
  if (hasOpenMarket) return "open";
4298
4040
  const hasUpcomingMarket = event.venueMarkets.some(
4299
- (market) => market.status === import_hooks8.MarketStatus.unopened
4041
+ (market) => market.status === import_hooks7.MarketStatus.unopened
4300
4042
  );
4301
4043
  if (hasUpcomingMarket) return "upcoming";
4302
4044
  const hasResolvedMarket = event.venueMarkets.some(
4303
- (market) => market.status === import_hooks8.MarketStatus.resolved
4045
+ (market) => market.status === import_hooks7.MarketStatus.resolved
4304
4046
  );
4305
4047
  if (hasResolvedMarket) return "resolved";
4306
- if (event.status === import_hooks8.MarketStatus.open) return "open";
4307
- if (event.status === import_hooks8.MarketStatus.unopened) return "upcoming";
4308
- if (event.status === import_hooks8.MarketStatus.resolved) return "resolved";
4048
+ if (event.status === import_hooks7.MarketStatus.open) return "open";
4049
+ if (event.status === import_hooks7.MarketStatus.unopened) return "upcoming";
4050
+ if (event.status === import_hooks7.MarketStatus.resolved) return "resolved";
4309
4051
  return "ignore";
4310
4052
  };
4311
4053
  var splitEventsByLifecycle = (events) => {
@@ -4335,42 +4077,6 @@ var mapEventToEventListItemEvent = (event) => {
4335
4077
  var filterEventsByTabValue = (events, _tabValue) => {
4336
4078
  return events;
4337
4079
  };
4338
- var sortMarketsByYesOddsDesc = (markets) => {
4339
- return markets.map((market, index) => ({
4340
- market,
4341
- index,
4342
- yesProbability: resolveYesOutcomeProbability(market)
4343
- })).sort((left, right) => {
4344
- const leftHasYesProbability = left.yesProbability != null;
4345
- const rightHasYesProbability = right.yesProbability != null;
4346
- if (leftHasYesProbability !== rightHasYesProbability) {
4347
- return leftHasYesProbability ? -1 : 1;
4348
- }
4349
- if (left.yesProbability != null && right.yesProbability != null) {
4350
- if (left.yesProbability !== right.yesProbability) {
4351
- return right.yesProbability - left.yesProbability;
4352
- }
4353
- }
4354
- return left.index - right.index;
4355
- }).map(({ market }) => market);
4356
- };
4357
- var resolveMarketVolume = (market) => {
4358
- if (typeof market.volume !== "number") return 0;
4359
- if (!Number.isFinite(market.volume)) return 0;
4360
- return market.volume;
4361
- };
4362
- var sortMarketsByVolumeDesc = (markets) => {
4363
- return markets.map((market, index) => ({
4364
- market,
4365
- index,
4366
- volume: resolveMarketVolume(market)
4367
- })).sort((left, right) => {
4368
- if (left.volume !== right.volume) {
4369
- return right.volume - left.volume;
4370
- }
4371
- return left.index - right.index;
4372
- }).map(({ market }) => market);
4373
- };
4374
4080
  var sortCategoriesForNavigation = (categories) => {
4375
4081
  return [...categories].sort((left, right) => {
4376
4082
  const leftIsOther = left.name.trim().toLowerCase() === "other";
@@ -4403,16 +4109,16 @@ var resolveTabVenus = (tab, visibleVenues) => {
4403
4109
  };
4404
4110
 
4405
4111
  // src/primitives/remote-image/index.tsx
4406
- var import_hooks10 = require("@agg-build/hooks");
4112
+ var import_hooks9 = require("@agg-build/hooks");
4407
4113
  var import_react4 = require("react");
4408
4114
 
4409
4115
  // src/primitives/skeleton/skeleton-block.tsx
4410
- var import_hooks9 = require("@agg-build/hooks");
4116
+ var import_hooks8 = require("@agg-build/hooks");
4411
4117
  var import_jsx_runtime90 = require("react/jsx-runtime");
4412
4118
  var SkeletonBlock = ({ className }) => {
4413
4119
  const {
4414
4120
  features: { enableAnimations }
4415
- } = (0, import_hooks9.useSdkUiConfig)();
4121
+ } = (0, import_hooks8.useSdkUiConfig)();
4416
4122
  return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
4417
4123
  "div",
4418
4124
  {
@@ -4456,7 +4162,7 @@ var RemoteImage = ({
4456
4162
  }) => {
4457
4163
  const {
4458
4164
  general: { theme }
4459
- } = (0, import_hooks10.useSdkUiConfig)();
4165
+ } = (0, import_hooks9.useSdkUiConfig)();
4460
4166
  const isDarkTheme = theme === "dark";
4461
4167
  const [status, setStatus] = (0, import_react4.useState)(
4462
4168
  () => resolveRemoteImageStatusFromSrc(src)
@@ -4530,17 +4236,17 @@ var RemoteImage = ({
4530
4236
  RemoteImage.displayName = "RemoteImage";
4531
4237
 
4532
4238
  // src/primitives/skeleton/views/event-list-skeleton-view.tsx
4533
- var import_hooks12 = require("@agg-build/hooks");
4239
+ var import_hooks11 = require("@agg-build/hooks");
4534
4240
 
4535
4241
  // src/primitives/skeleton/views/event-list-item-skeleton-view.tsx
4536
- var import_hooks11 = require("@agg-build/hooks");
4242
+ var import_hooks10 = require("@agg-build/hooks");
4537
4243
  var import_jsx_runtime92 = require("react/jsx-runtime");
4538
4244
  var EventListItemSkeletonView = ({
4539
4245
  className,
4540
4246
  ariaLabel,
4541
4247
  isStandalone = false
4542
4248
  }) => {
4543
- const labels = (0, import_hooks11.useLabels)();
4249
+ const labels = (0, import_hooks10.useLabels)();
4544
4250
  const outcomeTitleWidths = ["max-w-40", "max-w-[200px]"];
4545
4251
  return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(
4546
4252
  Card,
@@ -4606,7 +4312,7 @@ var EventListSkeletonView = ({
4606
4312
  ariaLabel,
4607
4313
  withSidebar
4608
4314
  }) => {
4609
- const labels = (0, import_hooks12.useLabels)();
4315
+ const labels = (0, import_hooks11.useLabels)();
4610
4316
  return /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(
4611
4317
  "section",
4612
4318
  {
@@ -4645,7 +4351,7 @@ var EventListSkeletonView = ({
4645
4351
  EventListSkeletonView.displayName = "EventListSkeletonView";
4646
4352
 
4647
4353
  // src/primitives/skeleton/views/event-list-item-details-skeleton-view.tsx
4648
- var import_hooks13 = require("@agg-build/hooks");
4354
+ var import_hooks12 = require("@agg-build/hooks");
4649
4355
 
4650
4356
  // src/events/item-details/event-list-item-details.constants.ts
4651
4357
  var detailsBaseCardClassName = "w-full gap-6 p-5 md:gap-8";
@@ -4656,7 +4362,7 @@ var EventListItemDetailsSkeletonView = ({
4656
4362
  className,
4657
4363
  ariaLabel
4658
4364
  }) => {
4659
- const labels = (0, import_hooks13.useLabels)();
4365
+ const labels = (0, import_hooks12.useLabels)();
4660
4366
  return /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
4661
4367
  Card,
4662
4368
  {
@@ -4693,7 +4399,7 @@ var EventListItemDetailsSkeletonView = ({
4693
4399
  EventListItemDetailsSkeletonView.displayName = "EventListItemDetailsSkeletonView";
4694
4400
 
4695
4401
  // src/primitives/skeleton/views/market-details-skeleton-view.tsx
4696
- var import_hooks14 = require("@agg-build/hooks");
4402
+ var import_hooks13 = require("@agg-build/hooks");
4697
4403
 
4698
4404
  // src/events/market-details/market-details.constants.ts
4699
4405
  var marketDetailsBaseCardClassName = "w-full overflow-hidden rounded-agg-lg border border-agg-separator bg-agg-secondary text-agg-foreground shadow-none hover:shadow-none";
@@ -4789,7 +4495,7 @@ var MarketDetailsSkeletonView = ({
4789
4495
  ariaLabel,
4790
4496
  isDetailed
4791
4497
  }) => {
4792
- const labels = (0, import_hooks14.useLabels)();
4498
+ const labels = (0, import_hooks13.useLabels)();
4793
4499
  return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(
4794
4500
  Card,
4795
4501
  {
@@ -4890,7 +4596,7 @@ var PlaceOrderSkeletonView = ({
4890
4596
  PlaceOrderSkeletonView.displayName = "PlaceOrderSkeletonView";
4891
4597
 
4892
4598
  // src/primitives/skeleton/views/search-skeleton-view.tsx
4893
- var import_hooks15 = require("@agg-build/hooks");
4599
+ var import_hooks14 = require("@agg-build/hooks");
4894
4600
  var import_jsx_runtime97 = require("react/jsx-runtime");
4895
4601
  var SearchSkeletonRow = () => {
4896
4602
  return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)("div", { className: "flex w-full items-center gap-6 px-5 py-4", children: [
@@ -4916,7 +4622,7 @@ var SearchSkeletonRow = () => {
4916
4622
  ] });
4917
4623
  };
4918
4624
  var SearchSkeletonView = ({ className, ariaLabel }) => {
4919
- const labels = (0, import_hooks15.useLabels)();
4625
+ const labels = (0, import_hooks14.useLabels)();
4920
4626
  return /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
4921
4627
  "div",
4922
4628
  {
@@ -4938,13 +4644,13 @@ var SearchSkeletonView = ({ className, ariaLabel }) => {
4938
4644
  SearchSkeletonView.displayName = "SearchSkeletonView";
4939
4645
 
4940
4646
  // src/primitives/skeleton/views/settlement-skeleton-view.tsx
4941
- var import_hooks16 = require("@agg-build/hooks");
4647
+ var import_hooks15 = require("@agg-build/hooks");
4942
4648
  var import_jsx_runtime98 = require("react/jsx-runtime");
4943
4649
  var SettlementSkeletonView = ({
4944
4650
  className,
4945
4651
  ariaLabel
4946
4652
  }) => {
4947
- const labels = (0, import_hooks16.useLabels)();
4653
+ const labels = (0, import_hooks15.useLabels)();
4948
4654
  return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
4949
4655
  Card,
4950
4656
  {
@@ -5158,7 +4864,7 @@ var Skeleton = ({
5158
4864
  Skeleton.displayName = "Skeleton";
5159
4865
 
5160
4866
  // src/primitives/venue-logo/index.tsx
5161
- var import_hooks25 = require("@agg-build/hooks");
4867
+ var import_hooks24 = require("@agg-build/hooks");
5162
4868
 
5163
4869
  // src/primitives/venue-logo/venue-logo.constants.ts
5164
4870
  var import_sdk10 = require("@agg-build/sdk");
@@ -5211,7 +4917,7 @@ var DefaultVenueIcon = (_a) => {
5211
4917
  };
5212
4918
 
5213
4919
  // src/primitives/venue-logo/svg/logo-hyperliquid.tsx
5214
- var import_hooks17 = require("@agg-build/hooks");
4920
+ var import_hooks16 = require("@agg-build/hooks");
5215
4921
  var import_sdk2 = require("@agg-build/sdk");
5216
4922
  var import_jsx_runtime103 = require("react/jsx-runtime");
5217
4923
  var LogoHyperliquidIcon = (_a) => {
@@ -5229,7 +4935,7 @@ var LogoHyperliquidIcon = (_a) => {
5229
4935
  var _a2;
5230
4936
  const {
5231
4937
  general: { theme }
5232
- } = (0, import_hooks17.useAggUiConfig)();
4938
+ } = (0, import_hooks16.useAggUiConfig)();
5233
4939
  const isDarkTheme = theme === "dark";
5234
4940
  const primaryColor = resolveLogoPrimaryColor({
5235
4941
  brandColor: (_a2 = resolveVenueLineColor(import_sdk2.Venue.hyperliquid, isDarkTheme)) != null ? _a2 : "#97FCE4",
@@ -5259,7 +4965,7 @@ var LogoHyperliquidIcon = (_a) => {
5259
4965
  LogoHyperliquidIcon.displayName = "LogoHyperliquidIcon";
5260
4966
 
5261
4967
  // src/primitives/venue-logo/svg/logo-kalshi.tsx
5262
- var import_hooks18 = require("@agg-build/hooks");
4968
+ var import_hooks17 = require("@agg-build/hooks");
5263
4969
  var import_sdk3 = require("@agg-build/sdk");
5264
4970
  var import_jsx_runtime104 = require("react/jsx-runtime");
5265
4971
  var LogoKalshiIcon = (_a) => {
@@ -5277,7 +4983,7 @@ var LogoKalshiIcon = (_a) => {
5277
4983
  var _a2;
5278
4984
  const {
5279
4985
  general: { theme }
5280
- } = (0, import_hooks18.useAggUiConfig)();
4986
+ } = (0, import_hooks17.useAggUiConfig)();
5281
4987
  const isDarkTheme = theme === "dark";
5282
4988
  const primaryColor = resolveLogoPrimaryColor({
5283
4989
  brandColor: (_a2 = resolveVenueLineColor(import_sdk3.Venue.kalshi, isDarkTheme)) != null ? _a2 : "#18C590",
@@ -5307,7 +5013,7 @@ var LogoKalshiIcon = (_a) => {
5307
5013
  LogoKalshiIcon.displayName = "LogoKalshiIcon";
5308
5014
 
5309
5015
  // src/primitives/venue-logo/svg/logo-limitless.tsx
5310
- var import_hooks19 = require("@agg-build/hooks");
5016
+ var import_hooks18 = require("@agg-build/hooks");
5311
5017
  var import_sdk4 = require("@agg-build/sdk");
5312
5018
  var import_jsx_runtime105 = require("react/jsx-runtime");
5313
5019
  var LogoLimitlessIcon = (_a) => {
@@ -5325,7 +5031,7 @@ var LogoLimitlessIcon = (_a) => {
5325
5031
  var _a2;
5326
5032
  const {
5327
5033
  general: { theme }
5328
- } = (0, import_hooks19.useAggUiConfig)();
5034
+ } = (0, import_hooks18.useAggUiConfig)();
5329
5035
  const isDarkTheme = theme === "dark";
5330
5036
  const primaryColor = resolveLogoPrimaryColor({
5331
5037
  brandColor: (_a2 = resolveVenueLineColor(import_sdk4.Venue.limitless, isDarkTheme)) != null ? _a2 : "#c4fe00",
@@ -5355,7 +5061,7 @@ var LogoLimitlessIcon = (_a) => {
5355
5061
  LogoLimitlessIcon.displayName = "LogoLimitlessIcon";
5356
5062
 
5357
5063
  // src/primitives/venue-logo/svg/logo-myriad.tsx
5358
- var import_hooks20 = require("@agg-build/hooks");
5064
+ var import_hooks19 = require("@agg-build/hooks");
5359
5065
  var import_sdk5 = require("@agg-build/sdk");
5360
5066
  var import_jsx_runtime106 = require("react/jsx-runtime");
5361
5067
  var LogoMyriadIcon = (_a) => {
@@ -5373,7 +5079,7 @@ var LogoMyriadIcon = (_a) => {
5373
5079
  var _a2;
5374
5080
  const {
5375
5081
  general: { theme }
5376
- } = (0, import_hooks20.useAggUiConfig)();
5082
+ } = (0, import_hooks19.useAggUiConfig)();
5377
5083
  const isDarkTheme = theme === "dark";
5378
5084
  const primaryColor = resolveLogoPrimaryColor({
5379
5085
  brandColor: (_a2 = resolveVenueLineColor(import_sdk5.Venue.myriad, isDarkTheme)) != null ? _a2 : "#2E5CFF",
@@ -5403,7 +5109,7 @@ var LogoMyriadIcon = (_a) => {
5403
5109
  LogoMyriadIcon.displayName = "LogoMyriadIcon";
5404
5110
 
5405
5111
  // src/primitives/venue-logo/svg/logo-opinion.tsx
5406
- var import_hooks21 = require("@agg-build/hooks");
5112
+ var import_hooks20 = require("@agg-build/hooks");
5407
5113
  var import_sdk6 = require("@agg-build/sdk");
5408
5114
  var import_jsx_runtime107 = require("react/jsx-runtime");
5409
5115
  var LogoOpinionIcon = (_a) => {
@@ -5421,7 +5127,7 @@ var LogoOpinionIcon = (_a) => {
5421
5127
  var _a2;
5422
5128
  const {
5423
5129
  general: { theme }
5424
- } = (0, import_hooks21.useAggUiConfig)();
5130
+ } = (0, import_hooks20.useAggUiConfig)();
5425
5131
  const isDarkTheme = theme === "dark";
5426
5132
  const primaryColor = resolveLogoPrimaryColor({
5427
5133
  brandColor: (_a2 = resolveVenueLineColor(import_sdk6.Venue.opinion, isDarkTheme)) != null ? _a2 : "#ec5e26",
@@ -5451,7 +5157,7 @@ var LogoOpinionIcon = (_a) => {
5451
5157
  LogoOpinionIcon.displayName = "LogoOpinionIcon";
5452
5158
 
5453
5159
  // src/primitives/venue-logo/svg/logo-polymarket.tsx
5454
- var import_hooks22 = require("@agg-build/hooks");
5160
+ var import_hooks21 = require("@agg-build/hooks");
5455
5161
  var import_sdk7 = require("@agg-build/sdk");
5456
5162
  var import_jsx_runtime108 = require("react/jsx-runtime");
5457
5163
  var LogoPolymarketIcon = (_a) => {
@@ -5469,7 +5175,7 @@ var LogoPolymarketIcon = (_a) => {
5469
5175
  var _a2;
5470
5176
  const {
5471
5177
  general: { theme }
5472
- } = (0, import_hooks22.useAggUiConfig)();
5178
+ } = (0, import_hooks21.useAggUiConfig)();
5473
5179
  const isDarkTheme = theme === "dark";
5474
5180
  const primaryColor = resolveLogoPrimaryColor({
5475
5181
  brandColor: (_a2 = resolveVenueLineColor(import_sdk7.Venue.polymarket, isDarkTheme)) != null ? _a2 : "#2E5CFF",
@@ -5499,7 +5205,7 @@ var LogoPolymarketIcon = (_a) => {
5499
5205
  LogoPolymarketIcon.displayName = "LogoPolymarketIcon";
5500
5206
 
5501
5207
  // src/primitives/venue-logo/svg/logo-predict.tsx
5502
- var import_hooks23 = require("@agg-build/hooks");
5208
+ var import_hooks22 = require("@agg-build/hooks");
5503
5209
  var import_sdk8 = require("@agg-build/sdk");
5504
5210
  var import_jsx_runtime109 = require("react/jsx-runtime");
5505
5211
  var LogoPredictIcon = (_a) => {
@@ -5517,7 +5223,7 @@ var LogoPredictIcon = (_a) => {
5517
5223
  var _a2;
5518
5224
  const {
5519
5225
  general: { theme }
5520
- } = (0, import_hooks23.useAggUiConfig)();
5226
+ } = (0, import_hooks22.useAggUiConfig)();
5521
5227
  const isDarkTheme = theme === "dark";
5522
5228
  const primaryColor = resolveLogoPrimaryColor({
5523
5229
  brandColor: (_a2 = resolveVenueLineColor(import_sdk8.Venue.predict, isDarkTheme)) != null ? _a2 : "#705bf6",
@@ -5549,7 +5255,7 @@ var LogoPredictIcon = (_a) => {
5549
5255
  LogoPredictIcon.displayName = "LogoPredictIcon";
5550
5256
 
5551
5257
  // src/primitives/venue-logo/svg/logo-probable.tsx
5552
- var import_hooks24 = require("@agg-build/hooks");
5258
+ var import_hooks23 = require("@agg-build/hooks");
5553
5259
  var import_sdk9 = require("@agg-build/sdk");
5554
5260
  var import_jsx_runtime110 = require("react/jsx-runtime");
5555
5261
  var LogoProbableIcon = (_a) => {
@@ -5567,7 +5273,7 @@ var LogoProbableIcon = (_a) => {
5567
5273
  var _a2;
5568
5274
  const {
5569
5275
  general: { theme }
5570
- } = (0, import_hooks24.useAggUiConfig)();
5276
+ } = (0, import_hooks23.useAggUiConfig)();
5571
5277
  const isDarkTheme = theme === "dark";
5572
5278
  const primaryColor = resolveLogoPrimaryColor({
5573
5279
  brandColor: (_a2 = resolveVenueLineColor(import_sdk9.Venue.probable, isDarkTheme)) != null ? _a2 : "#EC4899",
@@ -5715,7 +5421,7 @@ var VenueLogo = ({
5715
5421
  title: title2
5716
5422
  }) => {
5717
5423
  var _a, _b;
5718
- const labels = (0, import_hooks25.useLabels)();
5424
+ const labels = (0, import_hooks24.useLabels)();
5719
5425
  const sizeClass = sizeClasses2[size];
5720
5426
  const resolvedLabel = resolveVenueLogoLabel({
5721
5427
  ariaLabel,
@@ -5756,6 +5462,258 @@ var VenueLogo = ({
5756
5462
  };
5757
5463
  VenueLogo.displayName = "VenueLogo";
5758
5464
 
5465
+ // src/events/item/event-list-item.utils.ts
5466
+ var import_hooks25 = require("@agg-build/hooks");
5467
+
5468
+ // src/events/shared/venue-market-cluster.ts
5469
+ var toNonEmptyString = (value) => {
5470
+ if (typeof value !== "string") return void 0;
5471
+ const trimmedValue = value.trim();
5472
+ return trimmedValue ? trimmedValue : void 0;
5473
+ };
5474
+ var addGraphEdge = (adjacencyById, fromMarketId, toMarketId) => {
5475
+ var _a, _b;
5476
+ if (fromMarketId === toMarketId) return;
5477
+ const fromNeighbors = (_a = adjacencyById.get(fromMarketId)) != null ? _a : /* @__PURE__ */ new Set();
5478
+ fromNeighbors.add(toMarketId);
5479
+ adjacencyById.set(fromMarketId, fromNeighbors);
5480
+ const toNeighbors = (_b = adjacencyById.get(toMarketId)) != null ? _b : /* @__PURE__ */ new Set();
5481
+ toNeighbors.add(fromMarketId);
5482
+ adjacencyById.set(toMarketId, toNeighbors);
5483
+ };
5484
+ var dedupeSourceMarketsById = (markets) => {
5485
+ const seenMarketIds = /* @__PURE__ */ new Set();
5486
+ return markets.filter((market) => {
5487
+ if (seenMarketIds.has(market.id)) {
5488
+ return false;
5489
+ }
5490
+ seenMarketIds.add(market.id);
5491
+ return true;
5492
+ });
5493
+ };
5494
+ var collectDirectRelationMarkets = (market) => {
5495
+ var _a, _b, _c;
5496
+ const relationMarkets = [];
5497
+ const seenRelationIds = /* @__PURE__ */ new Set();
5498
+ const addRelationMarket = (relationMarket) => {
5499
+ if (!relationMarket) return;
5500
+ if (seenRelationIds.has(relationMarket.id)) return;
5501
+ seenRelationIds.add(relationMarket.id);
5502
+ relationMarkets.push(relationMarket);
5503
+ };
5504
+ for (const matchedVenueMarket of (_a = market.matchedVenueMarkets) != null ? _a : []) {
5505
+ addRelationMarket(matchedVenueMarket);
5506
+ }
5507
+ addRelationMarket(
5508
+ (_c = (_b = market.matchEntry) == null ? void 0 : _b.targetVenueMarket) != null ? _c : void 0
5509
+ );
5510
+ return relationMarkets;
5511
+ };
5512
+ var collectUniqueRelatedMarkets = (markets, sourceMarketsById) => {
5513
+ const relatedMarketsById = /* @__PURE__ */ new Map();
5514
+ for (const market of markets) {
5515
+ for (const relatedMarket of collectDirectRelationMarkets(market)) {
5516
+ if (sourceMarketsById.has(relatedMarket.id) || relatedMarketsById.has(relatedMarket.id)) {
5517
+ continue;
5518
+ }
5519
+ relatedMarketsById.set(relatedMarket.id, relatedMarket);
5520
+ }
5521
+ }
5522
+ return Array.from(relatedMarketsById.values());
5523
+ };
5524
+ var normalizeVenueMarketCluster = (markets, selectedMarketId) => {
5525
+ var _a, _b;
5526
+ if (markets.length === 0) return [];
5527
+ const orderedSourceMarkets = dedupeSourceMarketsById(markets);
5528
+ const sourceMarketsById = new Map(orderedSourceMarkets.map((market) => [market.id, market]));
5529
+ const orderedRelatedMarkets = collectUniqueRelatedMarkets(
5530
+ orderedSourceMarkets,
5531
+ sourceMarketsById
5532
+ );
5533
+ const relatedMarketsById = new Map(orderedRelatedMarkets.map((market) => [market.id, market]));
5534
+ const resolvedSelectedMarketId = toNonEmptyString(selectedMarketId);
5535
+ if (!resolvedSelectedMarketId) {
5536
+ return [...orderedSourceMarkets, ...orderedRelatedMarkets];
5537
+ }
5538
+ const adjacencyById = /* @__PURE__ */ new Map();
5539
+ for (const market of orderedSourceMarkets) {
5540
+ for (const relatedMarket of collectDirectRelationMarkets(market)) {
5541
+ addGraphEdge(adjacencyById, market.id, relatedMarket.id);
5542
+ }
5543
+ const targetVenueMarketId = toNonEmptyString((_a = market.matchEntry) == null ? void 0 : _a.targetVenueMarketId);
5544
+ if (targetVenueMarketId) {
5545
+ addGraphEdge(adjacencyById, market.id, targetVenueMarketId);
5546
+ }
5547
+ }
5548
+ if (!sourceMarketsById.has(resolvedSelectedMarketId) && !relatedMarketsById.has(resolvedSelectedMarketId)) {
5549
+ return [];
5550
+ }
5551
+ const visitedMarketIds = /* @__PURE__ */ new Set();
5552
+ const queue = [resolvedSelectedMarketId];
5553
+ while (queue.length > 0) {
5554
+ const currentMarketId = queue.shift();
5555
+ if (!currentMarketId || visitedMarketIds.has(currentMarketId)) {
5556
+ continue;
5557
+ }
5558
+ visitedMarketIds.add(currentMarketId);
5559
+ const neighborMarketIds = adjacencyById.get(currentMarketId);
5560
+ for (const neighborMarketId of Array.from(neighborMarketIds != null ? neighborMarketIds : /* @__PURE__ */ new Set())) {
5561
+ if (!visitedMarketIds.has(neighborMarketId)) {
5562
+ queue.push(neighborMarketId);
5563
+ }
5564
+ }
5565
+ }
5566
+ const orderedClusterMarkets = [];
5567
+ const appendedMarketIds = /* @__PURE__ */ new Set();
5568
+ const appendMarket = (market) => {
5569
+ if (!market) return;
5570
+ if (!visitedMarketIds.has(market.id)) return;
5571
+ if (appendedMarketIds.has(market.id)) return;
5572
+ appendedMarketIds.add(market.id);
5573
+ orderedClusterMarkets.push(market);
5574
+ };
5575
+ appendMarket(
5576
+ (_b = sourceMarketsById.get(resolvedSelectedMarketId)) != null ? _b : relatedMarketsById.get(resolvedSelectedMarketId)
5577
+ );
5578
+ for (const market of orderedSourceMarkets) {
5579
+ appendMarket(market);
5580
+ }
5581
+ for (const market of orderedRelatedMarkets) {
5582
+ appendMarket(market);
5583
+ }
5584
+ return orderedClusterMarkets;
5585
+ };
5586
+
5587
+ // src/events/item/event-list-item.utils.ts
5588
+ var resolveEventListItemEvent = (fetchedEvent) => {
5589
+ if (!fetchedEvent) return void 0;
5590
+ if (!fetchedEvent.venueMarkets || fetchedEvent.venueMarkets.length === 0) return void 0;
5591
+ return fetchedEvent;
5592
+ };
5593
+ var normalizeProbability = (value) => {
5594
+ if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
5595
+ if (value < 0) return 0;
5596
+ if (value > 1) return 1;
5597
+ return value;
5598
+ };
5599
+ var formatWholePercent = (value) => {
5600
+ return `${Math.round(value * 100)}%`;
5601
+ };
5602
+ var hasDateLabel = (outcome) => {
5603
+ return !!toDate(outcome.label);
5604
+ };
5605
+ var isYesLabel = (label2) => label2.trim().toLowerCase() === "yes";
5606
+ var isNoLabel = (label2) => label2.trim().toLowerCase() === "no";
5607
+ var hasBinaryOutcomes = (outcomes) => {
5608
+ return outcomes.some((o) => isYesLabel(o.label)) && outcomes.some((o) => isNoLabel(o.label));
5609
+ };
5610
+ var sortYesFirst = (outcomes) => {
5611
+ return [...outcomes].sort((a, b) => {
5612
+ if (isYesLabel(a.label) && !isYesLabel(b.label)) return -1;
5613
+ if (!isYesLabel(a.label) && isYesLabel(b.label)) return 1;
5614
+ return 0;
5615
+ });
5616
+ };
5617
+ var resolveYesOutcome = (market) => {
5618
+ return market.venueMarketOutcomes.find((outcome) => isYesLabel(outcome.label));
5619
+ };
5620
+ var formatMarketProbabilityPercent = (value, formatPercent = formatWholePercent) => {
5621
+ const probability = normalizeProbability(value);
5622
+ if (probability == null) return "-";
5623
+ const formattedValue = formatPercent(probability);
5624
+ if (probability > 0 && formattedValue === formatPercent(0)) {
5625
+ return "<1%";
5626
+ }
5627
+ return formattedValue;
5628
+ };
5629
+ var formatPriceGapPercent = (value) => {
5630
+ if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
5631
+ if (value < import_hooks25.MIN_PRICE_GAP_PCT) return void 0;
5632
+ if (value > import_hooks25.MAX_PRICE_GAP_PCT) return void 0;
5633
+ return `${Math.round(value)}%`;
5634
+ };
5635
+ var sortOutcomes = (outcomes) => {
5636
+ if (outcomes.length <= 1) return outcomes;
5637
+ if (hasBinaryOutcomes(outcomes)) {
5638
+ return sortYesFirst(outcomes);
5639
+ }
5640
+ const now = Date.now();
5641
+ if (outcomes.some(hasDateLabel)) {
5642
+ return [...outcomes].sort((a, b) => {
5643
+ var _a, _b, _c, _d;
5644
+ const aDate = (_b = (_a = toDate(a.label)) == null ? void 0 : _a.getTime()) != null ? _b : 0;
5645
+ const bDate = (_d = (_c = toDate(b.label)) == null ? void 0 : _c.getTime()) != null ? _d : 0;
5646
+ return Math.abs(aDate - now) - Math.abs(bDate - now);
5647
+ });
5648
+ }
5649
+ return [...outcomes].sort((a, b) => {
5650
+ var _a, _b;
5651
+ const aPrice = (_a = normalizeProbability(a.price)) != null ? _a : 0;
5652
+ const bPrice = (_b = normalizeProbability(b.price)) != null ? _b : 0;
5653
+ return bPrice - aPrice;
5654
+ });
5655
+ };
5656
+ var dedupeVenueMarketsById = (venueMarkets) => {
5657
+ const seenClusterIds = /* @__PURE__ */ new Set();
5658
+ return venueMarkets.filter((venueMarket) => {
5659
+ var _a;
5660
+ if (seenClusterIds.has(venueMarket.id)) {
5661
+ return false;
5662
+ }
5663
+ seenClusterIds.add(venueMarket.id);
5664
+ for (const sibling of (_a = venueMarket.matchedVenueMarkets) != null ? _a : []) {
5665
+ seenClusterIds.add(sibling.id);
5666
+ }
5667
+ return true;
5668
+ });
5669
+ };
5670
+ var resolveOutcomeTitle = (outcome) => {
5671
+ var _a, _b;
5672
+ return (_b = (_a = outcome == null ? void 0 : outcome.title) != null ? _a : outcome == null ? void 0 : outcome.label) == null ? void 0 : _b.trim();
5673
+ };
5674
+ var selectPrimaryVenueMarket = (venueMarkets) => {
5675
+ if (venueMarkets.length === 0) return void 0;
5676
+ if (venueMarkets.length === 1) return venueMarkets[0];
5677
+ return [...venueMarkets].sort((a, b) => {
5678
+ const aVolume = typeof a.volume === "number" ? a.volume : -1;
5679
+ const bVolume = typeof b.volume === "number" ? b.volume : -1;
5680
+ return bVolume - aVolume;
5681
+ })[0];
5682
+ };
5683
+ var getVenueSummary = (venueMarkets, options) => {
5684
+ const normalizedVenueMarkets = normalizeVenueMarketCluster(venueMarkets);
5685
+ const tradableVenues = options == null ? void 0 : options.tradableVenues;
5686
+ const isVenueTradable = (venue) => {
5687
+ if (tradableVenues == null) return true;
5688
+ return tradableVenues.has(venue);
5689
+ };
5690
+ const uniqueVenues = Array.from(
5691
+ new Set(
5692
+ normalizedVenueMarkets.filter((market) => isVenueTradable(market.venue)).map((market) => market.venue)
5693
+ )
5694
+ );
5695
+ return {
5696
+ marketCount: normalizedVenueMarkets.length,
5697
+ venueCount: uniqueVenues.length,
5698
+ singleVenue: uniqueVenues.length === 1 ? uniqueVenues[0] : void 0
5699
+ };
5700
+ };
5701
+ var resolveVenueLabel = (venue, venueInfo, labels) => {
5702
+ var _a, _b;
5703
+ if (!venue) return labels.eventItem.venueSingular;
5704
+ return (_b = (_a = venueInfo == null ? void 0 : venueInfo[venue]) == null ? void 0 : _a.label) != null ? _b : labels.venues[venue];
5705
+ };
5706
+ var resolveDisplayVolume = (eventVolume, venueMarkets) => {
5707
+ if (typeof eventVolume === "number" && eventVolume > 0) return eventVolume;
5708
+ const clusterMarkets = normalizeVenueMarketCluster(venueMarkets);
5709
+ const marketSum = clusterMarkets.reduce(
5710
+ (acc, m) => acc + (typeof m.volume === "number" ? m.volume : 0),
5711
+ 0
5712
+ );
5713
+ if (marketSum > 0) return marketSum;
5714
+ return void 0;
5715
+ };
5716
+
5759
5717
  // src/primitives/modal/index.tsx
5760
5718
  var import_hooks26 = require("@agg-build/hooks");
5761
5719
  var Dialog = __toESM(require("@radix-ui/react-dialog"));
@@ -7108,7 +7066,7 @@ var resolveOutcomeRows = ({
7108
7066
  outcome
7109
7067
  }));
7110
7068
  }
7111
- return sortMarketsByYesOddsDesc(venueMarkets).map((market) => {
7069
+ return venueMarkets.map((market) => {
7112
7070
  const outcome = resolveDisplayOutcome(market);
7113
7071
  if (!outcome) return void 0;
7114
7072
  return {
@@ -10456,13 +10414,12 @@ var EventListItemDetailsContent = ({
10456
10414
  () => resolvedEventTradingState.displayMarkets,
10457
10415
  [resolvedEventTradingState.displayMarkets]
10458
10416
  );
10459
- const sortedVenueMarkets = (0, import_react15.useMemo)(() => sortMarketsByVolumeDesc(venueMarkets), [venueMarkets]);
10460
10417
  const marketOptions = (0, import_react15.useMemo)(
10461
- () => sortedVenueMarkets.map((vm) => ({
10418
+ () => venueMarkets.map((vm) => ({
10462
10419
  value: vm.id,
10463
10420
  label: vm.question
10464
10421
  })),
10465
- [sortedVenueMarkets]
10422
+ [venueMarkets]
10466
10423
  );
10467
10424
  const volumeLabel = (0, import_react15.useMemo)(() => {
10468
10425
  const resolvedVolume = resolveDisplayVolume(event.volume, venueMarkets);
@@ -12540,8 +12497,7 @@ var MarketDetailsList = ({
12540
12497
  return resolveIsResolvedEvent(sourceMarkets, eventTradingState);
12541
12498
  }, [eventTradingState, sourceMarkets]);
12542
12499
  const groupedMarkets = (0, import_react18.useMemo)(() => {
12543
- const sortedMarkets = sortMarketsByVolumeDesc(sourceMarkets);
12544
- if (sortedMarkets.length === 0) {
12500
+ if (sourceMarkets.length === 0) {
12545
12501
  return {
12546
12502
  primary: [],
12547
12503
  closed: [],
@@ -12550,9 +12506,9 @@ var MarketDetailsList = ({
12550
12506
  };
12551
12507
  }
12552
12508
  if (isResolvedEvent) {
12553
- const winnerMarketId = resolveResolvedWinnerMarketId(sortedMarkets, eventTradingState);
12509
+ const winnerMarketId = resolveResolvedWinnerMarketId(sourceMarkets, eventTradingState);
12554
12510
  return {
12555
- primary: moveMarketToFront(sortedMarkets, winnerMarketId),
12511
+ primary: moveMarketToFront(sourceMarkets, winnerMarketId),
12556
12512
  upcoming: [],
12557
12513
  resolved: []
12558
12514
  };
@@ -12561,7 +12517,7 @@ var MarketDetailsList = ({
12561
12517
  const upcoming = [];
12562
12518
  const resolved = [];
12563
12519
  const closed = [];
12564
- sortedMarkets.forEach((market) => {
12520
+ sourceMarkets.forEach((market) => {
12565
12521
  const marketStateKind = (0, import_hooks42.resolveMarketTradingState)(market).kind;
12566
12522
  if (marketStateKind === "resolved") {
12567
12523
  resolved.push(market);