@agg-build/ui 4.26.1 → 4.27.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 (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-Bx4YBWDl.mjs +7850 -0
  16. package/dist/pages-CwGkaBjY.js +7959 -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,921 @@
1
+ "use client";
2
+ const require_primitives = require("./primitives-CqxNeV7H.js");
3
+ let react = require("react");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ let _agg_build_hooks = require("@agg-build/hooks");
6
+ let dayjs = require("dayjs");
7
+ dayjs = require_primitives.__toESM(dayjs);
8
+ let _agg_build_sdk = require("@agg-build/sdk");
9
+ //#region src/events/orderbook/orderbook.utils.ts
10
+ const isOrderBookLevel = (v) => (0, _agg_build_sdk.hasShape)(v, {
11
+ price: (p) => typeof p === "number" && p >= 0 && p <= 1,
12
+ size: (s) => typeof s === "number" && s >= 0
13
+ });
14
+ const isOrderBookRow = (v) => (0, _agg_build_sdk.hasShape)(v, {
15
+ id: (x) => typeof x === "string",
16
+ venue: (x) => typeof x === "string" && x.length > 0,
17
+ price: (p) => typeof p === "number" && p >= 0 && p <= 1,
18
+ size: (s) => typeof s === "number" && s >= 0,
19
+ total: (t) => typeof t === "number" && t >= 0,
20
+ tone: (x) => x === "positive" || x === "negative"
21
+ });
22
+ const formatProbabilityCents = (value, formatPrice) => {
23
+ if (value == null) return "-";
24
+ if (formatPrice) return formatPrice(value);
25
+ return `${(value * 100).toFixed(1).replace(/\.0$/, "")}\u00A2`;
26
+ };
27
+ const resolveOrderBookRows = ({ data, side }) => {
28
+ if (!data?.length) return [];
29
+ const tone = side === "asks" ? "negative" : "positive";
30
+ const sortedRows = [...data.flatMap((result) => {
31
+ return (result.orderbook[side] ?? []).flatMap((level, index) => {
32
+ const parsedLevel = (0, _agg_build_sdk.safeParse)(level, isOrderBookLevel);
33
+ if (!parsedLevel.success) return [];
34
+ const parsedRow = (0, _agg_build_sdk.safeParse)({
35
+ id: `${result.market.id}-${side}-${index}-${parsedLevel.data.price}`,
36
+ venue: result.market.venue,
37
+ price: parsedLevel.data.price,
38
+ size: parsedLevel.data.size,
39
+ total: parsedLevel.data.price * parsedLevel.data.size,
40
+ tone
41
+ }, isOrderBookRow);
42
+ if (!parsedRow.success) return [];
43
+ return [parsedRow.data];
44
+ });
45
+ })].sort((left, right) => {
46
+ if (side === "asks") return left.price - right.price;
47
+ return right.price - left.price;
48
+ });
49
+ const maxTotal = sortedRows.reduce((currentMax, row) => Math.max(currentMax, row.total), 0) || 1;
50
+ return sortedRows.map((row) => ({
51
+ ...row,
52
+ barScale: row.total / maxTotal
53
+ }));
54
+ };
55
+ const resolveUnifiedOrderBookEntries = ({ askRows, bidRows, midPrice, spread }) => {
56
+ const asksDescending = [...askRows].reverse();
57
+ const askCumulativeDepths = new Array(asksDescending.length);
58
+ let cumulative = 0;
59
+ for (let i = asksDescending.length - 1; i >= 0; i--) {
60
+ cumulative += asksDescending[i].total;
61
+ askCumulativeDepths[i] = cumulative;
62
+ }
63
+ const bidCumulativeDepths = new Array(bidRows.length);
64
+ cumulative = 0;
65
+ for (let i = 0; i < bidRows.length; i++) {
66
+ cumulative += bidRows[i].total;
67
+ bidCumulativeDepths[i] = cumulative;
68
+ }
69
+ const maxAskCumulative = askCumulativeDepths.length > 0 ? askCumulativeDepths[0] : 0;
70
+ const maxBidCumulative = bidCumulativeDepths.length > 0 ? bidCumulativeDepths[bidCumulativeDepths.length - 1] : 0;
71
+ const askMax = maxAskCumulative || 1;
72
+ const bidMax = maxBidCumulative || 1;
73
+ const askEntries = asksDescending.map((row, index) => ({
74
+ kind: "ask",
75
+ row,
76
+ cumulativeDepth: askCumulativeDepths[index],
77
+ unifiedBarScale: askCumulativeDepths[index] / askMax
78
+ }));
79
+ const bidEntries = bidRows.map((row, index) => ({
80
+ kind: "bid",
81
+ row,
82
+ cumulativeDepth: bidCumulativeDepths[index],
83
+ unifiedBarScale: bidCumulativeDepths[index] / bidMax
84
+ }));
85
+ const spreadEntry = {
86
+ kind: "spread",
87
+ midPrice,
88
+ spread
89
+ };
90
+ return [
91
+ ...askEntries,
92
+ spreadEntry,
93
+ ...bidEntries
94
+ ];
95
+ };
96
+ //#endregion
97
+ //#region src/events/shared/display-reference-price.ts
98
+ const getDisplayReferencePrice = ({ bestMidpoint, fallbackPrice }) => {
99
+ return bestMidpoint ?? fallbackPrice ?? void 0;
100
+ };
101
+ //#endregion
102
+ //#region src/events/shared/select-outcome-price.ts
103
+ const selectOutcomePrice = ({ outcomeId, selection, bestPrices, bestMidpointsByOutcomeId, livePrices, fallbackPrice }) => {
104
+ if (!outcomeId) return void 0;
105
+ if (selection === "buy") {
106
+ const bestAsk = bestPrices?.get(outcomeId)?.bestAsk;
107
+ if (bestAsk != null) return bestAsk;
108
+ } else if (selection === "sell") {
109
+ const bestBid = bestPrices?.get(outcomeId)?.bestBid;
110
+ if (bestBid != null) return bestBid;
111
+ }
112
+ const livePrice = livePrices?.get(outcomeId);
113
+ if (livePrice != null) return livePrice;
114
+ const midpointPrice = bestMidpointsByOutcomeId?.get(outcomeId);
115
+ if (midpointPrice != null) return midpointPrice;
116
+ return fallbackPrice ?? void 0;
117
+ };
118
+ //#endregion
119
+ //#region src/events/shared/display-outcome-price.ts
120
+ const normalizeOutcomeLabel = (label) => {
121
+ return typeof label === "string" ? label.trim().toLowerCase() : "";
122
+ };
123
+ const getDisplayOutcomePrice = ({ outcomeId, outcomeLabel, selection, bestPrices, bestMidpoint, bestMidpointsByOutcomeId, livePrices, fallbackPrice }) => {
124
+ if (selection && outcomeId) return selectOutcomePrice({
125
+ outcomeId,
126
+ selection,
127
+ bestPrices,
128
+ bestMidpointsByOutcomeId,
129
+ livePrices,
130
+ fallbackPrice
131
+ });
132
+ const livePrice = outcomeId ? livePrices?.get(outcomeId) : void 0;
133
+ if (livePrice != null) return livePrice;
134
+ const resolvedFallbackPrice = (outcomeId ? bestMidpointsByOutcomeId?.get(outcomeId) : void 0) ?? fallbackPrice ?? void 0;
135
+ if (normalizeOutcomeLabel(outcomeLabel) === "yes") return getDisplayReferencePrice({
136
+ bestMidpoint,
137
+ fallbackPrice: resolvedFallbackPrice
138
+ });
139
+ return resolvedFallbackPrice;
140
+ };
141
+ //#endregion
142
+ //#region src/trading/utils.ts
143
+ const defaultLabels = (0, _agg_build_hooks.resolveAggUiLabels)("en-US");
144
+ const defaultSettlementSectionLabel = defaultLabels.trading.settlementSection;
145
+ const defaultTradingDisclaimer = defaultLabels.trading.disclaimer;
146
+ const getTradingDateLabel = (value) => {
147
+ const parsedValue = (0, dayjs.default)(value);
148
+ if (!parsedValue.isValid()) return typeof value === "string" ? value : "";
149
+ return parsedValue.format("MMM D, YYYY");
150
+ };
151
+ const getTradingVenueLabel = (venue, label) => {
152
+ if (label) return label;
153
+ if (!venue) return "Unknown";
154
+ return defaultLabels.venues[venue] ?? venue;
155
+ };
156
+ const getTradingValueLabel = ({ amount, minimumFractionDigits = 0, maximumFractionDigits = 2 }) => {
157
+ return amount.toLocaleString("en-US", {
158
+ style: "currency",
159
+ currency: "USD",
160
+ minimumFractionDigits,
161
+ maximumFractionDigits
162
+ });
163
+ };
164
+ const getTradingPriceLabel = (value) => {
165
+ return `${Math.round(value * 100)}¢`;
166
+ };
167
+ const getTradingAveragePriceLabel = (value) => {
168
+ return defaultLabels.trading.averagePrice(value);
169
+ };
170
+ const getTradingBalanceLabel = (value) => {
171
+ return defaultLabels.trading.balance(require_primitives.formatUsd(value));
172
+ };
173
+ const getTradingSharesLabel = (value) => {
174
+ return defaultLabels.trading.shares(value);
175
+ };
176
+ const getTradingSlippageLabel = (value) => {
177
+ return defaultLabels.trading.slippage(value);
178
+ };
179
+ //#endregion
180
+ //#region src/trading/settlement/settlement-text.utils.ts
181
+ const stripHtmlFragments = (text) => {
182
+ 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");
183
+ };
184
+ const isListLine = (line) => /^\s*[-*]\s+/.test(line);
185
+ const stripBullet = (line) => line.replace(/^\s*[-*]\s+/, "").trim();
186
+ const parseSettlementBlocks = (input) => {
187
+ const normalized = stripHtmlFragments(input).trim();
188
+ if (!normalized) return [];
189
+ const paragraphs = normalized.split(/\n{2,}/);
190
+ const blocks = [];
191
+ for (const rawParagraph of paragraphs) {
192
+ const lines = rawParagraph.split("\n").map((line) => line.replace(/\s+$/, "")).filter((line) => line.trim().length > 0);
193
+ if (lines.length === 0) continue;
194
+ if (lines.every(isListLine)) {
195
+ blocks.push({
196
+ kind: "list",
197
+ items: lines.map(stripBullet)
198
+ });
199
+ continue;
200
+ }
201
+ blocks.push({
202
+ kind: "paragraph",
203
+ lines: lines.map((line) => line.trim())
204
+ });
205
+ }
206
+ return blocks;
207
+ };
208
+ /** Lower-cased, whitespace-collapsed form used for dedup comparisons. */
209
+ const normalizeSettlementForCompare = (input) => {
210
+ return stripHtmlFragments(input).replace(/\s+/g, " ").trim().toLowerCase();
211
+ };
212
+ /**
213
+ * Produces the ordered list of non-empty settlement blocks for the Settlement
214
+ * section, dropping any source whose normalized text is contained within
215
+ * another source's — keeping the superset. Containment (not just equality) is
216
+ * required because some venues (e.g. predict) store the same rules text on both
217
+ * the event and its markets, with the market copy adding only a trailing
218
+ * "Created At: ..." line, so the two are a prefix relationship, not identical.
219
+ */
220
+ const dedupeSettlementSources = (sources) => {
221
+ const order = [
222
+ "eventDescription",
223
+ "marketDescription",
224
+ "primaryRules"
225
+ ];
226
+ const result = [];
227
+ for (const key of order) {
228
+ const value = sources[key];
229
+ if (typeof value !== "string") continue;
230
+ const trimmed = value.trim();
231
+ if (!trimmed) continue;
232
+ const fingerprint = normalizeSettlementForCompare(trimmed);
233
+ if (!fingerprint) continue;
234
+ if (result.some((block) => block.fingerprint.includes(fingerprint))) continue;
235
+ for (let i = result.length - 1; i >= 0; i -= 1) if (fingerprint.includes(result[i].fingerprint)) result.splice(i, 1);
236
+ result.push({
237
+ key,
238
+ content: trimmed,
239
+ fingerprint
240
+ });
241
+ }
242
+ return result.map(({ key, content }) => ({
243
+ key,
244
+ content
245
+ }));
246
+ };
247
+ //#endregion
248
+ //#region src/trading/settlement/settlement-text-renderer.tsx
249
+ const inlineTokenRegex = new RegExp([
250
+ /\[([^\]\n]+)\]\(([^)\s]+)\)/.source,
251
+ /\*\*([^*\n]+?)\*\*/.source,
252
+ /`([^`\n]+?)`/.source,
253
+ /(https?:\/\/[^\s<>"'`]+)/.source
254
+ ].join("|"), "g");
255
+ const trailingUrlPunctuationRegex = /[.,;:!?)\]]+$/;
256
+ const isLinkMatch = (match) => match[1] !== void 0 && match[2] !== void 0;
257
+ const linkClassName = "agg-settlement-text-link text-agg-primary underline hover:opacity-80";
258
+ const renderInlineSegment = (text, baseKey) => {
259
+ const nodes = [];
260
+ let lastIndex = 0;
261
+ let segmentIndex = 0;
262
+ inlineTokenRegex.lastIndex = 0;
263
+ let match;
264
+ while ((match = inlineTokenRegex.exec(text)) !== null) {
265
+ let matchEnd = match.index + match[0].length;
266
+ let bareUrl = match[5];
267
+ if (bareUrl !== void 0) {
268
+ const trailing = trailingUrlPunctuationRegex.exec(bareUrl);
269
+ if (trailing) {
270
+ const trimmed = bareUrl.slice(0, bareUrl.length - trailing[0].length);
271
+ if (trimmed.length > 8) {
272
+ bareUrl = trimmed;
273
+ matchEnd -= trailing[0].length;
274
+ inlineTokenRegex.lastIndex = matchEnd;
275
+ }
276
+ }
277
+ }
278
+ if (match.index > lastIndex) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Fragment, { children: text.slice(lastIndex, match.index) }, `${baseKey}-text-${segmentIndex++}`));
279
+ if (isLinkMatch(match)) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
280
+ href: match[2],
281
+ target: "_blank",
282
+ rel: "noopener noreferrer",
283
+ className: linkClassName,
284
+ children: match[1]
285
+ }, `${baseKey}-link-${segmentIndex++}`));
286
+ else if (match[3] !== void 0) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("strong", {
287
+ className: "agg-settlement-text-bold font-agg-bold",
288
+ children: match[3]
289
+ }, `${baseKey}-bold-${segmentIndex++}`));
290
+ else if (match[4] !== void 0) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("code", {
291
+ className: "agg-settlement-text-code rounded-agg-sm bg-agg-secondary-hover px-1 py-0.5 font-mono text-[0.875em]",
292
+ children: match[4]
293
+ }, `${baseKey}-code-${segmentIndex++}`));
294
+ else if (bareUrl !== void 0) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("a", {
295
+ href: bareUrl,
296
+ target: "_blank",
297
+ rel: "noopener noreferrer",
298
+ className: linkClassName,
299
+ children: bareUrl
300
+ }, `${baseKey}-url-${segmentIndex++}`));
301
+ lastIndex = matchEnd;
302
+ }
303
+ if (lastIndex < text.length) nodes.push(/* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Fragment, { children: text.slice(lastIndex) }, `${baseKey}-text-${segmentIndex++}`));
304
+ return nodes;
305
+ };
306
+ const renderBlock = (block, blockIndex) => {
307
+ if (block.kind === "list") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
308
+ className: "agg-settlement-text-list list-disc pl-5 text-agg-sm leading-agg-5 text-agg-foreground",
309
+ children: block.items.map((item, itemIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
310
+ className: "agg-settlement-text-list-item",
311
+ children: renderInlineSegment(item, `block-${blockIndex}-item-${itemIndex}`)
312
+ }, `block-${blockIndex}-item-${itemIndex}`))
313
+ }, `block-${blockIndex}`);
314
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
315
+ className: "agg-settlement-text-paragraph text-agg-sm leading-agg-5 text-agg-foreground break-words [overflow-wrap:anywhere]",
316
+ children: block.lines.map((line, lineIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [lineIndex > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("br", {}) : null, renderInlineSegment(line, `block-${blockIndex}-line-${lineIndex}`)] }, `block-${blockIndex}-line-${lineIndex}`))
317
+ }, `block-${blockIndex}`);
318
+ };
319
+ const SettlementTextRenderer = ({ content, className }) => {
320
+ const blocks = parseSettlementBlocks(content);
321
+ if (blocks.length === 0) return null;
322
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
323
+ className: require_primitives.cn("agg-settlement-text flex flex-col gap-2", className),
324
+ children: blocks.map((block, blockIndex) => renderBlock(block, blockIndex))
325
+ });
326
+ };
327
+ SettlementTextRenderer.displayName = "SettlementTextRenderer";
328
+ //#endregion
329
+ //#region src/trading/settlement/index.tsx
330
+ const SETTLEMENT_SECTION_ID = "agg-settlement-section";
331
+ const getSettlementDifferenceId = (sectionId, canonicalKey) => {
332
+ return `${sectionId}-difference-${canonicalKey}`;
333
+ };
334
+ const dateOnlyRegex = /^(\d{4})-(\d{2})-(\d{2})$/;
335
+ const isoTimestampWithTimezoneRegex = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d{1,9})?)?(?:Z|[+-]\d{2}:?\d{2})$/i;
336
+ const normalizeDifferenceText = (value) => {
337
+ return value.trim().toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "");
338
+ };
339
+ const resolveCanonicalDifferenceKey = (difference) => {
340
+ const normalizedType = normalizeDifferenceText(difference.type);
341
+ const combined = normalizeDifferenceText(`${difference.type} ${difference.title}`);
342
+ if (combined.includes("start_date") || combined.includes("open_date")) return "start_date";
343
+ if (combined.includes("end_date") || combined.includes("close_date") || combined.includes("closing_date") || combined.includes("expiration_date") || combined.includes("expiry_date")) return "end_date";
344
+ 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";
345
+ return normalizedType || "other";
346
+ };
347
+ const parseSettlementDateMs = (value) => {
348
+ const trimmed = value.trim();
349
+ const dateOnlyMatch = dateOnlyRegex.exec(trimmed);
350
+ if (dateOnlyMatch) {
351
+ const [, year, month, day] = dateOnlyMatch;
352
+ return Date.UTC(Number(year), Number(month) - 1, Number(day));
353
+ }
354
+ if (!isoTimestampWithTimezoneRegex.test(trimmed)) return null;
355
+ const ms = Date.parse(trimmed);
356
+ return Number.isNaN(ms) ? null : ms;
357
+ };
358
+ const isDateLikeDifference = (canonicalKey) => {
359
+ return canonicalKey === "resolution_timing" || canonicalKey === "start_date" || canonicalKey === "end_date";
360
+ };
361
+ /**
362
+ * A row every venue answers the same way is not a difference, whatever its
363
+ * type. Dates are compared as instants so "2026-03-31" and
364
+ * "2026-03-31T00:00:00Z" count as agreeing; everything else is compared as
365
+ * normalized text. Venues the aggregator produced no value for are ignored —
366
+ * the venues that did answer are what decides it.
367
+ */
368
+ const hasEqualValuesAcrossVenues = (difference) => {
369
+ const values = Object.values(difference.perVenue);
370
+ if (values.length < 2) return false;
371
+ const timestamps = values.map(parseSettlementDateMs);
372
+ if (timestamps.every((timestamp) => timestamp !== null)) return new Set(timestamps).size === 1;
373
+ return new Set(values.map(normalizeSettlementForCompare)).size === 1;
374
+ };
375
+ const resolveDifferenceSeverity = (difference, canonicalKey) => {
376
+ const combined = normalizeDifferenceText(`${difference.type} ${difference.title} ${difference.summary ?? ""}`);
377
+ if (isDateLikeDifference(canonicalKey)) return "critical";
378
+ if (canonicalKey === "scope" || canonicalKey === "threshold" || canonicalKey === "edge_cases") return "critical";
379
+ 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";
380
+ return "informational";
381
+ };
382
+ const mergePerVenueValues = (current, next) => {
383
+ return Object.entries(next).reduce((merged, [venue, value]) => {
384
+ if (merged[venue] === void 0) merged[venue] = value;
385
+ return merged;
386
+ }, { ...current });
387
+ };
388
+ const prepareSettlementDifferences = (differences) => {
389
+ const byCanonicalKey = /* @__PURE__ */ new Map();
390
+ for (const [originalIndex, rawDifference] of (differences ?? []).entries()) {
391
+ const title = rawDifference.title.trim();
392
+ const perVenue = Object.fromEntries(Object.entries(rawDifference.perVenue).map(([venue, value]) => [venue.trim(), value.trim()]).filter(([venue, value]) => venue.length > 0 && value.length > 0));
393
+ if (!title || Object.keys(perVenue).length === 0) continue;
394
+ const difference = {
395
+ ...rawDifference,
396
+ title,
397
+ perVenue
398
+ };
399
+ const canonicalKey = resolveCanonicalDifferenceKey(difference);
400
+ if (hasEqualValuesAcrossVenues(difference)) continue;
401
+ const existing = byCanonicalKey.get(canonicalKey);
402
+ if (existing) {
403
+ byCanonicalKey.set(canonicalKey, {
404
+ ...existing,
405
+ perVenue: mergePerVenueValues(existing.perVenue, difference.perVenue)
406
+ });
407
+ continue;
408
+ }
409
+ byCanonicalKey.set(canonicalKey, {
410
+ ...difference,
411
+ canonicalKey,
412
+ severity: resolveDifferenceSeverity(difference, canonicalKey),
413
+ originalIndex
414
+ });
415
+ }
416
+ return Array.from(byCanonicalKey.values()).filter((difference) => !hasEqualValuesAcrossVenues(difference)).sort((left, right) => {
417
+ const severityDelta = Number(right.severity === "critical") - Number(left.severity === "critical");
418
+ if (severityDelta !== 0) return severityDelta;
419
+ return left.originalIndex - right.originalIndex;
420
+ });
421
+ };
422
+ const formatVenueFallbackLabel = (venue) => {
423
+ return venue.split(/[-_\s]+/).filter(Boolean).map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`).join(" ");
424
+ };
425
+ const resolveSettlementVenueLabel = (venue, labels) => {
426
+ return labels.venues[venue] ?? formatVenueFallbackLabel(venue);
427
+ };
428
+ /**
429
+ * Every row lists every venue in the cluster, not just the ones the aggregator
430
+ * had a value for — a venue missing from a row reads as "this venue is not
431
+ * involved" rather than "we don't know", which is what it actually means.
432
+ */
433
+ const resolveDifferenceVenueKeys = (difference, settlementVenues) => {
434
+ const allVenues = [...settlementVenues ?? [], ...Object.keys(difference.perVenue)];
435
+ return Array.from(new Set(allVenues.filter((venue) => venue.trim().length > 0)));
436
+ };
437
+ const resolveDifferenceIconClassName = (canonicalKey) => {
438
+ if (canonicalKey.includes("source") || canonicalKey.includes("url")) return "fi-rr-world";
439
+ if (canonicalKey === "resolution_timing" || canonicalKey.includes("timing")) return "fi-rr-clock";
440
+ if (canonicalKey === "start_date" || canonicalKey.includes("start")) return "fi-rr-calendar-clock";
441
+ if (canonicalKey === "end_date" || canonicalKey.includes("end")) return "fi-rr-calendar-clock";
442
+ if (canonicalKey.includes("cancel") || canonicalKey.includes("void") || canonicalKey.includes("postpone")) return "fi-rr-ban";
443
+ if (canonicalKey === "edge_cases" || canonicalKey.includes("edge")) return "fi-rr-triangle-warning";
444
+ if (canonicalKey === "scope") return "fi-rr-layers";
445
+ if (canonicalKey === "threshold") return "fi-rr-tachometer-alt-fastest";
446
+ if (canonicalKey.includes("wording")) return "fi-rr-document";
447
+ return "fi-rr-info";
448
+ };
449
+ const buildSettlementVenueRules = ({ marketBlock, primaryRulesBlock, settlementVenues, settlementVenueRules }) => {
450
+ if (settlementVenueRules) {
451
+ const rulesByVenue = /* @__PURE__ */ new Map();
452
+ for (const rule of settlementVenueRules) {
453
+ const venue = rule.venue.trim();
454
+ const content = rule.content.trim();
455
+ if (!venue || !content) continue;
456
+ const venueRules = rulesByVenue.get(venue) ?? [];
457
+ if (!venueRules.includes(content)) venueRules.push(content);
458
+ rulesByVenue.set(venue, venueRules);
459
+ }
460
+ if (rulesByVenue.size > 0) for (const venue of settlementVenues ?? []) {
461
+ const trimmedVenue = venue.trim();
462
+ if (trimmedVenue && !rulesByVenue.has(trimmedVenue)) rulesByVenue.set(trimmedVenue, []);
463
+ }
464
+ return Array.from(rulesByVenue, ([venue, contents]) => ({
465
+ venue,
466
+ content: contents.join("\n\n")
467
+ }));
468
+ }
469
+ const content = [marketBlock?.content, primaryRulesBlock?.content].filter((value) => typeof value === "string" && value.trim().length > 0).join("\n\n");
470
+ const venue = settlementVenues?.find((candidate) => candidate.trim().length > 0)?.trim();
471
+ return content && venue ? [{
472
+ venue,
473
+ content
474
+ }] : [];
475
+ };
476
+ /**
477
+ * The card header already shows the question. When the event description is
478
+ * nothing but the question restated, rendering it again just repeats the line
479
+ * back at the reader.
480
+ */
481
+ const repeatsQuestion = (content, question) => {
482
+ const normalizedQuestion = normalizeSettlementForCompare(question ?? "");
483
+ if (!normalizedQuestion) return false;
484
+ return normalizeSettlementForCompare(content) === normalizedQuestion;
485
+ };
486
+ const isDuplicatedByVenueRules = (content, venueRules) => {
487
+ const normalizedContent = normalizeSettlementForCompare(content);
488
+ if (!normalizedContent) return false;
489
+ return venueRules.some((rule) => {
490
+ return normalizeSettlementForCompare(rule.content).includes(normalizedContent);
491
+ });
492
+ };
493
+ const SettlementVenueRules = ({ rules, labels }) => {
494
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
495
+ className: "agg-settlement-venue-rules flex w-full flex-col items-start gap-4",
496
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
497
+ className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground",
498
+ children: labels.trading.settlementFullRulesTitle
499
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
500
+ className: "flex w-full flex-col items-start gap-4",
501
+ children: rules.map((rule) => {
502
+ const venueLabel = resolveSettlementVenueLabel(rule.venue, labels);
503
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("details", {
504
+ className: "w-full",
505
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("summary", {
506
+ 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",
507
+ children: [
508
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives.VenueLogo, {
509
+ venue: rule.venue,
510
+ size: "small",
511
+ className: "size-4",
512
+ ariaLabel: venueLabel
513
+ }),
514
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
515
+ className: "text-agg-foreground group-hover/agg-settlement-rule:text-agg-muted-foreground transition-colors",
516
+ children: venueLabel
517
+ }),
518
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("i", {
519
+ className: require_primitives.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]"),
520
+ style: { fontSize: 14 },
521
+ "aria-hidden": "true"
522
+ })
523
+ ]
524
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
525
+ className: "mt-3 pl-6",
526
+ children: rule.content ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SettlementTextRenderer, { content: rule.content }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
527
+ className: "text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground",
528
+ children: labels.trading.settlementValueUnavailable
529
+ })
530
+ })]
531
+ }, rule.venue);
532
+ })
533
+ })]
534
+ });
535
+ };
536
+ const Settlement = ({ className, id = SETTLEMENT_SECTION_ID, sectionLabel = defaultSettlementSectionLabel, question, eventDescription, marketDescription, primaryRules, settlementDiff, settlementVenues, settlementVenueRules, isLoading = false }) => {
537
+ const labels = (0, _agg_build_hooks.useLabels)();
538
+ const blocks = (0, react.useMemo)(() => dedupeSettlementSources({
539
+ eventDescription,
540
+ marketDescription,
541
+ primaryRules
542
+ }), [
543
+ eventDescription,
544
+ marketDescription,
545
+ primaryRules
546
+ ]);
547
+ const isSingleVenueCluster = settlementVenues !== void 0 && settlementVenues.length < 2;
548
+ const settlementDifferences = (0, react.useMemo)(() => isSingleVenueCluster ? [] : prepareSettlementDifferences(settlementDiff?.differences), [isSingleVenueCluster, settlementDiff?.differences]);
549
+ const eventBlock = blocks.find((block) => block.key === "eventDescription") ?? null;
550
+ const marketBlock = blocks.find((block) => block.key === "marketDescription") ?? null;
551
+ const primaryRulesBlock = blocks.find((block) => block.key === "primaryRules") ?? null;
552
+ const venueRuleBlocks = (0, react.useMemo)(() => buildSettlementVenueRules({
553
+ marketBlock,
554
+ primaryRulesBlock,
555
+ settlementVenues,
556
+ settlementVenueRules
557
+ }), [
558
+ marketBlock,
559
+ primaryRulesBlock,
560
+ settlementVenues,
561
+ settlementVenueRules
562
+ ]);
563
+ const hasSettlementDifferences = settlementDifferences.length > 0;
564
+ const hasVenueSettlementRules = venueRuleBlocks.length > 0;
565
+ const standaloneEventBlock = eventBlock && !isDuplicatedByVenueRules(eventBlock.content, venueRuleBlocks) && !repeatsQuestion(eventBlock.content, question) ? eventBlock : null;
566
+ const standaloneMarketBlock = hasVenueSettlementRules ? null : marketBlock;
567
+ const standalonePrimaryRulesBlock = hasVenueSettlementRules ? null : primaryRulesBlock;
568
+ const hasStandaloneSettlementText = hasVenueSettlementRules ? standaloneEventBlock !== null : blocks.length > 0;
569
+ const hasSettlementContent = hasSettlementDifferences || hasVenueSettlementRules || hasStandaloneSettlementText;
570
+ const defaultOpenDifferenceKey = settlementDifferences[0]?.canonicalKey ?? null;
571
+ const [openDifferenceKeys, setOpenDifferenceKeys] = (0, react.useState)(() => defaultOpenDifferenceKey ? [defaultOpenDifferenceKey] : []);
572
+ (0, react.useEffect)(() => {
573
+ setOpenDifferenceKeys(defaultOpenDifferenceKey ? [defaultOpenDifferenceKey] : []);
574
+ }, [defaultOpenDifferenceKey]);
575
+ const handleToggleDifference = (canonicalKey) => {
576
+ setOpenDifferenceKeys((currentKeys) => currentKeys.includes(canonicalKey) ? currentKeys.filter((currentKey) => currentKey !== canonicalKey) : [...currentKeys, canonicalKey]);
577
+ };
578
+ if (isLoading) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives.Skeleton, {
579
+ ariaLabel: labels.trading.settlementLoading,
580
+ className,
581
+ view: require_primitives.skeletonViews.settlement
582
+ });
583
+ if (!hasSettlementContent) return null;
584
+ const resolvedSectionLabel = sectionLabel === defaultSettlementSectionLabel ? labels.trading.settlementSection : sectionLabel;
585
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_primitives.Card, {
586
+ id,
587
+ className: require_primitives.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),
588
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
589
+ 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",
590
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
591
+ className: "shrink-0 text-agg-xs font-agg-bold leading-agg-4 uppercase",
592
+ children: resolvedSectionLabel
593
+ }), question ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
594
+ className: "agg-settlement-question min-w-0 text-agg-sm font-agg-normal leading-agg-5 sm:max-w-[314px] sm:truncate",
595
+ children: question
596
+ }) : null]
597
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
598
+ className: "agg-settlement-sections flex w-full flex-col items-start gap-5",
599
+ children: [
600
+ hasStandaloneSettlementText ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
601
+ className: "w-full",
602
+ children: [standaloneEventBlock || standaloneMarketBlock ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
603
+ className: "agg-settlement-section agg-settlement-section-description",
604
+ "data-source": "description",
605
+ children: [
606
+ standaloneEventBlock ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
607
+ "data-source": "eventDescription",
608
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SettlementTextRenderer, { content: standaloneEventBlock.content })
609
+ }) : null,
610
+ standaloneEventBlock && standaloneMarketBlock ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("hr", { className: "agg-settlement-divider my-4 border-0 border-t border-agg-separator" }) : null,
611
+ standaloneMarketBlock ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
612
+ "data-source": "marketDescription",
613
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SettlementTextRenderer, { content: standaloneMarketBlock.content })
614
+ }) : null
615
+ ]
616
+ }) : null, standalonePrimaryRulesBlock ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
617
+ className: "agg-settlement-section agg-settlement-section-primaryRules",
618
+ "data-source": "primaryRules",
619
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
620
+ className: "agg-settlement-section-label text-agg-xs font-agg-bold leading-agg-4 uppercase text-agg-muted-foreground mb-2",
621
+ children: labels.trading.settlementPrimaryRulesLabel
622
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SettlementTextRenderer, { content: standalonePrimaryRulesBlock.content })]
623
+ }) : null]
624
+ }) : null,
625
+ hasSettlementDifferences ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
626
+ className: "agg-settlement-differences flex w-full flex-col items-start gap-5",
627
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
628
+ className: "flex items-center gap-2",
629
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
630
+ className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground",
631
+ children: labels.trading.settlementDifferencesTitle
632
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
633
+ 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",
634
+ children: settlementDifferences.length
635
+ })]
636
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
637
+ className: "flex w-full flex-col items-start gap-5",
638
+ children: settlementDifferences.map((difference) => {
639
+ const venueKeys = resolveDifferenceVenueKeys(difference, settlementVenues);
640
+ const isExpanded = openDifferenceKeys.includes(difference.canonicalKey) && venueKeys.length > 0;
641
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
642
+ id: getSettlementDifferenceId(id, difference.canonicalKey),
643
+ className: "agg-settlement-difference flex w-full flex-col items-start gap-2 rounded-agg-lg",
644
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
645
+ type: "button",
646
+ className: "flex w-full cursor-pointer items-center gap-2 text-left group/agg-settlement-difference",
647
+ "aria-expanded": isExpanded,
648
+ onClick: () => handleToggleDifference(difference.canonicalKey),
649
+ children: [
650
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("i", {
651
+ className: require_primitives.cn("fi", resolveDifferenceIconClassName(difference.canonicalKey), "inline-flex size-4! shrink-0 items-center justify-center text-[16px] leading-none text-agg-muted-foreground"),
652
+ "aria-hidden": "true"
653
+ }),
654
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
655
+ 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]",
656
+ children: difference.title
657
+ }),
658
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("i", {
659
+ className: require_primitives.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]"),
660
+ style: { fontSize: 14 },
661
+ "aria-hidden": "true"
662
+ })
663
+ ]
664
+ }), isExpanded ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dl", {
665
+ className: "flex w-full flex-col items-start gap-1 px-6",
666
+ children: venueKeys.map((venue) => {
667
+ const venueValue = difference.perVenue[venue] ?? labels.trading.settlementValueUnavailable;
668
+ const venueLabel = resolveSettlementVenueLabel(venue, labels);
669
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
670
+ className: "flex w-full items-start gap-2",
671
+ children: [
672
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_primitives.VenueLogo, {
673
+ venue,
674
+ size: "small",
675
+ className: "mt-0.5 size-4",
676
+ ariaLabel: venueLabel
677
+ }),
678
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dt", {
679
+ className: "w-[88px] shrink-0 text-agg-sm font-agg-normal leading-agg-5 text-agg-foreground",
680
+ children: venueLabel
681
+ }),
682
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("dd", {
683
+ className: "min-w-0 flex-1 text-agg-sm font-agg-normal leading-agg-5 text-agg-muted-foreground break-words [overflow-wrap:anywhere]",
684
+ children: venueValue
685
+ })
686
+ ]
687
+ }, venue);
688
+ })
689
+ }) : null]
690
+ }, difference.canonicalKey);
691
+ })
692
+ })]
693
+ }) : null,
694
+ hasVenueSettlementRules ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [hasSettlementDifferences || hasStandaloneSettlementText ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "h-px w-full bg-agg-separator" }) : null, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SettlementVenueRules, {
695
+ rules: venueRuleBlocks,
696
+ labels
697
+ })] }) : null
698
+ ]
699
+ })]
700
+ });
701
+ };
702
+ Settlement.displayName = "Settlement";
703
+ //#endregion
704
+ //#region src/events/shared/event-trading-state.utils.ts
705
+ const formatTradingStateDate = (value) => {
706
+ if (!(0, dayjs.default)(value).isValid()) return value;
707
+ return (0, dayjs.default)(value).format("MMM D, YYYY");
708
+ };
709
+ const resolveTradingStateTimestampLabel = (labels, state) => {
710
+ if (state.kind === "resolved" && state.resolvesAt) return labels.eventMarketPage.resolvedAt(formatTradingStateDate(state.resolvesAt));
711
+ if (state.kind === "closed" && state.endsAt) return labels.eventMarketPage.closedAt(formatTradingStateDate(state.endsAt));
712
+ if (state.kind === "unopened" && state.startsAt) return labels.eventMarketPage.opensAt(formatTradingStateDate(state.startsAt));
713
+ return null;
714
+ };
715
+ const resolveTradingStatePresentation = (labels, state) => {
716
+ const timestampLabel = resolveTradingStateTimestampLabel(labels, state);
717
+ const resolvedOutcomeLabel = require_primitives.resolveResolvedOutcomeLabel({
718
+ market: state.market ?? null,
719
+ outcome: state.winningOutcome
720
+ });
721
+ const winningOutcomeLabel = resolvedOutcomeLabel ? labels.eventMarketPage.winningOutcome(resolvedOutcomeLabel) : null;
722
+ if (state.kind === "resolved") return {
723
+ badgeLabel: labels.eventMarketPage.tradingResolvedBadge,
724
+ title: labels.eventMarketPage.tradingResolvedTitle,
725
+ description: labels.eventMarketPage.tradingResolvedDescription,
726
+ iconName: "check-circle",
727
+ timestampLabel,
728
+ winningOutcomeLabel
729
+ };
730
+ if (state.kind === "paused") return {
731
+ badgeLabel: labels.eventMarketPage.tradingPausedBadge,
732
+ title: labels.eventMarketPage.tradingPausedTitle,
733
+ description: labels.eventMarketPage.tradingPausedDescription,
734
+ iconName: "warning-filled",
735
+ timestampLabel,
736
+ winningOutcomeLabel
737
+ };
738
+ if (state.kind === "unopened") return {
739
+ badgeLabel: labels.eventMarketPage.tradingUnopenedBadge,
740
+ title: labels.eventMarketPage.tradingUnopenedTitle,
741
+ description: labels.eventMarketPage.tradingUnopenedDescription,
742
+ iconName: "info",
743
+ timestampLabel,
744
+ winningOutcomeLabel
745
+ };
746
+ if (state.kind === "closed") return {
747
+ badgeLabel: labels.eventMarketPage.tradingClosedBadge,
748
+ title: labels.eventMarketPage.tradingClosedTitle,
749
+ description: labels.eventMarketPage.tradingClosedDescription,
750
+ iconName: "warning-filled",
751
+ timestampLabel,
752
+ winningOutcomeLabel
753
+ };
754
+ return {
755
+ badgeLabel: labels.eventMarketPage.tradingUnavailableBadge,
756
+ title: labels.eventMarketPage.tradingUnavailableTitle,
757
+ description: labels.eventMarketPage.tradingUnavailableDescription,
758
+ iconName: "info",
759
+ timestampLabel,
760
+ winningOutcomeLabel
761
+ };
762
+ };
763
+ const resolveTradingStateBadgeClassName = (kind) => {
764
+ if (kind === "resolved") return "border-agg-success/20 bg-agg-success/10 text-agg-success";
765
+ if (kind === "unopened") return "border-agg-primary/15 bg-agg-primary/5 text-agg-primary";
766
+ if (kind === "paused") return "border-agg-warning/20 bg-agg-warning/10 text-agg-warning";
767
+ if (kind === "closed") return "border-agg-warning/20 bg-agg-warning/10 text-agg-warning";
768
+ return "border-agg-separator bg-agg-secondary text-agg-muted-foreground";
769
+ };
770
+ const ORDER_ELIGIBILITY_LABEL_MAP = {
771
+ no_event_selected: (labels) => labels.trading.orderDisabledNoEvent,
772
+ no_market_selected: (labels) => labels.trading.orderDisabledNoMarket,
773
+ no_outcome_selected: (labels) => labels.trading.orderDisabledNoOutcome,
774
+ event_resolved: (labels) => labels.trading.orderDisabledEventResolved,
775
+ event_closed: (labels) => labels.trading.orderDisabledEventClosed,
776
+ event_paused: (labels) => labels.trading.orderDisabledEventPaused,
777
+ event_unopened: (labels) => labels.trading.orderDisabledEventUnopened,
778
+ event_unavailable: (labels) => labels.trading.orderDisabledEventUnavailable,
779
+ market_resolved: (labels) => labels.trading.orderDisabledMarketResolved,
780
+ market_closed: (labels) => labels.trading.orderDisabledMarketClosed,
781
+ market_paused: (labels) => labels.trading.orderDisabledMarketPaused,
782
+ market_unopened: (labels) => labels.trading.orderDisabledMarketUnopened,
783
+ market_unavailable: (labels) => labels.trading.orderDisabledMarketUnavailable
784
+ };
785
+ const resolveOrderEligibilityMessage = (labels, reason) => {
786
+ if (reason === "eligible") return null;
787
+ return ORDER_ELIGIBILITY_LABEL_MAP[reason](labels);
788
+ };
789
+ //#endregion
790
+ Object.defineProperty(exports, "SETTLEMENT_SECTION_ID", {
791
+ enumerable: true,
792
+ get: function() {
793
+ return SETTLEMENT_SECTION_ID;
794
+ }
795
+ });
796
+ Object.defineProperty(exports, "Settlement", {
797
+ enumerable: true,
798
+ get: function() {
799
+ return Settlement;
800
+ }
801
+ });
802
+ Object.defineProperty(exports, "defaultSettlementSectionLabel", {
803
+ enumerable: true,
804
+ get: function() {
805
+ return defaultSettlementSectionLabel;
806
+ }
807
+ });
808
+ Object.defineProperty(exports, "defaultTradingDisclaimer", {
809
+ enumerable: true,
810
+ get: function() {
811
+ return defaultTradingDisclaimer;
812
+ }
813
+ });
814
+ Object.defineProperty(exports, "formatProbabilityCents", {
815
+ enumerable: true,
816
+ get: function() {
817
+ return formatProbabilityCents;
818
+ }
819
+ });
820
+ Object.defineProperty(exports, "getDisplayOutcomePrice", {
821
+ enumerable: true,
822
+ get: function() {
823
+ return getDisplayOutcomePrice;
824
+ }
825
+ });
826
+ Object.defineProperty(exports, "getSettlementDifferenceId", {
827
+ enumerable: true,
828
+ get: function() {
829
+ return getSettlementDifferenceId;
830
+ }
831
+ });
832
+ Object.defineProperty(exports, "getTradingAveragePriceLabel", {
833
+ enumerable: true,
834
+ get: function() {
835
+ return getTradingAveragePriceLabel;
836
+ }
837
+ });
838
+ Object.defineProperty(exports, "getTradingBalanceLabel", {
839
+ enumerable: true,
840
+ get: function() {
841
+ return getTradingBalanceLabel;
842
+ }
843
+ });
844
+ Object.defineProperty(exports, "getTradingDateLabel", {
845
+ enumerable: true,
846
+ get: function() {
847
+ return getTradingDateLabel;
848
+ }
849
+ });
850
+ Object.defineProperty(exports, "getTradingPriceLabel", {
851
+ enumerable: true,
852
+ get: function() {
853
+ return getTradingPriceLabel;
854
+ }
855
+ });
856
+ Object.defineProperty(exports, "getTradingSharesLabel", {
857
+ enumerable: true,
858
+ get: function() {
859
+ return getTradingSharesLabel;
860
+ }
861
+ });
862
+ Object.defineProperty(exports, "getTradingSlippageLabel", {
863
+ enumerable: true,
864
+ get: function() {
865
+ return getTradingSlippageLabel;
866
+ }
867
+ });
868
+ Object.defineProperty(exports, "getTradingValueLabel", {
869
+ enumerable: true,
870
+ get: function() {
871
+ return getTradingValueLabel;
872
+ }
873
+ });
874
+ Object.defineProperty(exports, "getTradingVenueLabel", {
875
+ enumerable: true,
876
+ get: function() {
877
+ return getTradingVenueLabel;
878
+ }
879
+ });
880
+ Object.defineProperty(exports, "prepareSettlementDifferences", {
881
+ enumerable: true,
882
+ get: function() {
883
+ return prepareSettlementDifferences;
884
+ }
885
+ });
886
+ Object.defineProperty(exports, "resolveDifferenceIconClassName", {
887
+ enumerable: true,
888
+ get: function() {
889
+ return resolveDifferenceIconClassName;
890
+ }
891
+ });
892
+ Object.defineProperty(exports, "resolveOrderBookRows", {
893
+ enumerable: true,
894
+ get: function() {
895
+ return resolveOrderBookRows;
896
+ }
897
+ });
898
+ Object.defineProperty(exports, "resolveOrderEligibilityMessage", {
899
+ enumerable: true,
900
+ get: function() {
901
+ return resolveOrderEligibilityMessage;
902
+ }
903
+ });
904
+ Object.defineProperty(exports, "resolveTradingStateBadgeClassName", {
905
+ enumerable: true,
906
+ get: function() {
907
+ return resolveTradingStateBadgeClassName;
908
+ }
909
+ });
910
+ Object.defineProperty(exports, "resolveTradingStatePresentation", {
911
+ enumerable: true,
912
+ get: function() {
913
+ return resolveTradingStatePresentation;
914
+ }
915
+ });
916
+ Object.defineProperty(exports, "resolveUnifiedOrderBookEntries", {
917
+ enumerable: true,
918
+ get: function() {
919
+ return resolveUnifiedOrderBookEntries;
920
+ }
921
+ });