@agg-market/ui 4.0.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/README.md +26 -26
  2. package/dist/auth.d.mts +1 -0
  3. package/dist/auth.d.ts +1 -0
  4. package/dist/{connect-button.js → auth.js} +6 -4
  5. package/dist/auth.mjs +8 -0
  6. package/dist/chunk-2ICOSP7N.mjs +1211 -0
  7. package/dist/chunk-5ZKPBMRK.mjs +2411 -0
  8. package/dist/{chunk-5K7VXAYM.mjs → chunk-ADGL6RFX.mjs} +2 -4
  9. package/dist/chunk-BXW3VIKV.mjs +90 -0
  10. package/dist/{chart.js → chunk-CN7GI2RJ.mjs} +250 -103
  11. package/dist/chunk-G6YKGVQR.mjs +769 -0
  12. package/dist/{chunk-PZTHM6WG.mjs → chunk-HI4EEDN5.mjs} +897 -357
  13. package/dist/{chunk-5ADMXO3Y.mjs → chunk-INRG3D4M.mjs} +5 -11
  14. package/dist/{chunk-DCORNTCY.mjs → chunk-JE3Z52FD.mjs} +85 -64
  15. package/dist/chunk-KZOQW6NT.mjs +0 -0
  16. package/dist/chunk-LMOJKJOY.mjs +2616 -0
  17. package/dist/{chunk-YJA5VQW6.mjs → chunk-MHCHR65A.mjs} +2 -4
  18. package/dist/{chunk-IGPNIM2B.mjs → chunk-PASXFYKQ.mjs} +2 -4
  19. package/dist/chunk-UBBOLLOS.mjs +999 -0
  20. package/dist/events.d.mts +1 -0
  21. package/dist/events.d.ts +1 -0
  22. package/dist/{event-market-page.js → events.js} +5128 -5274
  23. package/dist/events.mjs +17 -0
  24. package/dist/index.d.mts +1 -78
  25. package/dist/index.d.ts +1 -78
  26. package/dist/index.js +8738 -8534
  27. package/dist/index.mjs +68 -167
  28. package/dist/modals.d.mts +1 -0
  29. package/dist/modals.d.ts +1 -0
  30. package/dist/{deposit-modal.js → modals.js} +1771 -6
  31. package/dist/modals.mjs +25 -0
  32. package/dist/pages.d.mts +1 -0
  33. package/dist/pages.d.ts +1 -0
  34. package/dist/pages.js +7928 -0
  35. package/dist/pages.mjs +16 -0
  36. package/dist/primitives.d.mts +1 -0
  37. package/dist/primitives.d.ts +1 -0
  38. package/dist/{market-details.js → primitives.js} +2980 -3153
  39. package/dist/{icon.mjs → primitives.mjs} +56 -9
  40. package/dist/styles.css +1 -1
  41. package/dist/tailwind.css +1 -1
  42. package/dist/trading.d.mts +1 -0
  43. package/dist/trading.d.ts +1 -0
  44. package/dist/{place-order.js → trading.js} +1907 -1394
  45. package/dist/trading.mjs +65 -0
  46. package/dist/types/auth/connect-button/connect-button.constants.d.mts +10 -0
  47. package/dist/types/auth/connect-button/connect-button.constants.d.ts +10 -0
  48. package/dist/{connect-button.d.mts → types/auth/connect-button/connect-button.types.d.mts} +5 -12
  49. package/dist/{connect-button.d.ts → types/auth/connect-button/connect-button.types.d.ts} +5 -12
  50. package/dist/types/auth/connect-button/index.d.mts +7 -0
  51. package/dist/types/auth/connect-button/index.d.ts +7 -0
  52. package/dist/types/auth/index.d.mts +1 -0
  53. package/dist/types/auth/index.d.ts +1 -0
  54. package/dist/types/constants.d.mts +1 -0
  55. package/dist/types/constants.d.ts +1 -0
  56. package/dist/types/deposit/deposit-modal.constants.d.mts +9 -0
  57. package/dist/types/deposit/deposit-modal.constants.d.ts +9 -0
  58. package/dist/{deposit-modal.d.mts → types/deposit/deposit-modal.types.d.mts} +3 -10
  59. package/dist/{deposit-modal.d.ts → types/deposit/deposit-modal.types.d.ts} +3 -10
  60. package/dist/types/deposit/index.d.mts +6 -0
  61. package/dist/types/deposit/index.d.ts +6 -0
  62. package/dist/types/deposit/steps/card-deposit.d.mts +7 -0
  63. package/dist/types/deposit/steps/card-deposit.d.ts +7 -0
  64. package/dist/types/deposit/steps/crypto-transfer.d.mts +7 -0
  65. package/dist/types/deposit/steps/crypto-transfer.d.ts +7 -0
  66. package/dist/types/deposit/steps/deposit-method.d.mts +7 -0
  67. package/dist/types/deposit/steps/deposit-method.d.ts +7 -0
  68. package/dist/types/deposit/steps/kalshi-deposit.d.mts +5 -0
  69. package/dist/types/deposit/steps/kalshi-deposit.d.ts +5 -0
  70. package/dist/types/deposit/steps/venue-selection.d.mts +7 -0
  71. package/dist/types/deposit/steps/venue-selection.d.ts +7 -0
  72. package/dist/types/events/index.d.mts +4 -0
  73. package/dist/types/events/index.d.ts +4 -0
  74. package/dist/types/events/item/event-list-item.constants.d.mts +1 -0
  75. package/dist/types/events/item/event-list-item.constants.d.ts +1 -0
  76. package/dist/types/events/item/event-list-item.types.d.mts +46 -0
  77. package/dist/types/events/item/event-list-item.types.d.ts +46 -0
  78. package/dist/types/events/item/event-list-item.utils.d.mts +23 -0
  79. package/dist/types/events/item/event-list-item.utils.d.ts +23 -0
  80. package/dist/types/events/item/index.d.mts +6 -0
  81. package/dist/types/events/item/index.d.ts +6 -0
  82. package/dist/types/events/item-details/event-list-item-details.constants.d.mts +10 -0
  83. package/dist/types/events/item-details/event-list-item-details.constants.d.ts +10 -0
  84. package/dist/types/events/item-details/event-list-item-details.types.d.mts +53 -0
  85. package/dist/types/events/item-details/event-list-item-details.types.d.ts +53 -0
  86. package/dist/types/events/item-details/event-list-item-details.utils.d.mts +26 -0
  87. package/dist/types/events/item-details/event-list-item-details.utils.d.ts +26 -0
  88. package/dist/types/events/item-details/index.d.mts +6 -0
  89. package/dist/types/events/item-details/index.d.ts +6 -0
  90. package/dist/types/events/list/event-list.constants.d.mts +3 -0
  91. package/dist/types/events/list/event-list.constants.d.ts +3 -0
  92. package/dist/types/events/list/event-list.types.d.mts +21 -0
  93. package/dist/types/events/list/event-list.types.d.ts +21 -0
  94. package/dist/types/events/list/event-list.utils.d.mts +6 -0
  95. package/dist/types/events/list/event-list.utils.d.ts +6 -0
  96. package/dist/types/events/list/index.d.mts +6 -0
  97. package/dist/types/events/list/index.d.ts +6 -0
  98. package/dist/types/events/market-details/index.d.mts +6 -0
  99. package/dist/types/events/market-details/index.d.ts +6 -0
  100. package/dist/types/events/market-details/market-details.constants.d.mts +9 -0
  101. package/dist/types/events/market-details/market-details.constants.d.ts +9 -0
  102. package/dist/types/events/market-details/market-details.types.d.mts +63 -0
  103. package/dist/types/events/market-details/market-details.types.d.ts +63 -0
  104. package/dist/types/events/market-details/market-details.utils.d.mts +46 -0
  105. package/dist/types/events/market-details/market-details.utils.d.ts +46 -0
  106. package/dist/types/index.d.mts +9 -0
  107. package/dist/types/index.d.ts +9 -0
  108. package/dist/types/modals/index.d.mts +4 -0
  109. package/dist/types/modals/index.d.ts +4 -0
  110. package/dist/types/onboarding/index.d.mts +11 -0
  111. package/dist/types/onboarding/index.d.ts +11 -0
  112. package/dist/types/onboarding/onboarding-modal.constants.d.mts +10 -0
  113. package/dist/types/onboarding/onboarding-modal.constants.d.ts +10 -0
  114. package/dist/types/onboarding/onboarding-modal.types.d.mts +55 -0
  115. package/dist/types/onboarding/onboarding-modal.types.d.ts +55 -0
  116. package/dist/types/onboarding/steps/connect-accounts.d.mts +5 -0
  117. package/dist/types/onboarding/steps/connect-accounts.d.ts +5 -0
  118. package/dist/types/onboarding/steps/connect-kalshi-modal.d.mts +5 -0
  119. package/dist/types/onboarding/steps/connect-kalshi-modal.d.ts +5 -0
  120. package/dist/types/onboarding/steps/connect-onchain-modal.d.mts +5 -0
  121. package/dist/types/onboarding/steps/connect-onchain-modal.d.ts +5 -0
  122. package/dist/types/onboarding/steps/how-it-works.d.mts +5 -0
  123. package/dist/types/onboarding/steps/how-it-works.d.ts +5 -0
  124. package/dist/types/onboarding/steps/profile-setup.d.mts +5 -0
  125. package/dist/types/onboarding/steps/profile-setup.d.ts +5 -0
  126. package/dist/types/pages/event-market/event-market.types.d.mts +42 -0
  127. package/dist/types/pages/event-market/event-market.types.d.ts +42 -0
  128. package/dist/types/pages/event-market/index.d.mts +6 -0
  129. package/dist/types/pages/event-market/index.d.ts +6 -0
  130. package/dist/types/pages/home/home.constants.d.mts +8 -0
  131. package/dist/types/pages/home/home.constants.d.ts +8 -0
  132. package/dist/{home-page.d.ts → types/pages/home/home.types.d.mts} +8 -18
  133. package/dist/{home-page.d.mts → types/pages/home/home.types.d.ts} +8 -18
  134. package/dist/types/pages/home/home.utils.d.mts +3 -0
  135. package/dist/types/pages/home/home.utils.d.ts +3 -0
  136. package/dist/types/pages/home/index.d.mts +6 -0
  137. package/dist/types/pages/home/index.d.ts +6 -0
  138. package/dist/types/pages/index.d.mts +3 -0
  139. package/dist/types/pages/index.d.ts +3 -0
  140. package/dist/types/pages/user-profile/components/activity-row.d.mts +10 -0
  141. package/dist/types/pages/user-profile/components/activity-row.d.ts +10 -0
  142. package/dist/types/pages/user-profile/components/balance-display.d.mts +12 -0
  143. package/dist/types/pages/user-profile/components/balance-display.d.ts +12 -0
  144. package/dist/types/pages/user-profile/components/balances-card.d.mts +12 -0
  145. package/dist/types/pages/user-profile/components/balances-card.d.ts +12 -0
  146. package/dist/types/pages/user-profile/components/default-avatar.d.mts +8 -0
  147. package/dist/types/pages/user-profile/components/default-avatar.d.ts +8 -0
  148. package/dist/types/pages/user-profile/components/empty-state.d.mts +10 -0
  149. package/dist/types/pages/user-profile/components/empty-state.d.ts +10 -0
  150. package/dist/types/pages/user-profile/components/position-row.d.mts +10 -0
  151. package/dist/types/pages/user-profile/components/position-row.d.ts +10 -0
  152. package/dist/types/pages/user-profile/components/positions-activity.d.mts +14 -0
  153. package/dist/types/pages/user-profile/components/positions-activity.d.ts +14 -0
  154. package/dist/types/pages/user-profile/components/user-info-card.d.mts +11 -0
  155. package/dist/types/pages/user-profile/components/user-info-card.d.ts +11 -0
  156. package/dist/types/pages/user-profile/index.d.mts +6 -0
  157. package/dist/types/pages/user-profile/index.d.ts +6 -0
  158. package/dist/types/pages/user-profile/user-profile.constants.d.mts +9 -0
  159. package/dist/types/pages/user-profile/user-profile.constants.d.ts +9 -0
  160. package/dist/{user-profile-page.d.ts → types/pages/user-profile/user-profile.types.d.mts} +12 -22
  161. package/dist/{user-profile-page.d.mts → types/pages/user-profile/user-profile.types.d.ts} +12 -22
  162. package/dist/types/primitives/badge/badge.constants.d.mts +4 -0
  163. package/dist/types/primitives/badge/badge.constants.d.ts +4 -0
  164. package/dist/types/primitives/badge/badge.types.d.mts +18 -0
  165. package/dist/types/primitives/badge/badge.types.d.ts +18 -0
  166. package/dist/types/primitives/badge/index.d.mts +7 -0
  167. package/dist/types/primitives/badge/index.d.ts +7 -0
  168. package/dist/types/primitives/button/button.constants.d.mts +6 -0
  169. package/dist/types/primitives/button/button.constants.d.ts +6 -0
  170. package/dist/types/primitives/button/button.types.d.mts +12 -0
  171. package/dist/types/primitives/button/button.types.d.ts +12 -0
  172. package/dist/types/primitives/button/index.d.mts +6 -0
  173. package/dist/types/primitives/button/index.d.ts +6 -0
  174. package/dist/types/primitives/card/card.types.d.mts +3 -0
  175. package/dist/types/primitives/card/card.types.d.ts +3 -0
  176. package/dist/types/primitives/card/index.d.mts +6 -0
  177. package/dist/types/primitives/card/index.d.ts +6 -0
  178. package/dist/{chart.d.mts → types/primitives/chart/index.d.mts} +7 -10
  179. package/dist/{chart.d.ts → types/primitives/chart/index.d.ts} +7 -10
  180. package/dist/types/primitives/hello-world.d.mts +4 -0
  181. package/dist/types/primitives/hello-world.d.ts +4 -0
  182. package/dist/types/primitives/icon/icon.constants.d.mts +2 -0
  183. package/dist/types/primitives/icon/icon.constants.d.ts +2 -0
  184. package/dist/types/primitives/icon/icon.types.d.mts +9 -0
  185. package/dist/types/primitives/icon/icon.types.d.ts +9 -0
  186. package/dist/types/primitives/icon/icon.utils.d.mts +2 -0
  187. package/dist/types/primitives/icon/icon.utils.d.ts +2 -0
  188. package/dist/types/primitives/icon/index.d.mts +46 -0
  189. package/dist/types/primitives/icon/index.d.ts +46 -0
  190. package/dist/types/primitives/icon/registry.d.mts +166 -0
  191. package/dist/types/primitives/icon/registry.d.ts +166 -0
  192. package/dist/types/primitives/icon/svg/arrow-trend-up.d.mts +5 -0
  193. package/dist/types/primitives/icon/svg/arrow-trend-up.d.ts +5 -0
  194. package/dist/types/primitives/icon/svg/arrows-to-dot.d.mts +5 -0
  195. package/dist/types/primitives/icon/svg/arrows-to-dot.d.ts +5 -0
  196. package/dist/types/primitives/icon/svg/bank.d.mts +5 -0
  197. package/dist/types/primitives/icon/svg/bank.d.ts +5 -0
  198. package/dist/types/primitives/icon/svg/best-prices.d.mts +5 -0
  199. package/dist/types/primitives/icon/svg/best-prices.d.ts +5 -0
  200. package/dist/types/primitives/icon/svg/bolt.d.mts +5 -0
  201. package/dist/types/primitives/icon/svg/bolt.d.ts +5 -0
  202. package/dist/types/primitives/icon/svg/check-badge.d.mts +5 -0
  203. package/dist/types/primitives/icon/svg/check-badge.d.ts +5 -0
  204. package/dist/types/primitives/icon/svg/check-circle.d.mts +5 -0
  205. package/dist/types/primitives/icon/svg/check-circle.d.ts +5 -0
  206. package/dist/types/primitives/icon/svg/chevron-down.d.mts +5 -0
  207. package/dist/types/primitives/icon/svg/chevron-down.d.ts +5 -0
  208. package/dist/types/primitives/icon/svg/chevron-left.d.mts +5 -0
  209. package/dist/types/primitives/icon/svg/chevron-left.d.ts +5 -0
  210. package/dist/types/primitives/icon/svg/chevron-right.d.mts +5 -0
  211. package/dist/types/primitives/icon/svg/chevron-right.d.ts +5 -0
  212. package/dist/types/primitives/icon/svg/chevron-up.d.mts +5 -0
  213. package/dist/types/primitives/icon/svg/chevron-up.d.ts +5 -0
  214. package/dist/types/primitives/icon/svg/close.d.mts +5 -0
  215. package/dist/types/primitives/icon/svg/close.d.ts +5 -0
  216. package/dist/types/primitives/icon/svg/copy.d.mts +5 -0
  217. package/dist/types/primitives/icon/svg/copy.d.ts +5 -0
  218. package/dist/types/primitives/icon/svg/create-account.d.mts +5 -0
  219. package/dist/types/primitives/icon/svg/create-account.d.ts +5 -0
  220. package/dist/types/primitives/icon/svg/credit-card.d.mts +5 -0
  221. package/dist/types/primitives/icon/svg/credit-card.d.ts +5 -0
  222. package/dist/types/primitives/icon/svg/disconnect.d.mts +5 -0
  223. package/dist/types/primitives/icon/svg/disconnect.d.ts +5 -0
  224. package/dist/types/primitives/icon/svg/discord.d.mts +5 -0
  225. package/dist/types/primitives/icon/svg/discord.d.ts +5 -0
  226. package/dist/types/primitives/icon/svg/document.d.mts +5 -0
  227. package/dist/types/primitives/icon/svg/document.d.ts +5 -0
  228. package/dist/types/primitives/icon/svg/dots-horizontal.d.mts +5 -0
  229. package/dist/types/primitives/icon/svg/dots-horizontal.d.ts +5 -0
  230. package/dist/types/primitives/icon/svg/download.d.mts +5 -0
  231. package/dist/types/primitives/icon/svg/download.d.ts +5 -0
  232. package/dist/types/primitives/icon/svg/email.d.mts +5 -0
  233. package/dist/types/primitives/icon/svg/email.d.ts +5 -0
  234. package/dist/types/primitives/icon/svg/external-link.d.mts +5 -0
  235. package/dist/types/primitives/icon/svg/external-link.d.ts +5 -0
  236. package/dist/types/primitives/icon/svg/info.d.mts +5 -0
  237. package/dist/types/primitives/icon/svg/info.d.ts +5 -0
  238. package/dist/types/primitives/icon/svg/link-accounts.d.mts +5 -0
  239. package/dist/types/primitives/icon/svg/link-accounts.d.ts +5 -0
  240. package/dist/types/primitives/icon/svg/pencil.d.mts +5 -0
  241. package/dist/types/primitives/icon/svg/pencil.d.ts +5 -0
  242. package/dist/types/primitives/icon/svg/play-square.d.mts +5 -0
  243. package/dist/types/primitives/icon/svg/play-square.d.ts +5 -0
  244. package/dist/types/primitives/icon/svg/profile.d.mts +5 -0
  245. package/dist/types/primitives/icon/svg/profile.d.ts +5 -0
  246. package/dist/types/primitives/icon/svg/revenue-alt.d.mts +5 -0
  247. package/dist/types/primitives/icon/svg/revenue-alt.d.ts +5 -0
  248. package/dist/types/primitives/icon/svg/search.d.mts +5 -0
  249. package/dist/types/primitives/icon/svg/search.d.ts +5 -0
  250. package/dist/types/primitives/icon/svg/shield-trust.d.mts +5 -0
  251. package/dist/types/primitives/icon/svg/shield-trust.d.ts +5 -0
  252. package/dist/types/primitives/icon/svg/stay-in-control.d.mts +5 -0
  253. package/dist/types/primitives/icon/svg/stay-in-control.d.ts +5 -0
  254. package/dist/types/primitives/icon/svg/telegram.d.mts +5 -0
  255. package/dist/types/primitives/icon/svg/telegram.d.ts +5 -0
  256. package/dist/types/primitives/icon/svg/triangle-down.d.mts +5 -0
  257. package/dist/types/primitives/icon/svg/triangle-down.d.ts +5 -0
  258. package/dist/types/primitives/icon/svg/triangle-up-filled.d.mts +5 -0
  259. package/dist/types/primitives/icon/svg/triangle-up-filled.d.ts +5 -0
  260. package/dist/types/primitives/icon/svg/triangle-up.d.mts +5 -0
  261. package/dist/types/primitives/icon/svg/triangle-up.d.ts +5 -0
  262. package/dist/types/primitives/icon/svg/twitter.d.mts +5 -0
  263. package/dist/types/primitives/icon/svg/twitter.d.ts +5 -0
  264. package/dist/types/primitives/icon/svg/upload.d.mts +5 -0
  265. package/dist/types/primitives/icon/svg/upload.d.ts +5 -0
  266. package/dist/types/primitives/icon/svg/wallet-avatar.d.mts +5 -0
  267. package/dist/types/primitives/icon/svg/wallet-avatar.d.ts +5 -0
  268. package/dist/types/primitives/icon/svg/wallet.d.mts +5 -0
  269. package/dist/types/primitives/icon/svg/wallet.d.ts +5 -0
  270. package/dist/types/primitives/icon/svg/warning-filled.d.mts +5 -0
  271. package/dist/types/primitives/icon/svg/warning-filled.d.ts +5 -0
  272. package/dist/types/primitives/icon/svg/warning.d.mts +5 -0
  273. package/dist/types/primitives/icon/svg/warning.d.ts +5 -0
  274. package/dist/types/primitives/icon/types.d.mts +5 -0
  275. package/dist/types/primitives/icon/types.d.ts +5 -0
  276. package/dist/types/primitives/index.d.mts +17 -0
  277. package/dist/types/primitives/index.d.ts +17 -0
  278. package/dist/types/primitives/loading-icon/index.d.mts +11 -0
  279. package/dist/types/primitives/loading-icon/index.d.ts +11 -0
  280. package/dist/types/primitives/modal/index.d.mts +10 -0
  281. package/dist/types/primitives/modal/index.d.ts +10 -0
  282. package/dist/types/primitives/modal/modal.types.d.mts +54 -0
  283. package/dist/types/primitives/modal/modal.types.d.ts +54 -0
  284. package/dist/{number-value.d.mts → types/primitives/number-value.d.mts} +3 -5
  285. package/dist/{number-value.d.ts → types/primitives/number-value.d.ts} +3 -5
  286. package/dist/types/primitives/search/index.d.mts +6 -0
  287. package/dist/types/primitives/search/index.d.ts +6 -0
  288. package/dist/types/primitives/search/search-empty-icon.d.mts +5 -0
  289. package/dist/types/primitives/search/search-empty-icon.d.ts +5 -0
  290. package/dist/types/primitives/search/search.types.d.mts +96 -0
  291. package/dist/types/primitives/search/search.types.d.ts +96 -0
  292. package/dist/{select.d.mts → types/primitives/select/index.d.mts} +3 -5
  293. package/dist/{select.d.ts → types/primitives/select/index.d.ts} +3 -5
  294. package/dist/types/primitives/skeleton/index.d.mts +7 -0
  295. package/dist/types/primitives/skeleton/index.d.ts +7 -0
  296. package/dist/types/primitives/skeleton/skeleton-block.d.mts +8 -0
  297. package/dist/types/primitives/skeleton/skeleton-block.d.ts +8 -0
  298. package/dist/{skeleton.d.mts → types/primitives/skeleton/skeleton.types.d.mts} +6 -9
  299. package/dist/{skeleton.d.ts → types/primitives/skeleton/skeleton.types.d.ts} +6 -9
  300. package/dist/types/primitives/skeleton/views/event-list-item-details-skeleton-view.d.mts +5 -0
  301. package/dist/types/primitives/skeleton/views/event-list-item-details-skeleton-view.d.ts +5 -0
  302. package/dist/types/primitives/skeleton/views/event-list-item-skeleton-view.d.mts +9 -0
  303. package/dist/types/primitives/skeleton/views/event-list-item-skeleton-view.d.ts +9 -0
  304. package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.mts +5 -0
  305. package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.ts +5 -0
  306. package/dist/types/primitives/skeleton/views/market-details-skeleton-view.d.mts +12 -0
  307. package/dist/types/primitives/skeleton/views/market-details-skeleton-view.d.ts +12 -0
  308. package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.mts +5 -0
  309. package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.ts +5 -0
  310. package/dist/types/primitives/skeleton/views/settlement-skeleton-view.d.mts +5 -0
  311. package/dist/types/primitives/skeleton/views/settlement-skeleton-view.d.ts +5 -0
  312. package/dist/types/primitives/state-message/index.d.mts +15 -0
  313. package/dist/types/primitives/state-message/index.d.ts +15 -0
  314. package/dist/{switch-button.d.mts → types/primitives/switch-button/index.d.mts} +4 -7
  315. package/dist/{switch-button.d.ts → types/primitives/switch-button/index.d.ts} +4 -7
  316. package/dist/types/primitives/tabs/index.d.mts +6 -0
  317. package/dist/types/primitives/tabs/index.d.ts +6 -0
  318. package/dist/types/primitives/tabs/tabs.types.d.mts +24 -0
  319. package/dist/types/primitives/tabs/tabs.types.d.ts +24 -0
  320. package/dist/types/primitives/tabs/tabs.utils.d.mts +14 -0
  321. package/dist/types/primitives/tabs/tabs.utils.d.ts +14 -0
  322. package/dist/types/primitives/typography/index.d.mts +7 -0
  323. package/dist/types/primitives/typography/index.d.ts +7 -0
  324. package/dist/types/primitives/typography/typography.constants.d.mts +3 -0
  325. package/dist/types/primitives/typography/typography.constants.d.ts +3 -0
  326. package/dist/types/primitives/typography/typography.types.d.mts +8 -0
  327. package/dist/types/primitives/typography/typography.types.d.ts +8 -0
  328. package/dist/types/primitives/venue-logo/index.d.mts +8 -0
  329. package/dist/types/primitives/venue-logo/index.d.ts +8 -0
  330. package/dist/types/primitives/venue-logo/logo-props.d.mts +10 -0
  331. package/dist/types/primitives/venue-logo/logo-props.d.ts +10 -0
  332. package/dist/types/primitives/venue-logo/svg/logo-kalshi.d.mts +5 -0
  333. package/dist/types/primitives/venue-logo/svg/logo-kalshi.d.ts +5 -0
  334. package/dist/types/primitives/venue-logo/svg/logo-opinion.d.mts +5 -0
  335. package/dist/types/primitives/venue-logo/svg/logo-opinion.d.ts +5 -0
  336. package/dist/types/primitives/venue-logo/svg/logo-polymarket.d.mts +5 -0
  337. package/dist/types/primitives/venue-logo/svg/logo-polymarket.d.ts +5 -0
  338. package/dist/types/primitives/venue-logo/svg/logo-probable.d.mts +5 -0
  339. package/dist/types/primitives/venue-logo/svg/logo-probable.d.ts +5 -0
  340. package/dist/types/primitives/venue-logo/venue-logo.constants.d.mts +9 -0
  341. package/dist/types/primitives/venue-logo/venue-logo.constants.d.ts +9 -0
  342. package/dist/types/primitives/venue-logo/venue-logo.types.d.mts +17 -0
  343. package/dist/types/primitives/venue-logo/venue-logo.types.d.ts +17 -0
  344. package/dist/types/profile/index.d.mts +6 -0
  345. package/dist/types/profile/index.d.ts +6 -0
  346. package/dist/types/profile/profile-modal.constants.d.mts +17 -0
  347. package/dist/types/profile/profile-modal.constants.d.ts +17 -0
  348. package/dist/{profile-modal.d.mts → types/profile/profile-modal.types.d.mts} +4 -11
  349. package/dist/{profile-modal.d.ts → types/profile/profile-modal.types.d.ts} +4 -11
  350. package/dist/types/profile/tabs/about-tab.d.mts +16 -0
  351. package/dist/types/profile/tabs/about-tab.d.ts +16 -0
  352. package/dist/types/profile/tabs/accounts-wallets-tab.d.mts +18 -0
  353. package/dist/types/profile/tabs/accounts-wallets-tab.d.ts +18 -0
  354. package/dist/types/shared/constants.d.mts +23 -0
  355. package/dist/types/shared/constants.d.ts +23 -0
  356. package/dist/types/shared/query-error.d.mts +2 -0
  357. package/dist/types/shared/query-error.d.ts +2 -0
  358. package/dist/types/shared/types.d.mts +1 -0
  359. package/dist/types/shared/types.d.ts +1 -0
  360. package/dist/types/shared/utils.d.mts +15 -0
  361. package/dist/types/shared/utils.d.ts +15 -0
  362. package/dist/types/trading/index.d.mts +4 -0
  363. package/dist/types/trading/index.d.ts +4 -0
  364. package/dist/{place-order.d.ts → types/trading/place-order/index.d.mts} +3 -7
  365. package/dist/{place-order.d.mts → types/trading/place-order/index.d.ts} +3 -7
  366. package/dist/{settlement.d.ts → types/trading/settlement/index.d.mts} +3 -7
  367. package/dist/{settlement.d.mts → types/trading/settlement/index.d.ts} +3 -7
  368. package/dist/{types-DkGlbmXq.d.ts → types/trading/types.d.mts} +35 -38
  369. package/dist/{types-DkGlbmXq.d.mts → types/trading/types.d.ts} +35 -38
  370. package/dist/types/trading/utils.d.mts +16 -0
  371. package/dist/types/trading/utils.d.ts +16 -0
  372. package/dist/types/withdraw/index.d.mts +6 -0
  373. package/dist/types/withdraw/index.d.ts +6 -0
  374. package/dist/types/withdraw/steps/kalshi-withdraw.d.mts +5 -0
  375. package/dist/types/withdraw/steps/kalshi-withdraw.d.ts +5 -0
  376. package/dist/types/withdraw/steps/venue-selection.d.mts +6 -0
  377. package/dist/types/withdraw/steps/venue-selection.d.ts +6 -0
  378. package/dist/types/withdraw/steps/withdraw-amount.d.mts +8 -0
  379. package/dist/types/withdraw/steps/withdraw-amount.d.ts +8 -0
  380. package/dist/types/withdraw/steps/withdraw-method.d.mts +7 -0
  381. package/dist/types/withdraw/steps/withdraw-method.d.ts +7 -0
  382. package/dist/types/withdraw/withdraw-modal.constants.d.mts +9 -0
  383. package/dist/types/withdraw/withdraw-modal.constants.d.ts +9 -0
  384. package/dist/{withdraw-modal.d.mts → types/withdraw/withdraw-modal.types.d.mts} +3 -10
  385. package/dist/{withdraw-modal.d.ts → types/withdraw/withdraw-modal.types.d.ts} +3 -10
  386. package/package.json +35 -273
  387. package/dist/badge.d.mts +0 -28
  388. package/dist/badge.d.ts +0 -28
  389. package/dist/badge.js +0 -110
  390. package/dist/badge.mjs +0 -9
  391. package/dist/button.d.mts +0 -20
  392. package/dist/button.d.ts +0 -20
  393. package/dist/button.js +0 -183
  394. package/dist/button.mjs +0 -8
  395. package/dist/card.d.mts +0 -10
  396. package/dist/card.d.ts +0 -10
  397. package/dist/card.js +0 -88
  398. package/dist/card.mjs +0 -7
  399. package/dist/chart.mjs +0 -8
  400. package/dist/chunk-3QLOUBDJ.mjs +0 -483
  401. package/dist/chunk-3W7NBJLU.mjs +0 -371
  402. package/dist/chunk-4S3I6X7F.mjs +0 -855
  403. package/dist/chunk-4VUDTWH7.mjs +0 -42
  404. package/dist/chunk-6JG6I5AY.mjs +0 -654
  405. package/dist/chunk-BNDFQPHF.mjs +0 -9
  406. package/dist/chunk-ERGNR6UQ.mjs +0 -67
  407. package/dist/chunk-FO263M3V.mjs +0 -10
  408. package/dist/chunk-FO2QCB4Z.mjs +0 -35
  409. package/dist/chunk-GJ4U5NCE.mjs +0 -134
  410. package/dist/chunk-GNSPZ53C.mjs +0 -991
  411. package/dist/chunk-HOXTJ742.mjs +0 -146
  412. package/dist/chunk-JNH64AKR.mjs +0 -720
  413. package/dist/chunk-K6IJ4WBM.mjs +0 -67
  414. package/dist/chunk-KAGYJ4XT.mjs +0 -126
  415. package/dist/chunk-LA3FBBSJ.mjs +0 -311
  416. package/dist/chunk-LCZKSITC.mjs +0 -162
  417. package/dist/chunk-M4RJHRFT.mjs +0 -445
  418. package/dist/chunk-MBHTXNHX.mjs +0 -289
  419. package/dist/chunk-MJHKBCXQ.mjs +0 -379
  420. package/dist/chunk-NDG43KGL.mjs +0 -44
  421. package/dist/chunk-NH2G3POM.mjs +0 -470
  422. package/dist/chunk-OBCHURW5.mjs +0 -64
  423. package/dist/chunk-OH56VUYK.mjs +0 -321
  424. package/dist/chunk-OJVTGNIF.mjs +0 -230
  425. package/dist/chunk-P2PJBO5C.mjs +0 -280
  426. package/dist/chunk-PORVP72S.mjs +0 -277
  427. package/dist/chunk-QLMVKLNJ.mjs +0 -669
  428. package/dist/chunk-QM7CGMFG.mjs +0 -156
  429. package/dist/chunk-S3H63TQ5.mjs +0 -537
  430. package/dist/chunk-ZFMCCBP6.mjs +0 -25
  431. package/dist/connect-button.mjs +0 -14
  432. package/dist/deposit-modal.mjs +0 -15
  433. package/dist/event-list-item-details.d.mts +0 -11
  434. package/dist/event-list-item-details.d.ts +0 -11
  435. package/dist/event-list-item-details.js +0 -2254
  436. package/dist/event-list-item-details.mjs +0 -19
  437. package/dist/event-list-item-details.types-CMbXOrT-.d.ts +0 -53
  438. package/dist/event-list-item-details.types-DekJKeMD.d.mts +0 -53
  439. package/dist/event-list-item.d.mts +0 -10
  440. package/dist/event-list-item.d.ts +0 -10
  441. package/dist/event-list-item.js +0 -2600
  442. package/dist/event-list-item.mjs +0 -17
  443. package/dist/event-list-item.types-Y6IeJ4e4.d.mts +0 -46
  444. package/dist/event-list-item.types-Y6IeJ4e4.d.ts +0 -46
  445. package/dist/event-list.d.mts +0 -9
  446. package/dist/event-list.d.ts +0 -9
  447. package/dist/event-list.js +0 -3578
  448. package/dist/event-list.mjs +0 -20
  449. package/dist/event-list.types-CkAAUqwW.d.mts +0 -13
  450. package/dist/event-list.types-CkAAUqwW.d.ts +0 -13
  451. package/dist/event-market-page.d.mts +0 -52
  452. package/dist/event-market-page.d.ts +0 -52
  453. package/dist/event-market-page.mjs +0 -28
  454. package/dist/hello-world.d.mts +0 -8
  455. package/dist/hello-world.d.ts +0 -8
  456. package/dist/hello-world.js +0 -92
  457. package/dist/hello-world.mjs +0 -8
  458. package/dist/home-page.js +0 -3842
  459. package/dist/home-page.mjs +0 -21
  460. package/dist/icon.d.mts +0 -193
  461. package/dist/icon.d.ts +0 -193
  462. package/dist/icon.js +0 -1465
  463. package/dist/loading-icon.d.mts +0 -14
  464. package/dist/loading-icon.d.ts +0 -14
  465. package/dist/loading-icon.js +0 -112
  466. package/dist/loading-icon.mjs +0 -8
  467. package/dist/market-details.d.mts +0 -73
  468. package/dist/market-details.d.ts +0 -73
  469. package/dist/market-details.mjs +0 -21
  470. package/dist/modal.d.mts +0 -66
  471. package/dist/modal.d.ts +0 -66
  472. package/dist/modal.js +0 -321
  473. package/dist/modal.mjs +0 -9
  474. package/dist/number-value.js +0 -67
  475. package/dist/number-value.mjs +0 -7
  476. package/dist/onboarding-modal.d.mts +0 -88
  477. package/dist/onboarding-modal.d.ts +0 -88
  478. package/dist/onboarding-modal.js +0 -2836
  479. package/dist/onboarding-modal.mjs +0 -24
  480. package/dist/place-order.mjs +0 -18
  481. package/dist/profile-modal.js +0 -2447
  482. package/dist/profile-modal.mjs +0 -14
  483. package/dist/registry-DfSCFAdC.d.mts +0 -178
  484. package/dist/registry-DfSCFAdC.d.ts +0 -178
  485. package/dist/search.d.mts +0 -51
  486. package/dist/search.d.ts +0 -51
  487. package/dist/search.js +0 -1954
  488. package/dist/search.mjs +0 -12
  489. package/dist/select.js +0 -1552
  490. package/dist/select.mjs +0 -11
  491. package/dist/settlement.js +0 -2445
  492. package/dist/settlement.mjs +0 -15
  493. package/dist/skeleton.js +0 -490
  494. package/dist/skeleton.mjs +0 -10
  495. package/dist/switch-button.js +0 -191
  496. package/dist/switch-button.mjs +0 -7
  497. package/dist/tabs.d.mts +0 -31
  498. package/dist/tabs.d.ts +0 -31
  499. package/dist/tabs.js +0 -2078
  500. package/dist/tabs.mjs +0 -12
  501. package/dist/types-BVj9ky9P.d.mts +0 -3
  502. package/dist/types-BVj9ky9P.d.ts +0 -3
  503. package/dist/typography.d.mts +0 -18
  504. package/dist/typography.d.ts +0 -18
  505. package/dist/typography.js +0 -93
  506. package/dist/typography.mjs +0 -9
  507. package/dist/user-profile-page.js +0 -3081
  508. package/dist/user-profile-page.mjs +0 -15
  509. package/dist/venue-logo.d.mts +0 -13
  510. package/dist/venue-logo.d.ts +0 -13
  511. package/dist/venue-logo.js +0 -323
  512. package/dist/venue-logo.mjs +0 -10
  513. package/dist/venue-logo.types-CGUc22ly.d.mts +0 -19
  514. package/dist/venue-logo.types-Dqr39S1-.d.ts +0 -19
  515. package/dist/withdraw-modal.js +0 -2449
  516. package/dist/withdraw-modal.mjs +0 -14
@@ -1,991 +0,0 @@
1
- import {
2
- buildPriceHistoryGroups,
3
- getTimeWindowByRange,
4
- resolveOutcomeLabels,
5
- resolveOutcomesByVenue,
6
- resolveSeriesColor
7
- } from "./chunk-HOXTJ742.mjs";
8
- import {
9
- Tabs
10
- } from "./chunk-S3H63TQ5.mjs";
11
- import {
12
- getVenueSummary,
13
- normalizeProbability,
14
- resolveTileImage,
15
- resolveTileTitle,
16
- selectPrimaryVenueMarket
17
- } from "./chunk-QM7CGMFG.mjs";
18
- import {
19
- MarketDetailsOderbookSkeleton,
20
- Skeleton,
21
- eventListItemDetailsTimeRanges,
22
- getMarketDetailsTabs,
23
- marketDetailsBaseCardClassName,
24
- marketDetailsDefaultIsOpened,
25
- orderBookRowLimitDefault
26
- } from "./chunk-M4RJHRFT.mjs";
27
- import {
28
- VenueLogo
29
- } from "./chunk-PORVP72S.mjs";
30
- import {
31
- Typography
32
- } from "./chunk-ERGNR6UQ.mjs";
33
- import {
34
- Card
35
- } from "./chunk-FO2QCB4Z.mjs";
36
- import {
37
- LineChart
38
- } from "./chunk-OJVTGNIF.mjs";
39
- import {
40
- SwitchButton
41
- } from "./chunk-LCZKSITC.mjs";
42
- import {
43
- __spreadProps,
44
- __spreadValues,
45
- cn,
46
- getMotionClassName
47
- } from "./chunk-GJ4U5NCE.mjs";
48
-
49
- // src/events/market-details/index.tsx
50
- import { useEffect, useId, useMemo, useState } from "react";
51
- import {
52
- useEvent,
53
- useLabels,
54
- useOrderBook,
55
- usePriceHistory,
56
- useSdkUiConfig
57
- } from "@agg-market/hooks";
58
-
59
- // src/events/market-details/market-details.utils.ts
60
- import dayjs from "dayjs";
61
- import { z } from "zod";
62
- var MarketDetailsTabSchema = z.enum(["order-book", "graph", "other"]);
63
- var OrderBookLevelSchema = z.object({
64
- price: z.number().min(0).max(1),
65
- size: z.number().nonnegative()
66
- });
67
- var OrderBookRowSchema = z.object({
68
- id: z.string(),
69
- venue: z.enum(["kalshi", "polymarket"]),
70
- price: z.number().min(0).max(1),
71
- size: z.number().nonnegative(),
72
- total: z.number().nonnegative(),
73
- tone: z.enum(["positive", "negative"])
74
- });
75
- var normalizeLabel = (value) => {
76
- return value.trim().toLowerCase();
77
- };
78
- var hasBinaryLabels = (labels) => {
79
- const normalizedLabels = labels.map(normalizeLabel);
80
- return normalizedLabels.includes("yes") && normalizedLabels.includes("no");
81
- };
82
- var resolveInitialTab = (defaultTab) => {
83
- const parsedTab = MarketDetailsTabSchema.safeParse(defaultTab);
84
- if (parsedTab.success)
85
- return parsedTab.data;
86
- return "order-book";
87
- };
88
- var resolveMarket = (event, marketId) => {
89
- var _a;
90
- if (!event.markets.length)
91
- return void 0;
92
- if (!marketId)
93
- return event.markets[0];
94
- return (_a = event.markets.find((market) => market.id === marketId)) != null ? _a : event.markets[0];
95
- };
96
- var resolveDisplayOutcomeLabels = (labels) => {
97
- if (!hasBinaryLabels(labels))
98
- return labels;
99
- return ["Yes", "No"].filter(
100
- (label) => labels.some((value) => normalizeLabel(value) === normalizeLabel(label))
101
- );
102
- };
103
- var resolveInitialOutcomeLabel = (labels, defaultOutcomeLabel) => {
104
- var _a;
105
- if (labels.length === 0)
106
- return void 0;
107
- if (defaultOutcomeLabel) {
108
- const matchedLabel = labels.find(
109
- (label) => normalizeLabel(label) === normalizeLabel(defaultOutcomeLabel)
110
- );
111
- if (matchedLabel)
112
- return matchedLabel;
113
- }
114
- if (hasBinaryLabels(labels)) {
115
- return (_a = labels.find((label) => normalizeLabel(label) === "yes")) != null ? _a : labels[0];
116
- }
117
- return labels[0];
118
- };
119
- var resolveAverageProbabilityByLabel = (venueMarkets, labels) => {
120
- return new Map(
121
- labels.map((label) => {
122
- const matchingOutcomes = resolveOutcomesByVenue(venueMarkets, label);
123
- const probabilities = matchingOutcomes.map((item) => normalizeProbability(item.outcome.price)).filter((value) => value != null);
124
- if (!probabilities.length) {
125
- return [label, void 0];
126
- }
127
- const averageProbability = probabilities.reduce((sum, value) => sum + value, 0) / probabilities.length;
128
- return [label, averageProbability];
129
- })
130
- );
131
- };
132
- var formatProbabilityPercent = (value) => {
133
- if (value == null)
134
- return "-";
135
- return `${Math.round(value * 100)}%`;
136
- };
137
- var formatProbabilityCents = (value) => {
138
- if (value == null)
139
- return "-";
140
- const cents = (value * 100).toFixed(1).replace(/\.0$/, "");
141
- return `${cents}\xA2`;
142
- };
143
- var resolveOutcomeTone = (label, index) => {
144
- const normalizedLabel = normalizeLabel(label);
145
- if (normalizedLabel === "yes" || normalizedLabel === "up" || normalizedLabel === "buy") {
146
- return "positive";
147
- }
148
- if (normalizedLabel === "no" || normalizedLabel === "down" || normalizedLabel === "sell") {
149
- return "negative";
150
- }
151
- return index === 0 ? "positive" : "negative";
152
- };
153
- var resolveHeaderOutcomeItems = (venueMarkets, defaultOutcomeLabel) => {
154
- const labels = resolveDisplayOutcomeLabels(resolveOutcomeLabels(venueMarkets));
155
- const probabilityByLabel = resolveAverageProbabilityByLabel(venueMarkets, labels);
156
- return labels.slice(0, 2).map((label, index) => {
157
- var _a;
158
- return {
159
- label,
160
- probability: probabilityByLabel.get(label),
161
- tone: resolveOutcomeTone(label, index),
162
- isDefault: normalizeLabel(label) === normalizeLabel((_a = defaultOutcomeLabel != null ? defaultOutcomeLabel : labels[0]) != null ? _a : "")
163
- };
164
- });
165
- };
166
- var resolveSubtitle = ({
167
- venueMarkets,
168
- volume,
169
- formatCompactCurrency,
170
- labels
171
- }) => {
172
- const { venueCount } = getVenueSummary(venueMarkets);
173
- const parts = [
174
- `${venueCount} ${venueCount === 1 ? labels.marketDetails.meta.venueSingular : labels.marketDetails.meta.venuePlural}`
175
- ];
176
- if (typeof volume === "number") {
177
- parts.push(`${formatCompactCurrency(volume)} ${labels.marketDetails.meta.volumeSuffix}`);
178
- }
179
- return parts.join(" \xB7 ");
180
- };
181
- var resolveOrderBookRows = ({
182
- data,
183
- side
184
- }) => {
185
- if (!(data == null ? void 0 : data.length))
186
- return [];
187
- const tone = side === "asks" ? "negative" : "positive";
188
- const rows = data.flatMap((result) => {
189
- var _a;
190
- return ((_a = result.orderbook[side]) != null ? _a : []).flatMap(
191
- (level, index) => {
192
- const parsedLevel = OrderBookLevelSchema.safeParse(level);
193
- if (!parsedLevel.success)
194
- return [];
195
- const parsedRow = OrderBookRowSchema.safeParse({
196
- id: `${result.market.id}-${side}-${index}-${parsedLevel.data.price}`,
197
- venue: result.market.venue,
198
- price: parsedLevel.data.price,
199
- size: parsedLevel.data.size,
200
- total: parsedLevel.data.price * parsedLevel.data.size,
201
- tone
202
- });
203
- if (!parsedRow.success)
204
- return [];
205
- return [parsedRow.data];
206
- }
207
- );
208
- });
209
- const sortedRows = [...rows].sort((left, right) => {
210
- if (side === "asks")
211
- return left.price - right.price;
212
- return right.price - left.price;
213
- });
214
- const maxTotal = sortedRows.reduce((currentMax, row) => Math.max(currentMax, row.total), 0) || 1;
215
- return sortedRows.map((row) => __spreadProps(__spreadValues({}, row), {
216
- barScale: row.total / maxTotal
217
- }));
218
- };
219
- var resolveOtherTabRows = (market, labels) => {
220
- var _a;
221
- const rows = [];
222
- rows.push({
223
- label: labels.marketDetails.meta.status,
224
- value: (_a = market.status) != null ? _a : labels.marketDetails.meta.unknown
225
- });
226
- if (market.creationDate) {
227
- rows.push({
228
- label: labels.marketDetails.meta.created,
229
- value: dayjs(market.creationDate).format("MMM D, YYYY")
230
- });
231
- }
232
- if (market.startDate) {
233
- rows.push({
234
- label: labels.marketDetails.meta.opens,
235
- value: dayjs(market.startDate).format("MMM D, YYYY")
236
- });
237
- }
238
- if (market.endDate) {
239
- rows.push({
240
- label: labels.marketDetails.meta.closes,
241
- value: dayjs(market.endDate).format("MMM D, YYYY")
242
- });
243
- }
244
- if (rows.length === 1) {
245
- rows.push({
246
- label: labels.marketDetails.meta.markets,
247
- value: `${market.venueMarkets.length}`
248
- });
249
- }
250
- return rows;
251
- };
252
- var buildMarketDetailsModel = ({
253
- event,
254
- marketId,
255
- title,
256
- image,
257
- formatCompactCurrency,
258
- labels
259
- }) => {
260
- var _a;
261
- const market = resolveMarket(event, marketId);
262
- if (!market)
263
- return void 0;
264
- const primaryVenueMarket = selectPrimaryVenueMarket(market.venueMarkets);
265
- if (!primaryVenueMarket)
266
- return void 0;
267
- const resolvedTitle = resolveTileTitle(event, primaryVenueMarket, title);
268
- const resolvedImage = resolveTileImage(event, primaryVenueMarket, image);
269
- const resolvedVolume = typeof market.volume === "number" ? market.volume : (_a = primaryVenueMarket.volume) != null ? _a : void 0;
270
- const subtitle = resolveSubtitle({
271
- venueMarkets: market.venueMarkets,
272
- volume: resolvedVolume,
273
- formatCompactCurrency,
274
- labels
275
- });
276
- const outcomeLabels = resolveDisplayOutcomeLabels(resolveOutcomeLabels(market.venueMarkets));
277
- const probabilityByLabel = resolveAverageProbabilityByLabel(market.venueMarkets, outcomeLabels);
278
- return {
279
- market,
280
- primaryVenueMarket,
281
- title: resolvedTitle,
282
- image: resolvedImage,
283
- subtitle,
284
- outcomeLabels,
285
- probabilityByLabel
286
- };
287
- };
288
-
289
- // src/events/market-details/index.tsx
290
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
291
- var MarketDetailsLoadingState = ({
292
- isOpened = marketDetailsDefaultIsOpened,
293
- ariaLabel,
294
- classNames
295
- }) => {
296
- const labels = useLabels();
297
- return /* @__PURE__ */ jsx(
298
- Skeleton,
299
- {
300
- view: isOpened ? "market-details-detailed" : "market-details-minified",
301
- className: classNames == null ? void 0 : classNames.root,
302
- ariaLabel: ariaLabel != null ? ariaLabel : labels.marketDetails.loading
303
- }
304
- );
305
- };
306
- var MarketDetailsUnavailableState = ({
307
- ariaLabel,
308
- classNames
309
- }) => {
310
- const labels = useLabels();
311
- return /* @__PURE__ */ jsx(
312
- Card,
313
- {
314
- className: cn(marketDetailsBaseCardClassName, classNames == null ? void 0 : classNames.root),
315
- role: "status",
316
- "aria-label": ariaLabel != null ? ariaLabel : labels.marketDetails.unavailableAria,
317
- children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1 p-5", children: [
318
- /* @__PURE__ */ jsx(Typography, { variant: "body-large-strong", children: labels.marketDetails.unavailableTitle }),
319
- /* @__PURE__ */ jsx(Typography, { variant: "label", className: "text-agg-muted-foreground", children: labels.marketDetails.unavailableDescription })
320
- ] })
321
- }
322
- );
323
- };
324
- var OrderBookRows = ({
325
- rows,
326
- title,
327
- formatNumber,
328
- formatCurrency,
329
- visibleRows
330
- }) => {
331
- const labels = useLabels();
332
- const isAsks = title === labels.marketDetails.asks;
333
- const priceClassName = isAsks ? "text-agg-orderbook-ask" : "text-agg-orderbook-bid";
334
- const barClassName = isAsks ? "bg-agg-orderbook-ask/10" : "bg-agg-orderbook-bid/10";
335
- const maxVisibleRows = Math.max(1, visibleRows);
336
- const orderBookRowHeightPx = 28;
337
- const orderBookDividerHeightPx = 1;
338
- const orderBookRowGapPx = 8;
339
- const orderBookVisibleHeightPx = maxVisibleRows * orderBookRowHeightPx + Math.max(0, maxVisibleRows - 1) * (orderBookDividerHeightPx + orderBookRowGapPx);
340
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
341
- /* @__PURE__ */ jsx(Typography, { variant: "caption-caps", children: title }),
342
- /* @__PURE__ */ jsx(
343
- "div",
344
- {
345
- className: "overflow-y-auto pr-1 flex flex-col gap-2",
346
- style: { maxHeight: `${orderBookVisibleHeightPx}px` },
347
- role: "region",
348
- "aria-label": `${title} order book levels`,
349
- children: rows.map((row, index) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
350
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-[52px_1fr_1fr_52px] items-center gap-2 md:grid-cols-[88px_1fr_1fr_minmax(120px,220px)] md:gap-6", children: [
351
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 md:gap-3", children: [
352
- /* @__PURE__ */ jsx(VenueLogo, { venue: row.venue, size: "small" }),
353
- /* @__PURE__ */ jsx(
354
- "span",
355
- {
356
- className: cn(
357
- "text-agg-xs font-agg-bold leading-agg-4 md:text-agg-sm md:leading-agg-5",
358
- priceClassName
359
- ),
360
- children: formatProbabilityCents(row.price)
361
- }
362
- )
363
- ] }),
364
- /* @__PURE__ */ jsx("span", { className: "truncate text-agg-xs leading-agg-4 text-center text-agg-foreground md:text-agg-sm md:leading-agg-5", children: formatNumber(row.size) }),
365
- /* @__PURE__ */ jsx("span", { className: "truncate text-agg-xs leading-agg-4 text-center text-agg-foreground md:text-agg-sm md:leading-agg-5", children: formatCurrency(row.total) }),
366
- /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(
367
- "div",
368
- {
369
- "aria-hidden": "true",
370
- className: cn("h-2 rounded-agg-full", barClassName),
371
- style: {
372
- width: `${Math.max(20, Math.round(row.barScale * 100))}%`
373
- }
374
- }
375
- ) })
376
- ] }),
377
- index < rows.length - 1 ? /* @__PURE__ */ jsx("div", { className: "h-px w-full bg-agg-separator" }) : null
378
- ] }, row.id))
379
- }
380
- )
381
- ] });
382
- };
383
- var getOutcomeButtonClassName = ({
384
- enableAnimations,
385
- isPositive,
386
- isActive
387
- }) => {
388
- const defaultStateClassName = isPositive ? "border-[#18c15c]/50 bg-[#18c15c]/5 text-agg-foreground hover:bg-[#18c15c]/10" : "border-[#e5455f]/50 bg-[#e5455f]/5 text-agg-foreground hover:bg-[#e5455f]/10";
389
- const activeStateClassName = isPositive ? "border-transparent bg-[#18c15c] text-agg-on-primary" : "border-transparent bg-[#e5455f] text-agg-on-primary";
390
- return cn(
391
- "h-auto min-h-10 flex-1 rounded-agg-full border px-4 py-1.5 text-agg-base leading-agg-6 shadow-none md:flex-none md:min-w-[168px]",
392
- getMotionClassName(enableAnimations, "transition-all duration-300 ease-in-out"),
393
- isActive ? activeStateClassName : defaultStateClassName,
394
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary focus-visible:ring-offset-2 focus-visible:ring-offset-agg-secondary-hover",
395
- "cursor-pointer disabled:cursor-not-allowed disabled:text-agg-muted-foreground",
396
- isActive ? "font-agg-bold" : "font-agg-normal"
397
- );
398
- };
399
- var MarketDetailsContent = ({
400
- event,
401
- marketId,
402
- title,
403
- image,
404
- isOpened: defaultIsOpened = marketDetailsDefaultIsOpened,
405
- onOpenChange,
406
- defaultTab,
407
- defaultOutcomeLabel,
408
- defaultTimeRange = "1M",
409
- orderBookDepth = orderBookRowLimitDefault,
410
- ariaLabel,
411
- classNames,
412
- otherContent
413
- }) => {
414
- const config = useSdkUiConfig();
415
- const labels = useLabels();
416
- const detailsContentId = useId();
417
- const model = useMemo(() => {
418
- return buildMarketDetailsModel({
419
- event,
420
- marketId,
421
- title,
422
- image,
423
- formatCompactCurrency: config.formatCompactCurrency,
424
- labels
425
- });
426
- }, [config.formatCompactCurrency, event, image, labels, marketId, title]);
427
- const marketDetailsTabs = useMemo(() => {
428
- return getMarketDetailsTabs(labels);
429
- }, [labels]);
430
- const [selectedTab, setSelectedTab] = useState(
431
- () => resolveInitialTab(defaultTab)
432
- );
433
- const [isOpened, setIsOpened] = useState(defaultIsOpened);
434
- useEffect(() => {
435
- setSelectedTab(resolveInitialTab(defaultTab));
436
- }, [defaultTab]);
437
- const [selectedTimeRange, setSelectedTimeRange] = useState(defaultTimeRange);
438
- useEffect(() => {
439
- setSelectedTimeRange(defaultTimeRange);
440
- }, [defaultTimeRange]);
441
- const [selectedOutcomeLabel, setSelectedOutcomeLabel] = useState(
442
- () => {
443
- var _a;
444
- return resolveInitialOutcomeLabel((_a = model == null ? void 0 : model.outcomeLabels) != null ? _a : [], defaultOutcomeLabel);
445
- }
446
- );
447
- const [selectedGraphVenue, setSelectedGraphVenue] = useState(null);
448
- useEffect(() => {
449
- var _a;
450
- setSelectedOutcomeLabel(
451
- resolveInitialOutcomeLabel((_a = model == null ? void 0 : model.outcomeLabels) != null ? _a : [], defaultOutcomeLabel)
452
- );
453
- }, [defaultOutcomeLabel, model == null ? void 0 : model.outcomeLabels]);
454
- const headerOutcomeItems = useMemo(() => {
455
- if (!model)
456
- return [];
457
- return resolveHeaderOutcomeItems(model.market.venueMarkets, selectedOutcomeLabel);
458
- }, [model, selectedOutcomeLabel]);
459
- const headlineProbability = useMemo(() => {
460
- if (!model || !selectedOutcomeLabel)
461
- return void 0;
462
- return model.probabilityByLabel.get(selectedOutcomeLabel);
463
- }, [model, selectedOutcomeLabel]);
464
- const outcomesByLabel = useMemo(() => {
465
- const outcomesByLabelMap = /* @__PURE__ */ new Map();
466
- if (!model) {
467
- return outcomesByLabelMap;
468
- }
469
- headerOutcomeItems.forEach((headerOutcomeItem) => {
470
- outcomesByLabelMap.set(
471
- headerOutcomeItem.label,
472
- resolveOutcomesByVenue(model.market.venueMarkets, headerOutcomeItem.label)
473
- );
474
- });
475
- return outcomesByLabelMap;
476
- }, [headerOutcomeItems, model]);
477
- const selectedOutcomesByVenue = useMemo(() => {
478
- var _a;
479
- if (!selectedOutcomeLabel)
480
- return [];
481
- return (_a = outcomesByLabel.get(selectedOutcomeLabel)) != null ? _a : [];
482
- }, [outcomesByLabel, selectedOutcomeLabel]);
483
- const timeWindow = useMemo(() => {
484
- return getTimeWindowByRange(selectedTimeRange);
485
- }, [selectedTimeRange]);
486
- const graphOutcomes = useMemo(() => {
487
- const uniqueOutcomesByVenueAndId = /* @__PURE__ */ new Map();
488
- outcomesByLabel.forEach((outcomes) => {
489
- outcomes.forEach((outcomeByVenue) => {
490
- uniqueOutcomesByVenueAndId.set(
491
- `${outcomeByVenue.venue}:${outcomeByVenue.outcome.id}`,
492
- outcomeByVenue
493
- );
494
- });
495
- });
496
- return [...uniqueOutcomesByVenueAndId.values()];
497
- }, [outcomesByLabel]);
498
- const canonicalMarketIdForHistory = model == null ? void 0 : model.market.id;
499
- const priceHistoryGroups = useMemo(() => {
500
- return buildPriceHistoryGroups(graphOutcomes, canonicalMarketIdForHistory);
501
- }, [canonicalMarketIdForHistory, graphOutcomes]);
502
- const { data: priceHistoryData, isLoading: isPriceHistoryLoading } = usePriceHistory(__spreadProps(__spreadValues({
503
- groups: priceHistoryGroups
504
- }, timeWindow), {
505
- enabled: isOpened && selectedTab === "graph" && priceHistoryGroups.length > 0
506
- }));
507
- const orderBookInputs = useMemo(() => {
508
- return selectedOutcomesByVenue.map(({ market, outcome }) => ({
509
- market,
510
- outcome,
511
- liveUpdate: true
512
- }));
513
- }, [selectedOutcomesByVenue]);
514
- const { data: orderBookData, isLoading: isOrderBookLoading } = useOrderBook({
515
- orderbooks: orderBookInputs,
516
- enabled: isOpened && selectedTab === "order-book" && orderBookInputs.length > 0
517
- });
518
- const askRows = useMemo(() => {
519
- return resolveOrderBookRows({
520
- data: orderBookData,
521
- side: "asks"
522
- });
523
- }, [orderBookData]);
524
- const bidRows = useMemo(() => {
525
- return resolveOrderBookRows({
526
- data: orderBookData,
527
- side: "bids"
528
- });
529
- }, [orderBookData]);
530
- const priceHistoryByVenue = useMemo(() => {
531
- const historyByVenue = /* @__PURE__ */ new Map();
532
- if (!(priceHistoryData == null ? void 0 : priceHistoryData.length)) {
533
- return historyByVenue;
534
- }
535
- priceHistoryData.forEach((historyItem) => {
536
- const venue = historyItem.venue;
537
- const venueHistory = historyByVenue.get(venue);
538
- if (venueHistory) {
539
- venueHistory.push(historyItem);
540
- return;
541
- }
542
- historyByVenue.set(venue, [historyItem]);
543
- });
544
- return historyByVenue;
545
- }, [priceHistoryData]);
546
- const graphSeriesByOutcomeLabel = useMemo(() => {
547
- const seriesByOutcomeLabel = /* @__PURE__ */ new Map();
548
- const resolveOutcomeCandidateIds = (outcomeByVenue) => {
549
- var _a, _b;
550
- const marketWithCanonicalId = outcomeByVenue.market;
551
- return [
552
- outcomeByVenue.outcome.id,
553
- (_a = outcomeByVenue.outcome.externalIdentifier) != null ? _a : void 0,
554
- outcomeByVenue.market.externalIdentifier,
555
- (_b = marketWithCanonicalId.marketId) != null ? _b : void 0,
556
- canonicalMarketIdForHistory
557
- ].filter((value) => typeof value === "string" && value.trim().length > 0);
558
- };
559
- headerOutcomeItems.forEach((headerOutcomeItem) => {
560
- var _a;
561
- const outcomes = (_a = outcomesByLabel.get(headerOutcomeItem.label)) != null ? _a : [];
562
- const graphSeries2 = [];
563
- outcomes.forEach((outcomeByVenue, index) => {
564
- var _a2;
565
- const venueHistory = priceHistoryByVenue.get(outcomeByVenue.venue);
566
- if (!(venueHistory == null ? void 0 : venueHistory.length))
567
- return;
568
- const candidateIds = resolveOutcomeCandidateIds(outcomeByVenue);
569
- const matchingHistory = (_a2 = venueHistory.find((historyItem) => candidateIds.includes(historyItem.marketId))) != null ? _a2 : venueHistory.length === 1 ? venueHistory[0] : void 0;
570
- if (!matchingHistory)
571
- return;
572
- const points = matchingHistory.points.map((point) => ({
573
- time: point.timestamp,
574
- value: point.price * 100
575
- })).filter((point) => Number.isFinite(point.time) && Number.isFinite(point.value));
576
- if (points.length === 0)
577
- return;
578
- graphSeries2.push({
579
- id: `${headerOutcomeItem.label}-${outcomeByVenue.venue}-${matchingHistory.marketId}`,
580
- venue: outcomeByVenue.venue,
581
- color: resolveSeriesColor(outcomeByVenue.venue, index),
582
- points
583
- });
584
- });
585
- seriesByOutcomeLabel.set(headerOutcomeItem.label, graphSeries2);
586
- });
587
- return seriesByOutcomeLabel;
588
- }, [canonicalMarketIdForHistory, headerOutcomeItems, outcomesByLabel, priceHistoryByVenue]);
589
- const graphSeries = useMemo(() => {
590
- var _a;
591
- if (!selectedOutcomeLabel)
592
- return [];
593
- const seriesForOutcomeLabel = (_a = graphSeriesByOutcomeLabel.get(selectedOutcomeLabel)) != null ? _a : [];
594
- if (!selectedGraphVenue)
595
- return seriesForOutcomeLabel;
596
- return seriesForOutcomeLabel.filter((seriesItem) => seriesItem.venue === selectedGraphVenue);
597
- }, [graphSeriesByOutcomeLabel, selectedGraphVenue, selectedOutcomeLabel]);
598
- const otherRows = useMemo(() => {
599
- if (!model)
600
- return [];
601
- return resolveOtherTabRows(model.market, labels);
602
- }, [labels, model]);
603
- const handleOutcomeKeyDown = (eventToHandle) => {
604
- var _a;
605
- if ((eventToHandle == null ? void 0 : eventToHandle.key) !== "ArrowLeft" && (eventToHandle == null ? void 0 : eventToHandle.key) !== "ArrowRight") {
606
- return;
607
- }
608
- if (headerOutcomeItems.length <= 1)
609
- return;
610
- const activeIndex = headerOutcomeItems.findIndex((item) => {
611
- return item.label === selectedOutcomeLabel;
612
- });
613
- const direction = eventToHandle.key === "ArrowRight" ? 1 : -1;
614
- const nextIndex = activeIndex < 0 ? 0 : (activeIndex + direction + headerOutcomeItems.length) % headerOutcomeItems.length;
615
- setSelectedOutcomeLabel((_a = headerOutcomeItems[nextIndex]) == null ? void 0 : _a.label);
616
- };
617
- const handleToggleExpanded = (event2) => {
618
- if (event2 && "key" in event2 && (event2 == null ? void 0 : event2.key) !== "Enter" && (event2 == null ? void 0 : event2.key) !== " ") {
619
- return;
620
- }
621
- event2 == null ? void 0 : event2.preventDefault();
622
- event2 == null ? void 0 : event2.stopPropagation();
623
- setIsOpened((prev) => {
624
- const next = !prev;
625
- onOpenChange == null ? void 0 : onOpenChange(next);
626
- return next;
627
- });
628
- };
629
- const handleGraphVenueToggle = (venue) => {
630
- setSelectedGraphVenue((currentVenue) => {
631
- if (currentVenue === venue)
632
- return null;
633
- return venue;
634
- });
635
- };
636
- useEffect(() => {
637
- if (!selectedGraphVenue) {
638
- return;
639
- }
640
- if (selectedOutcomesByVenue.some((item) => item.venue === selectedGraphVenue)) {
641
- return;
642
- }
643
- setSelectedGraphVenue(null);
644
- }, [selectedGraphVenue, selectedOutcomesByVenue]);
645
- if (!model) {
646
- return /* @__PURE__ */ jsx(MarketDetailsUnavailableState, { ariaLabel, classNames });
647
- }
648
- return /* @__PURE__ */ jsxs(
649
- Card,
650
- {
651
- className: cn(
652
- "w-full rounded-agg-2xl text-left outline-none",
653
- marketDetailsBaseCardClassName,
654
- classNames == null ? void 0 : classNames.root
655
- ),
656
- children: [
657
- /* @__PURE__ */ jsxs(
658
- "div",
659
- {
660
- className: cn(
661
- "cursor-pointer disabled:cursor-default",
662
- "flex flex-wrap flex-row items-center justify-between gap-3 px-5 py-4",
663
- isOpened && "pb-3",
664
- classNames == null ? void 0 : classNames.header
665
- ),
666
- "aria-expanded": isOpened,
667
- "aria-controls": detailsContentId,
668
- role: "button",
669
- tabIndex: 0,
670
- "aria-label": isOpened ? labels.marketDetails.toggleCloseDetailsAria(model.title) : labels.marketDetails.toggleOpenDetailsAria(model.title),
671
- onClick: handleToggleExpanded,
672
- onKeyDown: handleToggleExpanded,
673
- children: [
674
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-52 items-center gap-3 md:gap-4", children: [
675
- model.image ? /* @__PURE__ */ jsx(
676
- "img",
677
- {
678
- src: model.image,
679
- alt: "",
680
- className: "size-12 rounded-agg-lg object-cover md:size-[60px]"
681
- }
682
- ) : null,
683
- /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col", children: [
684
- /* @__PURE__ */ jsx(Typography, { as: "h3", variant: "body-large-strong", className: "truncate", children: model.title }),
685
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-3", children: /* @__PURE__ */ jsx(Typography, { variant: "label", className: "truncate text-agg-muted-foreground", children: model.subtitle }) })
686
- ] })
687
- ] }),
688
- /* @__PURE__ */ jsx(Typography, { as: "div", variant: "heading", className: "shrink-0", children: formatProbabilityPercent(headlineProbability) }),
689
- /* @__PURE__ */ jsx(
690
- "div",
691
- {
692
- className: "flex gap-2",
693
- role: "tablist",
694
- "aria-label": labels.marketDetails.marketOutcomesAria,
695
- tabIndex: 0,
696
- onKeyDown: (e) => handleOutcomeKeyDown(e),
697
- children: headerOutcomeItems.map((item) => {
698
- const isPositive = item.tone === "positive";
699
- const isActiveOutcome = item.label === selectedOutcomeLabel;
700
- return /* @__PURE__ */ jsx(
701
- "button",
702
- {
703
- type: "button",
704
- role: "tab",
705
- "aria-selected": isActiveOutcome,
706
- tabIndex: isActiveOutcome ? 0 : -1,
707
- className: getOutcomeButtonClassName({
708
- enableAnimations: config.enableAnimations,
709
- isPositive,
710
- isActive: isActiveOutcome
711
- }),
712
- onClick: (e) => {
713
- e.preventDefault();
714
- e.stopPropagation();
715
- setSelectedOutcomeLabel(item.label);
716
- },
717
- children: /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-2", children: [
718
- /* @__PURE__ */ jsx(
719
- VenueLogo,
720
- {
721
- venue: isPositive ? "polymarket" : "probable",
722
- size: "small",
723
- color: isActiveOutcome ? "var(--agg-color-on-primary)" : void 0
724
- }
725
- ),
726
- /* @__PURE__ */ jsx(
727
- Typography,
728
- {
729
- variant: isActiveOutcome ? "body-strong" : "body",
730
- className: cn(
731
- "text-agg-base leading-agg-6",
732
- isActiveOutcome ? "text-agg-on-primary" : "text-agg-foreground"
733
- ),
734
- children: `${item.label} ${formatProbabilityCents(item.probability)}`
735
- }
736
- )
737
- ] })
738
- },
739
- item.label
740
- );
741
- })
742
- }
743
- )
744
- ]
745
- }
746
- ),
747
- /* @__PURE__ */ jsx(
748
- "div",
749
- {
750
- id: detailsContentId,
751
- className: cn(
752
- "grid overflow-hidden",
753
- getMotionClassName(config.enableAnimations, "transition-all duration-500 ease-in-out"),
754
- isOpened ? "grid-rows-[1fr] opacity-100" : "pointer-events-none grid-rows-[0fr] opacity-0"
755
- ),
756
- "aria-hidden": !isOpened,
757
- children: /* @__PURE__ */ jsxs("div", { className: "min-h-0", children: [
758
- /* @__PURE__ */ jsx("div", { className: "h-px w-full bg-agg-separator" }),
759
- /* @__PURE__ */ jsxs(
760
- "div",
761
- {
762
- className: cn(
763
- getMotionClassName(
764
- config.enableAnimations,
765
- "transition-all duration-500 ease-in-out"
766
- ),
767
- isOpened ? cn(
768
- "translate-y-0 opacity-100",
769
- getMotionClassName(config.enableAnimations, "delay-100")
770
- ) : "translate-y-5 opacity-0"
771
- ),
772
- children: [
773
- /* @__PURE__ */ jsx("div", { className: cn("block", classNames == null ? void 0 : classNames.tabs), children: /* @__PURE__ */ jsx(
774
- Tabs,
775
- {
776
- ariaLabel: labels.marketDetails.tabsAria,
777
- items: marketDetailsTabs,
778
- value: selectedTab === "other" ? "order-book" : selectedTab,
779
- onChange: (nextValue) => setSelectedTab(nextValue),
780
- variant: "underline",
781
- className: "w-full px-5"
782
- }
783
- ) }),
784
- /* @__PURE__ */ jsx("div", { className: "h-px w-full bg-agg-separator" }),
785
- /* @__PURE__ */ jsxs("div", { className: cn("p-5", classNames == null ? void 0 : classNames.content), children: [
786
- selectedTab === "order-book" ? /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-5", classNames == null ? void 0 : classNames.orderBook), children: isOrderBookLoading ? /* @__PURE__ */ jsx(MarketDetailsOderbookSkeleton, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [
787
- /* @__PURE__ */ jsx(
788
- OrderBookRows,
789
- {
790
- rows: askRows,
791
- title: labels.marketDetails.asks,
792
- formatNumber: config.formatNumber,
793
- formatCurrency: config.formatCurrency,
794
- visibleRows: orderBookDepth
795
- }
796
- ),
797
- /* @__PURE__ */ jsx(
798
- OrderBookRows,
799
- {
800
- rows: bidRows,
801
- title: labels.marketDetails.bids,
802
- formatNumber: config.formatNumber,
803
- formatCurrency: config.formatCurrency,
804
- visibleRows: orderBookDepth
805
- }
806
- )
807
- ] }) }) : null,
808
- selectedTab === "graph" ? /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-5", classNames == null ? void 0 : classNames.graph), children: [
809
- /* @__PURE__ */ jsx(
810
- LineChart,
811
- {
812
- series: graphSeries,
813
- height: 260,
814
- isLoading: isPriceHistoryLoading,
815
- classNames: { root: "w-full" },
816
- showSeriesControls: selectedOutcomesByVenue.length > 0 || headerOutcomeItems.length > 0,
817
- renderSeriesControls: () => {
818
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 md:flex-row md:items-center md:justify-between", children: [
819
- /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: selectedOutcomesByVenue.map((item) => {
820
- const probability = formatProbabilityPercent(item.outcome.price);
821
- const isActiveVenue = selectedGraphVenue === item.venue;
822
- return /* @__PURE__ */ jsxs(
823
- "button",
824
- {
825
- type: "button",
826
- "aria-label": `${item.venue} ${probability}`,
827
- "aria-pressed": isActiveVenue,
828
- className: cn(
829
- "inline-flex items-center gap-2 rounded-agg-full border-2 px-4 py-2",
830
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-agg-primary focus-visible:ring-offset-2 focus-visible:ring-offset-agg-secondary-hover",
831
- isActiveVenue ? "border-agg-primary bg-agg-secondary" : "border-transparent bg-agg-secondary-hover"
832
- ),
833
- onClick: (e) => {
834
- e.preventDefault();
835
- e.stopPropagation();
836
- handleGraphVenueToggle(item.venue);
837
- },
838
- children: [
839
- /* @__PURE__ */ jsx(VenueLogo, { venue: item.venue, size: "small" }),
840
- /* @__PURE__ */ jsx("span", { className: "text-agg-base leading-agg-6 text-agg-foreground", children: probability })
841
- ]
842
- },
843
- `${item.market.id}-${item.outcome.id}`
844
- );
845
- }) }),
846
- /* @__PURE__ */ jsx(
847
- SwitchButton,
848
- {
849
- ariaLabel: labels.marketDetails.outcomeSelectorAria,
850
- className: "shrink-0",
851
- value: selectedOutcomeLabel != null ? selectedOutcomeLabel : "",
852
- onValueChange: (nextValue) => setSelectedOutcomeLabel(nextValue),
853
- options: headerOutcomeItems.map((item) => ({
854
- value: item.label,
855
- label: `${item.label} ${formatProbabilityCents(item.probability)}`,
856
- ariaLabel: labels.marketDetails.showOutcomeAria(item.label)
857
- }))
858
- }
859
- )
860
- ] });
861
- }
862
- }
863
- ),
864
- /* @__PURE__ */ jsxs(
865
- "div",
866
- {
867
- className: cn(
868
- "flex flex-col gap-3 text-agg-sm leading-agg-5 text-agg-muted-foreground md:flex-row md:items-center md:justify-between",
869
- classNames == null ? void 0 : classNames.footer
870
- ),
871
- children: [
872
- /* @__PURE__ */ jsx("span", { children: typeof model.market.volume === "number" ? `${config.formatCompactCurrency(model.market.volume)} ${labels.marketDetails.meta.volumeSuffix}` : labels.marketDetails.volumeUnavailable }),
873
- /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center gap-3 md:gap-4", children: eventListItemDetailsTimeRanges.map((timeRange) => {
874
- const isActive = selectedTimeRange === timeRange;
875
- return /* @__PURE__ */ jsx(
876
- "button",
877
- {
878
- type: "button",
879
- className: cn(
880
- "cursor-pointer text-agg-sm leading-agg-5",
881
- isActive ? "font-agg-bold text-agg-foreground" : "font-agg-normal text-agg-muted-foreground"
882
- ),
883
- "aria-pressed": isActive,
884
- onClick: (e) => {
885
- e.preventDefault();
886
- e.stopPropagation();
887
- setSelectedTimeRange(timeRange);
888
- },
889
- children: timeRange === "ALL" ? labels.eventItemDetails.allTimeRange : timeRange
890
- },
891
- timeRange
892
- );
893
- }) })
894
- ]
895
- }
896
- )
897
- ] }) : null,
898
- selectedTab === "other" ? /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4", children: otherContent != null ? otherContent : /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-3", children: otherRows.map((row) => /* @__PURE__ */ jsxs(
899
- "div",
900
- {
901
- className: "flex items-center justify-between rounded-agg-xl bg-agg-secondary-hover px-4 py-3",
902
- children: [
903
- /* @__PURE__ */ jsx(Typography, { variant: "label", className: "text-agg-muted-foreground", children: row.label }),
904
- /* @__PURE__ */ jsx(Typography, { variant: "body", className: "text-right", children: row.value })
905
- ]
906
- },
907
- row.label
908
- )) }) }) : null
909
- ] })
910
- ]
911
- }
912
- )
913
- ] })
914
- }
915
- )
916
- ]
917
- }
918
- );
919
- };
920
- var MarketDetails = (props) => {
921
- var _a;
922
- const [uncontrolledIsOpened, setUncontrolledIsOpened] = useState(
923
- (_a = props.defaultIsOpened) != null ? _a : marketDetailsDefaultIsOpened
924
- );
925
- useEffect(() => {
926
- if (typeof props.isOpened !== "boolean")
927
- return;
928
- setUncontrolledIsOpened(props.isOpened);
929
- }, [props.isOpened]);
930
- const resolvedIsOpened = typeof props.isOpened === "boolean" ? props.isOpened : uncontrolledIsOpened;
931
- const handleOpenChange = (nextIsOpened) => {
932
- var _a2;
933
- if (typeof props.isOpened !== "boolean") {
934
- setUncontrolledIsOpened(nextIsOpened);
935
- }
936
- (_a2 = props.onOpenChange) == null ? void 0 : _a2.call(props, nextIsOpened);
937
- };
938
- const hasEventProp = "event" in props && !!props.event;
939
- const { event: fetchedEvent, isLoading: isFetchingEvent } = useEvent(
940
- hasEventProp ? void 0 : props.eventId,
941
- {
942
- enabled: !props.isLoading && !hasEventProp && !!props.eventId
943
- }
944
- );
945
- if (props.isLoading) {
946
- return /* @__PURE__ */ jsx(
947
- MarketDetailsLoadingState,
948
- {
949
- isOpened: resolvedIsOpened,
950
- ariaLabel: props.ariaLabel,
951
- classNames: props.classNames
952
- }
953
- );
954
- }
955
- if ("event" in props && props.event) {
956
- return /* @__PURE__ */ jsx(
957
- MarketDetailsContent,
958
- __spreadProps(__spreadValues({}, props), {
959
- isOpened: resolvedIsOpened,
960
- onOpenChange: handleOpenChange,
961
- event: props.event
962
- })
963
- );
964
- }
965
- if (isFetchingEvent) {
966
- return /* @__PURE__ */ jsx(
967
- MarketDetailsLoadingState,
968
- {
969
- isOpened: resolvedIsOpened,
970
- ariaLabel: props.ariaLabel,
971
- classNames: props.classNames
972
- }
973
- );
974
- }
975
- if (!fetchedEvent) {
976
- return /* @__PURE__ */ jsx(MarketDetailsUnavailableState, { ariaLabel: props.ariaLabel, classNames: props.classNames });
977
- }
978
- return /* @__PURE__ */ jsx(
979
- MarketDetailsContent,
980
- __spreadProps(__spreadValues({}, props), {
981
- isOpened: resolvedIsOpened,
982
- onOpenChange: handleOpenChange,
983
- event: fetchedEvent
984
- })
985
- );
986
- };
987
- MarketDetails.displayName = "MarketDetails";
988
-
989
- export {
990
- MarketDetails
991
- };