@agg-build/ui 4.26.1 → 4.27.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.
Files changed (552) hide show
  1. package/dist/event-trading-state.utils-B3my25Re.mjs +789 -0
  2. package/dist/event-trading-state.utils-s4DEc4iA.js +921 -0
  3. package/dist/events.js +23 -17658
  4. package/dist/events.mjs +3 -50
  5. package/dist/index.js +811 -47152
  6. package/dist/index.mjs +584 -1204
  7. package/dist/list-D8v2SmY1.js +6989 -0
  8. package/dist/list-DD7roCVl.mjs +6838 -0
  9. package/dist/manage-betdex-account-modal-21ZVLsz0.js +2390 -0
  10. package/dist/manage-betdex-account-modal-D2vKHird.mjs +2294 -0
  11. package/dist/modals-BReGwJzz.mjs +2993 -0
  12. package/dist/modals-CSexQO1C.js +3077 -0
  13. package/dist/modals.js +24 -11810
  14. package/dist/modals.mjs +3 -49
  15. package/dist/pages-CMlCYngA.mjs +7846 -0
  16. package/dist/pages-xvAzj6c2.js +7955 -0
  17. package/dist/pages.js +25 -42391
  18. package/dist/pages.mjs +3 -57
  19. package/dist/primitives-CqxNeV7H.js +9930 -0
  20. package/dist/primitives-Dz5aF8ma.mjs +8928 -0
  21. package/dist/primitives.js +102 -11079
  22. package/dist/primitives.mjs +1 -204
  23. package/dist/trading-CDkNdjGx.mjs +7086 -0
  24. package/dist/trading-CXsZFd3l.js +7217 -0
  25. package/dist/trading.js +39 -18215
  26. package/dist/trading.mjs +3 -68
  27. package/dist/types/agg-provider.d.mts +1 -1
  28. package/dist/types/agg-provider.d.ts +1 -1
  29. package/dist/types/auth/connect-button-view/index.d.mts +4 -5
  30. package/dist/types/auth/connect-button-view/index.d.ts +4 -5
  31. package/dist/types/deposit/components/DepositQRCode.d.mts +2 -2
  32. package/dist/types/deposit/components/DepositQRCode.d.ts +2 -2
  33. package/dist/types/deposit/index.d.mts +4 -4
  34. package/dist/types/deposit/index.d.ts +4 -4
  35. package/dist/types/deposit/steps/card-deposit.d.mts +1 -1
  36. package/dist/types/deposit/steps/card-deposit.d.ts +1 -1
  37. package/dist/types/deposit/steps/card-payment-pending.d.mts +1 -1
  38. package/dist/types/deposit/steps/card-payment-pending.d.ts +1 -1
  39. package/dist/types/deposit/steps/card-provider.d.mts +1 -1
  40. package/dist/types/deposit/steps/card-provider.d.ts +1 -1
  41. package/dist/types/deposit/steps/card-purchase-success.d.mts +1 -1
  42. package/dist/types/deposit/steps/card-purchase-success.d.ts +1 -1
  43. package/dist/types/deposit/steps/card-widget.d.mts +1 -1
  44. package/dist/types/deposit/steps/card-widget.d.ts +1 -1
  45. package/dist/types/deposit/steps/crypto-transfer.d.mts +1 -1
  46. package/dist/types/deposit/steps/crypto-transfer.d.ts +1 -1
  47. package/dist/types/deposit/steps/deposit-method.d.mts +2 -1
  48. package/dist/types/deposit/steps/deposit-method.d.ts +2 -1
  49. package/dist/types/deposit/steps/venue-selection.d.mts +1 -1
  50. package/dist/types/deposit/steps/venue-selection.d.ts +1 -1
  51. package/dist/types/deposit/steps/wallet-form.d.mts +1 -1
  52. package/dist/types/deposit/steps/wallet-form.d.ts +1 -1
  53. package/dist/types/deposit/steps/wallet-processing.d.mts +1 -1
  54. package/dist/types/deposit/steps/wallet-processing.d.ts +1 -1
  55. package/dist/types/deposit/steps/wallet-success.d.mts +1 -1
  56. package/dist/types/deposit/steps/wallet-success.d.ts +1 -1
  57. package/dist/types/events/item/event-list-item.utils.d.mts +1 -1
  58. package/dist/types/events/item/event-list-item.utils.d.ts +1 -1
  59. package/dist/types/events/item/index.d.mts +8 -8
  60. package/dist/types/events/item/index.d.ts +8 -8
  61. package/dist/types/events/item-details/event-list-item-details-market-selector.d.mts +1 -1
  62. package/dist/types/events/item-details/event-list-item-details-market-selector.d.ts +1 -1
  63. package/dist/types/events/item-details/event-markets-chart.d.mts +1 -1
  64. package/dist/types/events/item-details/event-markets-chart.d.ts +1 -1
  65. package/dist/types/events/item-details/event-markets-chart.utils.d.mts +1 -1
  66. package/dist/types/events/item-details/event-markets-chart.utils.d.ts +1 -1
  67. package/dist/types/events/item-details/index.d.mts +4 -4
  68. package/dist/types/events/item-details/index.d.ts +4 -4
  69. package/dist/types/events/item-details/settlement-summary.d.mts +4 -4
  70. package/dist/types/events/item-details/settlement-summary.d.ts +4 -4
  71. package/dist/types/events/list/category-sidebar.d.mts +4 -4
  72. package/dist/types/events/list/category-sidebar.d.ts +4 -4
  73. package/dist/types/events/list/event-list-tabs.d.mts +4 -8
  74. package/dist/types/events/list/event-list-tabs.d.ts +4 -8
  75. package/dist/types/events/list/event-list-venue-strip.d.mts +4 -11
  76. package/dist/types/events/list/event-list-venue-strip.d.ts +4 -11
  77. package/dist/types/events/list/index.d.mts +4 -4
  78. package/dist/types/events/list/index.d.ts +4 -4
  79. package/dist/types/events/market-details/index.d.mts +8 -8
  80. package/dist/types/events/market-details/index.d.ts +8 -8
  81. package/dist/types/events/market-details/market-details-graph-panel.d.mts +4 -14
  82. package/dist/types/events/market-details/market-details-graph-panel.d.ts +4 -14
  83. package/dist/types/events/market-details/market-details-outcome-button.d.mts +4 -4
  84. package/dist/types/events/market-details/market-details-outcome-button.d.ts +4 -4
  85. package/dist/types/events/market-details/orderbook-aggregation.d.mts +3 -1
  86. package/dist/types/events/market-details/orderbook-aggregation.d.ts +3 -1
  87. package/dist/types/events/market-details/use-visible-market-streams.d.mts +1 -1
  88. package/dist/types/events/market-details/use-visible-market-streams.d.ts +1 -1
  89. package/dist/types/events/orderbook/index.d.mts +4 -4
  90. package/dist/types/events/orderbook/index.d.ts +4 -4
  91. package/dist/types/events/orderbook/orderbook-with-states.d.mts +4 -4
  92. package/dist/types/events/orderbook/orderbook-with-states.d.ts +4 -4
  93. package/dist/types/events/shared/chart-source-caption.d.mts +1 -1
  94. package/dist/types/events/shared/chart-source-caption.d.ts +1 -1
  95. package/dist/types/events/shared/sports-live-score.d.mts +4 -4
  96. package/dist/types/events/shared/sports-live-score.d.ts +4 -4
  97. package/dist/types/events/shared/use-chart-orderbook.d.mts +3 -3
  98. package/dist/types/events/shared/use-chart-orderbook.d.ts +3 -3
  99. package/dist/types/geo-block-banner/index.d.mts +4 -4
  100. package/dist/types/geo-block-banner/index.d.ts +4 -4
  101. package/dist/types/geo-block-modal/index.d.mts +4 -4
  102. package/dist/types/geo-block-modal/index.d.ts +4 -4
  103. package/dist/types/kyc/shared-kyc-modal.d.mts +4 -4
  104. package/dist/types/kyc/shared-kyc-modal.d.ts +4 -4
  105. package/dist/types/notifications/agg-notification-events-provider.d.mts +1 -1
  106. package/dist/types/notifications/agg-notification-events-provider.d.ts +1 -1
  107. package/dist/types/notifications/agg-toast-provider.d.mts +1 -1
  108. package/dist/types/notifications/agg-toast-provider.d.ts +1 -1
  109. package/dist/types/onboarding/index.d.mts +4 -4
  110. package/dist/types/onboarding/index.d.ts +4 -4
  111. package/dist/types/onboarding/steps/connect-accounts.d.mts +4 -4
  112. package/dist/types/onboarding/steps/connect-accounts.d.ts +4 -4
  113. package/dist/types/onboarding/steps/connect-kalshi-modal.d.mts +4 -4
  114. package/dist/types/onboarding/steps/connect-kalshi-modal.d.ts +4 -4
  115. package/dist/types/onboarding/steps/connect-novig-modal.d.mts +1 -1
  116. package/dist/types/onboarding/steps/connect-novig-modal.d.ts +1 -1
  117. package/dist/types/onboarding/steps/connect-onchain-modal.d.mts +4 -4
  118. package/dist/types/onboarding/steps/connect-onchain-modal.d.ts +4 -4
  119. package/dist/types/onboarding/steps/connect-prophetx-modal.d.mts +1 -1
  120. package/dist/types/onboarding/steps/connect-prophetx-modal.d.ts +1 -1
  121. package/dist/types/onboarding/steps/how-it-works.d.mts +4 -4
  122. package/dist/types/onboarding/steps/how-it-works.d.ts +4 -4
  123. package/dist/types/onboarding/steps/profile-setup.d.mts +4 -4
  124. package/dist/types/onboarding/steps/profile-setup.d.ts +4 -4
  125. package/dist/types/pages/event-market/event-market.shared.d.mts +4 -4
  126. package/dist/types/pages/event-market/event-market.shared.d.ts +4 -4
  127. package/dist/types/pages/event-market/event-market.types.d.mts +2 -0
  128. package/dist/types/pages/event-market/event-market.types.d.ts +2 -0
  129. package/dist/types/pages/event-market/event-open-orders.d.mts +8 -27
  130. package/dist/types/pages/event-market/event-open-orders.d.ts +8 -27
  131. package/dist/types/pages/event-market/index.d.mts +6 -6
  132. package/dist/types/pages/event-market/index.d.ts +6 -6
  133. package/dist/types/pages/event-market/sports-event-market-page.d.mts +6 -6
  134. package/dist/types/pages/event-market/sports-event-market-page.d.ts +6 -6
  135. package/dist/types/pages/event-market/sports-line-rail.d.mts +2 -1
  136. package/dist/types/pages/event-market/sports-line-rail.d.ts +2 -1
  137. package/dist/types/pages/event-market/sports-market-card.d.mts +4 -4
  138. package/dist/types/pages/event-market/sports-market-card.d.ts +4 -4
  139. package/dist/types/pages/event-market/sports-markets.d.mts +4 -4
  140. package/dist/types/pages/event-market/sports-markets.d.ts +4 -4
  141. package/dist/types/pages/home/index.d.mts +6 -6
  142. package/dist/types/pages/home/index.d.ts +6 -6
  143. package/dist/types/pages/leaderboard/components/leaderboard-header-row.d.mts +1 -1
  144. package/dist/types/pages/leaderboard/components/leaderboard-header-row.d.ts +1 -1
  145. package/dist/types/pages/leaderboard/components/leaderboard-row.d.mts +1 -1
  146. package/dist/types/pages/leaderboard/components/leaderboard-row.d.ts +1 -1
  147. package/dist/types/pages/leaderboard/components/leaderboard-skeleton.d.mts +1 -1
  148. package/dist/types/pages/leaderboard/components/leaderboard-skeleton.d.ts +1 -1
  149. package/dist/types/pages/leaderboard/components/segmented-control.d.mts +1 -1
  150. package/dist/types/pages/leaderboard/components/segmented-control.d.ts +1 -1
  151. package/dist/types/pages/leaderboard/index.d.mts +1 -1
  152. package/dist/types/pages/leaderboard/index.d.ts +1 -1
  153. package/dist/types/pages/user-profile/components/activity-row.d.mts +4 -4
  154. package/dist/types/pages/user-profile/components/activity-row.d.ts +4 -4
  155. package/dist/types/pages/user-profile/components/available-balance-card.d.mts +4 -4
  156. package/dist/types/pages/user-profile/components/available-balance-card.d.ts +4 -4
  157. package/dist/types/pages/user-profile/components/balance-display.d.mts +4 -4
  158. package/dist/types/pages/user-profile/components/balance-display.d.ts +4 -4
  159. package/dist/types/pages/user-profile/components/balances-card.d.mts +4 -4
  160. package/dist/types/pages/user-profile/components/balances-card.d.ts +4 -4
  161. package/dist/types/pages/user-profile/components/betdex-account-activity.d.mts +1 -1
  162. package/dist/types/pages/user-profile/components/betdex-account-activity.d.ts +1 -1
  163. package/dist/types/pages/user-profile/components/betdex-account-card.d.mts +1 -1
  164. package/dist/types/pages/user-profile/components/betdex-account-card.d.ts +1 -1
  165. package/dist/types/pages/user-profile/components/betdex-account-transfers.d.mts +1 -1
  166. package/dist/types/pages/user-profile/components/betdex-account-transfers.d.ts +1 -1
  167. package/dist/types/pages/user-profile/components/betdex-wallet-deposit.d.mts +1 -1
  168. package/dist/types/pages/user-profile/components/betdex-wallet-deposit.d.ts +1 -1
  169. package/dist/types/pages/user-profile/components/claim-activity-breakdown-modal.d.mts +1 -1
  170. package/dist/types/pages/user-profile/components/claim-activity-breakdown-modal.d.ts +1 -1
  171. package/dist/types/pages/user-profile/components/empty-state.d.mts +4 -4
  172. package/dist/types/pages/user-profile/components/empty-state.d.ts +4 -4
  173. package/dist/types/pages/user-profile/components/manage-balances-modal.d.mts +4 -4
  174. package/dist/types/pages/user-profile/components/manage-balances-modal.d.ts +4 -4
  175. package/dist/types/pages/user-profile/components/open-order-row.d.mts +4 -4
  176. package/dist/types/pages/user-profile/components/open-order-row.d.ts +4 -4
  177. package/dist/types/pages/user-profile/components/position-row.d.mts +4 -4
  178. package/dist/types/pages/user-profile/components/position-row.d.ts +4 -4
  179. package/dist/types/pages/user-profile/components/positions-activity.d.mts +4 -4
  180. package/dist/types/pages/user-profile/components/positions-activity.d.ts +4 -4
  181. package/dist/types/pages/user-profile/components/positions-value-card.d.mts +4 -4
  182. package/dist/types/pages/user-profile/components/positions-value-card.d.ts +4 -4
  183. package/dist/types/pages/user-profile/components/user-info-card.d.mts +4 -4
  184. package/dist/types/pages/user-profile/components/user-info-card.d.ts +4 -4
  185. package/dist/types/pages/user-profile/index.d.mts +6 -6
  186. package/dist/types/pages/user-profile/index.d.ts +6 -6
  187. package/dist/types/paper-trading/paper-onboarding-modal.d.mts +4 -14
  188. package/dist/types/paper-trading/paper-onboarding-modal.d.ts +4 -14
  189. package/dist/types/paper-trading/paper-trading-badge.d.mts +4 -16
  190. package/dist/types/paper-trading/paper-trading-badge.d.ts +4 -16
  191. package/dist/types/paper-trading/paper-trading-onboarding.d.mts +4 -12
  192. package/dist/types/paper-trading/paper-trading-onboarding.d.ts +4 -12
  193. package/dist/types/primitives/agg-logo/agg-logo.utils.d.mts +1 -1
  194. package/dist/types/primitives/agg-logo/agg-logo.utils.d.ts +1 -1
  195. package/dist/types/primitives/agg-logo/index.d.mts +4 -5
  196. package/dist/types/primitives/agg-logo/index.d.ts +4 -5
  197. package/dist/types/primitives/autocomplete-select/index.d.mts +4 -5
  198. package/dist/types/primitives/autocomplete-select/index.d.ts +4 -5
  199. package/dist/types/primitives/badge/index.d.mts +1 -1
  200. package/dist/types/primitives/badge/index.d.ts +1 -1
  201. package/dist/types/primitives/button/button.types.d.mts +2 -2
  202. package/dist/types/primitives/button/button.types.d.ts +2 -2
  203. package/dist/types/primitives/button/index.d.mts +4 -5
  204. package/dist/types/primitives/button/index.d.ts +4 -5
  205. package/dist/types/primitives/calendar/index.d.mts +4 -4
  206. package/dist/types/primitives/calendar/index.d.ts +4 -4
  207. package/dist/types/primitives/card/index.d.mts +4 -5
  208. package/dist/types/primitives/card/index.d.ts +4 -5
  209. package/dist/types/primitives/chart/chart-type-switch.d.mts +4 -5
  210. package/dist/types/primitives/chart/chart-type-switch.d.ts +4 -5
  211. package/dist/types/primitives/chart/index.d.mts +4 -5
  212. package/dist/types/primitives/chart/index.d.ts +4 -5
  213. package/dist/types/primitives/chart/probability-chart.d.mts +2 -2
  214. package/dist/types/primitives/chart/probability-chart.d.ts +2 -2
  215. package/dist/types/primitives/chart/probability-live-tail.d.mts +1 -1
  216. package/dist/types/primitives/chart/probability-live-tail.d.ts +1 -1
  217. package/dist/types/primitives/conditional-wrapper.d.mts +6 -7
  218. package/dist/types/primitives/conditional-wrapper.d.ts +6 -7
  219. package/dist/types/primitives/copy-button/index.d.mts +4 -5
  220. package/dist/types/primitives/copy-button/index.d.ts +4 -5
  221. package/dist/types/primitives/currency-input/index.d.mts +4 -5
  222. package/dist/types/primitives/currency-input/index.d.ts +4 -5
  223. package/dist/types/primitives/footer/agg-build-logo.d.mts +12 -15
  224. package/dist/types/primitives/footer/agg-build-logo.d.ts +12 -15
  225. package/dist/types/primitives/footer/index.d.mts +4 -6
  226. package/dist/types/primitives/footer/index.d.ts +4 -6
  227. package/dist/types/primitives/header/index.d.mts +4 -6
  228. package/dist/types/primitives/header/index.d.ts +4 -6
  229. package/dist/types/primitives/icon/index.d.mts +4 -5
  230. package/dist/types/primitives/icon/index.d.ts +4 -5
  231. package/dist/types/primitives/icon/registry.d.mts +180 -351
  232. package/dist/types/primitives/icon/registry.d.ts +180 -351
  233. package/dist/types/primitives/icon/svg/activity-chart.d.mts +4 -4
  234. package/dist/types/primitives/icon/svg/activity-chart.d.ts +4 -4
  235. package/dist/types/primitives/icon/svg/activity.d.mts +4 -4
  236. package/dist/types/primitives/icon/svg/activity.d.ts +4 -4
  237. package/dist/types/primitives/icon/svg/apple.d.mts +4 -4
  238. package/dist/types/primitives/icon/svg/apple.d.ts +4 -4
  239. package/dist/types/primitives/icon/svg/apps.d.mts +4 -4
  240. package/dist/types/primitives/icon/svg/apps.d.ts +4 -4
  241. package/dist/types/primitives/icon/svg/arbitrum.d.mts +4 -4
  242. package/dist/types/primitives/icon/svg/arbitrum.d.ts +4 -4
  243. package/dist/types/primitives/icon/svg/arrow-right.d.mts +4 -4
  244. package/dist/types/primitives/icon/svg/arrow-right.d.ts +4 -4
  245. package/dist/types/primitives/icon/svg/arrow-trend-up.d.mts +4 -4
  246. package/dist/types/primitives/icon/svg/arrow-trend-up.d.ts +4 -4
  247. package/dist/types/primitives/icon/svg/arrows-to-dot.d.mts +4 -4
  248. package/dist/types/primitives/icon/svg/arrows-to-dot.d.ts +4 -4
  249. package/dist/types/primitives/icon/svg/badge-check-thin.d.mts +4 -4
  250. package/dist/types/primitives/icon/svg/badge-check-thin.d.ts +4 -4
  251. package/dist/types/primitives/icon/svg/bank.d.mts +4 -4
  252. package/dist/types/primitives/icon/svg/bank.d.ts +4 -4
  253. package/dist/types/primitives/icon/svg/base.d.mts +4 -4
  254. package/dist/types/primitives/icon/svg/base.d.ts +4 -4
  255. package/dist/types/primitives/icon/svg/best-prices.d.mts +4 -4
  256. package/dist/types/primitives/icon/svg/best-prices.d.ts +4 -4
  257. package/dist/types/primitives/icon/svg/bnb.d.mts +4 -4
  258. package/dist/types/primitives/icon/svg/bnb.d.ts +4 -4
  259. package/dist/types/primitives/icon/svg/bolt.d.mts +4 -4
  260. package/dist/types/primitives/icon/svg/bolt.d.ts +4 -4
  261. package/dist/types/primitives/icon/svg/calendar.d.mts +1 -1
  262. package/dist/types/primitives/icon/svg/calendar.d.ts +1 -1
  263. package/dist/types/primitives/icon/svg/chart-candlestick.d.mts +4 -4
  264. package/dist/types/primitives/icon/svg/chart-candlestick.d.ts +4 -4
  265. package/dist/types/primitives/icon/svg/chart-line.d.mts +4 -4
  266. package/dist/types/primitives/icon/svg/chart-line.d.ts +4 -4
  267. package/dist/types/primitives/icon/svg/check-badge.d.mts +4 -4
  268. package/dist/types/primitives/icon/svg/check-badge.d.ts +4 -4
  269. package/dist/types/primitives/icon/svg/check-circle.d.mts +4 -4
  270. package/dist/types/primitives/icon/svg/check-circle.d.ts +4 -4
  271. package/dist/types/primitives/icon/svg/chevron-down-thin.d.mts +4 -5
  272. package/dist/types/primitives/icon/svg/chevron-down-thin.d.ts +4 -5
  273. package/dist/types/primitives/icon/svg/chevron-down.d.mts +4 -4
  274. package/dist/types/primitives/icon/svg/chevron-down.d.ts +4 -4
  275. package/dist/types/primitives/icon/svg/chevron-left.d.mts +4 -4
  276. package/dist/types/primitives/icon/svg/chevron-left.d.ts +4 -4
  277. package/dist/types/primitives/icon/svg/chevron-right.d.mts +4 -4
  278. package/dist/types/primitives/icon/svg/chevron-right.d.ts +4 -4
  279. package/dist/types/primitives/icon/svg/chevron-up.d.mts +4 -4
  280. package/dist/types/primitives/icon/svg/chevron-up.d.ts +4 -4
  281. package/dist/types/primitives/icon/svg/circle-overlap.d.mts +4 -4
  282. package/dist/types/primitives/icon/svg/circle-overlap.d.ts +4 -4
  283. package/dist/types/primitives/icon/svg/circle-xmark.d.mts +4 -4
  284. package/dist/types/primitives/icon/svg/circle-xmark.d.ts +4 -4
  285. package/dist/types/primitives/icon/svg/close.d.mts +4 -4
  286. package/dist/types/primitives/icon/svg/close.d.ts +4 -4
  287. package/dist/types/primitives/icon/svg/copy.d.mts +4 -4
  288. package/dist/types/primitives/icon/svg/copy.d.ts +4 -4
  289. package/dist/types/primitives/icon/svg/create-account.d.mts +4 -4
  290. package/dist/types/primitives/icon/svg/create-account.d.ts +4 -4
  291. package/dist/types/primitives/icon/svg/credit-card.d.mts +4 -4
  292. package/dist/types/primitives/icon/svg/credit-card.d.ts +4 -4
  293. package/dist/types/primitives/icon/svg/cross-circle.d.mts +4 -4
  294. package/dist/types/primitives/icon/svg/cross-circle.d.ts +4 -4
  295. package/dist/types/primitives/icon/svg/disconnect.d.mts +4 -4
  296. package/dist/types/primitives/icon/svg/disconnect.d.ts +4 -4
  297. package/dist/types/primitives/icon/svg/discord.d.mts +4 -4
  298. package/dist/types/primitives/icon/svg/discord.d.ts +4 -4
  299. package/dist/types/primitives/icon/svg/document.d.mts +4 -4
  300. package/dist/types/primitives/icon/svg/document.d.ts +4 -4
  301. package/dist/types/primitives/icon/svg/dots-horizontal.d.mts +4 -4
  302. package/dist/types/primitives/icon/svg/dots-horizontal.d.ts +4 -4
  303. package/dist/types/primitives/icon/svg/download.d.mts +4 -4
  304. package/dist/types/primitives/icon/svg/download.d.ts +4 -4
  305. package/dist/types/primitives/icon/svg/email.d.mts +4 -4
  306. package/dist/types/primitives/icon/svg/email.d.ts +4 -4
  307. package/dist/types/primitives/icon/svg/error-filled.d.mts +4 -4
  308. package/dist/types/primitives/icon/svg/error-filled.d.ts +4 -4
  309. package/dist/types/primitives/icon/svg/ethereum.d.mts +4 -4
  310. package/dist/types/primitives/icon/svg/ethereum.d.ts +4 -4
  311. package/dist/types/primitives/icon/svg/external-link.d.mts +4 -4
  312. package/dist/types/primitives/icon/svg/external-link.d.ts +4 -4
  313. package/dist/types/primitives/icon/svg/gift-bonus.d.mts +4 -4
  314. package/dist/types/primitives/icon/svg/gift-bonus.d.ts +4 -4
  315. package/dist/types/primitives/icon/svg/google.d.mts +4 -4
  316. package/dist/types/primitives/icon/svg/google.d.ts +4 -4
  317. package/dist/types/primitives/icon/svg/hourglass-start.d.mts +4 -4
  318. package/dist/types/primitives/icon/svg/hourglass-start.d.ts +4 -4
  319. package/dist/types/primitives/icon/svg/image.d.mts +4 -4
  320. package/dist/types/primitives/icon/svg/image.d.ts +4 -4
  321. package/dist/types/primitives/icon/svg/info.d.mts +4 -4
  322. package/dist/types/primitives/icon/svg/info.d.ts +4 -4
  323. package/dist/types/primitives/icon/svg/internet-security.d.mts +4 -4
  324. package/dist/types/primitives/icon/svg/internet-security.d.ts +4 -4
  325. package/dist/types/primitives/icon/svg/link-accounts.d.mts +4 -4
  326. package/dist/types/primitives/icon/svg/link-accounts.d.ts +4 -4
  327. package/dist/types/primitives/icon/svg/lock.d.mts +4 -4
  328. package/dist/types/primitives/icon/svg/lock.d.ts +4 -4
  329. package/dist/types/primitives/icon/svg/minus.d.mts +1 -1
  330. package/dist/types/primitives/icon/svg/minus.d.ts +1 -1
  331. package/dist/types/primitives/icon/svg/paper-buying-power.d.mts +4 -10
  332. package/dist/types/primitives/icon/svg/paper-buying-power.d.ts +4 -10
  333. package/dist/types/primitives/icon/svg/paper-earnings.d.mts +4 -10
  334. package/dist/types/primitives/icon/svg/paper-earnings.d.ts +4 -10
  335. package/dist/types/primitives/icon/svg/paper-mode.d.mts +4 -4
  336. package/dist/types/primitives/icon/svg/paper-mode.d.ts +4 -4
  337. package/dist/types/primitives/icon/svg/paper-onboarding-funds.d.mts +4 -11
  338. package/dist/types/primitives/icon/svg/paper-onboarding-funds.d.ts +4 -11
  339. package/dist/types/primitives/icon/svg/paper-onboarding-markets.d.mts +4 -11
  340. package/dist/types/primitives/icon/svg/paper-onboarding-markets.d.ts +4 -11
  341. package/dist/types/primitives/icon/svg/paper-onboarding-performance.d.mts +4 -11
  342. package/dist/types/primitives/icon/svg/paper-onboarding-performance.d.ts +4 -11
  343. package/dist/types/primitives/icon/svg/paper-plane.d.mts +4 -4
  344. package/dist/types/primitives/icon/svg/paper-plane.d.ts +4 -4
  345. package/dist/types/primitives/icon/svg/pencil.d.mts +4 -4
  346. package/dist/types/primitives/icon/svg/pencil.d.ts +4 -4
  347. package/dist/types/primitives/icon/svg/play-square.d.mts +4 -4
  348. package/dist/types/primitives/icon/svg/play-square.d.ts +4 -4
  349. package/dist/types/primitives/icon/svg/plus.d.mts +1 -1
  350. package/dist/types/primitives/icon/svg/plus.d.ts +1 -1
  351. package/dist/types/primitives/icon/svg/polygon.d.mts +4 -4
  352. package/dist/types/primitives/icon/svg/polygon.d.ts +4 -4
  353. package/dist/types/primitives/icon/svg/profile-about-tab.d.mts +4 -5
  354. package/dist/types/primitives/icon/svg/profile-about-tab.d.ts +4 -5
  355. package/dist/types/primitives/icon/svg/profile-accounts-wallets-tab.d.mts +4 -5
  356. package/dist/types/primitives/icon/svg/profile-accounts-wallets-tab.d.ts +4 -5
  357. package/dist/types/primitives/icon/svg/profile.d.mts +4 -4
  358. package/dist/types/primitives/icon/svg/profile.d.ts +4 -4
  359. package/dist/types/primitives/icon/svg/quotes-warning.d.mts +4 -5
  360. package/dist/types/primitives/icon/svg/quotes-warning.d.ts +4 -5
  361. package/dist/types/primitives/icon/svg/recenter.d.mts +4 -4
  362. package/dist/types/primitives/icon/svg/recenter.d.ts +4 -4
  363. package/dist/types/primitives/icon/svg/revenue-alt.d.mts +4 -4
  364. package/dist/types/primitives/icon/svg/revenue-alt.d.ts +4 -4
  365. package/dist/types/primitives/icon/svg/search.d.mts +4 -4
  366. package/dist/types/primitives/icon/svg/search.d.ts +4 -4
  367. package/dist/types/primitives/icon/svg/shield-trust.d.mts +4 -4
  368. package/dist/types/primitives/icon/svg/shield-trust.d.ts +4 -4
  369. package/dist/types/primitives/icon/svg/solana.d.mts +4 -4
  370. package/dist/types/primitives/icon/svg/solana.d.ts +4 -4
  371. package/dist/types/primitives/icon/svg/sort-end-date.d.mts +4 -4
  372. package/dist/types/primitives/icon/svg/sort-end-date.d.ts +4 -4
  373. package/dist/types/primitives/icon/svg/sort-top-arbitrage.d.mts +4 -4
  374. package/dist/types/primitives/icon/svg/sort-top-arbitrage.d.ts +4 -4
  375. package/dist/types/primitives/icon/svg/sort-volume-24hr.d.mts +4 -4
  376. package/dist/types/primitives/icon/svg/sort-volume-24hr.d.ts +4 -4
  377. package/dist/types/primitives/icon/svg/sort-volume.d.mts +4 -4
  378. package/dist/types/primitives/icon/svg/sort-volume.d.ts +4 -4
  379. package/dist/types/primitives/icon/svg/sparkles-filled.d.mts +4 -4
  380. package/dist/types/primitives/icon/svg/sparkles-filled.d.ts +4 -4
  381. package/dist/types/primitives/icon/svg/spinner.d.mts +4 -4
  382. package/dist/types/primitives/icon/svg/spinner.d.ts +4 -4
  383. package/dist/types/primitives/icon/svg/stay-in-control.d.mts +4 -4
  384. package/dist/types/primitives/icon/svg/stay-in-control.d.ts +4 -4
  385. package/dist/types/primitives/icon/svg/success-check.d.mts +4 -4
  386. package/dist/types/primitives/icon/svg/success-check.d.ts +4 -4
  387. package/dist/types/primitives/icon/svg/telegram.d.mts +4 -4
  388. package/dist/types/primitives/icon/svg/telegram.d.ts +4 -4
  389. package/dist/types/primitives/icon/svg/triangle-down.d.mts +4 -4
  390. package/dist/types/primitives/icon/svg/triangle-down.d.ts +4 -4
  391. package/dist/types/primitives/icon/svg/triangle-up-filled.d.mts +4 -4
  392. package/dist/types/primitives/icon/svg/triangle-up-filled.d.ts +4 -4
  393. package/dist/types/primitives/icon/svg/triangle-up.d.mts +4 -4
  394. package/dist/types/primitives/icon/svg/triangle-up.d.ts +4 -4
  395. package/dist/types/primitives/icon/svg/twitter.d.mts +4 -4
  396. package/dist/types/primitives/icon/svg/twitter.d.ts +4 -4
  397. package/dist/types/primitives/icon/svg/upload.d.mts +4 -4
  398. package/dist/types/primitives/icon/svg/upload.d.ts +4 -4
  399. package/dist/types/primitives/icon/svg/usdc.d.mts +4 -4
  400. package/dist/types/primitives/icon/svg/usdc.d.ts +4 -4
  401. package/dist/types/primitives/icon/svg/user-trust.d.mts +4 -4
  402. package/dist/types/primitives/icon/svg/user-trust.d.ts +4 -4
  403. package/dist/types/primitives/icon/svg/wallet-avatar.d.mts +1 -1
  404. package/dist/types/primitives/icon/svg/wallet-avatar.d.ts +1 -1
  405. package/dist/types/primitives/icon/svg/wallet-filled.d.mts +4 -4
  406. package/dist/types/primitives/icon/svg/wallet-filled.d.ts +4 -4
  407. package/dist/types/primitives/icon/svg/wallet.d.mts +4 -4
  408. package/dist/types/primitives/icon/svg/wallet.d.ts +4 -4
  409. package/dist/types/primitives/icon/svg/warning-filled.d.mts +4 -4
  410. package/dist/types/primitives/icon/svg/warning-filled.d.ts +4 -4
  411. package/dist/types/primitives/icon/svg/warning.d.mts +4 -4
  412. package/dist/types/primitives/icon/svg/warning.d.ts +4 -4
  413. package/dist/types/primitives/inline-alert/index.d.mts +4 -5
  414. package/dist/types/primitives/inline-alert/index.d.ts +4 -5
  415. package/dist/types/primitives/loading-icon/index.d.mts +4 -5
  416. package/dist/types/primitives/loading-icon/index.d.ts +4 -5
  417. package/dist/types/primitives/modal/index.d.mts +12 -9
  418. package/dist/types/primitives/modal/index.d.ts +12 -9
  419. package/dist/types/primitives/number-value.d.mts +4 -4
  420. package/dist/types/primitives/number-value.d.ts +4 -4
  421. package/dist/types/primitives/remote-image/index.d.mts +4 -5
  422. package/dist/types/primitives/remote-image/index.d.ts +4 -5
  423. package/dist/types/primitives/search/index.d.mts +4 -5
  424. package/dist/types/primitives/search/index.d.ts +4 -5
  425. package/dist/types/primitives/search/search-empty-icon.d.mts +4 -4
  426. package/dist/types/primitives/search/search-empty-icon.d.ts +4 -4
  427. package/dist/types/primitives/select/index.d.mts +4 -5
  428. package/dist/types/primitives/select/index.d.ts +4 -5
  429. package/dist/types/primitives/skeleton/index.d.mts +4 -5
  430. package/dist/types/primitives/skeleton/index.d.ts +4 -5
  431. package/dist/types/primitives/skeleton/skeleton-block.d.mts +4 -4
  432. package/dist/types/primitives/skeleton/skeleton-block.d.ts +4 -4
  433. package/dist/types/primitives/skeleton/views/event-list-item-details-skeleton-view.d.mts +4 -4
  434. package/dist/types/primitives/skeleton/views/event-list-item-details-skeleton-view.d.ts +4 -4
  435. package/dist/types/primitives/skeleton/views/event-list-item-skeleton-view.d.mts +4 -10
  436. package/dist/types/primitives/skeleton/views/event-list-item-skeleton-view.d.ts +4 -10
  437. package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.mts +4 -4
  438. package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.ts +4 -4
  439. package/dist/types/primitives/skeleton/views/market-details-skeleton-view.d.mts +5 -5
  440. package/dist/types/primitives/skeleton/views/market-details-skeleton-view.d.ts +5 -5
  441. package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.mts +8 -8
  442. package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.ts +8 -8
  443. package/dist/types/primitives/skeleton/views/search-skeleton-view.d.mts +4 -4
  444. package/dist/types/primitives/skeleton/views/search-skeleton-view.d.ts +4 -4
  445. package/dist/types/primitives/skeleton/views/settlement-skeleton-view.d.mts +4 -4
  446. package/dist/types/primitives/skeleton/views/settlement-skeleton-view.d.ts +4 -4
  447. package/dist/types/primitives/skeleton/views/user-profile-overview-skeleton-view.d.mts +4 -4
  448. package/dist/types/primitives/skeleton/views/user-profile-overview-skeleton-view.d.ts +4 -4
  449. package/dist/types/primitives/skeleton/views/user-profile-positions-activity-skeleton-view.d.mts +4 -4
  450. package/dist/types/primitives/skeleton/views/user-profile-positions-activity-skeleton-view.d.ts +4 -4
  451. package/dist/types/primitives/state-message/index.d.mts +4 -5
  452. package/dist/types/primitives/state-message/index.d.ts +4 -5
  453. package/dist/types/primitives/switch-button/index.d.mts +4 -5
  454. package/dist/types/primitives/switch-button/index.d.ts +4 -5
  455. package/dist/types/primitives/tabs/index.d.mts +4 -5
  456. package/dist/types/primitives/tabs/index.d.ts +4 -5
  457. package/dist/types/primitives/toast/index.d.mts +1 -1
  458. package/dist/types/primitives/toast/index.d.ts +1 -1
  459. package/dist/types/primitives/tooltip/index.d.mts +4 -5
  460. package/dist/types/primitives/tooltip/index.d.ts +4 -5
  461. package/dist/types/primitives/typography/index.d.mts +4 -5
  462. package/dist/types/primitives/typography/index.d.ts +4 -5
  463. package/dist/types/primitives/typography/typography.types.d.mts +1 -1
  464. package/dist/types/primitives/typography/typography.types.d.ts +1 -1
  465. package/dist/types/primitives/venue-logo/index.d.mts +4 -5
  466. package/dist/types/primitives/venue-logo/index.d.ts +4 -5
  467. package/dist/types/primitives/venue-logo/svg/default-venue.d.mts +1 -1
  468. package/dist/types/primitives/venue-logo/svg/default-venue.d.ts +1 -1
  469. package/dist/types/primitives/venue-logo/svg/logo-betdex.d.mts +1 -1
  470. package/dist/types/primitives/venue-logo/svg/logo-betdex.d.ts +1 -1
  471. package/dist/types/primitives/venue-logo/svg/logo-hyperliquid.d.mts +4 -4
  472. package/dist/types/primitives/venue-logo/svg/logo-hyperliquid.d.ts +4 -4
  473. package/dist/types/primitives/venue-logo/svg/logo-kalshi.d.mts +4 -4
  474. package/dist/types/primitives/venue-logo/svg/logo-kalshi.d.ts +4 -4
  475. package/dist/types/primitives/venue-logo/svg/logo-limitless.d.mts +4 -4
  476. package/dist/types/primitives/venue-logo/svg/logo-limitless.d.ts +4 -4
  477. package/dist/types/primitives/venue-logo/svg/logo-myriad.d.mts +4 -4
  478. package/dist/types/primitives/venue-logo/svg/logo-myriad.d.ts +4 -4
  479. package/dist/types/primitives/venue-logo/svg/logo-novig.d.mts +4 -23
  480. package/dist/types/primitives/venue-logo/svg/logo-novig.d.ts +4 -23
  481. package/dist/types/primitives/venue-logo/svg/logo-opinion.d.mts +4 -4
  482. package/dist/types/primitives/venue-logo/svg/logo-opinion.d.ts +4 -4
  483. package/dist/types/primitives/venue-logo/svg/logo-polymarket.d.mts +4 -4
  484. package/dist/types/primitives/venue-logo/svg/logo-polymarket.d.ts +4 -4
  485. package/dist/types/primitives/venue-logo/svg/logo-pred.d.mts +4 -5
  486. package/dist/types/primitives/venue-logo/svg/logo-pred.d.ts +4 -5
  487. package/dist/types/primitives/venue-logo/svg/logo-predict.d.mts +4 -4
  488. package/dist/types/primitives/venue-logo/svg/logo-predict.d.ts +4 -4
  489. package/dist/types/primitives/venue-logo/svg/logo-probable.d.mts +4 -4
  490. package/dist/types/primitives/venue-logo/svg/logo-probable.d.ts +4 -4
  491. package/dist/types/primitives/venue-logo/svg/logo-prophetx.d.mts +4 -26
  492. package/dist/types/primitives/venue-logo/svg/logo-prophetx.d.ts +4 -26
  493. package/dist/types/primitives/venue-logo/svg/logo-tiprun.d.mts +4 -5
  494. package/dist/types/primitives/venue-logo/svg/logo-tiprun.d.ts +4 -5
  495. package/dist/types/primitives/venue-logo/venue-logo.constants.d.mts +1 -1
  496. package/dist/types/primitives/venue-logo/venue-logo.constants.d.ts +1 -1
  497. package/dist/types/profile/index.d.mts +4 -4
  498. package/dist/types/profile/index.d.ts +4 -4
  499. package/dist/types/profile/tabs/about-tab.d.mts +4 -4
  500. package/dist/types/profile/tabs/about-tab.d.ts +4 -4
  501. package/dist/types/profile/tabs/accounts-wallets-tab.d.mts +4 -4
  502. package/dist/types/profile/tabs/accounts-wallets-tab.d.ts +4 -4
  503. package/dist/types/profile/tabs/trading-access-tab.d.mts +4 -4
  504. package/dist/types/profile/tabs/trading-access-tab.d.ts +4 -4
  505. package/dist/types/shared/default-avatar.d.mts +4 -4
  506. package/dist/types/shared/default-avatar.d.ts +4 -4
  507. package/dist/types/shared/open-orders.d.mts +1 -1
  508. package/dist/types/shared/open-orders.d.ts +1 -1
  509. package/dist/types/shared/react-inert.d.mts +1 -0
  510. package/dist/types/shared/react-inert.d.ts +1 -0
  511. package/dist/types/shared/transfer-fee-summary.d.mts +1 -1
  512. package/dist/types/shared/transfer-fee-summary.d.ts +1 -1
  513. package/dist/types/trading/fund-kalshi-modal.d.mts +4 -4
  514. package/dist/types/trading/fund-kalshi-modal.d.ts +4 -4
  515. package/dist/types/trading/manage-betdex-account-modal.d.mts +1 -1
  516. package/dist/types/trading/manage-betdex-account-modal.d.ts +1 -1
  517. package/dist/types/trading/place-order/index.d.mts +4 -4
  518. package/dist/types/trading/place-order/index.d.ts +4 -4
  519. package/dist/types/trading/place-order/index.place-order.execution-view.d.mts +6 -6
  520. package/dist/types/trading/place-order/index.place-order.execution-view.d.ts +6 -6
  521. package/dist/types/trading/place-order/index.place-order.failure.d.mts +4 -4
  522. package/dist/types/trading/place-order/index.place-order.failure.d.ts +4 -4
  523. package/dist/types/trading/place-order/index.place-order.success.d.mts +4 -4
  524. package/dist/types/trading/place-order/index.place-order.success.d.ts +4 -4
  525. package/dist/types/trading/settlement/index.d.mts +4 -4
  526. package/dist/types/trading/settlement/index.d.ts +4 -4
  527. package/dist/types/trading/settlement/settlement-details.d.mts +4 -4
  528. package/dist/types/trading/settlement/settlement-details.d.ts +4 -4
  529. package/dist/types/trading/settlement/settlement-text-renderer.d.mts +4 -4
  530. package/dist/types/trading/settlement/settlement-text-renderer.d.ts +4 -4
  531. package/dist/types/withdraw/index.d.mts +4 -4
  532. package/dist/types/withdraw/index.d.ts +4 -4
  533. package/dist/types/withdraw/steps/withdraw-amount.d.mts +1 -1
  534. package/dist/types/withdraw/steps/withdraw-amount.d.ts +1 -1
  535. package/dist/types/withdraw/steps/withdraw-method.d.mts +1 -1
  536. package/dist/types/withdraw/steps/withdraw-method.d.ts +1 -1
  537. package/dist/types/withdraw/steps/withdraw-provider.d.mts +1 -1
  538. package/dist/types/withdraw/steps/withdraw-provider.d.ts +1 -1
  539. package/dist/types/withdraw/steps/withdraw-success.d.mts +2 -2
  540. package/dist/types/withdraw/steps/withdraw-success.d.ts +2 -2
  541. package/package.json +9 -8
  542. package/dist/chunk-6CZNJSRL.mjs +0 -3551
  543. package/dist/chunk-7G2GTWAS.mjs +0 -5189
  544. package/dist/chunk-7ORC3TUJ.mjs +0 -2883
  545. package/dist/chunk-EJXA32MG.mjs +0 -2377
  546. package/dist/chunk-JH4B3ZHQ.mjs +0 -1
  547. package/dist/chunk-KN7JN7F5.mjs +0 -8303
  548. package/dist/chunk-PN5HEBFC.mjs +0 -5789
  549. package/dist/chunk-W2LCFCW3.mjs +0 -2879
  550. package/dist/chunk-WOCZ4TVT.mjs +0 -1645
  551. package/dist/chunk-XZVGHKMW.mjs +0 -11426
  552. package/dist/event-market-A276CAYG.mjs +0 -21
@@ -0,0 +1,789 @@
1
+ "use client";
2
+ import { B as Skeleton, Fn as cn, P as VenueLogo, V as skeletonViews, Wn as resolveResolvedOutcomeLabel, mt as Card, zn as formatUsd } from "./primitives-Dz5aF8ma.mjs";
3
+ import { Fragment, useEffect, useMemo, useState } from "react";
4
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
5
+ import { resolveAggUiLabels, useEventTradingContext as useEventTradingContext$1, useLabels } from "@agg-build/hooks";
6
+ import dayjs from "dayjs";
7
+ import { hasShape, safeParse } from "@agg-build/sdk";
8
+ //#region src/events/orderbook/orderbook.utils.ts
9
+ const isOrderBookLevel = (v) => hasShape(v, {
10
+ price: (p) => typeof p === "number" && p >= 0 && p <= 1,
11
+ size: (s) => typeof s === "number" && s >= 0
12
+ });
13
+ const isOrderBookRow = (v) => hasShape(v, {
14
+ id: (x) => typeof x === "string",
15
+ venue: (x) => typeof x === "string" && x.length > 0,
16
+ price: (p) => typeof p === "number" && p >= 0 && p <= 1,
17
+ size: (s) => typeof s === "number" && s >= 0,
18
+ total: (t) => typeof t === "number" && t >= 0,
19
+ tone: (x) => x === "positive" || x === "negative"
20
+ });
21
+ const formatProbabilityCents = (value, formatPrice) => {
22
+ if (value == null) return "-";
23
+ if (formatPrice) return formatPrice(value);
24
+ return `${(value * 100).toFixed(1).replace(/\.0$/, "")}\u00A2`;
25
+ };
26
+ const resolveOrderBookRows = ({ data, side }) => {
27
+ if (!data?.length) return [];
28
+ const tone = side === "asks" ? "negative" : "positive";
29
+ const sortedRows = [...data.flatMap((result) => {
30
+ return (result.orderbook[side] ?? []).flatMap((level, index) => {
31
+ const parsedLevel = safeParse(level, isOrderBookLevel);
32
+ if (!parsedLevel.success) return [];
33
+ const parsedRow = safeParse({
34
+ id: `${result.market.id}-${side}-${index}-${parsedLevel.data.price}`,
35
+ venue: result.market.venue,
36
+ price: parsedLevel.data.price,
37
+ size: parsedLevel.data.size,
38
+ total: parsedLevel.data.price * parsedLevel.data.size,
39
+ tone
40
+ }, isOrderBookRow);
41
+ if (!parsedRow.success) return [];
42
+ return [parsedRow.data];
43
+ });
44
+ })].sort((left, right) => {
45
+ if (side === "asks") return left.price - right.price;
46
+ return right.price - left.price;
47
+ });
48
+ const maxTotal = sortedRows.reduce((currentMax, row) => Math.max(currentMax, row.total), 0) || 1;
49
+ return sortedRows.map((row) => ({
50
+ ...row,
51
+ barScale: row.total / maxTotal
52
+ }));
53
+ };
54
+ const resolveUnifiedOrderBookEntries = ({ askRows, bidRows, midPrice, spread }) => {
55
+ const asksDescending = [...askRows].reverse();
56
+ const askCumulativeDepths = new Array(asksDescending.length);
57
+ let cumulative = 0;
58
+ for (let i = asksDescending.length - 1; i >= 0; i--) {
59
+ cumulative += asksDescending[i].total;
60
+ askCumulativeDepths[i] = cumulative;
61
+ }
62
+ const bidCumulativeDepths = new Array(bidRows.length);
63
+ cumulative = 0;
64
+ for (let i = 0; i < bidRows.length; i++) {
65
+ cumulative += bidRows[i].total;
66
+ bidCumulativeDepths[i] = cumulative;
67
+ }
68
+ const maxAskCumulative = askCumulativeDepths.length > 0 ? askCumulativeDepths[0] : 0;
69
+ const maxBidCumulative = bidCumulativeDepths.length > 0 ? bidCumulativeDepths[bidCumulativeDepths.length - 1] : 0;
70
+ const askMax = maxAskCumulative || 1;
71
+ const bidMax = maxBidCumulative || 1;
72
+ const askEntries = asksDescending.map((row, index) => ({
73
+ kind: "ask",
74
+ row,
75
+ cumulativeDepth: askCumulativeDepths[index],
76
+ unifiedBarScale: askCumulativeDepths[index] / askMax
77
+ }));
78
+ const bidEntries = bidRows.map((row, index) => ({
79
+ kind: "bid",
80
+ row,
81
+ cumulativeDepth: bidCumulativeDepths[index],
82
+ unifiedBarScale: bidCumulativeDepths[index] / bidMax
83
+ }));
84
+ const spreadEntry = {
85
+ kind: "spread",
86
+ midPrice,
87
+ spread
88
+ };
89
+ return [
90
+ ...askEntries,
91
+ spreadEntry,
92
+ ...bidEntries
93
+ ];
94
+ };
95
+ //#endregion
96
+ //#region src/events/shared/display-reference-price.ts
97
+ const getDisplayReferencePrice = ({ bestMidpoint, fallbackPrice }) => {
98
+ return bestMidpoint ?? fallbackPrice ?? void 0;
99
+ };
100
+ //#endregion
101
+ //#region src/events/shared/select-outcome-price.ts
102
+ const selectOutcomePrice = ({ outcomeId, selection, bestPrices, bestMidpointsByOutcomeId, livePrices, fallbackPrice }) => {
103
+ if (!outcomeId) return void 0;
104
+ if (selection === "buy") {
105
+ const bestAsk = bestPrices?.get(outcomeId)?.bestAsk;
106
+ if (bestAsk != null) return bestAsk;
107
+ } else if (selection === "sell") {
108
+ const bestBid = bestPrices?.get(outcomeId)?.bestBid;
109
+ if (bestBid != null) return bestBid;
110
+ }
111
+ const livePrice = livePrices?.get(outcomeId);
112
+ if (livePrice != null) return livePrice;
113
+ const midpointPrice = bestMidpointsByOutcomeId?.get(outcomeId);
114
+ if (midpointPrice != null) return midpointPrice;
115
+ return fallbackPrice ?? void 0;
116
+ };
117
+ //#endregion
118
+ //#region src/events/shared/display-outcome-price.ts
119
+ const normalizeOutcomeLabel = (label) => {
120
+ return typeof label === "string" ? label.trim().toLowerCase() : "";
121
+ };
122
+ const getDisplayOutcomePrice = ({ outcomeId, outcomeLabel, selection, bestPrices, bestMidpoint, bestMidpointsByOutcomeId, livePrices, fallbackPrice }) => {
123
+ if (selection && outcomeId) return selectOutcomePrice({
124
+ outcomeId,
125
+ selection,
126
+ bestPrices,
127
+ bestMidpointsByOutcomeId,
128
+ livePrices,
129
+ fallbackPrice
130
+ });
131
+ const livePrice = outcomeId ? livePrices?.get(outcomeId) : void 0;
132
+ if (livePrice != null) return livePrice;
133
+ const resolvedFallbackPrice = (outcomeId ? bestMidpointsByOutcomeId?.get(outcomeId) : void 0) ?? fallbackPrice ?? void 0;
134
+ if (normalizeOutcomeLabel(outcomeLabel) === "yes") return getDisplayReferencePrice({
135
+ bestMidpoint,
136
+ fallbackPrice: resolvedFallbackPrice
137
+ });
138
+ return resolvedFallbackPrice;
139
+ };
140
+ //#endregion
141
+ //#region src/trading/utils.ts
142
+ const defaultLabels = resolveAggUiLabels("en-US");
143
+ const defaultSettlementSectionLabel = defaultLabels.trading.settlementSection;
144
+ const defaultTradingDisclaimer = defaultLabels.trading.disclaimer;
145
+ const getTradingDateLabel = (value) => {
146
+ const parsedValue = dayjs(value);
147
+ if (!parsedValue.isValid()) return typeof value === "string" ? value : "";
148
+ return parsedValue.format("MMM D, YYYY");
149
+ };
150
+ const getTradingVenueLabel = (venue, label) => {
151
+ if (label) return label;
152
+ if (!venue) return "Unknown";
153
+ return defaultLabels.venues[venue] ?? venue;
154
+ };
155
+ const getTradingValueLabel = ({ amount, minimumFractionDigits = 0, maximumFractionDigits = 2 }) => {
156
+ return amount.toLocaleString("en-US", {
157
+ style: "currency",
158
+ currency: "USD",
159
+ minimumFractionDigits,
160
+ maximumFractionDigits
161
+ });
162
+ };
163
+ const getTradingPriceLabel = (value) => {
164
+ return `${Math.round(value * 100)}¢`;
165
+ };
166
+ const getTradingAveragePriceLabel = (value) => {
167
+ return defaultLabels.trading.averagePrice(value);
168
+ };
169
+ const getTradingBalanceLabel = (value) => {
170
+ return defaultLabels.trading.balance(formatUsd(value));
171
+ };
172
+ const getTradingSharesLabel = (value) => {
173
+ return defaultLabels.trading.shares(value);
174
+ };
175
+ const getTradingSlippageLabel = (value) => {
176
+ return defaultLabels.trading.slippage(value);
177
+ };
178
+ //#endregion
179
+ //#region src/trading/settlement/settlement-text.utils.ts
180
+ const stripHtmlFragments = (text) => {
181
+ return text.replace(/<\s*p\s*>/gi, "").replace(/<\s*\/\s*p\s*>/gi, "\n\n").replace(/<\s*br\s*\/?\s*>/gi, "\n").replace(/\r\n/g, "\n");
182
+ };
183
+ const isListLine = (line) => /^\s*[-*]\s+/.test(line);
184
+ const stripBullet = (line) => line.replace(/^\s*[-*]\s+/, "").trim();
185
+ const parseSettlementBlocks = (input) => {
186
+ const normalized = stripHtmlFragments(input).trim();
187
+ if (!normalized) return [];
188
+ const paragraphs = normalized.split(/\n{2,}/);
189
+ const blocks = [];
190
+ for (const rawParagraph of paragraphs) {
191
+ const lines = rawParagraph.split("\n").map((line) => line.replace(/\s+$/, "")).filter((line) => line.trim().length > 0);
192
+ if (lines.length === 0) continue;
193
+ if (lines.every(isListLine)) {
194
+ blocks.push({
195
+ kind: "list",
196
+ items: lines.map(stripBullet)
197
+ });
198
+ continue;
199
+ }
200
+ blocks.push({
201
+ kind: "paragraph",
202
+ lines: lines.map((line) => line.trim())
203
+ });
204
+ }
205
+ return blocks;
206
+ };
207
+ /** Lower-cased, whitespace-collapsed form used for dedup comparisons. */
208
+ const normalizeSettlementForCompare = (input) => {
209
+ return stripHtmlFragments(input).replace(/\s+/g, " ").trim().toLowerCase();
210
+ };
211
+ /**
212
+ * Produces the ordered list of non-empty settlement blocks for the Settlement
213
+ * section, dropping any source whose normalized text is contained within
214
+ * another source's — keeping the superset. Containment (not just equality) is
215
+ * required because some venues (e.g. predict) store the same rules text on both
216
+ * the event and its markets, with the market copy adding only a trailing
217
+ * "Created At: ..." line, so the two are a prefix relationship, not identical.
218
+ */
219
+ const dedupeSettlementSources = (sources) => {
220
+ const order = [
221
+ "eventDescription",
222
+ "marketDescription",
223
+ "primaryRules"
224
+ ];
225
+ const result = [];
226
+ for (const key of order) {
227
+ const value = sources[key];
228
+ if (typeof value !== "string") continue;
229
+ const trimmed = value.trim();
230
+ if (!trimmed) continue;
231
+ const fingerprint = normalizeSettlementForCompare(trimmed);
232
+ if (!fingerprint) continue;
233
+ if (result.some((block) => block.fingerprint.includes(fingerprint))) continue;
234
+ for (let i = result.length - 1; i >= 0; i -= 1) if (fingerprint.includes(result[i].fingerprint)) result.splice(i, 1);
235
+ result.push({
236
+ key,
237
+ content: trimmed,
238
+ fingerprint
239
+ });
240
+ }
241
+ return result.map(({ key, content }) => ({
242
+ key,
243
+ content
244
+ }));
245
+ };
246
+ //#endregion
247
+ //#region src/trading/settlement/settlement-text-renderer.tsx
248
+ const inlineTokenRegex = new RegExp([
249
+ /\[([^\]\n]+)\]\(([^)\s]+)\)/.source,
250
+ /\*\*([^*\n]+?)\*\*/.source,
251
+ /`([^`\n]+?)`/.source,
252
+ /(https?:\/\/[^\s<>"'`]+)/.source
253
+ ].join("|"), "g");
254
+ const trailingUrlPunctuationRegex = /[.,;:!?)\]]+$/;
255
+ const isLinkMatch = (match) => match[1] !== void 0 && match[2] !== void 0;
256
+ const linkClassName = "agg-settlement-text-link text-agg-primary underline hover:opacity-80";
257
+ const renderInlineSegment = (text, baseKey) => {
258
+ const nodes = [];
259
+ let lastIndex = 0;
260
+ let segmentIndex = 0;
261
+ inlineTokenRegex.lastIndex = 0;
262
+ let match;
263
+ while ((match = inlineTokenRegex.exec(text)) !== null) {
264
+ let matchEnd = match.index + match[0].length;
265
+ let bareUrl = match[5];
266
+ if (bareUrl !== void 0) {
267
+ const trailing = trailingUrlPunctuationRegex.exec(bareUrl);
268
+ if (trailing) {
269
+ const trimmed = bareUrl.slice(0, bareUrl.length - trailing[0].length);
270
+ if (trimmed.length > 8) {
271
+ bareUrl = trimmed;
272
+ matchEnd -= trailing[0].length;
273
+ inlineTokenRegex.lastIndex = matchEnd;
274
+ }
275
+ }
276
+ }
277
+ if (match.index > lastIndex) nodes.push(/* @__PURE__ */ jsx(Fragment, { children: text.slice(lastIndex, match.index) }, `${baseKey}-text-${segmentIndex++}`));
278
+ if (isLinkMatch(match)) nodes.push(/* @__PURE__ */ jsx("a", {
279
+ href: match[2],
280
+ target: "_blank",
281
+ rel: "noopener noreferrer",
282
+ className: linkClassName,
283
+ children: match[1]
284
+ }, `${baseKey}-link-${segmentIndex++}`));
285
+ else if (match[3] !== void 0) nodes.push(/* @__PURE__ */ jsx("strong", {
286
+ className: "agg-settlement-text-bold font-agg-bold",
287
+ children: match[3]
288
+ }, `${baseKey}-bold-${segmentIndex++}`));
289
+ else if (match[4] !== void 0) nodes.push(/* @__PURE__ */ jsx("code", {
290
+ className: "agg-settlement-text-code rounded-agg-sm bg-agg-secondary-hover px-1 py-0.5 font-mono text-[0.875em]",
291
+ children: match[4]
292
+ }, `${baseKey}-code-${segmentIndex++}`));
293
+ else if (bareUrl !== void 0) nodes.push(/* @__PURE__ */ jsx("a", {
294
+ href: bareUrl,
295
+ target: "_blank",
296
+ rel: "noopener noreferrer",
297
+ className: linkClassName,
298
+ children: bareUrl
299
+ }, `${baseKey}-url-${segmentIndex++}`));
300
+ lastIndex = matchEnd;
301
+ }
302
+ if (lastIndex < text.length) nodes.push(/* @__PURE__ */ jsx(Fragment, { children: text.slice(lastIndex) }, `${baseKey}-text-${segmentIndex++}`));
303
+ return nodes;
304
+ };
305
+ const renderBlock = (block, blockIndex) => {
306
+ if (block.kind === "list") return /* @__PURE__ */ jsx("ul", {
307
+ className: "agg-settlement-text-list list-disc pl-5 text-agg-sm leading-agg-5 text-agg-foreground",
308
+ children: block.items.map((item, itemIndex) => /* @__PURE__ */ jsx("li", {
309
+ className: "agg-settlement-text-list-item",
310
+ children: renderInlineSegment(item, `block-${blockIndex}-item-${itemIndex}`)
311
+ }, `block-${blockIndex}-item-${itemIndex}`))
312
+ }, `block-${blockIndex}`);
313
+ return /* @__PURE__ */ jsx("p", {
314
+ className: "agg-settlement-text-paragraph text-agg-sm leading-agg-5 text-agg-foreground break-words [overflow-wrap:anywhere]",
315
+ children: block.lines.map((line, lineIndex) => /* @__PURE__ */ jsxs(Fragment, { children: [lineIndex > 0 ? /* @__PURE__ */ jsx("br", {}) : null, renderInlineSegment(line, `block-${blockIndex}-line-${lineIndex}`)] }, `block-${blockIndex}-line-${lineIndex}`))
316
+ }, `block-${blockIndex}`);
317
+ };
318
+ const SettlementTextRenderer = ({ content, className }) => {
319
+ const blocks = parseSettlementBlocks(content);
320
+ if (blocks.length === 0) return null;
321
+ return /* @__PURE__ */ jsx("div", {
322
+ className: cn("agg-settlement-text flex flex-col gap-2", className),
323
+ children: blocks.map((block, blockIndex) => renderBlock(block, blockIndex))
324
+ });
325
+ };
326
+ SettlementTextRenderer.displayName = "SettlementTextRenderer";
327
+ //#endregion
328
+ //#region src/trading/settlement/index.tsx
329
+ const SETTLEMENT_SECTION_ID = "agg-settlement-section";
330
+ const getSettlementDifferenceId = (sectionId, canonicalKey) => {
331
+ return `${sectionId}-difference-${canonicalKey}`;
332
+ };
333
+ const dateOnlyRegex = /^(\d{4})-(\d{2})-(\d{2})$/;
334
+ const isoTimestampWithTimezoneRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?(?:Z|[+-]\d{2}:?\d{2})$/i;
335
+ const normalizeDifferenceText = (value) => {
336
+ return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");
337
+ };
338
+ const resolveCanonicalDifferenceKey = (difference) => {
339
+ const normalizedType = normalizeDifferenceText(difference.type);
340
+ const combined = normalizeDifferenceText(`${difference.type} ${difference.title}`);
341
+ if (combined.includes("start_date") || combined.includes("open_date")) return "start_date";
342
+ if (combined.includes("end_date") || combined.includes("close_date") || combined.includes("closing_date") || combined.includes("expiration_date") || combined.includes("expiry_date")) return "end_date";
343
+ if (combined.includes("resolution_timing") || combined.includes("resolution_date") || combined.includes("resolution_deadline") || combined.includes("settlement_date") || combined.includes("settlement_deadline") || combined.includes("settlement_timing")) return "resolution_timing";
344
+ return normalizedType || "other";
345
+ };
346
+ const parseSettlementDateMs = (value) => {
347
+ const trimmed = value.trim();
348
+ const dateOnlyMatch = dateOnlyRegex.exec(trimmed);
349
+ if (dateOnlyMatch) {
350
+ const [, year, month, day] = dateOnlyMatch;
351
+ return Date.UTC(Number(year), Number(month) - 1, Number(day));
352
+ }
353
+ if (!isoTimestampWithTimezoneRegex.test(trimmed)) return null;
354
+ const ms = Date.parse(trimmed);
355
+ return Number.isNaN(ms) ? null : ms;
356
+ };
357
+ const isDateLikeDifference = (canonicalKey) => {
358
+ return canonicalKey === "resolution_timing" || canonicalKey === "start_date" || canonicalKey === "end_date";
359
+ };
360
+ /**
361
+ * A row every venue answers the same way is not a difference, whatever its
362
+ * type. Dates are compared as instants so "2026-03-31" and
363
+ * "2026-03-31T00:00:00Z" count as agreeing; everything else is compared as
364
+ * normalized text. Venues the aggregator produced no value for are ignored —
365
+ * the venues that did answer are what decides it.
366
+ */
367
+ const hasEqualValuesAcrossVenues = (difference) => {
368
+ const values = Object.values(difference.perVenue);
369
+ if (values.length < 2) return false;
370
+ const timestamps = values.map(parseSettlementDateMs);
371
+ if (timestamps.every((timestamp) => timestamp !== null)) return new Set(timestamps).size === 1;
372
+ return new Set(values.map(normalizeSettlementForCompare)).size === 1;
373
+ };
374
+ const resolveDifferenceSeverity = (difference, canonicalKey) => {
375
+ const combined = normalizeDifferenceText(`${difference.type} ${difference.title} ${difference.summary ?? ""}`);
376
+ if (isDateLikeDifference(canonicalKey)) return "critical";
377
+ if (canonicalKey === "scope" || canonicalKey === "threshold" || canonicalKey === "edge_cases") return "critical";
378
+ if (combined.includes("conflict") || combined.includes("void") || combined.includes("cancel") || combined.includes("postpone") || combined.includes("recount") || combined.includes("overtime") || combined.includes("extra_time")) return "critical";
379
+ return "informational";
380
+ };
381
+ const mergePerVenueValues = (current, next) => {
382
+ return Object.entries(next).reduce((merged, [venue, value]) => {
383
+ if (merged[venue] === void 0) merged[venue] = value;
384
+ return merged;
385
+ }, { ...current });
386
+ };
387
+ const prepareSettlementDifferences = (differences) => {
388
+ const byCanonicalKey = /* @__PURE__ */ new Map();
389
+ for (const [originalIndex, rawDifference] of (differences ?? []).entries()) {
390
+ const title = rawDifference.title.trim();
391
+ const perVenue = Object.fromEntries(Object.entries(rawDifference.perVenue).map(([venue, value]) => [venue.trim(), value.trim()]).filter(([venue, value]) => venue.length > 0 && value.length > 0));
392
+ if (!title || Object.keys(perVenue).length === 0) continue;
393
+ const difference = {
394
+ ...rawDifference,
395
+ title,
396
+ perVenue
397
+ };
398
+ const canonicalKey = resolveCanonicalDifferenceKey(difference);
399
+ if (hasEqualValuesAcrossVenues(difference)) continue;
400
+ const existing = byCanonicalKey.get(canonicalKey);
401
+ if (existing) {
402
+ byCanonicalKey.set(canonicalKey, {
403
+ ...existing,
404
+ perVenue: mergePerVenueValues(existing.perVenue, difference.perVenue)
405
+ });
406
+ continue;
407
+ }
408
+ byCanonicalKey.set(canonicalKey, {
409
+ ...difference,
410
+ canonicalKey,
411
+ severity: resolveDifferenceSeverity(difference, canonicalKey),
412
+ originalIndex
413
+ });
414
+ }
415
+ return Array.from(byCanonicalKey.values()).filter((difference) => !hasEqualValuesAcrossVenues(difference)).sort((left, right) => {
416
+ const severityDelta = Number(right.severity === "critical") - Number(left.severity === "critical");
417
+ if (severityDelta !== 0) return severityDelta;
418
+ return left.originalIndex - right.originalIndex;
419
+ });
420
+ };
421
+ const formatVenueFallbackLabel = (venue) => {
422
+ return venue.split(/[-_\s]+/).filter(Boolean).map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`).join(" ");
423
+ };
424
+ const resolveSettlementVenueLabel = (venue, labels) => {
425
+ return labels.venues[venue] ?? formatVenueFallbackLabel(venue);
426
+ };
427
+ /**
428
+ * Every row lists every venue in the cluster, not just the ones the aggregator
429
+ * had a value for — a venue missing from a row reads as "this venue is not
430
+ * involved" rather than "we don't know", which is what it actually means.
431
+ */
432
+ const resolveDifferenceVenueKeys = (difference, settlementVenues) => {
433
+ const allVenues = [...settlementVenues ?? [], ...Object.keys(difference.perVenue)];
434
+ return Array.from(new Set(allVenues.filter((venue) => venue.trim().length > 0)));
435
+ };
436
+ const resolveDifferenceIconClassName = (canonicalKey) => {
437
+ if (canonicalKey.includes("source") || canonicalKey.includes("url")) return "fi-rr-world";
438
+ if (canonicalKey === "resolution_timing" || canonicalKey.includes("timing")) return "fi-rr-clock";
439
+ if (canonicalKey === "start_date" || canonicalKey.includes("start")) return "fi-rr-calendar-clock";
440
+ if (canonicalKey === "end_date" || canonicalKey.includes("end")) return "fi-rr-calendar-clock";
441
+ if (canonicalKey.includes("cancel") || canonicalKey.includes("void") || canonicalKey.includes("postpone")) return "fi-rr-ban";
442
+ if (canonicalKey === "edge_cases" || canonicalKey.includes("edge")) return "fi-rr-triangle-warning";
443
+ if (canonicalKey === "scope") return "fi-rr-layers";
444
+ if (canonicalKey === "threshold") return "fi-rr-tachometer-alt-fastest";
445
+ if (canonicalKey.includes("wording")) return "fi-rr-document";
446
+ return "fi-rr-info";
447
+ };
448
+ const buildSettlementVenueRules = ({ marketBlock, primaryRulesBlock, settlementVenues, settlementVenueRules }) => {
449
+ if (settlementVenueRules) {
450
+ const rulesByVenue = /* @__PURE__ */ new Map();
451
+ for (const rule of settlementVenueRules) {
452
+ const venue = rule.venue.trim();
453
+ const content = rule.content.trim();
454
+ if (!venue || !content) continue;
455
+ const venueRules = rulesByVenue.get(venue) ?? [];
456
+ if (!venueRules.includes(content)) venueRules.push(content);
457
+ rulesByVenue.set(venue, venueRules);
458
+ }
459
+ if (rulesByVenue.size > 0) for (const venue of settlementVenues ?? []) {
460
+ const trimmedVenue = venue.trim();
461
+ if (trimmedVenue && !rulesByVenue.has(trimmedVenue)) rulesByVenue.set(trimmedVenue, []);
462
+ }
463
+ return Array.from(rulesByVenue, ([venue, contents]) => ({
464
+ venue,
465
+ content: contents.join("\n\n")
466
+ }));
467
+ }
468
+ const content = [marketBlock?.content, primaryRulesBlock?.content].filter((value) => typeof value === "string" && value.trim().length > 0).join("\n\n");
469
+ const venue = settlementVenues?.find((candidate) => candidate.trim().length > 0)?.trim();
470
+ return content && venue ? [{
471
+ venue,
472
+ content
473
+ }] : [];
474
+ };
475
+ /**
476
+ * The card header already shows the question. When the event description is
477
+ * nothing but the question restated, rendering it again just repeats the line
478
+ * back at the reader.
479
+ */
480
+ const repeatsQuestion = (content, question) => {
481
+ const normalizedQuestion = normalizeSettlementForCompare(question ?? "");
482
+ if (!normalizedQuestion) return false;
483
+ return normalizeSettlementForCompare(content) === normalizedQuestion;
484
+ };
485
+ const isDuplicatedByVenueRules = (content, venueRules) => {
486
+ const normalizedContent = normalizeSettlementForCompare(content);
487
+ if (!normalizedContent) return false;
488
+ return venueRules.some((rule) => {
489
+ return normalizeSettlementForCompare(rule.content).includes(normalizedContent);
490
+ });
491
+ };
492
+ const SettlementVenueRules = ({ rules, labels }) => {
493
+ return /* @__PURE__ */ jsxs("div", {
494
+ className: "agg-settlement-venue-rules flex w-full flex-col items-start gap-4",
495
+ children: [/* @__PURE__ */ jsx("p", {
496
+ className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground",
497
+ children: labels.trading.settlementFullRulesTitle
498
+ }), /* @__PURE__ */ jsx("div", {
499
+ className: "flex w-full flex-col items-start gap-4",
500
+ children: rules.map((rule) => {
501
+ const venueLabel = resolveSettlementVenueLabel(rule.venue, labels);
502
+ return /* @__PURE__ */ jsxs("details", {
503
+ className: "w-full",
504
+ children: [/* @__PURE__ */ jsxs("summary", {
505
+ className: "group/agg-settlement-rule flex w-fit cursor-pointer list-none items-center gap-2 text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground transition-colors marker:hidden",
506
+ children: [
507
+ /* @__PURE__ */ jsx(VenueLogo, {
508
+ venue: rule.venue,
509
+ size: "small",
510
+ className: "size-4",
511
+ ariaLabel: venueLabel
512
+ }),
513
+ /* @__PURE__ */ jsx("span", {
514
+ className: "text-agg-foreground group-hover/agg-settlement-rule:text-agg-muted-foreground transition-colors",
515
+ children: venueLabel
516
+ }),
517
+ /* @__PURE__ */ jsx("i", {
518
+ className: cn("fi fi-rr-angle-small-down text-[14px]!", "group-open/agg-settlement-rule:rotate-180", "size-3.5! shrink-0 text-agg-foreground group-hover/agg-settlement-rule:text-agg-muted-foreground transition-[colors,transform]"),
519
+ style: { fontSize: 14 },
520
+ "aria-hidden": "true"
521
+ })
522
+ ]
523
+ }), /* @__PURE__ */ jsx("div", {
524
+ className: "mt-3 pl-6",
525
+ children: rule.content ? /* @__PURE__ */ jsx(SettlementTextRenderer, { content: rule.content }) : /* @__PURE__ */ jsx("p", {
526
+ className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground",
527
+ children: labels.trading.settlementValueUnavailable
528
+ })
529
+ })]
530
+ }, rule.venue);
531
+ })
532
+ })]
533
+ });
534
+ };
535
+ const Settlement = ({ className, id = SETTLEMENT_SECTION_ID, sectionLabel = defaultSettlementSectionLabel, question, eventDescription, marketDescription, primaryRules, settlementDiff, settlementVenues, settlementVenueRules, isLoading = false }) => {
536
+ const labels = useLabels();
537
+ const blocks = useMemo(() => dedupeSettlementSources({
538
+ eventDescription,
539
+ marketDescription,
540
+ primaryRules
541
+ }), [
542
+ eventDescription,
543
+ marketDescription,
544
+ primaryRules
545
+ ]);
546
+ const isSingleVenueCluster = settlementVenues !== void 0 && settlementVenues.length < 2;
547
+ const settlementDifferences = useMemo(() => isSingleVenueCluster ? [] : prepareSettlementDifferences(settlementDiff?.differences), [isSingleVenueCluster, settlementDiff?.differences]);
548
+ const eventBlock = blocks.find((block) => block.key === "eventDescription") ?? null;
549
+ const marketBlock = blocks.find((block) => block.key === "marketDescription") ?? null;
550
+ const primaryRulesBlock = blocks.find((block) => block.key === "primaryRules") ?? null;
551
+ const venueRuleBlocks = useMemo(() => buildSettlementVenueRules({
552
+ marketBlock,
553
+ primaryRulesBlock,
554
+ settlementVenues,
555
+ settlementVenueRules
556
+ }), [
557
+ marketBlock,
558
+ primaryRulesBlock,
559
+ settlementVenues,
560
+ settlementVenueRules
561
+ ]);
562
+ const hasSettlementDifferences = settlementDifferences.length > 0;
563
+ const hasVenueSettlementRules = venueRuleBlocks.length > 0;
564
+ const standaloneEventBlock = eventBlock && !isDuplicatedByVenueRules(eventBlock.content, venueRuleBlocks) && !repeatsQuestion(eventBlock.content, question) ? eventBlock : null;
565
+ const standaloneMarketBlock = hasVenueSettlementRules ? null : marketBlock;
566
+ const standalonePrimaryRulesBlock = hasVenueSettlementRules ? null : primaryRulesBlock;
567
+ const hasStandaloneSettlementText = hasVenueSettlementRules ? standaloneEventBlock !== null : blocks.length > 0;
568
+ const hasSettlementContent = hasSettlementDifferences || hasVenueSettlementRules || hasStandaloneSettlementText;
569
+ const defaultOpenDifferenceKey = settlementDifferences[0]?.canonicalKey ?? null;
570
+ const [openDifferenceKeys, setOpenDifferenceKeys] = useState(() => defaultOpenDifferenceKey ? [defaultOpenDifferenceKey] : []);
571
+ useEffect(() => {
572
+ setOpenDifferenceKeys(defaultOpenDifferenceKey ? [defaultOpenDifferenceKey] : []);
573
+ }, [defaultOpenDifferenceKey]);
574
+ const handleToggleDifference = (canonicalKey) => {
575
+ setOpenDifferenceKeys((currentKeys) => currentKeys.includes(canonicalKey) ? currentKeys.filter((currentKey) => currentKey !== canonicalKey) : [...currentKeys, canonicalKey]);
576
+ };
577
+ if (isLoading) return /* @__PURE__ */ jsx(Skeleton, {
578
+ ariaLabel: labels.trading.settlementLoading,
579
+ className,
580
+ view: skeletonViews.settlement
581
+ });
582
+ if (!hasSettlementContent) return null;
583
+ const resolvedSectionLabel = sectionLabel === defaultSettlementSectionLabel ? labels.trading.settlementSection : sectionLabel;
584
+ return /* @__PURE__ */ jsxs(Card, {
585
+ id,
586
+ className: cn("group/agg-settlement-card", "flex w-full flex-col items-start gap-4 rounded-agg-xl border border-agg-separator bg-agg-secondary p-5 shadow-none hover:shadow-none sm:gap-5", className),
587
+ children: [/* @__PURE__ */ jsxs("div", {
588
+ className: "agg-settlement-header flex w-full flex-col items-start gap-1 text-agg-muted-foreground sm:flex-row sm:items-center sm:justify-between sm:gap-4",
589
+ children: [/* @__PURE__ */ jsx("p", {
590
+ className: "shrink-0 text-agg-xs font-agg-bold leading-agg-4 uppercase",
591
+ children: resolvedSectionLabel
592
+ }), question ? /* @__PURE__ */ jsx("p", {
593
+ className: "agg-settlement-question min-w-0 text-agg-sm font-agg-normal leading-agg-5 sm:max-w-[314px] sm:truncate",
594
+ children: question
595
+ }) : null]
596
+ }), /* @__PURE__ */ jsxs("div", {
597
+ className: "agg-settlement-sections flex w-full flex-col items-start gap-5",
598
+ children: [
599
+ hasStandaloneSettlementText ? /* @__PURE__ */ jsxs("div", {
600
+ className: "w-full",
601
+ children: [standaloneEventBlock || standaloneMarketBlock ? /* @__PURE__ */ jsxs("div", {
602
+ className: "agg-settlement-section agg-settlement-section-description",
603
+ "data-source": "description",
604
+ children: [
605
+ standaloneEventBlock ? /* @__PURE__ */ jsx("div", {
606
+ "data-source": "eventDescription",
607
+ children: /* @__PURE__ */ jsx(SettlementTextRenderer, { content: standaloneEventBlock.content })
608
+ }) : null,
609
+ standaloneEventBlock && standaloneMarketBlock ? /* @__PURE__ */ jsx("hr", { className: "agg-settlement-divider my-4 border-0 border-t border-agg-separator" }) : null,
610
+ standaloneMarketBlock ? /* @__PURE__ */ jsx("div", {
611
+ "data-source": "marketDescription",
612
+ children: /* @__PURE__ */ jsx(SettlementTextRenderer, { content: standaloneMarketBlock.content })
613
+ }) : null
614
+ ]
615
+ }) : null, standalonePrimaryRulesBlock ? /* @__PURE__ */ jsxs("div", {
616
+ className: "agg-settlement-section agg-settlement-section-primaryRules",
617
+ "data-source": "primaryRules",
618
+ children: [/* @__PURE__ */ jsx("p", {
619
+ className: "agg-settlement-section-label text-agg-xs font-agg-bold leading-agg-4 uppercase text-agg-muted-foreground mb-2",
620
+ children: labels.trading.settlementPrimaryRulesLabel
621
+ }), /* @__PURE__ */ jsx(SettlementTextRenderer, { content: standalonePrimaryRulesBlock.content })]
622
+ }) : null]
623
+ }) : null,
624
+ hasSettlementDifferences ? /* @__PURE__ */ jsxs("div", {
625
+ className: "agg-settlement-differences flex w-full flex-col items-start gap-5",
626
+ children: [/* @__PURE__ */ jsxs("div", {
627
+ className: "flex items-center gap-2",
628
+ children: [/* @__PURE__ */ jsx("p", {
629
+ className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground",
630
+ children: labels.trading.settlementDifferencesTitle
631
+ }), /* @__PURE__ */ jsx("span", {
632
+ className: "flex size-4 shrink-0 items-center justify-center rounded-agg-full bg-agg-primary text-[10px] font-agg-bold leading-[14px] text-agg-on-primary",
633
+ children: settlementDifferences.length
634
+ })]
635
+ }), /* @__PURE__ */ jsx("div", {
636
+ className: "flex w-full flex-col items-start gap-5",
637
+ children: settlementDifferences.map((difference) => {
638
+ const venueKeys = resolveDifferenceVenueKeys(difference, settlementVenues);
639
+ const isExpanded = openDifferenceKeys.includes(difference.canonicalKey) && venueKeys.length > 0;
640
+ return /* @__PURE__ */ jsxs("div", {
641
+ id: getSettlementDifferenceId(id, difference.canonicalKey),
642
+ className: "agg-settlement-difference flex w-full flex-col items-start gap-2 rounded-agg-lg",
643
+ children: [/* @__PURE__ */ jsxs("button", {
644
+ type: "button",
645
+ className: "flex w-full cursor-pointer items-center gap-2 text-left group/agg-settlement-difference",
646
+ "aria-expanded": isExpanded,
647
+ onClick: () => handleToggleDifference(difference.canonicalKey),
648
+ children: [
649
+ /* @__PURE__ */ jsx("i", {
650
+ className: cn("fi", resolveDifferenceIconClassName(difference.canonicalKey), "inline-flex size-4! shrink-0 items-center justify-center text-[16px] leading-none text-agg-muted-foreground"),
651
+ "aria-hidden": "true"
652
+ }),
653
+ /* @__PURE__ */ jsx("p", {
654
+ className: "min-w-0 text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground group-hover/agg-settlement-difference:text-agg-muted-foreground transition-colors break-words [overflow-wrap:anywhere]",
655
+ children: difference.title
656
+ }),
657
+ /* @__PURE__ */ jsx("i", {
658
+ className: cn("fi fi-rr-angle-small-down text-[14px]!", isExpanded && "rotate-180", "size-3.5! shrink-0 text-agg-foreground group-hover/agg-settlement-difference:text-agg-muted-foreground transition-[colors,transform]"),
659
+ style: { fontSize: 14 },
660
+ "aria-hidden": "true"
661
+ })
662
+ ]
663
+ }), isExpanded ? /* @__PURE__ */ jsx("dl", {
664
+ className: "flex w-full flex-col items-start gap-1 px-6",
665
+ children: venueKeys.map((venue) => {
666
+ const venueValue = difference.perVenue[venue] ?? labels.trading.settlementValueUnavailable;
667
+ const venueLabel = resolveSettlementVenueLabel(venue, labels);
668
+ return /* @__PURE__ */ jsxs("div", {
669
+ className: "flex w-full items-start gap-2",
670
+ children: [
671
+ /* @__PURE__ */ jsx(VenueLogo, {
672
+ venue,
673
+ size: "small",
674
+ className: "mt-0.5 size-4",
675
+ ariaLabel: venueLabel
676
+ }),
677
+ /* @__PURE__ */ jsx("dt", {
678
+ className: "w-[88px] shrink-0 text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground",
679
+ children: venueLabel
680
+ }),
681
+ /* @__PURE__ */ jsx("dd", {
682
+ className: "min-w-0 flex-1 text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground break-words [overflow-wrap:anywhere]",
683
+ children: venueValue
684
+ })
685
+ ]
686
+ }, venue);
687
+ })
688
+ }) : null]
689
+ }, difference.canonicalKey);
690
+ })
691
+ })]
692
+ }) : null,
693
+ hasVenueSettlementRules ? /* @__PURE__ */ jsxs(Fragment$1, { children: [hasSettlementDifferences || hasStandaloneSettlementText ? /* @__PURE__ */ jsx("div", { className: "h-px w-full bg-agg-separator" }) : null, /* @__PURE__ */ jsx(SettlementVenueRules, {
694
+ rules: venueRuleBlocks,
695
+ labels
696
+ })] }) : null
697
+ ]
698
+ })]
699
+ });
700
+ };
701
+ Settlement.displayName = "Settlement";
702
+ //#endregion
703
+ //#region src/events/shared/event-trading-state.utils.ts
704
+ const formatTradingStateDate = (value) => {
705
+ if (!dayjs(value).isValid()) return value;
706
+ return dayjs(value).format("MMM D, YYYY");
707
+ };
708
+ const resolveTradingStateTimestampLabel = (labels, state) => {
709
+ if (state.kind === "resolved" && state.resolvesAt) return labels.eventMarketPage.resolvedAt(formatTradingStateDate(state.resolvesAt));
710
+ if (state.kind === "closed" && state.endsAt) return labels.eventMarketPage.closedAt(formatTradingStateDate(state.endsAt));
711
+ if (state.kind === "unopened" && state.startsAt) return labels.eventMarketPage.opensAt(formatTradingStateDate(state.startsAt));
712
+ return null;
713
+ };
714
+ const resolveTradingStatePresentation = (labels, state) => {
715
+ const timestampLabel = resolveTradingStateTimestampLabel(labels, state);
716
+ const resolvedOutcomeLabel = resolveResolvedOutcomeLabel({
717
+ market: state.market ?? null,
718
+ outcome: state.winningOutcome
719
+ });
720
+ const winningOutcomeLabel = resolvedOutcomeLabel ? labels.eventMarketPage.winningOutcome(resolvedOutcomeLabel) : null;
721
+ if (state.kind === "resolved") return {
722
+ badgeLabel: labels.eventMarketPage.tradingResolvedBadge,
723
+ title: labels.eventMarketPage.tradingResolvedTitle,
724
+ description: labels.eventMarketPage.tradingResolvedDescription,
725
+ iconName: "check-circle",
726
+ timestampLabel,
727
+ winningOutcomeLabel
728
+ };
729
+ if (state.kind === "paused") return {
730
+ badgeLabel: labels.eventMarketPage.tradingPausedBadge,
731
+ title: labels.eventMarketPage.tradingPausedTitle,
732
+ description: labels.eventMarketPage.tradingPausedDescription,
733
+ iconName: "warning-filled",
734
+ timestampLabel,
735
+ winningOutcomeLabel
736
+ };
737
+ if (state.kind === "unopened") return {
738
+ badgeLabel: labels.eventMarketPage.tradingUnopenedBadge,
739
+ title: labels.eventMarketPage.tradingUnopenedTitle,
740
+ description: labels.eventMarketPage.tradingUnopenedDescription,
741
+ iconName: "info",
742
+ timestampLabel,
743
+ winningOutcomeLabel
744
+ };
745
+ if (state.kind === "closed") return {
746
+ badgeLabel: labels.eventMarketPage.tradingClosedBadge,
747
+ title: labels.eventMarketPage.tradingClosedTitle,
748
+ description: labels.eventMarketPage.tradingClosedDescription,
749
+ iconName: "warning-filled",
750
+ timestampLabel,
751
+ winningOutcomeLabel
752
+ };
753
+ return {
754
+ badgeLabel: labels.eventMarketPage.tradingUnavailableBadge,
755
+ title: labels.eventMarketPage.tradingUnavailableTitle,
756
+ description: labels.eventMarketPage.tradingUnavailableDescription,
757
+ iconName: "info",
758
+ timestampLabel,
759
+ winningOutcomeLabel
760
+ };
761
+ };
762
+ const resolveTradingStateBadgeClassName = (kind) => {
763
+ if (kind === "resolved") return "border-agg-success/20 bg-agg-success/10 text-agg-success";
764
+ if (kind === "unopened") return "border-agg-primary/15 bg-agg-primary/5 text-agg-primary";
765
+ if (kind === "paused") return "border-agg-warning/20 bg-agg-warning/10 text-agg-warning";
766
+ if (kind === "closed") return "border-agg-warning/20 bg-agg-warning/10 text-agg-warning";
767
+ return "border-agg-separator bg-agg-secondary text-agg-muted-foreground";
768
+ };
769
+ const ORDER_ELIGIBILITY_LABEL_MAP = {
770
+ no_event_selected: (labels) => labels.trading.orderDisabledNoEvent,
771
+ no_market_selected: (labels) => labels.trading.orderDisabledNoMarket,
772
+ no_outcome_selected: (labels) => labels.trading.orderDisabledNoOutcome,
773
+ event_resolved: (labels) => labels.trading.orderDisabledEventResolved,
774
+ event_closed: (labels) => labels.trading.orderDisabledEventClosed,
775
+ event_paused: (labels) => labels.trading.orderDisabledEventPaused,
776
+ event_unopened: (labels) => labels.trading.orderDisabledEventUnopened,
777
+ event_unavailable: (labels) => labels.trading.orderDisabledEventUnavailable,
778
+ market_resolved: (labels) => labels.trading.orderDisabledMarketResolved,
779
+ market_closed: (labels) => labels.trading.orderDisabledMarketClosed,
780
+ market_paused: (labels) => labels.trading.orderDisabledMarketPaused,
781
+ market_unopened: (labels) => labels.trading.orderDisabledMarketUnopened,
782
+ market_unavailable: (labels) => labels.trading.orderDisabledMarketUnavailable
783
+ };
784
+ const resolveOrderEligibilityMessage = (labels, reason) => {
785
+ if (reason === "eligible") return null;
786
+ return ORDER_ELIGIBILITY_LABEL_MAP[reason](labels);
787
+ };
788
+ //#endregion
789
+ export { useEventTradingContext$1 as C, resolveUnifiedOrderBookEntries as S, getTradingValueLabel as _, Settlement as a, formatProbabilityCents as b, resolveDifferenceIconClassName as c, getTradingAveragePriceLabel as d, getTradingBalanceLabel as f, getTradingSlippageLabel as g, getTradingSharesLabel as h, SETTLEMENT_SECTION_ID as i, defaultSettlementSectionLabel as l, getTradingPriceLabel as m, resolveTradingStateBadgeClassName as n, getSettlementDifferenceId as o, getTradingDateLabel as p, resolveTradingStatePresentation as r, prepareSettlementDifferences as s, resolveOrderEligibilityMessage as t, defaultTradingDisclaimer as u, getTradingVenueLabel as v, resolveOrderBookRows as x, getDisplayOutcomePrice as y };