@agg-build/hooks 2.5.1 → 2.6.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/index.js CHANGED
@@ -84,8 +84,8 @@ __export(src_exports, {
84
84
  MarketStatus: () => MarketStatus,
85
85
  MatchStatus: () => MatchStatus,
86
86
  MatchType: () => MatchType,
87
- QueryClient: () => import_react_query41.QueryClient,
88
- QueryClientProvider: () => import_react_query41.QueryClientProvider,
87
+ QueryClient: () => import_react_query43.QueryClient,
88
+ QueryClientProvider: () => import_react_query43.QueryClientProvider,
89
89
  RedeemRejectedError: () => RedeemRejectedError,
90
90
  TradeSide: () => TradeSide,
91
91
  TurnstileChallengeError: () => import_sdk4.TurnstileChallengeError,
@@ -184,7 +184,7 @@ __export(src_exports, {
184
184
  useOrders: () => useOrders,
185
185
  usePlaceLimitOrder: () => usePlaceLimitOrder,
186
186
  usePositions: () => usePositions,
187
- useQueryClient: () => import_react_query41.useQueryClient,
187
+ useQueryClient: () => import_react_query43.useQueryClient,
188
188
  useQuoteManaged: () => useQuoteManaged,
189
189
  useRampQuotes: () => useRampQuotes,
190
190
  useRampSession: () => useRampSession,
@@ -202,8 +202,10 @@ __export(src_exports, {
202
202
  useUserHoldings: () => useUserHoldings,
203
203
  useVenueEvent: () => useVenueEvent,
204
204
  useVenueEvents: () => useVenueEvents,
205
+ useVenueKeyStatus: () => useVenueKeyStatus,
205
206
  useVenueMarketMidpoints: () => useVenueMarketMidpoints,
206
207
  useVenueMarkets: () => useVenueMarkets,
208
+ useVenueSellQuotes: () => useVenueSellQuotes,
207
209
  useViewportMidpoints: () => useViewportMidpoints,
208
210
  useVisibleIds: () => useVisibleIds,
209
211
  useWithdrawEstimate: () => useWithdrawEstimate,
@@ -211,7 +213,8 @@ __export(src_exports, {
211
213
  useWithdrawManaged: () => useWithdrawManaged,
212
214
  useWithdrawPreview: () => useWithdrawPreview,
213
215
  useWithdrawalLifecycle: () => useWithdrawalLifecycle,
214
- userActivityQueryKeys: () => userActivityQueryKeys
216
+ userActivityQueryKeys: () => userActivityQueryKeys,
217
+ venueKeyQueryKeys: () => venueKeyQueryKeys
215
218
  });
216
219
  module.exports = __toCommonJS(src_exports);
217
220
 
@@ -349,7 +352,7 @@ var getVenueOrder = (venue) => {
349
352
  var sortVenues = (venues) => [...venues].sort((a, b) => getVenueOrder(a) - getVenueOrder(b));
350
353
 
351
354
  // src/index.ts
352
- var import_react_query41 = require("@tanstack/react-query");
355
+ var import_react_query43 = require("@tanstack/react-query");
353
356
 
354
357
  // src/candle-store.ts
355
358
  var import_sdk = require("@agg-build/sdk");
@@ -819,6 +822,8 @@ var enUsLabels = {
819
822
  balance: {
820
823
  availableBalance: "Available Balance",
821
824
  reservedForOpenOrders: (amount) => `${amount} reserved for open orders`,
825
+ positionsValue: "Positions Value",
826
+ kalshiBalance: "Kalshi Balance",
822
827
  balanceByNetwork: "Balance by network",
823
828
  paperModeNetwork: "Paper",
824
829
  paperModeWarning: "Paper mode is enabled. These are simulated funds for paper trading.",
@@ -1153,6 +1158,24 @@ var enUsLabels = {
1153
1158
  noBidsAboveMinPrice: "No venue bids above the minimum price.",
1154
1159
  signInToTrade: "Sign in to trade",
1155
1160
  deposit: "Deposit",
1161
+ addFundsToKalshi: "Add funds to Kalshi",
1162
+ fundKalshiModal: {
1163
+ ariaLabel: "Fund your Kalshi account",
1164
+ title: "Fund Your Kalshi Account",
1165
+ description: "Kalshi manages its own account balances, so funds can't be deposited through agg.market. Add funds directly in Kalshi, then return here to trade with your updated balance.",
1166
+ howItWorks: "How it works",
1167
+ kalshiLinkLabel: "Kalshi",
1168
+ kalshiUrl: "https://kalshi.com",
1169
+ firstStepPrefix: "Go to",
1170
+ firstStepSuffix: "and sign in to your account.",
1171
+ remainingSteps: [
1172
+ "Click Add Funds.",
1173
+ "Complete your deposit using your preferred payment method.",
1174
+ "Return here - your Kalshi balance will be available automatically."
1175
+ ],
1176
+ doItLater: "I'll do it later",
1177
+ done: "Done"
1178
+ },
1156
1179
  kycRequired: "Verify to trade Kalshi",
1157
1180
  kycNotVerifiedTooltip: "You have not been verified yet",
1158
1181
  kycVerify: "Verify Identity",
@@ -1163,6 +1186,10 @@ var enUsLabels = {
1163
1186
  kycSuccessTitle: "Verification successful",
1164
1187
  kycSuccessDescription: "Your identity has been confirmed and you now have full access to trade on Kalshi markets.",
1165
1188
  kycSuccessDone: "Done",
1189
+ connectKalshi: "Connect to trade Kalshi",
1190
+ tradingAccessVenues: "Venues",
1191
+ tradingAccessAvailable: "Available",
1192
+ tradingAccessAddKalshiAccount: "Add Kalshi Account",
1166
1193
  outcome: (label) => `Outcome: ${label}`,
1167
1194
  smartRouting: "Smart Routing",
1168
1195
  orderTypeMarket: "Market",
@@ -1354,6 +1381,11 @@ var enUsLabels = {
1354
1381
  cancel: "Cancel",
1355
1382
  verifyConnection: "Verify Connection"
1356
1383
  },
1384
+ success: {
1385
+ title: "Kalshi Account Connected",
1386
+ description: "Your Kalshi account is now connected to AGG. You can start trading Kalshi markets.",
1387
+ done: "Done"
1388
+ },
1357
1389
  fallbackError: "Verification failed. Please check your credentials and try again."
1358
1390
  }
1359
1391
  },
@@ -1403,6 +1435,9 @@ var enUsLabels = {
1403
1435
  moreMarketsTitle: "More markets",
1404
1436
  gameLinesTab: "Game Lines",
1405
1437
  halvesTab: "Halves",
1438
+ quartersTab: "Quarters",
1439
+ setsTab: "Sets",
1440
+ playerPropsTab: "Player Props",
1406
1441
  exactScoreTab: "Exact Score",
1407
1442
  cornersTab: "Corners",
1408
1443
  goalsTab: "Goals",
@@ -2062,6 +2097,7 @@ var EMPTY_MANAGED_BALANCES = {
2062
2097
  positions: []
2063
2098
  };
2064
2099
  function AggBalanceProvider({ children }) {
2100
+ var _a;
2065
2101
  const client = (0, import_react3.useContext)(AggClientContext);
2066
2102
  const authContext = (0, import_react3.useContext)(AggAuthContext);
2067
2103
  const {
@@ -2106,8 +2142,8 @@ function AggBalanceProvider({ children }) {
2106
2142
  if (!isUsdBasedToken(token.tokenSymbol)) return sum;
2107
2143
  const tokenAcrossChains = token.chains.reduce(
2108
2144
  (chainSum, chain) => {
2109
- var _a;
2110
- return chainSum + toTokenUnits(chain.balanceRaw, (_a = chain.decimals) != null ? _a : token.decimals);
2145
+ var _a2;
2146
+ return chainSum + toTokenUnits(chain.balanceRaw, (_a2 = chain.decimals) != null ? _a2 : token.decimals);
2111
2147
  },
2112
2148
  0
2113
2149
  );
@@ -2122,8 +2158,8 @@ function AggBalanceProvider({ children }) {
2122
2158
  }
2123
2159
  return sum + token.chains.reduce(
2124
2160
  (chainSum, chain) => {
2125
- var _a, _b;
2126
- return chainSum + toTokenUnits((_a = chain.availableRaw) != null ? _a : chain.balanceRaw, (_b = chain.decimals) != null ? _b : token.decimals);
2161
+ var _a2, _b;
2162
+ return chainSum + toTokenUnits((_a2 = chain.availableRaw) != null ? _a2 : chain.balanceRaw, (_b = chain.decimals) != null ? _b : token.decimals);
2127
2163
  },
2128
2164
  0
2129
2165
  );
@@ -2137,8 +2173,8 @@ function AggBalanceProvider({ children }) {
2137
2173
  }
2138
2174
  return sum + token.chains.reduce(
2139
2175
  (chainSum, chain) => {
2140
- var _a, _b;
2141
- return chainSum + toTokenUnits((_a = chain.heldRaw) != null ? _a : "0", (_b = chain.decimals) != null ? _b : token.decimals);
2176
+ var _a2, _b;
2177
+ return chainSum + toTokenUnits((_a2 = chain.heldRaw) != null ? _a2 : "0", (_b = chain.decimals) != null ? _b : token.decimals);
2142
2178
  },
2143
2179
  0
2144
2180
  );
@@ -2146,13 +2182,13 @@ function AggBalanceProvider({ children }) {
2146
2182
  }, [managedBalances]);
2147
2183
  const buildBalanceBreakdown = (0, import_react3.useCallback)(
2148
2184
  (rawForChain) => {
2149
- var _a, _b;
2185
+ var _a2, _b;
2150
2186
  const byChain = /* @__PURE__ */ new Map();
2151
2187
  const cash = managedBalances.cash;
2152
2188
  for (const token of cash) {
2153
2189
  if (!isUsdBasedToken(token.tokenSymbol)) continue;
2154
2190
  for (const chain of token.chains) {
2155
- const current = (_a = byChain.get(chain.chainId)) != null ? _a : {
2191
+ const current = (_a2 = byChain.get(chain.chainId)) != null ? _a2 : {
2156
2192
  label: chainLabelFromId(chain.chainId),
2157
2193
  balance: 0,
2158
2194
  accountCount: 0
@@ -2177,8 +2213,8 @@ function AggBalanceProvider({ children }) {
2177
2213
  }, [buildBalanceBreakdown]);
2178
2214
  const availableBalanceBreakdown = (0, import_react3.useMemo)(() => {
2179
2215
  return buildBalanceBreakdown((chain) => {
2180
- var _a;
2181
- return (_a = chain.availableRaw) != null ? _a : chain.balanceRaw;
2216
+ var _a2;
2217
+ return (_a2 = chain.availableRaw) != null ? _a2 : chain.balanceRaw;
2182
2218
  });
2183
2219
  }, [buildBalanceBreakdown]);
2184
2220
  const positionsBalanceTotal = (0, import_react3.useMemo)(() => {
@@ -2188,6 +2224,9 @@ function AggBalanceProvider({ children }) {
2188
2224
  0
2189
2225
  );
2190
2226
  }, [managedBalances]);
2227
+ const kalshiVenueCash = (_a = managedBalances.venueCash) == null ? void 0 : _a.find((item) => item.venue === "kalshi");
2228
+ const kalshiBalance = kalshiVenueCash ? kalshiVenueCash.balanceCents / 100 : null;
2229
+ const kalshiPortfolioValue = (kalshiVenueCash == null ? void 0 : kalshiVenueCash.portfolioValueCents) == null ? null : kalshiVenueCash.portfolioValueCents / 100;
2191
2230
  const refetch = (0, import_react3.useCallback)(() => {
2192
2231
  if (!isAuthenticated) return;
2193
2232
  void refetchBalances();
@@ -2204,6 +2243,8 @@ function AggBalanceProvider({ children }) {
2204
2243
  availableBalance: 0,
2205
2244
  reservedBalance: 0,
2206
2245
  positionsBalanceTotal: 0,
2246
+ kalshiBalance: null,
2247
+ kalshiPortfolioValue: null,
2207
2248
  balanceBreakdown: [],
2208
2249
  availableBalanceBreakdown: [],
2209
2250
  connectedVenues: [],
@@ -2220,6 +2261,8 @@ function AggBalanceProvider({ children }) {
2220
2261
  availableBalance,
2221
2262
  reservedBalance,
2222
2263
  positionsBalanceTotal,
2264
+ kalshiBalance,
2265
+ kalshiPortfolioValue,
2223
2266
  balanceBreakdown,
2224
2267
  availableBalanceBreakdown,
2225
2268
  connectedVenues,
@@ -2236,6 +2279,8 @@ function AggBalanceProvider({ children }) {
2236
2279
  connectedVenues,
2237
2280
  isBalancesLoading,
2238
2281
  isAuthenticated,
2282
+ kalshiBalance,
2283
+ kalshiPortfolioValue,
2239
2284
  managedBalances,
2240
2285
  positionsBalanceTotal,
2241
2286
  refetch,
@@ -5527,13 +5572,30 @@ var getVisibleVenueIdsByConfig = (venueIds, disabledVenues) => {
5527
5572
  var getVenueAvailabilityState = ({
5528
5573
  venueId,
5529
5574
  disabledVenues,
5575
+ isConfigLoading,
5530
5576
  isLocationBlocked
5531
5577
  }) => {
5578
+ if (isConfigLoading) return "hidden";
5532
5579
  if (isVenueDisabledByConfig(venueId, disabledVenues)) return "hidden";
5533
5580
  if (isLocationBlocked) return "geoblocked";
5534
5581
  return "available";
5535
5582
  };
5536
5583
 
5584
+ // src/use-venue-key-status.ts
5585
+ var import_react_query20 = require("@tanstack/react-query");
5586
+ var venueKeyQueryKeys = {
5587
+ all: ["agg", "venue-keys"],
5588
+ status: (venue) => [...venueKeyQueryKeys.all, venue, "status"]
5589
+ };
5590
+ var useVenueKeyStatus = (venue, enabled = true) => {
5591
+ const client = useAggClient();
5592
+ return (0, import_react_query20.useQuery)({
5593
+ queryKey: venueKeyQueryKeys.status(venue),
5594
+ queryFn: () => client.getVenueKeyStatus(venue),
5595
+ enabled
5596
+ });
5597
+ };
5598
+
5537
5599
  // src/use-agg-auth.ts
5538
5600
  var import_react17 = require("react");
5539
5601
  function useAggAuth(options = {}) {
@@ -5602,7 +5664,7 @@ var requestAggAuthChooserOpen = () => {
5602
5664
  };
5603
5665
 
5604
5666
  // src/use-categories.ts
5605
- var import_react_query20 = require("@tanstack/react-query");
5667
+ var import_react_query21 = require("@tanstack/react-query");
5606
5668
  function useCategories(options) {
5607
5669
  var _a, _b, _c, _d, _e, _f;
5608
5670
  const client = useAggClient();
@@ -5610,7 +5672,7 @@ function useCategories(options) {
5610
5672
  const parentId = (_b = options == null ? void 0 : options.parentId) != null ? _b : null;
5611
5673
  const enabled = (_c = options == null ? void 0 : options.enabled) != null ? _c : true;
5612
5674
  const limit = (_d = options == null ? void 0 : options.limit) != null ? _d : 20;
5613
- const query = (0, import_react_query20.useInfiniteQuery)({
5675
+ const query = (0, import_react_query21.useInfiniteQuery)({
5614
5676
  queryKey: [queryKeyScope, "parent", parentId != null ? parentId : "__root__", limit],
5615
5677
  queryFn: (_0) => __async(null, [_0], function* ({ pageParam }) {
5616
5678
  const res = yield client.getCategories(__spreadValues({
@@ -5642,7 +5704,7 @@ function useCategoryChildren(options) {
5642
5704
  const parentIds = Array.from(
5643
5705
  new Set(((_d = options == null ? void 0 : options.parentIds) != null ? _d : []).filter((parentId) => Boolean(parentId)))
5644
5706
  );
5645
- const queries = (0, import_react_query20.useQueries)({
5707
+ const queries = (0, import_react_query21.useQueries)({
5646
5708
  queries: parentIds.map((parentId) => ({
5647
5709
  queryKey: [queryKeyScope, "parent", parentId, limit],
5648
5710
  queryFn: () => __async(null, null, function* () {
@@ -5685,7 +5747,7 @@ function useDebouncedValue(value, delay) {
5685
5747
  }
5686
5748
 
5687
5749
  // src/use-execution-orders.ts
5688
- var import_react_query21 = require("@tanstack/react-query");
5750
+ var import_react_query22 = require("@tanstack/react-query");
5689
5751
  function useExecutionOrders(options = {}) {
5690
5752
  var _a, _b;
5691
5753
  const client = useAggClient();
@@ -5698,7 +5760,7 @@ function useExecutionOrders(options = {}) {
5698
5760
  enabled = true,
5699
5761
  refetchIntervalMs = false
5700
5762
  } = options;
5701
- const query = (0, import_react_query21.useInfiniteQuery)({
5763
+ const query = (0, import_react_query22.useInfiniteQuery)({
5702
5764
  // quoteId + orderId are part of the cache key — different filters
5703
5765
  // produce different result sets, so they have to vary the key.
5704
5766
  queryKey: [
@@ -5734,7 +5796,7 @@ function useExecutionOrders(options = {}) {
5734
5796
  }
5735
5797
 
5736
5798
  // src/use-user-activity.ts
5737
- var import_react_query22 = require("@tanstack/react-query");
5799
+ var import_react_query23 = require("@tanstack/react-query");
5738
5800
  var DEFAULT_PENDING_REFETCH_INTERVAL_MS = 15e3;
5739
5801
  var PENDING_ACTIVITY_STATUSES = /* @__PURE__ */ new Set([
5740
5802
  "pending",
@@ -5768,7 +5830,7 @@ function useUserActivity(options = {}) {
5768
5830
  enabled = true,
5769
5831
  pendingRefetchIntervalMs = DEFAULT_PENDING_REFETCH_INTERVAL_MS
5770
5832
  } = options;
5771
- const query = (0, import_react_query22.useInfiniteQuery)({
5833
+ const query = (0, import_react_query23.useInfiniteQuery)({
5772
5834
  queryKey: userActivityQueryKeys.feed(type, limit),
5773
5835
  queryFn: ({ pageParam }) => client.getUserActivity({
5774
5836
  type,
@@ -5785,7 +5847,7 @@ function useUserActivity(options = {}) {
5785
5847
  // flight (typically after a deposit / withdraw cache invalidation).
5786
5848
  // Without this the feed flashes to the skeleton mid-session, which
5787
5849
  // is worse UX than briefly showing slightly-stale rows.
5788
- placeholderData: import_react_query22.keepPreviousData,
5850
+ placeholderData: import_react_query23.keepPreviousData,
5789
5851
  refetchInterval: (q) => {
5790
5852
  if (pendingRefetchIntervalMs === false) return false;
5791
5853
  const data = q.state.data;
@@ -5830,12 +5892,12 @@ function useExternalId(options = {}) {
5830
5892
  }
5831
5893
 
5832
5894
  // src/use-execution-positions.ts
5833
- var import_react_query23 = require("@tanstack/react-query");
5895
+ var import_react_query24 = require("@tanstack/react-query");
5834
5896
  function useExecutionPositions(options = {}) {
5835
5897
  var _a, _b;
5836
5898
  const client = useAggClient();
5837
5899
  const { limit = 50, status, mode, enabled = true } = options;
5838
- const query = (0, import_react_query23.useInfiniteQuery)({
5900
+ const query = (0, import_react_query24.useInfiniteQuery)({
5839
5901
  queryKey: executionKeys.positions(null, limit, status != null ? status : null, mode != null ? mode : null),
5840
5902
  queryFn: ({ pageParam }) => client.getExecutionPositions(__spreadProps(__spreadValues({
5841
5903
  limit,
@@ -5866,7 +5928,7 @@ var import_react23 = require("react");
5866
5928
  var import_sdk3 = require("@agg-build/sdk");
5867
5929
 
5868
5930
  // src/use-market-chart.ts
5869
- var import_react_query24 = require("@tanstack/react-query");
5931
+ var import_react_query25 = require("@tanstack/react-query");
5870
5932
 
5871
5933
  // src/market-data/subscription.ts
5872
5934
  var import_react21 = require("react");
@@ -5951,7 +6013,7 @@ function useMarketChart(options) {
5951
6013
  orderbook: true,
5952
6014
  trades: true
5953
6015
  });
5954
- const queries = (0, import_react_query24.useQueries)({
6016
+ const queries = (0, import_react_query25.useQueries)({
5955
6017
  queries: outcomeIds.map((outcomeId) => ({
5956
6018
  // Cache key is intentionally time-free. The rolling window's
5957
6019
  // startTs/endTs advance on every bucket but the user expects the same
@@ -5986,7 +6048,7 @@ function useMarketChart(options) {
5986
6048
  gcTime: 60 * 6e4,
5987
6049
  refetchOnWindowFocus: false,
5988
6050
  retry: 1,
5989
- placeholderData: import_react_query24.keepPreviousData,
6051
+ placeholderData: import_react_query25.keepPreviousData,
5990
6052
  refetchInterval: refetchIntervalMs != null && refetchIntervalMs > 0 ? refetchIntervalMs : false,
5991
6053
  refetchIntervalInBackground: false
5992
6054
  }))
@@ -6229,7 +6291,7 @@ function useEventOrderbookData(venueMarkets, selectedMarketId) {
6229
6291
  }
6230
6292
 
6231
6293
  // src/use-live-market.ts
6232
- var import_react_query25 = require("@tanstack/react-query");
6294
+ var import_react_query26 = require("@tanstack/react-query");
6233
6295
  function outcomeOrderbookToState(response, marketId) {
6234
6296
  var _a, _b, _c, _d;
6235
6297
  const { venue, orderbook, midpoint, spread, seq, checksum, timestamp, venueMarketOutcomeId } = response;
@@ -6279,7 +6341,7 @@ function useLiveMarket(canonicalMarketId) {
6279
6341
  enabled: isLiveSubscriptionEnabled,
6280
6342
  orderbook: true
6281
6343
  });
6282
- const query = (0, import_react_query25.useQuery)({
6344
+ const query = (0, import_react_query26.useQuery)({
6283
6345
  queryKey: marketDataKeys.live(canonicalMarketId != null ? canonicalMarketId : "__disabled__"),
6284
6346
  queryFn: () => __async(null, null, function* () {
6285
6347
  return createMarketLiveState(canonicalMarketId != null ? canonicalMarketId : "__disabled__");
@@ -6291,7 +6353,7 @@ function useLiveMarket(canonicalMarketId) {
6291
6353
  isConnected: Boolean(isLiveSubscriptionEnabled && isConnected)
6292
6354
  })
6293
6355
  });
6294
- const seedQuery = (0, import_react_query25.useQuery)({
6356
+ const seedQuery = (0, import_react_query26.useQuery)({
6295
6357
  queryKey: ["live-market-seed", canonicalMarketId],
6296
6358
  queryFn: ({ signal }) => canonicalMarketId ? client.getOutcomeOrderbook(canonicalMarketId, { signal }) : Promise.resolve(null),
6297
6359
  enabled: Boolean(canonicalMarketId),
@@ -6312,7 +6374,7 @@ function useLiveMarket(canonicalMarketId) {
6312
6374
 
6313
6375
  // src/use-live-outcome-prices.ts
6314
6376
  var import_react26 = require("react");
6315
- var import_react_query26 = require("@tanstack/react-query");
6377
+ var import_react_query27 = require("@tanstack/react-query");
6316
6378
  var EMPTY_PRICES = /* @__PURE__ */ new Map();
6317
6379
  var buildMidpointFingerprint = (outcomeIds, queries) => {
6318
6380
  var _a, _b, _c;
@@ -6338,7 +6400,7 @@ function useLiveOutcomePrices(venueMarkets) {
6338
6400
  }
6339
6401
  return [...ids].sort();
6340
6402
  }, [venueMarkets]);
6341
- const queries = (0, import_react_query26.useQueries)({
6403
+ const queries = (0, import_react_query27.useQueries)({
6342
6404
  queries: outcomeIds.map((id) => ({
6343
6405
  queryKey: marketDataKeys.live(id),
6344
6406
  queryFn: () => createMarketLiveState(id),
@@ -6387,7 +6449,7 @@ function findLivePriceById(livePrices, id) {
6387
6449
 
6388
6450
  // src/use-live-best-prices.ts
6389
6451
  var import_react27 = require("react");
6390
- var import_react_query27 = require("@tanstack/react-query");
6452
+ var import_react_query28 = require("@tanstack/react-query");
6391
6453
  var EMPTY = /* @__PURE__ */ new Map();
6392
6454
  var EMPTY_CANDIDATES = /* @__PURE__ */ new Map();
6393
6455
  var extractOutcomeBestPrices = (state) => {
@@ -6430,7 +6492,7 @@ function useLiveBestPrices(venueMarkets) {
6430
6492
  }
6431
6493
  return [...ids].sort();
6432
6494
  }, [venueMarkets]);
6433
- const queries = (0, import_react_query27.useQueries)({
6495
+ const queries = (0, import_react_query28.useQueries)({
6434
6496
  queries: outcomeIds.map((id) => ({
6435
6497
  queryKey: marketDataKeys.live(id),
6436
6498
  queryFn: () => createMarketLiveState(id),
@@ -6649,7 +6711,7 @@ function useLiveBestPriceCandidates(venueMarkets) {
6649
6711
  }
6650
6712
  return [...ids].sort();
6651
6713
  }, [venueMarkets]);
6652
- const queries = (0, import_react_query27.useQueries)({
6714
+ const queries = (0, import_react_query28.useQueries)({
6653
6715
  queries: outcomeIds.map((id) => ({
6654
6716
  queryKey: marketDataKeys.live(id),
6655
6717
  queryFn: () => createMarketLiveState(id),
@@ -6693,7 +6755,7 @@ function useLiveTrades(canonicalMarketId) {
6693
6755
  }
6694
6756
 
6695
6757
  // src/use-midpoints.ts
6696
- var import_react_query28 = require("@tanstack/react-query");
6758
+ var import_react_query29 = require("@tanstack/react-query");
6697
6759
  var import_react28 = require("react");
6698
6760
  var normalizeVenueMarketIds = (venueMarkets) => {
6699
6761
  var _a;
@@ -6872,7 +6934,7 @@ function useMidpoints(venueMarkets, options) {
6872
6934
  () => resolveBestMidpointCandidateOutcomeIds(venueMarkets),
6873
6935
  [venueMarkets]
6874
6936
  );
6875
- const { data, isLoading } = (0, import_react_query28.useQuery)({
6937
+ const { data, isLoading } = (0, import_react_query29.useQuery)({
6876
6938
  queryKey: ["midpoints", ids, maxMidpointIdsPerRequest],
6877
6939
  queryFn: () => client.getMidpoints(ids, { bestPrice: true, maxMidpointIdsPerRequest }),
6878
6940
  enabled: ids.length > 0,
@@ -7017,10 +7079,10 @@ var useRollingChartWindow = (options) => {
7017
7079
  };
7018
7080
 
7019
7081
  // src/use-market-orderbook.ts
7020
- var import_react_query29 = require("@tanstack/react-query");
7082
+ var import_react_query30 = require("@tanstack/react-query");
7021
7083
  function useMarketOrderbook(options) {
7022
7084
  var _a, _b, _c, _d, _e, _f, _g, _h;
7023
- const queryClient = (0, import_react_query29.useQueryClient)();
7085
+ const queryClient = (0, import_react_query30.useQueryClient)();
7024
7086
  const ws = useAggWebSocket();
7025
7087
  const isConnected = useAggWebSocketConnectionState();
7026
7088
  const {
@@ -7038,7 +7100,7 @@ function useMarketOrderbook(options) {
7038
7100
  enabled: enabled && !!selectedOutcomeId,
7039
7101
  orderbook: true
7040
7102
  });
7041
- const liveQueries = (0, import_react_query29.useQueries)({
7103
+ const liveQueries = (0, import_react_query30.useQueries)({
7042
7104
  queries: subscriptionIds.map((subscriptionId) => ({
7043
7105
  queryKey: marketDataKeys.live(subscriptionId),
7044
7106
  queryFn: () => createMarketLiveState(subscriptionId),
@@ -7162,7 +7224,7 @@ function useArbFeed() {
7162
7224
  }
7163
7225
 
7164
7226
  // src/use-order-book.ts
7165
- var import_react_query30 = require("@tanstack/react-query");
7227
+ var import_react_query31 = require("@tanstack/react-query");
7166
7228
  function useOrderBook(options) {
7167
7229
  const client = useAggClient();
7168
7230
  const { orderbooks, enabled = true, canonicalMarketId } = options;
@@ -7175,7 +7237,7 @@ function useOrderBook(options) {
7175
7237
  venueMarketOutcomeId: outcome.id
7176
7238
  })) : void 0
7177
7239
  });
7178
- const batchedResult = (0, import_react_query30.useQuery)({
7240
+ const batchedResult = (0, import_react_query31.useQuery)({
7179
7241
  queryKey: requestedVenueMarketIds.length ? ["orderbooks", requestedVenueMarketIds, null] : ["orderbooks", "__disabled__", null],
7180
7242
  queryFn: ({ signal }) => client.getOrderbooks(
7181
7243
  {
@@ -7188,7 +7250,7 @@ function useOrderBook(options) {
7188
7250
  gcTime: 5 * 6e4,
7189
7251
  refetchOnWindowFocus: false,
7190
7252
  retry: 1,
7191
- placeholderData: import_react_query30.keepPreviousData
7253
+ placeholderData: import_react_query31.keepPreviousData
7192
7254
  });
7193
7255
  const data = (() => {
7194
7256
  var _a, _b;
@@ -7243,7 +7305,7 @@ function useOrderBook(options) {
7243
7305
  }
7244
7306
 
7245
7307
  // src/use-orderbook-quote.ts
7246
- var import_react_query31 = require("@tanstack/react-query");
7308
+ var import_react_query32 = require("@tanstack/react-query");
7247
7309
  var QUOTE_DEBOUNCE_MS = 300;
7248
7310
  var createUnavailableOrderbookError = (message, code, retryable) => {
7249
7311
  const error = new Error(message);
@@ -7305,7 +7367,7 @@ function useOrderbookQuote(options) {
7305
7367
  const { marketId, side, size, enabled = true } = options;
7306
7368
  const debouncedSize = useDebouncedValue(size, QUOTE_DEBOUNCE_MS);
7307
7369
  const shouldFetch = enabled && !!marketId && debouncedSize > 0;
7308
- const query = (0, import_react_query31.useQuery)({
7370
+ const query = (0, import_react_query32.useQuery)({
7309
7371
  queryKey: marketId ? marketDataKeys.orderbookQuote(marketId, side, debouncedSize) : ["market-data", "orderbook-quote", "__disabled__"],
7310
7372
  queryFn: () => __async(null, null, function* () {
7311
7373
  var _a2, _b, _c, _d;
@@ -7336,7 +7398,7 @@ function useOrderbookQuote(options) {
7336
7398
  staleTime: 1e4,
7337
7399
  gcTime: 5 * 6e4,
7338
7400
  retry: 1,
7339
- placeholderData: import_react_query31.keepPreviousData
7401
+ placeholderData: import_react_query32.keepPreviousData
7340
7402
  });
7341
7403
  return {
7342
7404
  data: (_a = query.data) != null ? _a : null,
@@ -7347,12 +7409,12 @@ function useOrderbookQuote(options) {
7347
7409
  }
7348
7410
 
7349
7411
  // src/use-orders.ts
7350
- var import_react_query32 = require("@tanstack/react-query");
7412
+ var import_react_query33 = require("@tanstack/react-query");
7351
7413
  function useOrders(options = {}) {
7352
7414
  var _a, _b, _c, _d;
7353
7415
  const client = useAggClient();
7354
7416
  const { userId, status, limit = 50, offset = 0, enabled = true } = options;
7355
- const query = (0, import_react_query32.useQuery)({
7417
+ const query = (0, import_react_query33.useQuery)({
7356
7418
  queryKey: ["orders", userId != null ? userId : "me", status != null ? status : "all", limit, offset],
7357
7419
  queryFn: () => client.getOrders({
7358
7420
  userId,
@@ -7369,13 +7431,13 @@ function useOrders(options = {}) {
7369
7431
  }
7370
7432
 
7371
7433
  // src/use-search.ts
7372
- var import_react_query33 = require("@tanstack/react-query");
7434
+ var import_react_query34 = require("@tanstack/react-query");
7373
7435
  var import_react31 = require("react");
7374
7436
  function useSearch(options) {
7375
7437
  var _a, _b, _c, _d;
7376
7438
  const client = (0, import_react31.useContext)(AggClientContext);
7377
- const queryClient = (0, import_react31.useContext)(import_react_query33.QueryClientContext);
7378
- const [fallbackQueryClient] = (0, import_react31.useState)(() => new import_react_query33.QueryClient());
7439
+ const queryClient = (0, import_react31.useContext)(import_react_query34.QueryClientContext);
7440
+ const [fallbackQueryClient] = (0, import_react31.useState)(() => new import_react_query34.QueryClient());
7379
7441
  const { q, type, categoryIds, status, limit = 20, enabled = true, deep = false } = options;
7380
7442
  const isEnabled = enabled && q.length > 0;
7381
7443
  (0, import_react31.useEffect)(() => {
@@ -7388,7 +7450,7 @@ function useSearch(options) {
7388
7450
  if (isEnabled && !client) {
7389
7451
  throw new Error("useSearch must be used within an <AggProvider>");
7390
7452
  }
7391
- const query = (0, import_react_query33.useInfiniteQuery)(
7453
+ const query = (0, import_react_query34.useInfiniteQuery)(
7392
7454
  {
7393
7455
  // deep is part of the key — TanStack treats deep vs light as
7394
7456
  // independent queries so users can have both modes cached side-by-side.
@@ -7422,7 +7484,7 @@ function useSearch(options) {
7422
7484
  if (!lastPage.hasMore) return void 0;
7423
7485
  return (_a2 = lastPage.nextCursor) != null ? _a2 : void 0;
7424
7486
  },
7425
- placeholderData: import_react_query33.keepPreviousData,
7487
+ placeholderData: import_react_query34.keepPreviousData,
7426
7488
  enabled: isEnabled && !!client
7427
7489
  },
7428
7490
  queryClient != null ? queryClient : fallbackQueryClient
@@ -7530,7 +7592,7 @@ function useMarketSearch(options) {
7530
7592
  }
7531
7593
 
7532
7594
  // src/use-smart-route.ts
7533
- var import_react_query34 = require("@tanstack/react-query");
7595
+ var import_react_query35 = require("@tanstack/react-query");
7534
7596
 
7535
7597
  // src/smart-route-refresh-policy.ts
7536
7598
  var THIN_SMART_ROUTE_REFETCH_INTERVAL_MS = 5e3;
@@ -7656,7 +7718,7 @@ var getIsDocumentVisible = () => {
7656
7718
  return document.visibilityState !== "hidden";
7657
7719
  };
7658
7720
  function useSmartRoute(options) {
7659
- var _a, _b;
7721
+ var _a, _b, _c, _d;
7660
7722
  const client = useAggClient();
7661
7723
  const {
7662
7724
  venueMarketOutcomeId,
@@ -7670,6 +7732,7 @@ function useSmartRoute(options) {
7670
7732
  chainBalances,
7671
7733
  slipCapBps,
7672
7734
  compareVenues,
7735
+ sellCacheScope,
7673
7736
  deepEstimate,
7674
7737
  enabled = true,
7675
7738
  staleTimeMs = SMART_ROUTE_STALE_TIME_MS,
@@ -7678,7 +7741,7 @@ function useSmartRoute(options) {
7678
7741
  const resolvedVenueMarketOutcomeId = (_a = venueMarketOutcomeId != null ? venueMarketOutcomeId : venueMarketId) != null ? _a : outcomeId;
7679
7742
  const hasValidInput = (maxSpend != null ? maxSpend : 0) > 0 || (sellShares != null ? sellShares : 0) > 0;
7680
7743
  const queryEnabled = enabled && !!resolvedVenueMarketOutcomeId && hasValidInput;
7681
- const query = (0, import_react_query34.useQuery)({
7744
+ const query = (0, import_react_query35.useQuery)({
7682
7745
  queryKey: [
7683
7746
  "smart-route",
7684
7747
  resolvedVenueMarketOutcomeId,
@@ -7690,7 +7753,8 @@ function useSmartRoute(options) {
7690
7753
  chainBalances ? JSON.stringify(chainBalances) : null,
7691
7754
  slipCapBps != null ? slipCapBps : null,
7692
7755
  compareVenues != null ? compareVenues : false,
7693
- deepEstimate != null ? deepEstimate : false
7756
+ deepEstimate != null ? deepEstimate : false,
7757
+ ...tradeSide === "sell" ? [(_b = sellCacheScope == null ? void 0 : sellCacheScope.accountId) != null ? _b : null, (_c = sellCacheScope == null ? void 0 : sellCacheScope.positionVersion) != null ? _c : null] : []
7694
7758
  ],
7695
7759
  queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
7696
7760
  return client.getSmartRoute(
@@ -7712,7 +7776,7 @@ function useSmartRoute(options) {
7712
7776
  enabled: queryEnabled,
7713
7777
  staleTime: staleTimeMs,
7714
7778
  refetchInterval: (queryState) => {
7715
- var _a2, _b2, _c, _d;
7779
+ var _a2, _b2, _c2, _d2;
7716
7780
  return resolveSmartRouteRefetchInterval({
7717
7781
  data: queryState.state.data,
7718
7782
  defaultIntervalMs: staleTimeMs,
@@ -7720,8 +7784,8 @@ function useSmartRoute(options) {
7720
7784
  isEditing: (_a2 = refreshContext == null ? void 0 : refreshContext.isEditing) != null ? _a2 : false,
7721
7785
  isInputValid: hasValidInput,
7722
7786
  isMarketOpen: (_b2 = refreshContext == null ? void 0 : refreshContext.isMarketOpen) != null ? _b2 : true,
7723
- isPanelActive: (_c = refreshContext == null ? void 0 : refreshContext.isPanelActive) != null ? _c : true,
7724
- isSubmitting: (_d = refreshContext == null ? void 0 : refreshContext.isSubmitting) != null ? _d : false,
7787
+ isPanelActive: (_c2 = refreshContext == null ? void 0 : refreshContext.isPanelActive) != null ? _c2 : true,
7788
+ isSubmitting: (_d2 = refreshContext == null ? void 0 : refreshContext.isSubmitting) != null ? _d2 : false,
7725
7789
  queryEnabled
7726
7790
  });
7727
7791
  },
@@ -7729,7 +7793,11 @@ function useSmartRoute(options) {
7729
7793
  refetchOnWindowFocus: false,
7730
7794
  refetchIntervalInBackground: false,
7731
7795
  retry: 1,
7732
- placeholderData: import_react_query34.keepPreviousData
7796
+ // A previous SELL quote can carry a quoteId and position availability for
7797
+ // a different amount or position snapshot. Never expose it under a new
7798
+ // sell key while the replacement request is in flight. BUY retains the
7799
+ // existing no-flicker behavior.
7800
+ placeholderData: tradeSide === "sell" ? void 0 : import_react_query35.keepPreviousData
7733
7801
  });
7734
7802
  const error = query.error;
7735
7803
  let loadingReason = null;
@@ -7741,7 +7809,7 @@ function useSmartRoute(options) {
7741
7809
  }
7742
7810
  }
7743
7811
  return {
7744
- data: (_b = query.data) != null ? _b : null,
7812
+ data: (_d = query.data) != null ? _d : null,
7745
7813
  isLoading: query.isLoading,
7746
7814
  isFetching: query.isFetching,
7747
7815
  error: error instanceof Error ? error : error ? new Error(String(error)) : null,
@@ -7750,13 +7818,124 @@ function useSmartRoute(options) {
7750
7818
  };
7751
7819
  }
7752
7820
 
7821
+ // src/use-venue-sell-quotes.ts
7822
+ var import_react_query36 = require("@tanstack/react-query");
7823
+ var getIsDocumentVisible2 = () => {
7824
+ if (typeof document === "undefined") return true;
7825
+ return document.visibilityState !== "hidden";
7826
+ };
7827
+ var getUniqueVenueRequests = (requests) => {
7828
+ const requestsByVenue = /* @__PURE__ */ new Map();
7829
+ for (const request of requests) {
7830
+ if (request.requestedSellShares <= 0 || request.sellShares <= 0 || request.availableShares <= 0) {
7831
+ continue;
7832
+ }
7833
+ if (requestsByVenue.has(request.venue)) continue;
7834
+ requestsByVenue.set(request.venue, request);
7835
+ }
7836
+ return [...requestsByVenue.values()].sort((left, right) => left.venue.localeCompare(right.venue));
7837
+ };
7838
+ var useVenueSellQuotes = (options) => {
7839
+ var _a, _b;
7840
+ const client = useAggClient();
7841
+ const {
7842
+ venueMarketOutcomeId,
7843
+ accountId,
7844
+ positionVersion,
7845
+ requests,
7846
+ mode,
7847
+ slipCapBps,
7848
+ enabled = true,
7849
+ staleTimeMs = SMART_ROUTE_STALE_TIME_MS,
7850
+ refreshContext
7851
+ } = options;
7852
+ const uniqueRequests = getUniqueVenueRequests(requests);
7853
+ const queries = (0, import_react_query36.useQueries)({
7854
+ queries: uniqueRequests.map((request) => {
7855
+ const hasValidInput = request.requestedSellShares > 0 && request.sellShares > 0 && request.availableShares > 0;
7856
+ const queryEnabled = enabled && !!venueMarketOutcomeId && !!accountId && hasValidInput;
7857
+ return {
7858
+ queryKey: [
7859
+ "smart-route",
7860
+ venueMarketOutcomeId,
7861
+ "venue-sell",
7862
+ {
7863
+ accountId: accountId != null ? accountId : null,
7864
+ positionVersion: positionVersion != null ? positionVersion : null,
7865
+ requestedSellShares: request.requestedSellShares,
7866
+ sellShares: request.sellShares,
7867
+ availableShares: request.availableShares,
7868
+ allowedVenues: [request.venue],
7869
+ compareVenues: false,
7870
+ tradeSide: "sell",
7871
+ mode: mode != null ? mode : null,
7872
+ slipCapBps: slipCapBps != null ? slipCapBps : null
7873
+ }
7874
+ ],
7875
+ queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
7876
+ return client.getSmartRoute(
7877
+ __spreadProps(__spreadValues({
7878
+ venueMarketOutcomeId,
7879
+ tradeSide: "sell"
7880
+ }, mode ? { mode } : {}), {
7881
+ sellShares: request.sellShares,
7882
+ slipCapBps,
7883
+ allowedVenues: [request.venue]
7884
+ }),
7885
+ { signal }
7886
+ );
7887
+ }),
7888
+ enabled: queryEnabled,
7889
+ staleTime: staleTimeMs,
7890
+ refetchInterval: (queryState) => {
7891
+ var _a2, _b2, _c, _d;
7892
+ return resolveSmartRouteRefetchInterval({
7893
+ data: queryState.state.data,
7894
+ defaultIntervalMs: staleTimeMs,
7895
+ isDocumentVisible: getIsDocumentVisible2(),
7896
+ isEditing: (_a2 = refreshContext == null ? void 0 : refreshContext.isEditing) != null ? _a2 : false,
7897
+ isInputValid: hasValidInput,
7898
+ isMarketOpen: (_b2 = refreshContext == null ? void 0 : refreshContext.isMarketOpen) != null ? _b2 : true,
7899
+ isPanelActive: (_c = refreshContext == null ? void 0 : refreshContext.isPanelActive) != null ? _c : true,
7900
+ isSubmitting: (_d = refreshContext == null ? void 0 : refreshContext.isSubmitting) != null ? _d : false,
7901
+ queryEnabled
7902
+ });
7903
+ },
7904
+ gcTime: 6e4,
7905
+ refetchOnWindowFocus: false,
7906
+ refetchIntervalInBackground: false,
7907
+ retry: 1
7908
+ };
7909
+ })
7910
+ });
7911
+ const quotes = queries.map((query, index) => {
7912
+ var _a2;
7913
+ const queryError = query.error;
7914
+ return {
7915
+ request: uniqueRequests[index],
7916
+ data: (_a2 = query.data) != null ? _a2 : null,
7917
+ isLoading: query.isLoading,
7918
+ isFetching: query.isFetching,
7919
+ error: queryError instanceof Error ? queryError : queryError ? new Error(String(queryError)) : null,
7920
+ refetch: query.refetch
7921
+ };
7922
+ });
7923
+ return {
7924
+ quotes,
7925
+ isLoading: quotes.some((quote) => quote.isLoading),
7926
+ isFetching: quotes.some((quote) => quote.isFetching),
7927
+ error: (_b = (_a = quotes.find((quote) => quote.error)) == null ? void 0 : _a.error) != null ? _b : null,
7928
+ refetch: () => Promise.all(quotes.map((quote) => quote.refetch()))
7929
+ };
7930
+ };
7931
+
7753
7932
  // src/use-user-holdings.ts
7754
- var import_react_query35 = require("@tanstack/react-query");
7933
+ var import_react_query37 = require("@tanstack/react-query");
7755
7934
  function useUserHoldings(options) {
7756
7935
  var _a, _b;
7757
7936
  const client = useAggClient();
7758
7937
  const { venue, venueMarketId, venueEventId, enabled = true } = options;
7759
- const query = (0, import_react_query35.useInfiniteQuery)({
7938
+ const query = (0, import_react_query37.useInfiniteQuery)({
7760
7939
  queryKey: ["user-holdings", venue, venueMarketId, venueEventId],
7761
7940
  queryFn: (_0) => __async(null, [_0], function* ({ pageParam }) {
7762
7941
  return client.getUserHoldings({
@@ -7785,7 +7964,7 @@ function useUserHoldings(options) {
7785
7964
  var import_react34 = require("react");
7786
7965
 
7787
7966
  // src/use-venue-event.ts
7788
- var import_react_query36 = require("@tanstack/react-query");
7967
+ var import_react_query38 = require("@tanstack/react-query");
7789
7968
  var RESOLUTION_POLL_MS = 15e3;
7790
7969
  var RESOLUTION_POLL_MAX_PAST_END_MS = 60 * 6e4;
7791
7970
  function resolutionPollInterval(event) {
@@ -7803,7 +7982,7 @@ function useVenueEvent(options) {
7803
7982
  var _a;
7804
7983
  const client = useAggClient();
7805
7984
  const { eventId, enabled = true } = options;
7806
- const query = (0, import_react_query36.useQuery)({
7985
+ const query = (0, import_react_query38.useQuery)({
7807
7986
  queryKey: ["venue-event", eventId],
7808
7987
  queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
7809
7988
  return client.getVenueEventById(eventId, { signal });
@@ -7823,13 +8002,13 @@ function useVenueEvent(options) {
7823
8002
  }
7824
8003
 
7825
8004
  // src/use-venue-markets.ts
7826
- var import_react_query37 = require("@tanstack/react-query");
8005
+ var import_react_query39 = require("@tanstack/react-query");
7827
8006
  var import_react33 = require("react");
7828
8007
  function useVenueMarkets(options) {
7829
8008
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
7830
8009
  const client = (0, import_react33.useContext)(AggClientContext);
7831
- const queryClient = (0, import_react33.useContext)(import_react_query37.QueryClientContext);
7832
- const [fallbackQueryClient] = (0, import_react33.useState)(() => new import_react_query37.QueryClient());
8010
+ const queryClient = (0, import_react33.useContext)(import_react_query39.QueryClientContext);
8011
+ const [fallbackQueryClient] = (0, import_react33.useState)(() => new import_react_query39.QueryClient());
7833
8012
  const venue = options == null ? void 0 : options.venue;
7834
8013
  const venueEventId = options == null ? void 0 : options.venueEventId;
7835
8014
  const search = options == null ? void 0 : options.search;
@@ -7856,7 +8035,7 @@ function useVenueMarkets(options) {
7856
8035
  if (enabled && !client) {
7857
8036
  throw new Error("useVenueMarkets must be used within an <AggProvider>");
7858
8037
  }
7859
- const query = (0, import_react_query37.useInfiniteQuery)(
8038
+ const query = (0, import_react_query39.useInfiniteQuery)(
7860
8039
  {
7861
8040
  queryKey: [
7862
8041
  "venue-markets",
@@ -7967,13 +8146,13 @@ function useEnrichedVenueEvent(options) {
7967
8146
  }
7968
8147
 
7969
8148
  // src/use-venue-events.ts
7970
- var import_react_query38 = require("@tanstack/react-query");
8149
+ var import_react_query40 = require("@tanstack/react-query");
7971
8150
  var import_react35 = require("react");
7972
8151
  function useVenueEvents(options) {
7973
8152
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
7974
8153
  const client = (0, import_react35.useContext)(AggClientContext);
7975
- const queryClient = (0, import_react35.useContext)(import_react_query38.QueryClientContext);
7976
- const [fallbackQueryClient] = (0, import_react35.useState)(() => new import_react_query38.QueryClient());
8154
+ const queryClient = (0, import_react35.useContext)(import_react_query40.QueryClientContext);
8155
+ const [fallbackQueryClient] = (0, import_react35.useState)(() => new import_react_query40.QueryClient());
7977
8156
  const venues = options == null ? void 0 : options.venues;
7978
8157
  const search = options == null ? void 0 : options.search;
7979
8158
  const categoryIds = options == null ? void 0 : options.categoryIds;
@@ -8000,7 +8179,7 @@ function useVenueEvents(options) {
8000
8179
  if (enabled && !client) {
8001
8180
  throw new Error("useVenueEvents must be used within an <AggProvider>");
8002
8181
  }
8003
- const query = (0, import_react_query38.useInfiniteQuery)(
8182
+ const query = (0, import_react_query40.useInfiniteQuery)(
8004
8183
  {
8005
8184
  queryKey: [
8006
8185
  queryKeyScope,
@@ -8047,7 +8226,7 @@ function useVenueEvents(options) {
8047
8226
  return (_a2 = lastPage.nextCursor) != null ? _a2 : void 0;
8048
8227
  },
8049
8228
  // TODO: RMIK - Comment out to show skeletons on category switch
8050
- placeholderData: import_react_query38.keepPreviousData,
8229
+ placeholderData: import_react_query40.keepPreviousData,
8051
8230
  enabled: enabled && !!client
8052
8231
  },
8053
8232
  queryClient != null ? queryClient : fallbackQueryClient
@@ -8089,7 +8268,7 @@ function useVenueEvents(options) {
8089
8268
  }
8090
8269
 
8091
8270
  // src/use-venue-market-midpoints.ts
8092
- var import_react_query39 = require("@tanstack/react-query");
8271
+ var import_react_query41 = require("@tanstack/react-query");
8093
8272
  var normalizeVenueMarketIds2 = (venueMarketIds) => {
8094
8273
  return [
8095
8274
  ...new Set(venueMarketIds.map((venueMarketId) => venueMarketId.trim()).filter(Boolean))
@@ -8128,7 +8307,7 @@ function useVenueMarketMidpoints(options) {
8128
8307
  const enabled = (_a = options.enabled) != null ? _a : true;
8129
8308
  const requestedVenueMarketIds = normalizeVenueMarketIds2(options.venueMarketIds);
8130
8309
  const maxMidpointIdsPerRequest = (_b = options.maxMidpointIdsPerRequest) != null ? _b : configuredMaxMidpointIdsPerRequest;
8131
- const query = (0, import_react_query39.useQuery)({
8310
+ const query = (0, import_react_query41.useQuery)({
8132
8311
  queryKey: requestedVenueMarketIds.length ? ["venue-market-midpoints", requestedVenueMarketIds, maxMidpointIdsPerRequest] : ["venue-market-midpoints", "__disabled__"],
8133
8312
  queryFn: (_0) => __async(null, [_0], function* ({ signal }) {
8134
8313
  if (requestedVenueMarketIds.length === 0) {
@@ -8144,7 +8323,7 @@ function useVenueMarketMidpoints(options) {
8144
8323
  gcTime: 5 * 6e4,
8145
8324
  refetchOnWindowFocus: false,
8146
8325
  retry: 1,
8147
- placeholderData: import_react_query39.keepPreviousData
8326
+ placeholderData: import_react_query41.keepPreviousData
8148
8327
  });
8149
8328
  const midpointRows = (_d = (_c = query.data) == null ? void 0 : _c.data) != null ? _d : [];
8150
8329
  const midpointsByVenueMarketId = mapMidpointsByVenueMarketId(midpointRows);
@@ -8395,12 +8574,12 @@ function useVisibleIds(options = {}) {
8395
8574
  }
8396
8575
 
8397
8576
  // src/use-app-config.ts
8398
- var import_react_query40 = require("@tanstack/react-query");
8577
+ var import_react_query42 = require("@tanstack/react-query");
8399
8578
  var FIVE_MINUTES = 5 * 60 * 1e3;
8400
8579
  var APP_CONFIG_QUERY_KEY = ["agg", "app-config"];
8401
8580
  function useAppConfig() {
8402
8581
  const client = useAggClient();
8403
- const query = (0, import_react_query40.useQuery)({
8582
+ const query = (0, import_react_query42.useQuery)({
8404
8583
  queryKey: APP_CONFIG_QUERY_KEY,
8405
8584
  queryFn: () => client.getAppConfig(),
8406
8585
  staleTime: FIVE_MINUTES
@@ -8412,8 +8591,8 @@ function useAppConfig() {
8412
8591
  });
8413
8592
  }
8414
8593
  function useCachedAppConfig() {
8415
- const queryClient = (0, import_react_query40.useQueryClient)();
8416
- const query = (0, import_react_query40.useQuery)({
8594
+ const queryClient = (0, import_react_query42.useQueryClient)();
8595
+ const query = (0, import_react_query42.useQuery)({
8417
8596
  queryKey: APP_CONFIG_QUERY_KEY,
8418
8597
  enabled: false,
8419
8598
  initialData: () => queryClient.getQueryData(APP_CONFIG_QUERY_KEY),
@@ -8570,8 +8749,10 @@ var toAppConfigResult = (query) => {
8570
8749
  useUserHoldings,
8571
8750
  useVenueEvent,
8572
8751
  useVenueEvents,
8752
+ useVenueKeyStatus,
8573
8753
  useVenueMarketMidpoints,
8574
8754
  useVenueMarkets,
8755
+ useVenueSellQuotes,
8575
8756
  useViewportMidpoints,
8576
8757
  useVisibleIds,
8577
8758
  useWithdrawEstimate,
@@ -8579,5 +8760,6 @@ var toAppConfigResult = (query) => {
8579
8760
  useWithdrawManaged,
8580
8761
  useWithdrawPreview,
8581
8762
  useWithdrawalLifecycle,
8582
- userActivityQueryKeys
8763
+ userActivityQueryKeys,
8764
+ venueKeyQueryKeys
8583
8765
  });