@agg-build/ui 4.2.0 → 4.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.
Files changed (74) hide show
  1. package/README.md +25 -16
  2. package/dist/{chunk-DNPDXL2D.mjs → chunk-3RQCBGIK.mjs} +341 -105
  3. package/dist/{chunk-GNEFI4SO.mjs → chunk-C4GFVJ62.mjs} +725 -400
  4. package/dist/{chunk-UDBHAZJJ.mjs → chunk-EOLR7DHL.mjs} +568 -145
  5. package/dist/{chunk-6X6Y4INU.mjs → chunk-LXQ3U4X2.mjs} +2 -2
  6. package/dist/{chunk-QW7VFURU.mjs → chunk-RDBMHBR2.mjs} +67 -3
  7. package/dist/{chunk-WDCH4RRS.mjs → chunk-WYCSTAN7.mjs} +1 -1
  8. package/dist/{chunk-FTL25XKE.mjs → chunk-XN2NB2NP.mjs} +1 -1
  9. package/dist/events.js +1149 -661
  10. package/dist/events.mjs +6 -4
  11. package/dist/index.js +3320 -2291
  12. package/dist/index.mjs +12 -8
  13. package/dist/modals.js +9 -2
  14. package/dist/modals.mjs +3 -3
  15. package/dist/pages.js +2789 -1762
  16. package/dist/pages.mjs +8 -6
  17. package/dist/primitives.js +30 -3
  18. package/dist/primitives.mjs +1 -1
  19. package/dist/styles.css +1 -1
  20. package/dist/tailwind.css +1 -1
  21. package/dist/trading.js +338 -102
  22. package/dist/trading.mjs +4 -4
  23. package/dist/types/events/index.d.mts +1 -0
  24. package/dist/types/events/index.d.ts +1 -0
  25. package/dist/types/events/item-details/event-list-item-details-market-selector.d.mts +4 -1
  26. package/dist/types/events/item-details/event-list-item-details-market-selector.d.ts +4 -1
  27. package/dist/types/events/item-details/event-list-item-details.types.d.mts +25 -1
  28. package/dist/types/events/item-details/event-list-item-details.types.d.ts +25 -1
  29. package/dist/types/events/item-details/index.d.mts +1 -1
  30. package/dist/types/events/item-details/index.d.ts +1 -1
  31. package/dist/types/events/list/event-list.constants.d.mts +3 -1
  32. package/dist/types/events/list/event-list.constants.d.ts +3 -1
  33. package/dist/types/events/list/event-list.types.d.mts +17 -0
  34. package/dist/types/events/list/event-list.types.d.ts +17 -0
  35. package/dist/types/events/list/event-list.utils.d.mts +4 -0
  36. package/dist/types/events/list/event-list.utils.d.ts +4 -0
  37. package/dist/types/events/list/index.d.mts +2 -2
  38. package/dist/types/events/list/index.d.ts +2 -2
  39. package/dist/types/events/market-details/index.d.mts +1 -1
  40. package/dist/types/events/market-details/index.d.ts +1 -1
  41. package/dist/types/events/market-details/market-details.types.d.mts +4 -0
  42. package/dist/types/events/market-details/market-details.types.d.ts +4 -0
  43. package/dist/types/events/shared/format-event-title.d.mts +9 -1
  44. package/dist/types/events/shared/format-event-title.d.ts +9 -1
  45. package/dist/types/events/shared/format-sports-event-time.d.mts +2 -0
  46. package/dist/types/events/shared/format-sports-event-time.d.ts +2 -0
  47. package/dist/types/events/shared/sports-live-score.d.mts +10 -0
  48. package/dist/types/events/shared/sports-live-score.d.ts +10 -0
  49. package/dist/types/pages/event-market/event-market.types.d.mts +4 -0
  50. package/dist/types/pages/event-market/event-market.types.d.ts +4 -0
  51. package/dist/types/pages/event-market/index.d.mts +1 -0
  52. package/dist/types/pages/event-market/index.d.ts +1 -0
  53. package/dist/types/pages/home/event-discovery-url-state.d.mts +35 -0
  54. package/dist/types/pages/home/event-discovery-url-state.d.ts +35 -0
  55. package/dist/types/pages/user-profile/components/available-balance-card.d.mts +5 -0
  56. package/dist/types/pages/user-profile/components/available-balance-card.d.ts +5 -0
  57. package/dist/types/pages/user-profile/components/open-order-row.d.mts +1 -0
  58. package/dist/types/pages/user-profile/components/open-order-row.d.ts +1 -0
  59. package/dist/types/pages/user-profile/components/positions-activity.d.mts +1 -1
  60. package/dist/types/pages/user-profile/components/positions-activity.d.ts +1 -1
  61. package/dist/types/pages/user-profile/user-profile.types.d.mts +1 -1
  62. package/dist/types/pages/user-profile/user-profile.types.d.ts +1 -1
  63. package/dist/types/trading/place-order/index.d.mts +1 -1
  64. package/dist/types/trading/place-order/index.d.ts +1 -1
  65. package/dist/types/trading/place-order/index.place-order.execution-steps.d.mts +13 -1
  66. package/dist/types/trading/place-order/index.place-order.execution-steps.d.ts +13 -1
  67. package/dist/types/trading/place-order/index.place-order.execution-view.d.mts +2 -1
  68. package/dist/types/trading/place-order/index.place-order.execution-view.d.ts +2 -1
  69. package/dist/types/trading/place-order/index.place-order.types.d.mts +9 -0
  70. package/dist/types/trading/place-order/index.place-order.types.d.ts +9 -0
  71. package/dist/types/trading/place-order/index.place-order.utils.d.mts +6 -0
  72. package/dist/types/trading/place-order/index.place-order.utils.d.ts +6 -0
  73. package/package.json +3 -3
  74. /package/dist/{chunk-KHHFHXXD.mjs → chunk-JH4B3ZHQ.mjs} +0 -0
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  ConnectKalshiModal,
4
4
  dispatchAggDepositNotification
5
- } from "./chunk-FTL25XKE.mjs";
5
+ } from "./chunk-XN2NB2NP.mjs";
6
6
  import {
7
7
  BoltIcon,
8
8
  Button,
@@ -35,7 +35,7 @@ import {
35
35
  shortenAddress,
36
36
  useOptionalToast,
37
37
  venueLogoLabels
38
- } from "./chunk-QW7VFURU.mjs";
38
+ } from "./chunk-RDBMHBR2.mjs";
39
39
 
40
40
  // src/deposit/index.tsx
41
41
  import { useAggAuthState, useAggUiConfig, useDepositAddresses, useLabels as useLabels11 } from "@agg-build/hooks";
@@ -5435,6 +5435,19 @@ var resolveCategoryIdsFromPath = (path, fallbackCategoryIds) => {
5435
5435
  if (deepest) return [deepest];
5436
5436
  return fallbackCategoryIds;
5437
5437
  };
5438
+ var validateSubcategoryPath = (requestedPath, rootCategoryId, childrenByParentId) => {
5439
+ var _a;
5440
+ if (!rootCategoryId) return [];
5441
+ const validPath = [];
5442
+ let parentId = rootCategoryId;
5443
+ for (const categoryId of requestedPath) {
5444
+ const category = (_a = childrenByParentId.get(parentId)) == null ? void 0 : _a.find((child) => child.id === categoryId);
5445
+ if (!category) break;
5446
+ validPath.push(category.id);
5447
+ parentId = category.id;
5448
+ }
5449
+ return validPath;
5450
+ };
5438
5451
  var resolveTabVenus = (tab, visibleVenues) => {
5439
5452
  const applyAllowList = (venues) => {
5440
5453
  if (!venues) {
@@ -6870,6 +6883,7 @@ dayjs2.extend(utc);
6870
6883
  dayjs2.extend(timezone);
6871
6884
  var SPORTS_EVENT_TIMEZONE = "America/New_York";
6872
6885
  var SPORTS_EVENT_TIME_FORMAT = "MMM D, h:mm A";
6886
+ var RECURRING_MARKET_PILL_TIME_FORMAT = "h:mm A";
6873
6887
  var formatSportsEventTimeEt = (value) => {
6874
6888
  const resolvedValue = value.trim();
6875
6889
  if (!resolvedValue) return null;
@@ -6877,9 +6891,37 @@ var formatSportsEventTimeEt = (value) => {
6877
6891
  if (!parsedValue.isValid()) return null;
6878
6892
  return `${parsedValue.tz(SPORTS_EVENT_TIMEZONE).format(SPORTS_EVENT_TIME_FORMAT)} ET`;
6879
6893
  };
6894
+ var formatRecurringMarketPillTimeEt = (value) => {
6895
+ const parsedValue = dayjs2.utc(value.trim());
6896
+ if (!value.trim() || !parsedValue.isValid()) return null;
6897
+ return parsedValue.tz(SPORTS_EVENT_TIMEZONE).format(RECURRING_MARKET_PILL_TIME_FORMAT);
6898
+ };
6899
+ var formatRecurringMarketWindowTimeEt = (windowStart, windowEnd) => {
6900
+ const parsedStart = dayjs2.utc(windowStart.trim());
6901
+ const parsedEnd = dayjs2.utc(windowEnd.trim());
6902
+ if (!windowStart.trim() || !windowEnd.trim() || !parsedStart.isValid() || !parsedEnd.isValid()) {
6903
+ return null;
6904
+ }
6905
+ const zonedStart = parsedStart.tz(SPORTS_EVENT_TIMEZONE);
6906
+ const zonedEnd = parsedEnd.tz(SPORTS_EVENT_TIMEZONE);
6907
+ if (zonedStart.isSame(zonedEnd, "day")) {
6908
+ return `${zonedStart.format("MMM D, h:mm")}-${zonedEnd.format("h:mmA")} ET`;
6909
+ }
6910
+ return `${zonedStart.format(SPORTS_EVENT_TIME_FORMAT)}-${zonedEnd.format(
6911
+ SPORTS_EVENT_TIME_FORMAT
6912
+ )} ET`;
6913
+ };
6880
6914
 
6881
6915
  // src/events/shared/format-event-title.ts
6882
6916
  var SPORT_CATEGORY_TOKENS = /* @__PURE__ */ new Set(["sport", "sports"]);
6917
+ var RECURRING_CRYPTO_TIMESTAMP_SUFFIX = /\s+-\s+(?:jan(?:uary)?|feb(?:ruary)?|mar(?:ch)?|apr(?:il)?|may|jun(?:e)?|jul(?:y)?|aug(?:ust)?|sep(?:t(?:ember)?)?|oct(?:ober)?|nov(?:ember)?|dec(?:ember)?)\b.*$/i;
6918
+ var RECURRING_CRYPTO_DURATION_SUFFIX = /\s+-\s+(?:5m(?:in)?|15m(?:in)?|1h|1d)$/i;
6919
+ var RECURRING_CRYPTO_DURATION_LABELS = {
6920
+ PT5M: "5min",
6921
+ PT15M: "15min",
6922
+ PT1H: "1h",
6923
+ P1D: "1d"
6924
+ };
6883
6925
  var normalizeCategoryToken = (value) => {
6884
6926
  if (typeof value !== "string") return null;
6885
6927
  const normalizedValue = value.trim().toLowerCase();
@@ -6948,9 +6990,21 @@ var resolveEventHeading = ({
6948
6990
  structureType,
6949
6991
  gameStartTime,
6950
6992
  endDate,
6951
- venueMarkets
6993
+ venueMarkets,
6994
+ recurringCryptoWindowStart,
6995
+ recurringCryptoDuration
6952
6996
  }) => {
6953
6997
  const resolvedTitle = title2.trim();
6998
+ if (recurringCryptoWindowStart !== void 0) {
6999
+ const windowStartDate = recurringCryptoWindowStart == null ? null : new Date(recurringCryptoWindowStart);
7000
+ const timestampLabel = windowStartDate && !Number.isNaN(windowStartDate.getTime()) ? formatSportsEventTimeEt(windowStartDate.toISOString()) : null;
7001
+ const titleWithoutTimestamp = resolvedTitle.replace(RECURRING_CRYPTO_TIMESTAMP_SUFFIX, "").replace(RECURRING_CRYPTO_DURATION_SUFFIX, "").trim();
7002
+ const durationLabel = recurringCryptoDuration ? RECURRING_CRYPTO_DURATION_LABELS[recurringCryptoDuration] : null;
7003
+ return {
7004
+ title: durationLabel ? `${titleWithoutTimestamp} - ${durationLabel}` : titleWithoutTimestamp,
7005
+ timestampLabel
7006
+ };
7007
+ }
6954
7008
  return {
6955
7009
  title: resolvedTitle,
6956
7010
  timestampLabel: resolveEventTimestampLabel({
@@ -9425,7 +9479,7 @@ var Tabs = ({
9425
9479
  width: activeButton.offsetWidth,
9426
9480
  opacity: 1
9427
9481
  });
9428
- }, [isBarVariant, renderedItems, value]);
9482
+ }, [isBarVariant, renderedItems, tabListRef, value]);
9429
9483
  useLayoutEffect3(() => {
9430
9484
  updateActiveUnderline();
9431
9485
  }, [updateActiveUnderline]);
@@ -9484,7 +9538,14 @@ var Tabs = ({
9484
9538
  requestAnimationFrame(() => {
9485
9539
  updateScrollState();
9486
9540
  });
9487
- }, [enableAnimations, renderedItems, shouldUseOverflowScroll, updateScrollState, value]);
9541
+ }, [
9542
+ enableAnimations,
9543
+ renderedItems,
9544
+ shouldUseOverflowScroll,
9545
+ tabListRef,
9546
+ updateScrollState,
9547
+ value
9548
+ ]);
9488
9549
  if (shouldUseOverflowSelect) {
9489
9550
  return /* @__PURE__ */ jsx133("div", { className: cn("group/agg-tabs w-full", className, classNames == null ? void 0 : classNames.root), children: /* @__PURE__ */ jsx133(
9490
9551
  Select,
@@ -10149,6 +10210,7 @@ export {
10149
10210
  filterEventsByTabValue,
10150
10211
  sortCategoriesForNavigation,
10151
10212
  resolveCategoryIdsFromPath,
10213
+ validateSubcategoryPath,
10152
10214
  resolveTabVenus,
10153
10215
  SkeletonBlock,
10154
10216
  RemoteImage,
@@ -10168,6 +10230,8 @@ export {
10168
10230
  fallbackLineColors,
10169
10231
  VenueLogo,
10170
10232
  formatSportsEventTimeEt,
10233
+ formatRecurringMarketPillTimeEt,
10234
+ formatRecurringMarketWindowTimeEt,
10171
10235
  resolveEventHeading,
10172
10236
  normalizeVenueMarketCluster,
10173
10237
  resolveEventListItemEvent,
@@ -19,7 +19,7 @@ import {
19
19
  selectPrimaryVenueMarket,
20
20
  skeletonViews,
21
21
  sortOutcomes
22
- } from "./chunk-QW7VFURU.mjs";
22
+ } from "./chunk-RDBMHBR2.mjs";
23
23
 
24
24
  // src/trading/trading-context/index.tsx
25
25
  import { useEventTradingContext } from "@agg-build/hooks";
@@ -18,7 +18,7 @@ import {
18
18
  __spreadProps,
19
19
  __spreadValues,
20
20
  cn
21
- } from "./chunk-QW7VFURU.mjs";
21
+ } from "./chunk-RDBMHBR2.mjs";
22
22
 
23
23
  // src/geo-block-banner/index.tsx
24
24
  import { useLabels } from "@agg-build/hooks";