@agg-market/ui 5.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 (517) 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-QDMHLRDY.mjs → chunk-JE3Z52FD.mjs} +90 -38
  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} +4579 -4935
  23. package/dist/events.mjs +17 -0
  24. package/dist/index.d.mts +1 -79
  25. package/dist/index.d.ts +1 -79
  26. package/dist/index.js +6839 -6839
  27. package/dist/index.mjs +66 -170
  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/{home-page.js → pages.js} +3868 -6
  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} +3302 -3729
  39. package/dist/{icon.mjs → primitives.mjs} +56 -9
  40. package/dist/trading.d.mts +1 -0
  41. package/dist/trading.d.ts +1 -0
  42. package/dist/{event-list.js → trading.js} +1426 -1467
  43. package/dist/trading.mjs +65 -0
  44. package/dist/types/auth/connect-button/connect-button.constants.d.mts +10 -0
  45. package/dist/types/auth/connect-button/connect-button.constants.d.ts +10 -0
  46. package/dist/{connect-button.d.mts → types/auth/connect-button/connect-button.types.d.mts} +5 -12
  47. package/dist/{connect-button.d.ts → types/auth/connect-button/connect-button.types.d.ts} +5 -12
  48. package/dist/types/auth/connect-button/index.d.mts +7 -0
  49. package/dist/types/auth/connect-button/index.d.ts +7 -0
  50. package/dist/types/auth/index.d.mts +1 -0
  51. package/dist/types/auth/index.d.ts +1 -0
  52. package/dist/types/constants.d.mts +1 -0
  53. package/dist/types/constants.d.ts +1 -0
  54. package/dist/types/deposit/deposit-modal.constants.d.mts +9 -0
  55. package/dist/types/deposit/deposit-modal.constants.d.ts +9 -0
  56. package/dist/{deposit-modal.d.mts → types/deposit/deposit-modal.types.d.mts} +3 -10
  57. package/dist/{deposit-modal.d.ts → types/deposit/deposit-modal.types.d.ts} +3 -10
  58. package/dist/types/deposit/index.d.mts +6 -0
  59. package/dist/types/deposit/index.d.ts +6 -0
  60. package/dist/types/deposit/steps/card-deposit.d.mts +7 -0
  61. package/dist/types/deposit/steps/card-deposit.d.ts +7 -0
  62. package/dist/types/deposit/steps/crypto-transfer.d.mts +7 -0
  63. package/dist/types/deposit/steps/crypto-transfer.d.ts +7 -0
  64. package/dist/types/deposit/steps/deposit-method.d.mts +7 -0
  65. package/dist/types/deposit/steps/deposit-method.d.ts +7 -0
  66. package/dist/types/deposit/steps/kalshi-deposit.d.mts +5 -0
  67. package/dist/types/deposit/steps/kalshi-deposit.d.ts +5 -0
  68. package/dist/types/deposit/steps/venue-selection.d.mts +7 -0
  69. package/dist/types/deposit/steps/venue-selection.d.ts +7 -0
  70. package/dist/types/events/index.d.mts +4 -0
  71. package/dist/types/events/index.d.ts +4 -0
  72. package/dist/types/events/item/event-list-item.constants.d.mts +1 -0
  73. package/dist/types/events/item/event-list-item.constants.d.ts +1 -0
  74. package/dist/types/events/item/event-list-item.types.d.mts +46 -0
  75. package/dist/types/events/item/event-list-item.types.d.ts +46 -0
  76. package/dist/types/events/item/event-list-item.utils.d.mts +23 -0
  77. package/dist/types/events/item/event-list-item.utils.d.ts +23 -0
  78. package/dist/types/events/item/index.d.mts +6 -0
  79. package/dist/types/events/item/index.d.ts +6 -0
  80. package/dist/types/events/item-details/event-list-item-details.constants.d.mts +10 -0
  81. package/dist/types/events/item-details/event-list-item-details.constants.d.ts +10 -0
  82. package/dist/types/events/item-details/event-list-item-details.types.d.mts +53 -0
  83. package/dist/types/events/item-details/event-list-item-details.types.d.ts +53 -0
  84. package/dist/types/events/item-details/event-list-item-details.utils.d.mts +26 -0
  85. package/dist/types/events/item-details/event-list-item-details.utils.d.ts +26 -0
  86. package/dist/types/events/item-details/index.d.mts +6 -0
  87. package/dist/types/events/item-details/index.d.ts +6 -0
  88. package/dist/types/events/list/event-list.constants.d.mts +3 -0
  89. package/dist/types/events/list/event-list.constants.d.ts +3 -0
  90. package/dist/types/events/list/event-list.types.d.mts +21 -0
  91. package/dist/types/events/list/event-list.types.d.ts +21 -0
  92. package/dist/types/events/list/event-list.utils.d.mts +6 -0
  93. package/dist/types/events/list/event-list.utils.d.ts +6 -0
  94. package/dist/types/events/list/index.d.mts +6 -0
  95. package/dist/types/events/list/index.d.ts +6 -0
  96. package/dist/types/events/market-details/index.d.mts +6 -0
  97. package/dist/types/events/market-details/index.d.ts +6 -0
  98. package/dist/types/events/market-details/market-details.constants.d.mts +9 -0
  99. package/dist/types/events/market-details/market-details.constants.d.ts +9 -0
  100. package/dist/types/events/market-details/market-details.types.d.mts +63 -0
  101. package/dist/types/events/market-details/market-details.types.d.ts +63 -0
  102. package/dist/types/events/market-details/market-details.utils.d.mts +46 -0
  103. package/dist/types/events/market-details/market-details.utils.d.ts +46 -0
  104. package/dist/types/index.d.mts +9 -0
  105. package/dist/types/index.d.ts +9 -0
  106. package/dist/types/modals/index.d.mts +4 -0
  107. package/dist/types/modals/index.d.ts +4 -0
  108. package/dist/types/onboarding/index.d.mts +11 -0
  109. package/dist/types/onboarding/index.d.ts +11 -0
  110. package/dist/types/onboarding/onboarding-modal.constants.d.mts +10 -0
  111. package/dist/types/onboarding/onboarding-modal.constants.d.ts +10 -0
  112. package/dist/types/onboarding/onboarding-modal.types.d.mts +55 -0
  113. package/dist/types/onboarding/onboarding-modal.types.d.ts +55 -0
  114. package/dist/types/onboarding/steps/connect-accounts.d.mts +5 -0
  115. package/dist/types/onboarding/steps/connect-accounts.d.ts +5 -0
  116. package/dist/types/onboarding/steps/connect-kalshi-modal.d.mts +5 -0
  117. package/dist/types/onboarding/steps/connect-kalshi-modal.d.ts +5 -0
  118. package/dist/types/onboarding/steps/connect-onchain-modal.d.mts +5 -0
  119. package/dist/types/onboarding/steps/connect-onchain-modal.d.ts +5 -0
  120. package/dist/types/onboarding/steps/how-it-works.d.mts +5 -0
  121. package/dist/types/onboarding/steps/how-it-works.d.ts +5 -0
  122. package/dist/types/onboarding/steps/profile-setup.d.mts +5 -0
  123. package/dist/types/onboarding/steps/profile-setup.d.ts +5 -0
  124. package/dist/types/pages/event-market/event-market.types.d.mts +42 -0
  125. package/dist/types/pages/event-market/event-market.types.d.ts +42 -0
  126. package/dist/types/pages/event-market/index.d.mts +6 -0
  127. package/dist/types/pages/event-market/index.d.ts +6 -0
  128. package/dist/types/pages/home/home.constants.d.mts +8 -0
  129. package/dist/types/pages/home/home.constants.d.ts +8 -0
  130. package/dist/{home-page.d.ts → types/pages/home/home.types.d.mts} +8 -18
  131. package/dist/{home-page.d.mts → types/pages/home/home.types.d.ts} +8 -18
  132. package/dist/types/pages/home/home.utils.d.mts +3 -0
  133. package/dist/types/pages/home/home.utils.d.ts +3 -0
  134. package/dist/types/pages/home/index.d.mts +6 -0
  135. package/dist/types/pages/home/index.d.ts +6 -0
  136. package/dist/types/pages/index.d.mts +3 -0
  137. package/dist/types/pages/index.d.ts +3 -0
  138. package/dist/types/pages/user-profile/components/activity-row.d.mts +10 -0
  139. package/dist/types/pages/user-profile/components/activity-row.d.ts +10 -0
  140. package/dist/types/pages/user-profile/components/balance-display.d.mts +12 -0
  141. package/dist/types/pages/user-profile/components/balance-display.d.ts +12 -0
  142. package/dist/types/pages/user-profile/components/balances-card.d.mts +12 -0
  143. package/dist/types/pages/user-profile/components/balances-card.d.ts +12 -0
  144. package/dist/types/pages/user-profile/components/default-avatar.d.mts +8 -0
  145. package/dist/types/pages/user-profile/components/default-avatar.d.ts +8 -0
  146. package/dist/types/pages/user-profile/components/empty-state.d.mts +10 -0
  147. package/dist/types/pages/user-profile/components/empty-state.d.ts +10 -0
  148. package/dist/types/pages/user-profile/components/position-row.d.mts +10 -0
  149. package/dist/types/pages/user-profile/components/position-row.d.ts +10 -0
  150. package/dist/types/pages/user-profile/components/positions-activity.d.mts +14 -0
  151. package/dist/types/pages/user-profile/components/positions-activity.d.ts +14 -0
  152. package/dist/types/pages/user-profile/components/user-info-card.d.mts +11 -0
  153. package/dist/types/pages/user-profile/components/user-info-card.d.ts +11 -0
  154. package/dist/types/pages/user-profile/index.d.mts +6 -0
  155. package/dist/types/pages/user-profile/index.d.ts +6 -0
  156. package/dist/types/pages/user-profile/user-profile.constants.d.mts +9 -0
  157. package/dist/types/pages/user-profile/user-profile.constants.d.ts +9 -0
  158. package/dist/{user-profile-page.d.ts → types/pages/user-profile/user-profile.types.d.mts} +12 -22
  159. package/dist/{user-profile-page.d.mts → types/pages/user-profile/user-profile.types.d.ts} +12 -22
  160. package/dist/types/primitives/badge/badge.constants.d.mts +4 -0
  161. package/dist/types/primitives/badge/badge.constants.d.ts +4 -0
  162. package/dist/types/primitives/badge/badge.types.d.mts +18 -0
  163. package/dist/types/primitives/badge/badge.types.d.ts +18 -0
  164. package/dist/types/primitives/badge/index.d.mts +7 -0
  165. package/dist/types/primitives/badge/index.d.ts +7 -0
  166. package/dist/types/primitives/button/button.constants.d.mts +6 -0
  167. package/dist/types/primitives/button/button.constants.d.ts +6 -0
  168. package/dist/types/primitives/button/button.types.d.mts +12 -0
  169. package/dist/types/primitives/button/button.types.d.ts +12 -0
  170. package/dist/types/primitives/button/index.d.mts +6 -0
  171. package/dist/types/primitives/button/index.d.ts +6 -0
  172. package/dist/types/primitives/card/card.types.d.mts +3 -0
  173. package/dist/types/primitives/card/card.types.d.ts +3 -0
  174. package/dist/types/primitives/card/index.d.mts +6 -0
  175. package/dist/types/primitives/card/index.d.ts +6 -0
  176. package/dist/{chart.d.mts → types/primitives/chart/index.d.mts} +7 -10
  177. package/dist/{chart.d.ts → types/primitives/chart/index.d.ts} +7 -10
  178. package/dist/types/primitives/hello-world.d.mts +4 -0
  179. package/dist/types/primitives/hello-world.d.ts +4 -0
  180. package/dist/types/primitives/icon/icon.constants.d.mts +2 -0
  181. package/dist/types/primitives/icon/icon.constants.d.ts +2 -0
  182. package/dist/types/primitives/icon/icon.types.d.mts +9 -0
  183. package/dist/types/primitives/icon/icon.types.d.ts +9 -0
  184. package/dist/types/primitives/icon/icon.utils.d.mts +2 -0
  185. package/dist/types/primitives/icon/icon.utils.d.ts +2 -0
  186. package/dist/types/primitives/icon/index.d.mts +46 -0
  187. package/dist/types/primitives/icon/index.d.ts +46 -0
  188. package/dist/types/primitives/icon/registry.d.mts +166 -0
  189. package/dist/types/primitives/icon/registry.d.ts +166 -0
  190. package/dist/types/primitives/icon/svg/arrow-trend-up.d.mts +5 -0
  191. package/dist/types/primitives/icon/svg/arrow-trend-up.d.ts +5 -0
  192. package/dist/types/primitives/icon/svg/arrows-to-dot.d.mts +5 -0
  193. package/dist/types/primitives/icon/svg/arrows-to-dot.d.ts +5 -0
  194. package/dist/types/primitives/icon/svg/bank.d.mts +5 -0
  195. package/dist/types/primitives/icon/svg/bank.d.ts +5 -0
  196. package/dist/types/primitives/icon/svg/best-prices.d.mts +5 -0
  197. package/dist/types/primitives/icon/svg/best-prices.d.ts +5 -0
  198. package/dist/types/primitives/icon/svg/bolt.d.mts +5 -0
  199. package/dist/types/primitives/icon/svg/bolt.d.ts +5 -0
  200. package/dist/types/primitives/icon/svg/check-badge.d.mts +5 -0
  201. package/dist/types/primitives/icon/svg/check-badge.d.ts +5 -0
  202. package/dist/types/primitives/icon/svg/check-circle.d.mts +5 -0
  203. package/dist/types/primitives/icon/svg/check-circle.d.ts +5 -0
  204. package/dist/types/primitives/icon/svg/chevron-down.d.mts +5 -0
  205. package/dist/types/primitives/icon/svg/chevron-down.d.ts +5 -0
  206. package/dist/types/primitives/icon/svg/chevron-left.d.mts +5 -0
  207. package/dist/types/primitives/icon/svg/chevron-left.d.ts +5 -0
  208. package/dist/types/primitives/icon/svg/chevron-right.d.mts +5 -0
  209. package/dist/types/primitives/icon/svg/chevron-right.d.ts +5 -0
  210. package/dist/types/primitives/icon/svg/chevron-up.d.mts +5 -0
  211. package/dist/types/primitives/icon/svg/chevron-up.d.ts +5 -0
  212. package/dist/types/primitives/icon/svg/close.d.mts +5 -0
  213. package/dist/types/primitives/icon/svg/close.d.ts +5 -0
  214. package/dist/types/primitives/icon/svg/copy.d.mts +5 -0
  215. package/dist/types/primitives/icon/svg/copy.d.ts +5 -0
  216. package/dist/types/primitives/icon/svg/create-account.d.mts +5 -0
  217. package/dist/types/primitives/icon/svg/create-account.d.ts +5 -0
  218. package/dist/types/primitives/icon/svg/credit-card.d.mts +5 -0
  219. package/dist/types/primitives/icon/svg/credit-card.d.ts +5 -0
  220. package/dist/types/primitives/icon/svg/disconnect.d.mts +5 -0
  221. package/dist/types/primitives/icon/svg/disconnect.d.ts +5 -0
  222. package/dist/types/primitives/icon/svg/discord.d.mts +5 -0
  223. package/dist/types/primitives/icon/svg/discord.d.ts +5 -0
  224. package/dist/types/primitives/icon/svg/document.d.mts +5 -0
  225. package/dist/types/primitives/icon/svg/document.d.ts +5 -0
  226. package/dist/types/primitives/icon/svg/dots-horizontal.d.mts +5 -0
  227. package/dist/types/primitives/icon/svg/dots-horizontal.d.ts +5 -0
  228. package/dist/types/primitives/icon/svg/download.d.mts +5 -0
  229. package/dist/types/primitives/icon/svg/download.d.ts +5 -0
  230. package/dist/types/primitives/icon/svg/email.d.mts +5 -0
  231. package/dist/types/primitives/icon/svg/email.d.ts +5 -0
  232. package/dist/types/primitives/icon/svg/external-link.d.mts +5 -0
  233. package/dist/types/primitives/icon/svg/external-link.d.ts +5 -0
  234. package/dist/types/primitives/icon/svg/info.d.mts +5 -0
  235. package/dist/types/primitives/icon/svg/info.d.ts +5 -0
  236. package/dist/types/primitives/icon/svg/link-accounts.d.mts +5 -0
  237. package/dist/types/primitives/icon/svg/link-accounts.d.ts +5 -0
  238. package/dist/types/primitives/icon/svg/pencil.d.mts +5 -0
  239. package/dist/types/primitives/icon/svg/pencil.d.ts +5 -0
  240. package/dist/types/primitives/icon/svg/play-square.d.mts +5 -0
  241. package/dist/types/primitives/icon/svg/play-square.d.ts +5 -0
  242. package/dist/types/primitives/icon/svg/profile.d.mts +5 -0
  243. package/dist/types/primitives/icon/svg/profile.d.ts +5 -0
  244. package/dist/types/primitives/icon/svg/revenue-alt.d.mts +5 -0
  245. package/dist/types/primitives/icon/svg/revenue-alt.d.ts +5 -0
  246. package/dist/types/primitives/icon/svg/search.d.mts +5 -0
  247. package/dist/types/primitives/icon/svg/search.d.ts +5 -0
  248. package/dist/types/primitives/icon/svg/shield-trust.d.mts +5 -0
  249. package/dist/types/primitives/icon/svg/shield-trust.d.ts +5 -0
  250. package/dist/types/primitives/icon/svg/stay-in-control.d.mts +5 -0
  251. package/dist/types/primitives/icon/svg/stay-in-control.d.ts +5 -0
  252. package/dist/types/primitives/icon/svg/telegram.d.mts +5 -0
  253. package/dist/types/primitives/icon/svg/telegram.d.ts +5 -0
  254. package/dist/types/primitives/icon/svg/triangle-down.d.mts +5 -0
  255. package/dist/types/primitives/icon/svg/triangle-down.d.ts +5 -0
  256. package/dist/types/primitives/icon/svg/triangle-up-filled.d.mts +5 -0
  257. package/dist/types/primitives/icon/svg/triangle-up-filled.d.ts +5 -0
  258. package/dist/types/primitives/icon/svg/triangle-up.d.mts +5 -0
  259. package/dist/types/primitives/icon/svg/triangle-up.d.ts +5 -0
  260. package/dist/types/primitives/icon/svg/twitter.d.mts +5 -0
  261. package/dist/types/primitives/icon/svg/twitter.d.ts +5 -0
  262. package/dist/types/primitives/icon/svg/upload.d.mts +5 -0
  263. package/dist/types/primitives/icon/svg/upload.d.ts +5 -0
  264. package/dist/types/primitives/icon/svg/wallet-avatar.d.mts +5 -0
  265. package/dist/types/primitives/icon/svg/wallet-avatar.d.ts +5 -0
  266. package/dist/types/primitives/icon/svg/wallet.d.mts +5 -0
  267. package/dist/types/primitives/icon/svg/wallet.d.ts +5 -0
  268. package/dist/types/primitives/icon/svg/warning-filled.d.mts +5 -0
  269. package/dist/types/primitives/icon/svg/warning-filled.d.ts +5 -0
  270. package/dist/types/primitives/icon/svg/warning.d.mts +5 -0
  271. package/dist/types/primitives/icon/svg/warning.d.ts +5 -0
  272. package/dist/types/primitives/icon/types.d.mts +5 -0
  273. package/dist/types/primitives/icon/types.d.ts +5 -0
  274. package/dist/types/primitives/index.d.mts +17 -0
  275. package/dist/types/primitives/index.d.ts +17 -0
  276. package/dist/types/primitives/loading-icon/index.d.mts +11 -0
  277. package/dist/types/primitives/loading-icon/index.d.ts +11 -0
  278. package/dist/types/primitives/modal/index.d.mts +10 -0
  279. package/dist/types/primitives/modal/index.d.ts +10 -0
  280. package/dist/types/primitives/modal/modal.types.d.mts +54 -0
  281. package/dist/types/primitives/modal/modal.types.d.ts +54 -0
  282. package/dist/{number-value.d.mts → types/primitives/number-value.d.mts} +3 -5
  283. package/dist/{number-value.d.ts → types/primitives/number-value.d.ts} +3 -5
  284. package/dist/types/primitives/search/index.d.mts +6 -0
  285. package/dist/types/primitives/search/index.d.ts +6 -0
  286. package/dist/types/primitives/search/search-empty-icon.d.mts +5 -0
  287. package/dist/types/primitives/search/search-empty-icon.d.ts +5 -0
  288. package/dist/types/primitives/search/search.types.d.mts +96 -0
  289. package/dist/types/primitives/search/search.types.d.ts +96 -0
  290. package/dist/{select.d.mts → types/primitives/select/index.d.mts} +3 -5
  291. package/dist/{select.d.ts → types/primitives/select/index.d.ts} +3 -5
  292. package/dist/types/primitives/skeleton/index.d.mts +7 -0
  293. package/dist/types/primitives/skeleton/index.d.ts +7 -0
  294. package/dist/types/primitives/skeleton/skeleton-block.d.mts +8 -0
  295. package/dist/types/primitives/skeleton/skeleton-block.d.ts +8 -0
  296. package/dist/{skeleton.d.mts → types/primitives/skeleton/skeleton.types.d.mts} +6 -9
  297. package/dist/{skeleton.d.ts → types/primitives/skeleton/skeleton.types.d.ts} +6 -9
  298. package/dist/types/primitives/skeleton/views/event-list-item-details-skeleton-view.d.mts +5 -0
  299. package/dist/types/primitives/skeleton/views/event-list-item-details-skeleton-view.d.ts +5 -0
  300. package/dist/types/primitives/skeleton/views/event-list-item-skeleton-view.d.mts +9 -0
  301. package/dist/types/primitives/skeleton/views/event-list-item-skeleton-view.d.ts +9 -0
  302. package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.mts +5 -0
  303. package/dist/types/primitives/skeleton/views/event-list-skeleton-view.d.ts +5 -0
  304. package/dist/types/primitives/skeleton/views/market-details-skeleton-view.d.mts +12 -0
  305. package/dist/types/primitives/skeleton/views/market-details-skeleton-view.d.ts +12 -0
  306. package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.mts +5 -0
  307. package/dist/types/primitives/skeleton/views/place-order-skeleton-view.d.ts +5 -0
  308. package/dist/types/primitives/skeleton/views/settlement-skeleton-view.d.mts +5 -0
  309. package/dist/types/primitives/skeleton/views/settlement-skeleton-view.d.ts +5 -0
  310. package/dist/{state-message.d.mts → types/primitives/state-message/index.d.mts} +2 -3
  311. package/dist/{state-message.d.ts → types/primitives/state-message/index.d.ts} +2 -3
  312. package/dist/{switch-button.d.mts → types/primitives/switch-button/index.d.mts} +4 -7
  313. package/dist/{switch-button.d.ts → types/primitives/switch-button/index.d.ts} +4 -7
  314. package/dist/types/primitives/tabs/index.d.mts +6 -0
  315. package/dist/types/primitives/tabs/index.d.ts +6 -0
  316. package/dist/types/primitives/tabs/tabs.types.d.mts +24 -0
  317. package/dist/types/primitives/tabs/tabs.types.d.ts +24 -0
  318. package/dist/types/primitives/tabs/tabs.utils.d.mts +14 -0
  319. package/dist/types/primitives/tabs/tabs.utils.d.ts +14 -0
  320. package/dist/types/primitives/typography/index.d.mts +7 -0
  321. package/dist/types/primitives/typography/index.d.ts +7 -0
  322. package/dist/types/primitives/typography/typography.constants.d.mts +3 -0
  323. package/dist/types/primitives/typography/typography.constants.d.ts +3 -0
  324. package/dist/types/primitives/typography/typography.types.d.mts +8 -0
  325. package/dist/types/primitives/typography/typography.types.d.ts +8 -0
  326. package/dist/types/primitives/venue-logo/index.d.mts +8 -0
  327. package/dist/types/primitives/venue-logo/index.d.ts +8 -0
  328. package/dist/types/primitives/venue-logo/logo-props.d.mts +10 -0
  329. package/dist/types/primitives/venue-logo/logo-props.d.ts +10 -0
  330. package/dist/types/primitives/venue-logo/svg/logo-kalshi.d.mts +5 -0
  331. package/dist/types/primitives/venue-logo/svg/logo-kalshi.d.ts +5 -0
  332. package/dist/types/primitives/venue-logo/svg/logo-opinion.d.mts +5 -0
  333. package/dist/types/primitives/venue-logo/svg/logo-opinion.d.ts +5 -0
  334. package/dist/types/primitives/venue-logo/svg/logo-polymarket.d.mts +5 -0
  335. package/dist/types/primitives/venue-logo/svg/logo-polymarket.d.ts +5 -0
  336. package/dist/types/primitives/venue-logo/svg/logo-probable.d.mts +5 -0
  337. package/dist/types/primitives/venue-logo/svg/logo-probable.d.ts +5 -0
  338. package/dist/types/primitives/venue-logo/venue-logo.constants.d.mts +9 -0
  339. package/dist/types/primitives/venue-logo/venue-logo.constants.d.ts +9 -0
  340. package/dist/types/primitives/venue-logo/venue-logo.types.d.mts +17 -0
  341. package/dist/types/primitives/venue-logo/venue-logo.types.d.ts +17 -0
  342. package/dist/types/profile/index.d.mts +6 -0
  343. package/dist/types/profile/index.d.ts +6 -0
  344. package/dist/types/profile/profile-modal.constants.d.mts +17 -0
  345. package/dist/types/profile/profile-modal.constants.d.ts +17 -0
  346. package/dist/{profile-modal.d.mts → types/profile/profile-modal.types.d.mts} +4 -11
  347. package/dist/{profile-modal.d.ts → types/profile/profile-modal.types.d.ts} +4 -11
  348. package/dist/types/profile/tabs/about-tab.d.mts +16 -0
  349. package/dist/types/profile/tabs/about-tab.d.ts +16 -0
  350. package/dist/types/profile/tabs/accounts-wallets-tab.d.mts +18 -0
  351. package/dist/types/profile/tabs/accounts-wallets-tab.d.ts +18 -0
  352. package/dist/types/shared/constants.d.mts +23 -0
  353. package/dist/types/shared/constants.d.ts +23 -0
  354. package/dist/types/shared/query-error.d.mts +2 -0
  355. package/dist/types/shared/query-error.d.ts +2 -0
  356. package/dist/types/shared/types.d.mts +1 -0
  357. package/dist/types/shared/types.d.ts +1 -0
  358. package/dist/types/shared/utils.d.mts +15 -0
  359. package/dist/types/shared/utils.d.ts +15 -0
  360. package/dist/types/trading/index.d.mts +4 -0
  361. package/dist/types/trading/index.d.ts +4 -0
  362. package/dist/{place-order.d.ts → types/trading/place-order/index.d.mts} +3 -7
  363. package/dist/{place-order.d.mts → types/trading/place-order/index.d.ts} +3 -7
  364. package/dist/{settlement.d.ts → types/trading/settlement/index.d.mts} +3 -7
  365. package/dist/{settlement.d.mts → types/trading/settlement/index.d.ts} +3 -7
  366. package/dist/{types-BImwqY4o.d.ts → types/trading/types.d.mts} +35 -38
  367. package/dist/{types-BImwqY4o.d.mts → types/trading/types.d.ts} +35 -38
  368. package/dist/types/trading/utils.d.mts +16 -0
  369. package/dist/types/trading/utils.d.ts +16 -0
  370. package/dist/types/withdraw/index.d.mts +6 -0
  371. package/dist/types/withdraw/index.d.ts +6 -0
  372. package/dist/types/withdraw/steps/kalshi-withdraw.d.mts +5 -0
  373. package/dist/types/withdraw/steps/kalshi-withdraw.d.ts +5 -0
  374. package/dist/types/withdraw/steps/venue-selection.d.mts +6 -0
  375. package/dist/types/withdraw/steps/venue-selection.d.ts +6 -0
  376. package/dist/types/withdraw/steps/withdraw-amount.d.mts +8 -0
  377. package/dist/types/withdraw/steps/withdraw-amount.d.ts +8 -0
  378. package/dist/types/withdraw/steps/withdraw-method.d.mts +7 -0
  379. package/dist/types/withdraw/steps/withdraw-method.d.ts +7 -0
  380. package/dist/types/withdraw/withdraw-modal.constants.d.mts +9 -0
  381. package/dist/types/withdraw/withdraw-modal.constants.d.ts +9 -0
  382. package/dist/{withdraw-modal.d.mts → types/withdraw/withdraw-modal.types.d.mts} +3 -10
  383. package/dist/{withdraw-modal.d.ts → types/withdraw/withdraw-modal.types.d.ts} +3 -10
  384. package/package.json +33 -283
  385. package/dist/badge.d.mts +0 -28
  386. package/dist/badge.d.ts +0 -28
  387. package/dist/badge.js +0 -110
  388. package/dist/badge.mjs +0 -9
  389. package/dist/button.d.mts +0 -20
  390. package/dist/button.d.ts +0 -20
  391. package/dist/button.js +0 -183
  392. package/dist/button.mjs +0 -8
  393. package/dist/card.d.mts +0 -10
  394. package/dist/card.d.ts +0 -10
  395. package/dist/card.js +0 -88
  396. package/dist/card.mjs +0 -7
  397. package/dist/chart.mjs +0 -8
  398. package/dist/chunk-34IRJYSU.mjs +0 -146
  399. package/dist/chunk-3QLOUBDJ.mjs +0 -483
  400. package/dist/chunk-3W7NBJLU.mjs +0 -371
  401. package/dist/chunk-4343LYSH.mjs +0 -45
  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-CTYJVVHJ.mjs +0 -334
  407. package/dist/chunk-DHBHKIJR.mjs +0 -1049
  408. package/dist/chunk-ERGNR6UQ.mjs +0 -67
  409. package/dist/chunk-FO263M3V.mjs +0 -10
  410. package/dist/chunk-FO2QCB4Z.mjs +0 -35
  411. package/dist/chunk-GFBF2J3Y.mjs +0 -328
  412. package/dist/chunk-GJ4U5NCE.mjs +0 -134
  413. package/dist/chunk-K6IJ4WBM.mjs +0 -67
  414. package/dist/chunk-KAGYJ4XT.mjs +0 -126
  415. package/dist/chunk-KIYMVWL4.mjs +0 -280
  416. package/dist/chunk-LCZKSITC.mjs +0 -162
  417. package/dist/chunk-M4RJHRFT.mjs +0 -445
  418. package/dist/chunk-MJHKBCXQ.mjs +0 -379
  419. package/dist/chunk-MKVGQ7AS.mjs +0 -168
  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-OJVTGNIF.mjs +0 -230
  424. package/dist/chunk-PORVP72S.mjs +0 -277
  425. package/dist/chunk-Q6DGDBPV.mjs +0 -774
  426. package/dist/chunk-QLMVKLNJ.mjs +0 -669
  427. package/dist/chunk-S3H63TQ5.mjs +0 -537
  428. package/dist/chunk-T7TATHPD.mjs +0 -313
  429. package/dist/chunk-XUCS575S.mjs +0 -65
  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 -3711
  436. package/dist/event-list-item-details.mjs +0 -23
  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 -2821
  442. package/dist/event-list-item.mjs +0 -20
  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.mjs +0 -23
  448. package/dist/event-list.types-CkAAUqwW.d.mts +0 -13
  449. package/dist/event-list.types-CkAAUqwW.d.ts +0 -13
  450. package/dist/event-market-page.d.mts +0 -52
  451. package/dist/event-market-page.d.ts +0 -52
  452. package/dist/event-market-page.mjs +0 -30
  453. package/dist/hello-world.d.mts +0 -8
  454. package/dist/hello-world.d.ts +0 -8
  455. package/dist/hello-world.js +0 -92
  456. package/dist/hello-world.mjs +0 -8
  457. package/dist/home-page.mjs +0 -24
  458. package/dist/icon.d.mts +0 -193
  459. package/dist/icon.d.ts +0 -193
  460. package/dist/icon.js +0 -1465
  461. package/dist/loading-icon.d.mts +0 -14
  462. package/dist/loading-icon.d.ts +0 -14
  463. package/dist/loading-icon.js +0 -112
  464. package/dist/loading-icon.mjs +0 -8
  465. package/dist/market-details.d.mts +0 -73
  466. package/dist/market-details.d.ts +0 -73
  467. package/dist/market-details.mjs +0 -24
  468. package/dist/modal.d.mts +0 -66
  469. package/dist/modal.d.ts +0 -66
  470. package/dist/modal.js +0 -321
  471. package/dist/modal.mjs +0 -9
  472. package/dist/number-value.js +0 -67
  473. package/dist/number-value.mjs +0 -7
  474. package/dist/onboarding-modal.d.mts +0 -88
  475. package/dist/onboarding-modal.d.ts +0 -88
  476. package/dist/onboarding-modal.js +0 -2836
  477. package/dist/onboarding-modal.mjs +0 -24
  478. package/dist/place-order.js +0 -3248
  479. package/dist/place-order.mjs +0 -18
  480. package/dist/profile-modal.js +0 -2447
  481. package/dist/profile-modal.mjs +0 -14
  482. package/dist/registry-DfSCFAdC.d.mts +0 -178
  483. package/dist/registry-DfSCFAdC.d.ts +0 -178
  484. package/dist/search.d.mts +0 -51
  485. package/dist/search.d.ts +0 -51
  486. package/dist/search.js +0 -1957
  487. package/dist/search.mjs +0 -13
  488. package/dist/select.js +0 -1552
  489. package/dist/select.mjs +0 -11
  490. package/dist/settlement.js +0 -2445
  491. package/dist/settlement.mjs +0 -15
  492. package/dist/skeleton.js +0 -490
  493. package/dist/skeleton.mjs +0 -10
  494. package/dist/state-message.js +0 -1629
  495. package/dist/state-message.mjs +0 -14
  496. package/dist/switch-button.js +0 -191
  497. package/dist/switch-button.mjs +0 -7
  498. package/dist/tabs.d.mts +0 -31
  499. package/dist/tabs.d.ts +0 -31
  500. package/dist/tabs.js +0 -2078
  501. package/dist/tabs.mjs +0 -12
  502. package/dist/types-BVj9ky9P.d.mts +0 -3
  503. package/dist/types-BVj9ky9P.d.ts +0 -3
  504. package/dist/typography.d.mts +0 -18
  505. package/dist/typography.d.ts +0 -18
  506. package/dist/typography.js +0 -93
  507. package/dist/typography.mjs +0 -9
  508. package/dist/user-profile-page.js +0 -3081
  509. package/dist/user-profile-page.mjs +0 -15
  510. package/dist/venue-logo.d.mts +0 -13
  511. package/dist/venue-logo.d.ts +0 -13
  512. package/dist/venue-logo.js +0 -323
  513. package/dist/venue-logo.mjs +0 -10
  514. package/dist/venue-logo.types-CGUc22ly.d.mts +0 -19
  515. package/dist/venue-logo.types-Dqr39S1-.d.ts +0 -19
  516. package/dist/withdraw-modal.js +0 -2449
  517. package/dist/withdraw-modal.mjs +0 -14
@@ -55,13 +55,43 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
55
55
  mod
56
56
  ));
57
57
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
58
+ var __async = (__this, __arguments, generator) => {
59
+ return new Promise((resolve, reject) => {
60
+ var fulfilled = (value) => {
61
+ try {
62
+ step(generator.next(value));
63
+ } catch (e) {
64
+ reject(e);
65
+ }
66
+ };
67
+ var rejected = (value) => {
68
+ try {
69
+ step(generator.throw(value));
70
+ } catch (e) {
71
+ reject(e);
72
+ }
73
+ };
74
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
75
+ step((generator = generator.apply(__this, __arguments)).next());
76
+ });
77
+ };
58
78
 
59
- // src/deposit/index.tsx
60
- var deposit_exports = {};
61
- __export(deposit_exports, {
62
- DepositModal: () => DepositModal
79
+ // src/modals/index.ts
80
+ var modals_exports = {};
81
+ __export(modals_exports, {
82
+ ConnectAccountsStep: () => ConnectAccountsStep,
83
+ ConnectKalshiModal: () => ConnectKalshiModal,
84
+ ConnectOnchainModal: () => ConnectOnchainModal,
85
+ DepositModal: () => DepositModal,
86
+ HowItWorksStep: () => HowItWorksStep,
87
+ OnboardingModal: () => OnboardingModal,
88
+ ProfileModal: () => ProfileModal,
89
+ ProfileSetupStep: () => ProfileSetupStep,
90
+ WithdrawModal: () => WithdrawModal
63
91
  });
64
- module.exports = __toCommonJS(deposit_exports);
92
+ module.exports = __toCommonJS(modals_exports);
93
+
94
+ // src/deposit/index.tsx
65
95
  var import_react4 = require("react");
66
96
 
67
97
  // src/primitives/modal/index.tsx
@@ -2795,7 +2825,1742 @@ var DepositModal = ({
2795
2825
  ] }) });
2796
2826
  };
2797
2827
  DepositModal.displayName = "DepositModal";
2828
+
2829
+ // src/withdraw/index.tsx
2830
+ var import_react6 = require("react");
2831
+
2832
+ // src/withdraw/withdraw-modal.constants.ts
2833
+ var KALSHI_VENUE2 = "kalshi";
2834
+ var KALSHI_WITHDRAW_URL_DEFAULT = "https://kalshi.com/account/withdraw";
2835
+
2836
+ // src/withdraw/steps/venue-selection.tsx
2837
+ var import_jsx_runtime57 = require("react/jsx-runtime");
2838
+ var VenueRow2 = ({ venue, onSelect }) => {
2839
+ var _a, _b;
2840
+ const displayName = (_a = venueLogoLabels[venue.venue]) != null ? _a : venue.venue;
2841
+ const isDisabled = venue.disabled === true;
2842
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
2843
+ "div",
2844
+ {
2845
+ className: cn(
2846
+ "flex items-center gap-3 sm:gap-4",
2847
+ "rounded-xl border border-separator",
2848
+ "p-3 sm:p-4",
2849
+ "transition-colors",
2850
+ isDisabled ? "opacity-50 cursor-not-allowed" : "hover:bg-secondary-hover cursor-pointer"
2851
+ ),
2852
+ role: "button",
2853
+ tabIndex: isDisabled ? -1 : 0,
2854
+ "aria-disabled": isDisabled,
2855
+ onClick: () => {
2856
+ if (!isDisabled)
2857
+ onSelect(venue.venue);
2858
+ },
2859
+ onKeyDown: (e) => {
2860
+ if (!isDisabled && (e.key === "Enter" || e.key === " ")) {
2861
+ e.preventDefault();
2862
+ onSelect(venue.venue);
2863
+ }
2864
+ },
2865
+ children: [
2866
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(VenueLogo, { venue: venue.venue, size: "large", className: "rounded-lg" }) }),
2867
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex-1 min-w-0", children: [
2868
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "agg-type-body-strong text-agg-foreground", children: displayName }),
2869
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("p", { className: "agg-type-label text-agg-muted-foreground", children: [
2870
+ "Balance ",
2871
+ formatCompactUsd(venue.balance)
2872
+ ] })
2873
+ ] }),
2874
+ isDisabled ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "agg-type-label text-agg-muted-foreground", children: (_b = venue.disabledReason) != null ? _b : "Unavailable" }) }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
2875
+ Button,
2876
+ {
2877
+ variant: "secondary",
2878
+ size: "small",
2879
+ suffix: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ChevronRightIcon, {}),
2880
+ onClick: (e) => {
2881
+ e.stopPropagation();
2882
+ onSelect(venue.venue);
2883
+ },
2884
+ children: "Select"
2885
+ }
2886
+ ) })
2887
+ ]
2888
+ }
2889
+ );
2890
+ };
2891
+ var VenueSelectionStep2 = ({
2892
+ venues,
2893
+ onSelectVenue
2894
+ }) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
2895
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Modal.Header, { title: "Withdraw", hideBorder: true }),
2896
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Modal.Body, { classNames: { root: "px-5 pt-0 pb-6 sm:px-8 sm:pt-0 sm:pb-8" }, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col gap-4", children: [
2897
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "agg-type-body text-agg-foreground", children: "Choose where to withdraw funds from:" }),
2898
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "flex flex-col gap-3", children: venues.map((venue) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(VenueRow2, { venue, onSelect: onSelectVenue }, venue.venue)) })
2899
+ ] }) })
2900
+ ] });
2901
+
2902
+ // src/withdraw/steps/withdraw-method.tsx
2903
+ var import_jsx_runtime58 = require("react/jsx-runtime");
2904
+ var WithdrawMethodCard = ({
2905
+ icon,
2906
+ title,
2907
+ description,
2908
+ onContinue
2909
+ }) => /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
2910
+ "div",
2911
+ {
2912
+ className: cn(
2913
+ "flex items-center gap-3 sm:gap-4",
2914
+ "rounded-xl border border-separator",
2915
+ "p-3 sm:p-4",
2916
+ "hover:bg-secondary-hover transition-colors cursor-pointer"
2917
+ ),
2918
+ role: "button",
2919
+ tabIndex: 0,
2920
+ onClick: onContinue,
2921
+ onKeyDown: (e) => {
2922
+ if (e.key === "Enter" || e.key === " ") {
2923
+ e.preventDefault();
2924
+ onContinue();
2925
+ }
2926
+ },
2927
+ children: [
2928
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "shrink-0 flex items-center justify-center h-10 w-10 rounded-lg bg-secondary-hover", children: icon }),
2929
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex-1 min-w-0", children: [
2930
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "agg-type-body-strong text-agg-foreground", children: title }),
2931
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "agg-type-label text-agg-muted-foreground", children: description })
2932
+ ] }),
2933
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2934
+ Button,
2935
+ {
2936
+ variant: "secondary",
2937
+ size: "small",
2938
+ suffix: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ChevronRightIcon, {}),
2939
+ onClick: (e) => {
2940
+ e.stopPropagation();
2941
+ onContinue();
2942
+ },
2943
+ children: "Continue"
2944
+ }
2945
+ ) })
2946
+ ]
2947
+ }
2948
+ );
2949
+ var WithdrawMethodStep = ({
2950
+ venue,
2951
+ onBack,
2952
+ onSelectMethod
2953
+ }) => {
2954
+ var _a;
2955
+ const displayName = (_a = venueLogoLabels[venue.venue]) != null ? _a : venue.venue;
2956
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment, { children: [
2957
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2958
+ Modal.Header,
2959
+ {
2960
+ title: `Withdraw from ${displayName}`,
2961
+ hideBorder: true,
2962
+ leftElement: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2963
+ "button",
2964
+ {
2965
+ type: "button",
2966
+ className: "mr-2 flex items-center justify-center text-agg-foreground transition-colors hover:cursor-pointer hover:text-agg-foreground/80",
2967
+ onClick: onBack,
2968
+ "aria-label": "Go back",
2969
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ChevronLeftIcon, { className: "h-6 w-6" })
2970
+ }
2971
+ )
2972
+ }
2973
+ ),
2974
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Modal.Body, { classNames: { root: "px-5 pt-0 pb-6 sm:px-8 sm:pt-0 sm:pb-8" }, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex flex-col gap-4", children: [
2975
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-2", children: [
2976
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(VenueLogo, { venue: venue.venue, size: "small", className: "rounded-sm" }),
2977
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("p", { className: "agg-type-label text-agg-muted-foreground", children: [
2978
+ displayName,
2979
+ " balance: ",
2980
+ formatCompactUsd(venue.balance)
2981
+ ] })
2982
+ ] }),
2983
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex flex-col gap-3", children: [
2984
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2985
+ WithdrawMethodCard,
2986
+ {
2987
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(WalletIcon, { className: "h-6 w-6 text-agg-foreground" }),
2988
+ title: "Withdraw to Wallet",
2989
+ description: "Send funds to your crypto wallet as USDC.",
2990
+ onContinue: () => onSelectMethod("wallet")
2991
+ }
2992
+ ),
2993
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
2994
+ WithdrawMethodCard,
2995
+ {
2996
+ icon: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(BankIcon, { className: "h-6 w-6 text-agg-foreground" }),
2997
+ title: "Withdraw to Bank",
2998
+ description: "Transfer funds to your linked bank account.",
2999
+ onContinue: () => onSelectMethod("bank")
3000
+ }
3001
+ )
3002
+ ] })
3003
+ ] }) })
3004
+ ] });
3005
+ };
3006
+
3007
+ // src/withdraw/steps/withdraw-amount.tsx
3008
+ var import_react5 = require("react");
3009
+ var import_jsx_runtime59 = require("react/jsx-runtime");
3010
+ var WithdrawAmountStep = ({
3011
+ venue,
3012
+ method,
3013
+ onBack,
3014
+ onContinue
3015
+ }) => {
3016
+ var _a;
3017
+ const [rawAmount, setRawAmount] = (0, import_react5.useState)("");
3018
+ const displayName = (_a = venueLogoLabels[venue.venue]) != null ? _a : venue.venue;
3019
+ const numericAmount = Number(rawAmount) || 0;
3020
+ const isValid = numericAmount > 0 && numericAmount <= venue.balance;
3021
+ const exceedsBalance = numericAmount > venue.balance;
3022
+ const methodLabel = method === "wallet" ? "Wallet" : "Bank";
3023
+ const handleAmountChange = (0, import_react5.useCallback)((e) => {
3024
+ const v = e.target.value.replace(/[^0-9.]/g, "");
3025
+ const parts = v.split(".");
3026
+ const sanitized = parts.length > 2 ? `${parts[0]}.${parts.slice(1).join("")}` : v;
3027
+ setRawAmount(sanitized);
3028
+ }, []);
3029
+ const handleMax = (0, import_react5.useCallback)(() => {
3030
+ setRawAmount(venue.balance.toString());
3031
+ }, [venue.balance]);
3032
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(import_jsx_runtime59.Fragment, { children: [
3033
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3034
+ Modal.Header,
3035
+ {
3036
+ title: `Withdraw to ${methodLabel}`,
3037
+ hideBorder: true,
3038
+ leftElement: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3039
+ "button",
3040
+ {
3041
+ type: "button",
3042
+ className: "mr-2 flex items-center justify-center text-agg-foreground transition-colors hover:cursor-pointer hover:text-agg-foreground/80",
3043
+ onClick: onBack,
3044
+ "aria-label": "Go back",
3045
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ChevronLeftIcon, { className: "h-6 w-6" })
3046
+ }
3047
+ )
3048
+ }
3049
+ ),
3050
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Modal.Body, { classNames: { root: "px-5 pt-0 pb-6 sm:px-8 sm:pt-0 sm:pb-8" }, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex flex-col gap-6", children: [
3051
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center justify-between", children: [
3052
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-2", children: [
3053
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(VenueLogo, { venue: venue.venue, size: "small", className: "rounded-sm" }),
3054
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("p", { className: "agg-type-label text-agg-muted-foreground", children: [
3055
+ displayName,
3056
+ " balance: ",
3057
+ formatCompactUsd(venue.balance)
3058
+ ] })
3059
+ ] }),
3060
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3061
+ "button",
3062
+ {
3063
+ type: "button",
3064
+ className: "agg-type-label-strong text-agg-primary transition-colors hover:text-agg-primary/80",
3065
+ onClick: handleMax,
3066
+ children: "Max"
3067
+ }
3068
+ )
3069
+ ] }),
3070
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex-1 min-w-0", children: [
3071
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-baseline", children: [
3072
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "agg-type-display text-agg-foreground", children: "$" }),
3073
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3074
+ "input",
3075
+ {
3076
+ type: "text",
3077
+ inputMode: "decimal",
3078
+ "aria-label": "Amount",
3079
+ className: cn(
3080
+ "agg-type-display w-full bg-transparent outline-none",
3081
+ exceedsBalance ? "text-agg-error" : numericAmount > 0 ? "text-agg-foreground" : "text-agg-muted-foreground"
3082
+ ),
3083
+ placeholder: "0",
3084
+ value: rawAmount ? formatAmountDisplay(rawAmount) : "",
3085
+ onChange: handleAmountChange
3086
+ }
3087
+ )
3088
+ ] }),
3089
+ exceedsBalance ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: "agg-type-label mt-2 text-agg-error", children: "Amount exceeds available balance" }) : null
3090
+ ] }),
3091
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
3092
+ Button,
3093
+ {
3094
+ variant: "primary",
3095
+ size: "large",
3096
+ className: "w-full",
3097
+ disabled: !isValid,
3098
+ onClick: () => onContinue(numericAmount),
3099
+ children: "Continue"
3100
+ }
3101
+ )
3102
+ ] }) })
3103
+ ] });
3104
+ };
3105
+
3106
+ // src/withdraw/steps/kalshi-withdraw.tsx
3107
+ var import_jsx_runtime60 = require("react/jsx-runtime");
3108
+ var KalshiStepCard2 = ({
3109
+ step,
3110
+ title,
3111
+ description,
3112
+ children
3113
+ }) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex flex-col gap-2 rounded-xl bg-secondary-hover p-4", children: [
3114
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("p", { className: "agg-type-caption-caps text-agg-muted-foreground", children: [
3115
+ "Step ",
3116
+ step
3117
+ ] }),
3118
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex flex-col gap-1", children: [
3119
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "agg-type-label-strong text-agg-foreground", children: title }),
3120
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "agg-type-label text-agg-foreground", children: description })
3121
+ ] }),
3122
+ children
3123
+ ] });
3124
+ var KalshiWithdrawStep = ({
3125
+ withdrawUrl,
3126
+ onDone
3127
+ }) => /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(import_jsx_runtime60.Fragment, { children: [
3128
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Modal.Header, { title: "", hideBorder: true }),
3129
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Modal.Body, { classNames: { root: "px-5 pt-0 pb-6 sm:px-8 sm:pt-0 sm:pb-8" }, children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex flex-col items-center gap-8", children: [
3130
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3131
+ VenueLogo,
3132
+ {
3133
+ venue: "kalshi",
3134
+ size: "large",
3135
+ className: "h-[60px] w-[60px] rounded-lg"
3136
+ }
3137
+ ),
3138
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex flex-col items-center gap-4 text-center", children: [
3139
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("h2", { className: "agg-type-heading text-agg-foreground", children: "Withdraw from Kalshi" }),
3140
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: "agg-type-body text-agg-foreground", children: "To withdraw from Kalshi you'll need to initiate the withdrawal from your Kalshi account directly on Kalshi's site." })
3141
+ ] }),
3142
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex w-full flex-col gap-4", children: [
3143
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3144
+ KalshiStepCard2,
3145
+ {
3146
+ step: 1,
3147
+ title: "Open Kalshi Withdraw Page",
3148
+ description: "Sign in to your Kalshi account and go to Withdraw from your account menu.",
3149
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "mt-1", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3150
+ Button,
3151
+ {
3152
+ variant: "secondary",
3153
+ size: "small",
3154
+ suffix: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ExternalLinkIcon, { className: "h-3.5 w-3.5" }),
3155
+ onClick: () => {
3156
+ window.open(withdrawUrl, "_blank", "noopener,noreferrer");
3157
+ },
3158
+ children: "Open Kalshi"
3159
+ }
3160
+ ) })
3161
+ }
3162
+ ),
3163
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3164
+ KalshiStepCard2,
3165
+ {
3166
+ step: 2,
3167
+ title: "Choose a Withdrawal Method",
3168
+ description: "Select a withdrawal method: Bank transfer (ACH), Wire, or USDC (crypto)."
3169
+ }
3170
+ ),
3171
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
3172
+ KalshiStepCard2,
3173
+ {
3174
+ step: 3,
3175
+ title: "Complete Your Withdrawal",
3176
+ description: "Follow the on-screen instructions to confirm your withdrawal. Funds may take a few business days to arrive."
3177
+ }
3178
+ )
3179
+ ] }),
3180
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(Button, { variant: "secondary", size: "large", onClick: onDone, children: "Done" })
3181
+ ] }) })
3182
+ ] });
3183
+
3184
+ // src/withdraw/index.tsx
3185
+ var import_jsx_runtime61 = require("react/jsx-runtime");
3186
+ var WithdrawModal = ({
3187
+ open,
3188
+ onOpenChange,
3189
+ venues,
3190
+ onSelectVenue,
3191
+ onSelectWithdrawMethod,
3192
+ onContinueWalletWithdraw,
3193
+ onContinueBankWithdraw,
3194
+ onDoneKalshi,
3195
+ kalshiWithdrawUrl = KALSHI_WITHDRAW_URL_DEFAULT
3196
+ }) => {
3197
+ const [step, setStep] = (0, import_react6.useState)("venues");
3198
+ const [selectedVenue, setSelectedVenue] = (0, import_react6.useState)(null);
3199
+ const [selectedMethod, setSelectedMethod] = (0, import_react6.useState)(null);
3200
+ const handleSelectVenue = (venueSlug) => {
3201
+ onSelectVenue(venueSlug);
3202
+ if (venueSlug === KALSHI_VENUE2) {
3203
+ setStep("kalshi");
3204
+ return;
3205
+ }
3206
+ const venueData = venues.find((v) => v.venue === venueSlug);
3207
+ if (venueData) {
3208
+ setSelectedVenue(venueData);
3209
+ setStep("method");
3210
+ }
3211
+ };
3212
+ const handleBackToVenues = () => {
3213
+ setStep("venues");
3214
+ setSelectedVenue(null);
3215
+ setSelectedMethod(null);
3216
+ };
3217
+ const handleBackToMethod = () => {
3218
+ setStep("method");
3219
+ setSelectedMethod(null);
3220
+ };
3221
+ const handleSelectMethod = (method) => {
3222
+ if (!selectedVenue)
3223
+ return;
3224
+ setSelectedMethod(method);
3225
+ setStep("withdraw-amount");
3226
+ onSelectWithdrawMethod == null ? void 0 : onSelectWithdrawMethod(selectedVenue.venue, method);
3227
+ };
3228
+ const handleContinueWithdraw = (amount) => {
3229
+ if (!selectedVenue || !selectedMethod)
3230
+ return;
3231
+ if (selectedMethod === "wallet") {
3232
+ onContinueWalletWithdraw == null ? void 0 : onContinueWalletWithdraw(selectedVenue.venue, amount);
3233
+ } else {
3234
+ onContinueBankWithdraw == null ? void 0 : onContinueBankWithdraw(selectedVenue.venue, amount);
3235
+ }
3236
+ };
3237
+ const handleDoneKalshi = () => {
3238
+ onDoneKalshi == null ? void 0 : onDoneKalshi();
3239
+ onOpenChange(false);
3240
+ };
3241
+ const handleOpenChange = (isOpen) => {
3242
+ if (!isOpen) {
3243
+ setStep("venues");
3244
+ setSelectedVenue(null);
3245
+ setSelectedMethod(null);
3246
+ }
3247
+ onOpenChange(isOpen);
3248
+ };
3249
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(Modal.Container, { maxWidth: "600px", "aria-label": "Withdraw", children: [
3250
+ step === "venues" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(VenueSelectionStep2, { venues, onSelectVenue: handleSelectVenue }) : null,
3251
+ step === "method" && selectedVenue ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3252
+ WithdrawMethodStep,
3253
+ {
3254
+ venue: selectedVenue,
3255
+ onBack: handleBackToVenues,
3256
+ onSelectMethod: handleSelectMethod
3257
+ }
3258
+ ) : null,
3259
+ step === "withdraw-amount" && selectedVenue && selectedMethod ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
3260
+ WithdrawAmountStep,
3261
+ {
3262
+ venue: selectedVenue,
3263
+ method: selectedMethod,
3264
+ onBack: handleBackToMethod,
3265
+ onContinue: handleContinueWithdraw
3266
+ }
3267
+ ) : null,
3268
+ step === "kalshi" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(KalshiWithdrawStep, { withdrawUrl: kalshiWithdrawUrl, onDone: handleDoneKalshi }) : null
3269
+ ] }) });
3270
+ };
3271
+ WithdrawModal.displayName = "WithdrawModal";
3272
+
3273
+ // src/onboarding/index.tsx
3274
+ var import_react11 = require("react");
3275
+ var import_hooks10 = require("@agg-market/hooks");
3276
+ var Dialog4 = __toESM(require("@radix-ui/react-dialog"));
3277
+
3278
+ // src/onboarding/onboarding-modal.constants.ts
3279
+ var HOW_IT_WORKS_FEATURE_KEYS = [
3280
+ "createAccount",
3281
+ "linkAccounts",
3282
+ "bestPrices",
3283
+ "stayInControl"
3284
+ ];
3285
+ var ONBOARDING_STEPS = {
3286
+ HOW_IT_WORKS: 0,
3287
+ PROFILE_SETUP: 1,
3288
+ CONNECT_ACCOUNTS: 2
3289
+ };
3290
+ var ONCHAIN_VENUES = [
3291
+ "polymarket",
3292
+ "opinion",
3293
+ "probable"
3294
+ ];
3295
+
3296
+ // src/onboarding/steps/how-it-works.tsx
3297
+ var import_react7 = require("react");
3298
+ var import_hooks5 = require("@agg-market/hooks");
3299
+ var import_jsx_runtime62 = require("react/jsx-runtime");
3300
+ var defaultIcons = {
3301
+ createAccount: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CreateAccountIcon, { className: "h-[28px] w-[28px] text-agg-muted-foreground" }),
3302
+ linkAccounts: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(LinkAccountsIcon, { className: "h-[28px] w-[28px] text-agg-muted-foreground" }),
3303
+ bestPrices: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(BestPricesIcon, { className: "h-[28px] w-[28px] text-agg-muted-foreground" }),
3304
+ stayInControl: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(StayInControlIcon, { className: "h-[28px] w-[28px] text-agg-muted-foreground" })
3305
+ };
3306
+ var HowItWorksStep = ({ onContinue, icons }) => {
3307
+ const labels = (0, import_hooks5.useLabels)();
3308
+ const scrollRef = (0, import_react7.useRef)(null);
3309
+ const [showTopGradient, setShowTopGradient] = (0, import_react7.useState)(false);
3310
+ const [showBottomGradient, setShowBottomGradient] = (0, import_react7.useState)(true);
3311
+ const handleScroll = (0, import_react7.useCallback)(() => {
3312
+ const el = scrollRef.current;
3313
+ if (!el)
3314
+ return;
3315
+ setShowTopGradient(el.scrollTop > 0);
3316
+ setShowBottomGradient(el.scrollTop + el.clientHeight < el.scrollHeight - 1);
3317
+ }, []);
3318
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex flex-col gap-6 h-[600px] sm:h-auto", children: [
3319
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("h2", { className: "text-center text-agg-2xl font-agg-bold text-agg-foreground", children: labels.onboarding.howItWorks.title }),
3320
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "relative flex-1 min-h-0 sm:flex-initial", children: [
3321
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3322
+ "div",
3323
+ {
3324
+ ref: scrollRef,
3325
+ onScroll: handleScroll,
3326
+ className: "flex flex-col gap-4 overflow-y-auto sm:overflow-visible h-full",
3327
+ children: HOW_IT_WORKS_FEATURE_KEYS.map((featureKey) => {
3328
+ var _a;
3329
+ const icon = (_a = icons == null ? void 0 : icons[featureKey]) != null ? _a : defaultIcons[featureKey];
3330
+ const feature = labels.onboarding.howItWorks.features[featureKey];
3331
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
3332
+ "div",
3333
+ {
3334
+ className: cn(
3335
+ "flex items-center gap-4 py-4 px-5 sm:px-4",
3336
+ "rounded-agg-md",
3337
+ "bg-agg-secondary-hover"
3338
+ ),
3339
+ children: [
3340
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex flex-col flex-1 min-w-0 gap-[6px]", children: [
3341
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-agg-base font-agg-bold leading-agg-6 text-agg-foreground", children: feature.title }),
3342
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-agg-sm leading-agg-5 text-agg-foreground", children: feature.description })
3343
+ ] }),
3344
+ icon ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "hidden shrink-0 items-center justify-center text-agg-muted-foreground sm:flex", children: icon }) : null
3345
+ ]
3346
+ },
3347
+ featureKey
3348
+ );
3349
+ })
3350
+ }
3351
+ ),
3352
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3353
+ "div",
3354
+ {
3355
+ className: cn(
3356
+ "pointer-events-none absolute inset-x-0 top-0 h-20",
3357
+ "bg-gradient-to-b from-agg-secondary to-transparent",
3358
+ "sm:hidden transition-opacity",
3359
+ showTopGradient ? "opacity-100" : "opacity-0"
3360
+ )
3361
+ }
3362
+ ),
3363
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
3364
+ "div",
3365
+ {
3366
+ className: cn(
3367
+ "pointer-events-none absolute inset-x-0 bottom-0 h-20",
3368
+ "bg-gradient-to-t from-agg-secondary to-transparent",
3369
+ "sm:hidden transition-opacity",
3370
+ showBottomGradient ? "opacity-100" : "opacity-0"
3371
+ )
3372
+ }
3373
+ )
3374
+ ] }),
3375
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Button, { variant: "primary", size: "large", className: "w-full", onClick: onContinue, children: labels.onboarding.howItWorks.continue })
3376
+ ] });
3377
+ };
3378
+ HowItWorksStep.displayName = "HowItWorksStep";
3379
+
3380
+ // src/onboarding/steps/profile-setup.tsx
3381
+ var import_react8 = require("react");
3382
+ var import_hooks6 = require("@agg-market/hooks");
3383
+ var import_jsx_runtime63 = require("react/jsx-runtime");
3384
+ var ProfileSetupStep = ({ onContinue }) => {
3385
+ const labels = (0, import_hooks6.useLabels)();
3386
+ const [username, setUsername] = (0, import_react8.useState)("");
3387
+ const [avatarFile, setAvatarFile] = (0, import_react8.useState)();
3388
+ const [avatarPreview, setAvatarPreview] = (0, import_react8.useState)();
3389
+ const fileInputRef = (0, import_react8.useRef)(null);
3390
+ const handleAvatarClick = (0, import_react8.useCallback)(() => {
3391
+ var _a;
3392
+ (_a = fileInputRef.current) == null ? void 0 : _a.click();
3393
+ }, []);
3394
+ const handleFileChange = (0, import_react8.useCallback)((e) => {
3395
+ var _a;
3396
+ const file = (_a = e.target.files) == null ? void 0 : _a[0];
3397
+ if (!file)
3398
+ return;
3399
+ setAvatarFile(file);
3400
+ const reader = new FileReader();
3401
+ reader.onload = (event) => {
3402
+ var _a2;
3403
+ setAvatarPreview((_a2 = event.target) == null ? void 0 : _a2.result);
3404
+ };
3405
+ reader.readAsDataURL(file);
3406
+ }, []);
3407
+ const handleContinue = (0, import_react8.useCallback)(() => {
3408
+ onContinue({
3409
+ username,
3410
+ avatarFile,
3411
+ avatarPreview
3412
+ });
3413
+ }, [username, avatarFile, avatarPreview, onContinue]);
3414
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex flex-col gap-7", children: [
3415
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("h2", { className: "text-center text-agg-2xl font-agg-bold text-agg-foreground", children: labels.onboarding.profileSetup.title }),
3416
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex flex-col gap-5 items-center w-full", children: [
3417
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex justify-center", children: [
3418
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3419
+ "button",
3420
+ {
3421
+ type: "button",
3422
+ onClick: handleAvatarClick,
3423
+ className: cn(
3424
+ "relative flex items-center justify-center",
3425
+ "h-[80px] w-[80px]",
3426
+ "rounded-agg-full",
3427
+ "border border-dashed border-agg-separator",
3428
+ "bg-agg-secondary-hover",
3429
+ "hover:bg-agg-tertiary",
3430
+ "transition-colors cursor-pointer",
3431
+ "overflow-hidden"
3432
+ ),
3433
+ "aria-label": labels.onboarding.profileSetup.uploadProfilePictureAria,
3434
+ children: avatarPreview ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3435
+ "img",
3436
+ {
3437
+ src: avatarPreview,
3438
+ alt: labels.onboarding.profileSetup.profilePreviewAlt,
3439
+ className: "h-full w-full object-cover"
3440
+ }
3441
+ ) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(ProfileIcon, { className: "h-7 w-7 text-agg-muted-foreground" })
3442
+ }
3443
+ ),
3444
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3445
+ "input",
3446
+ {
3447
+ ref: fileInputRef,
3448
+ type: "file",
3449
+ accept: "image/*",
3450
+ onChange: handleFileChange,
3451
+ className: "hidden",
3452
+ "aria-hidden": "true"
3453
+ }
3454
+ )
3455
+ ] }),
3456
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex flex-col gap-2 w-full", children: [
3457
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3458
+ "label",
3459
+ {
3460
+ htmlFor: "onboarding-username",
3461
+ className: "text-agg-sm font-agg-bold text-agg-foreground",
3462
+ children: labels.onboarding.profileSetup.usernameLabel
3463
+ }
3464
+ ),
3465
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
3466
+ "input",
3467
+ {
3468
+ id: "onboarding-username",
3469
+ type: "text",
3470
+ value: username,
3471
+ onChange: (e) => setUsername(e.target.value),
3472
+ placeholder: labels.onboarding.profileSetup.usernamePlaceholder,
3473
+ className: cn(
3474
+ "w-full px-3 py-2.5",
3475
+ "rounded-[4px]",
3476
+ "border border-agg-separator",
3477
+ "bg-agg-secondary text-agg-foreground",
3478
+ "placeholder:text-agg-muted-foreground",
3479
+ "outline-none",
3480
+ "hover:bg-agg-secondary-hover",
3481
+ "focus:border-agg-primary focus:ring-1 focus:ring-agg-primary",
3482
+ "transition-colors",
3483
+ "text-agg-sm sm:text-agg-base"
3484
+ )
3485
+ }
3486
+ )
3487
+ ] })
3488
+ ] }),
3489
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Button, { variant: "primary", size: "large", className: "w-full", onClick: handleContinue, children: labels.onboarding.profileSetup.continue })
3490
+ ] });
3491
+ };
3492
+ ProfileSetupStep.displayName = "ProfileSetupStep";
3493
+
3494
+ // src/onboarding/steps/connect-accounts.tsx
3495
+ var import_hooks7 = require("@agg-market/hooks");
3496
+ var import_jsx_runtime64 = require("react/jsx-runtime");
3497
+ var OnchainVenueLogos = () => {
3498
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex gap-1 sm:gap-0 sm:-space-x-5", children: ONCHAIN_VENUES.map((venue, index) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { style: { zIndex: ONCHAIN_VENUES.length - index }, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(VenueLogo, { venue, variant: "logo", size: "medium", className: "sm:h-8 sm:w-8" }) }, venue)) });
3499
+ };
3500
+ var VenueCard = ({
3501
+ logos,
3502
+ title,
3503
+ mobileTitle,
3504
+ description,
3505
+ mobileDescription,
3506
+ onConnect,
3507
+ connected = false
3508
+ }) => {
3509
+ const labels = (0, import_hooks7.useLabels)();
3510
+ const action = connected ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(CheckCircleIcon, { className: "h-6 w-6 text-agg-success" }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3511
+ Button,
3512
+ {
3513
+ variant: "tertiary",
3514
+ size: "large",
3515
+ className: "!h-auto !px-0 !py-0 text-agg-primary hover:bg-transparent hover:text-agg-primary-hover",
3516
+ onClick: onConnect,
3517
+ children: labels.onboarding.connectAccounts.connect
3518
+ }
3519
+ );
3520
+ const mobileAction = connected ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(CheckCircleIcon, { className: "h-6 w-6 text-agg-success" }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3521
+ Button,
3522
+ {
3523
+ variant: "tertiary",
3524
+ size: "medium",
3525
+ className: "!h-auto !px-0 !py-0 text-agg-primary hover:bg-transparent hover:text-agg-primary-hover",
3526
+ onClick: onConnect,
3527
+ suffix: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ChevronRightIcon, { className: "h-4 w-4" }),
3528
+ children: labels.onboarding.connectAccounts.connectAccount
3529
+ }
3530
+ );
3531
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
3532
+ "div",
3533
+ {
3534
+ className: cn(
3535
+ "rounded-agg-md p-5 transition-colors",
3536
+ connected ? "bg-agg-success/5" : "bg-agg-secondary-hover hover:bg-agg-tertiary"
3537
+ ),
3538
+ children: [
3539
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "hidden sm:flex items-center justify-between", children: [
3540
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-5", children: [
3541
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "shrink-0", children: logos }),
3542
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col gap-[2px]", children: [
3543
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-agg-base font-agg-bold text-agg-foreground", children: title }),
3544
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-agg-sm text-agg-foreground", children: description })
3545
+ ] })
3546
+ ] }),
3547
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "shrink-0", children: action })
3548
+ ] }),
3549
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col gap-3 sm:hidden", children: [
3550
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col gap-3", children: [
3551
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "shrink-0", children: logos }),
3552
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-agg-lg font-agg-bold text-agg-foreground", children: mobileTitle != null ? mobileTitle : title })
3553
+ ] }),
3554
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col items-start gap-2", children: [
3555
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-agg-base text-agg-foreground", children: mobileDescription != null ? mobileDescription : description }),
3556
+ mobileAction
3557
+ ] })
3558
+ ] })
3559
+ ]
3560
+ }
3561
+ );
3562
+ };
3563
+ var ConnectAccountsStep = ({
3564
+ onConnectOnchain,
3565
+ onConnectKalshi,
3566
+ onContinue,
3567
+ connectedOnchain = false,
3568
+ connectedKalshi = false
3569
+ }) => {
3570
+ const labels = (0, import_hooks7.useLabels)();
3571
+ const canContinue = connectedOnchain || connectedKalshi;
3572
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col gap-6", children: [
3573
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("h2", { className: "text-center text-agg-2xl font-agg-bold text-agg-foreground", children: labels.onboarding.connectAccounts.title }),
3574
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col gap-4", children: [
3575
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3576
+ VenueCard,
3577
+ {
3578
+ logos: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(OnchainVenueLogos, {}),
3579
+ title: labels.onboarding.connectAccounts.onchainTitle,
3580
+ mobileTitle: labels.onboarding.connectAccounts.onchainMobileTitle(
3581
+ ONCHAIN_VENUES.length - 1
3582
+ ),
3583
+ description: labels.onboarding.connectAccounts.onchainDescription,
3584
+ mobileDescription: labels.onboarding.connectAccounts.onchainMobileDescription,
3585
+ onConnect: onConnectOnchain,
3586
+ connected: connectedOnchain
3587
+ }
3588
+ ),
3589
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3590
+ VenueCard,
3591
+ {
3592
+ logos: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "sm:flex sm:w-14 sm:items-center sm:justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3593
+ VenueLogo,
3594
+ {
3595
+ venue: "kalshi",
3596
+ variant: "logo",
3597
+ size: "large",
3598
+ className: "h-6 w-6 sm:h-9 sm:w-9"
3599
+ }
3600
+ ) }),
3601
+ title: labels.onboarding.connectAccounts.kalshiTitle,
3602
+ mobileTitle: labels.onboarding.connectAccounts.kalshiMobileTitle,
3603
+ description: labels.onboarding.connectAccounts.kalshiDescription,
3604
+ mobileDescription: labels.onboarding.connectAccounts.kalshiMobileDescription,
3605
+ onConnect: onConnectKalshi,
3606
+ connected: connectedKalshi
3607
+ }
3608
+ )
3609
+ ] }),
3610
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
3611
+ Button,
3612
+ {
3613
+ variant: "primary",
3614
+ size: "large",
3615
+ className: "w-full",
3616
+ onClick: onContinue,
3617
+ disabled: !canContinue,
3618
+ children: labels.onboarding.connectAccounts.continue
3619
+ }
3620
+ )
3621
+ ] });
3622
+ };
3623
+ ConnectAccountsStep.displayName = "ConnectAccountsStep";
3624
+
3625
+ // src/onboarding/steps/connect-kalshi-modal.tsx
3626
+ var import_react9 = require("react");
3627
+ var import_hooks8 = require("@agg-market/hooks");
3628
+ var Dialog2 = __toESM(require("@radix-ui/react-dialog"));
3629
+ var import_jsx_runtime65 = require("react/jsx-runtime");
3630
+ var ConnectKalshiModal = ({
3631
+ open,
3632
+ onOpenChange,
3633
+ onVerify
3634
+ }) => {
3635
+ const labels = (0, import_hooks8.useLabels)();
3636
+ const [apiKeyId, setApiKeyId] = (0, import_react9.useState)("");
3637
+ const [privateKey, setPrivateKey] = (0, import_react9.useState)("");
3638
+ const [verifying, setVerifying] = (0, import_react9.useState)(false);
3639
+ const [error, setError] = (0, import_react9.useState)();
3640
+ const canVerify = apiKeyId.trim().length > 0 && privateKey.trim().length > 0;
3641
+ const handleCancel = (0, import_react9.useCallback)(() => {
3642
+ onOpenChange(false);
3643
+ }, [onOpenChange]);
3644
+ const handleVerify = (0, import_react9.useCallback)(() => __async(void 0, null, function* () {
3645
+ if (!canVerify || verifying)
3646
+ return;
3647
+ setVerifying(true);
3648
+ setError(void 0);
3649
+ try {
3650
+ const credentials = {
3651
+ apiKeyId: apiKeyId.trim(),
3652
+ privateKey: privateKey.trim()
3653
+ };
3654
+ yield onVerify(credentials);
3655
+ setApiKeyId("");
3656
+ setPrivateKey("");
3657
+ onOpenChange(false);
3658
+ } catch (err) {
3659
+ setError(
3660
+ err instanceof Error ? err.message : labels.onboarding.connectKalshiModal.fallbackError
3661
+ );
3662
+ } finally {
3663
+ setVerifying(false);
3664
+ }
3665
+ }), [
3666
+ apiKeyId,
3667
+ canVerify,
3668
+ labels.onboarding.connectKalshiModal.fallbackError,
3669
+ onOpenChange,
3670
+ onVerify,
3671
+ privateKey,
3672
+ verifying
3673
+ ]);
3674
+ const handleOpenChange = (0, import_react9.useCallback)(
3675
+ (value) => {
3676
+ if (value) {
3677
+ setApiKeyId("");
3678
+ setPrivateKey("");
3679
+ setError(void 0);
3680
+ setVerifying(false);
3681
+ }
3682
+ onOpenChange(value);
3683
+ },
3684
+ [onOpenChange]
3685
+ );
3686
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
3687
+ Modal.Container,
3688
+ {
3689
+ maxWidth: "600px",
3690
+ "aria-label": labels.onboarding.connectKalshiModal.ariaLabel,
3691
+ classNames: { container: "!rounded-agg-lg" },
3692
+ children: [
3693
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Dialog2.Title, { className: "sr-only", children: labels.onboarding.connectKalshiModal.title }),
3694
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3695
+ Modal.Header,
3696
+ {
3697
+ hideClose: false,
3698
+ hideBorder: true,
3699
+ classNames: {
3700
+ root: "!min-h-0",
3701
+ container: "!py-[18px] !px-8"
3702
+ }
3703
+ }
3704
+ ),
3705
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Modal.Body, { classNames: { root: "!px-5 !pt-0 !pb-[60px] sm:!px-8" }, children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-8 items-center", children: [
3706
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3707
+ VenueLogo,
3708
+ {
3709
+ venue: "kalshi",
3710
+ variant: "logo",
3711
+ size: "large",
3712
+ className: "h-[60px] w-[60px]"
3713
+ }
3714
+ ),
3715
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-4 items-center text-center", children: [
3716
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h2", { className: "text-agg-2xl font-agg-bold text-agg-foreground", children: labels.onboarding.connectKalshiModal.title }),
3717
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-agg-base leading-agg-6 text-agg-foreground", children: labels.onboarding.connectKalshiModal.description })
3718
+ ] }),
3719
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-4 w-full", children: [
3720
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-3 rounded-agg-lg bg-agg-secondary-hover p-4", children: [
3721
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-1", children: [
3722
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground", children: labels.onboarding.connectKalshiModal.stepOne.label }),
3723
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children: labels.onboarding.connectKalshiModal.stepOne.title })
3724
+ ] }),
3725
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "space-y-0 text-agg-sm leading-agg-5 text-agg-foreground", children: [
3726
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { children: labels.onboarding.connectKalshiModal.stepOne.instructions.signIn }),
3727
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { children: [
3728
+ labels.onboarding.connectKalshiModal.stepOne.instructions.goToProfilePrefix,
3729
+ " ",
3730
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-agg-bold", children: labels.onboarding.connectKalshiModal.stepOne.instructions.profileText }),
3731
+ labels.onboarding.connectKalshiModal.stepOne.instructions.goToProfileSeparator,
3732
+ " ",
3733
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-agg-foreground underline", children: labels.onboarding.connectKalshiModal.stepOne.instructions.profileUrl })
3734
+ ] }),
3735
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { children: [
3736
+ labels.onboarding.connectKalshiModal.stepOne.instructions.clickCreateKeyPrefix,
3737
+ " ",
3738
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-agg-bold", children: labels.onboarding.connectKalshiModal.stepOne.instructions.createKeyText }),
3739
+ labels.onboarding.connectKalshiModal.stepOne.instructions.clickCreateKeySuffix
3740
+ ] }),
3741
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { children: [
3742
+ labels.onboarding.connectKalshiModal.stepOne.instructions.selectPermissionsPrefix,
3743
+ " ",
3744
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "font-agg-bold", children: labels.onboarding.connectKalshiModal.stepOne.instructions.readWriteText }),
3745
+ labels.onboarding.connectKalshiModal.stepOne.instructions.selectPermissionsSuffix
3746
+ ] }),
3747
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { children: labels.onboarding.connectKalshiModal.stepOne.instructions.createKey })
3748
+ ] }),
3749
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { className: "text-agg-sm leading-agg-5 text-agg-foreground", children: [
3750
+ labels.onboarding.connectKalshiModal.stepOne.footerLineOne,
3751
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("br", {}),
3752
+ labels.onboarding.connectKalshiModal.stepOne.footerLineTwo
3753
+ ] })
3754
+ ] }),
3755
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-3 rounded-agg-lg bg-agg-secondary-hover p-4", children: [
3756
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-1", children: [
3757
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-agg-xs font-agg-bold uppercase leading-agg-4 text-agg-muted-foreground", children: labels.onboarding.connectKalshiModal.stepTwo.label }),
3758
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children: labels.onboarding.connectKalshiModal.stepTwo.title })
3759
+ ] }),
3760
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-agg-sm leading-agg-5 text-agg-foreground", children: labels.onboarding.connectKalshiModal.stepTwo.description }),
3761
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-2", children: [
3762
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3763
+ "label",
3764
+ {
3765
+ htmlFor: "kalshi-api-key-id",
3766
+ className: "text-agg-sm font-agg-bold text-agg-foreground",
3767
+ children: labels.onboarding.connectKalshiModal.stepTwo.apiKeyIdLabel
3768
+ }
3769
+ ),
3770
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3771
+ "input",
3772
+ {
3773
+ id: "kalshi-api-key-id",
3774
+ type: "text",
3775
+ value: apiKeyId,
3776
+ onChange: (e) => setApiKeyId(e.target.value),
3777
+ placeholder: labels.onboarding.connectKalshiModal.stepTwo.apiKeyIdPlaceholder,
3778
+ className: cn(
3779
+ "w-full px-3 py-2.5 h-10",
3780
+ "rounded border border-agg-separator",
3781
+ "bg-agg-secondary text-agg-base text-agg-foreground",
3782
+ "placeholder:text-agg-muted-foreground",
3783
+ "outline-none",
3784
+ "focus:border-agg-primary focus:ring-1 focus:ring-agg-primary",
3785
+ "transition-colors"
3786
+ )
3787
+ }
3788
+ )
3789
+ ] }),
3790
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-2", children: [
3791
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3792
+ "label",
3793
+ {
3794
+ htmlFor: "kalshi-private-key",
3795
+ className: "text-agg-sm font-agg-bold text-agg-foreground",
3796
+ children: labels.onboarding.connectKalshiModal.stepTwo.privateKeyLabel
3797
+ }
3798
+ ),
3799
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3800
+ "textarea",
3801
+ {
3802
+ id: "kalshi-private-key",
3803
+ value: privateKey,
3804
+ onChange: (e) => setPrivateKey(e.target.value),
3805
+ placeholder: labels.onboarding.connectKalshiModal.stepTwo.privateKeyPlaceholder,
3806
+ rows: 3,
3807
+ className: cn(
3808
+ "w-full px-3 py-2.5",
3809
+ "rounded border border-agg-separator",
3810
+ "bg-agg-secondary text-agg-base text-agg-foreground",
3811
+ "placeholder:text-agg-muted-foreground",
3812
+ "outline-none resize-none",
3813
+ "focus:border-agg-primary focus:ring-1 focus:ring-agg-primary",
3814
+ "transition-colors"
3815
+ )
3816
+ }
3817
+ )
3818
+ ] })
3819
+ ] })
3820
+ ] }),
3821
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center justify-between w-full", children: [
3822
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-agg-base text-agg-foreground", children: labels.onboarding.connectKalshiModal.help.label }),
3823
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-3", children: [
3824
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
3825
+ "a",
3826
+ {
3827
+ href: "#",
3828
+ className: "flex items-center gap-2 text-agg-base font-agg-bold text-agg-primary hover:text-agg-primary-hover",
3829
+ children: [
3830
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(DocumentIcon, { className: "h-4 w-4" }),
3831
+ labels.onboarding.connectKalshiModal.help.docsLinkLabel
3832
+ ]
3833
+ }
3834
+ ),
3835
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "h-3 w-px bg-agg-separator" }),
3836
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
3837
+ "a",
3838
+ {
3839
+ href: "#",
3840
+ className: "flex items-center gap-2 text-agg-base font-agg-bold text-agg-primary hover:text-agg-primary-hover",
3841
+ children: [
3842
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(PlaySquareIcon, { className: "h-4 w-4" }),
3843
+ labels.onboarding.connectKalshiModal.help.tutorialLinkLabel
3844
+ ]
3845
+ }
3846
+ )
3847
+ ] })
3848
+ ] }),
3849
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-5 items-center", children: [
3850
+ error ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-2", children: [
3851
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(WarningIcon, { className: "h-3.5 w-3.5 shrink-0 text-agg-error" }),
3852
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-agg-sm leading-agg-5 text-agg-error", children: error })
3853
+ ] }) : null,
3854
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-3 justify-center", children: [
3855
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button, { variant: "secondary", size: "large", onClick: handleCancel, children: labels.onboarding.connectKalshiModal.actions.cancel }),
3856
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
3857
+ Button,
3858
+ {
3859
+ variant: "primary",
3860
+ size: "large",
3861
+ onClick: handleVerify,
3862
+ disabled: !canVerify,
3863
+ isLoading: verifying,
3864
+ children: labels.onboarding.connectKalshiModal.actions.verifyConnection
3865
+ }
3866
+ )
3867
+ ] })
3868
+ ] })
3869
+ ] }) })
3870
+ ]
3871
+ }
3872
+ ) });
3873
+ };
3874
+ ConnectKalshiModal.displayName = "ConnectKalshiModal";
3875
+
3876
+ // src/onboarding/steps/connect-onchain-modal.tsx
3877
+ var import_react10 = require("react");
3878
+ var import_hooks9 = require("@agg-market/hooks");
3879
+ var Dialog3 = __toESM(require("@radix-ui/react-dialog"));
3880
+ var import_jsx_runtime66 = require("react/jsx-runtime");
3881
+ var ConnectOnchainModal = ({
3882
+ open,
3883
+ onOpenChange,
3884
+ onConnect
3885
+ }) => {
3886
+ const labels = (0, import_hooks9.useLabels)();
3887
+ const [connecting, setConnecting] = (0, import_react10.useState)(false);
3888
+ const [error, setError] = (0, import_react10.useState)();
3889
+ const handleCancel = (0, import_react10.useCallback)(() => {
3890
+ onOpenChange(false);
3891
+ }, [onOpenChange]);
3892
+ const handleConnect = (0, import_react10.useCallback)(() => __async(void 0, null, function* () {
3893
+ if (connecting)
3894
+ return;
3895
+ setConnecting(true);
3896
+ setError(void 0);
3897
+ try {
3898
+ yield onConnect();
3899
+ onOpenChange(false);
3900
+ } catch (err) {
3901
+ setError(
3902
+ err instanceof Error ? err.message : labels.onboarding.connectOnchainModal.fallbackError
3903
+ );
3904
+ } finally {
3905
+ setConnecting(false);
3906
+ }
3907
+ }), [connecting, labels.onboarding.connectOnchainModal.fallbackError, onConnect, onOpenChange]);
3908
+ const handleOpenChange = (0, import_react10.useCallback)(
3909
+ (value) => {
3910
+ if (value) {
3911
+ setError(void 0);
3912
+ setConnecting(false);
3913
+ }
3914
+ onOpenChange(value);
3915
+ },
3916
+ [onOpenChange]
3917
+ );
3918
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
3919
+ Modal.Container,
3920
+ {
3921
+ maxWidth: "600px",
3922
+ "aria-label": labels.onboarding.connectOnchainModal.ariaLabel,
3923
+ classNames: { container: "!rounded-agg-lg" },
3924
+ children: [
3925
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Dialog3.Title, { className: "sr-only", children: labels.onboarding.connectOnchainModal.title }),
3926
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3927
+ Modal.Header,
3928
+ {
3929
+ hideClose: false,
3930
+ hideBorder: true,
3931
+ classNames: {
3932
+ root: "!min-h-0",
3933
+ container: "!py-[18px] !px-8"
3934
+ }
3935
+ }
3936
+ ),
3937
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Modal.Body, { classNames: { root: "!px-5 !pt-0 !pb-[60px] sm:!px-8" }, children: /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-col gap-8 items-center", children: [
3938
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-col gap-4 items-center text-center", children: [
3939
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("h2", { className: "text-agg-2xl font-agg-bold text-agg-foreground", children: labels.onboarding.connectOnchainModal.title }),
3940
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-agg-base text-center leading-agg-6 text-agg-foreground whitespace-pre-line", children: labels.onboarding.connectOnchainModal.description })
3941
+ ] }),
3942
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex w-full flex-col items-center gap-4 rounded-agg-xl bg-agg-secondary-hover p-6", children: [
3943
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-agg-sm font-agg-bold uppercase leading-agg-5 text-agg-muted-foreground", children: labels.onboarding.connectOnchainModal.supportedVenuesLabel }),
3944
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "flex flex-wrap items-center justify-center gap-x-4 gap-y-3", children: ONCHAIN_VENUES.map((venue, index) => /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex items-center gap-[6px]", children: [
3945
+ index > 0 && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "mr-2.5 h-3 w-px bg-agg-separator" }),
3946
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(VenueLogo, { venue, size: "medium" }),
3947
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-agg-base text-agg-foreground", children: labels.venues[venue] })
3948
+ ] }, venue)) })
3949
+ ] }),
3950
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-col gap-6 items-center", children: [
3951
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-col gap-3 items-center", children: [
3952
+ error ? /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex items-center gap-2", children: [
3953
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(WarningIcon, { className: "h-3.5 w-3.5 shrink-0 text-agg-error" }),
3954
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-agg-sm leading-agg-5 text-agg-error", children: error })
3955
+ ] }) : null,
3956
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3957
+ Button,
3958
+ {
3959
+ variant: "primary",
3960
+ size: "large",
3961
+ onClick: handleConnect,
3962
+ isLoading: connecting,
3963
+ children: labels.onboarding.connectOnchainModal.connect
3964
+ }
3965
+ )
3966
+ ] }),
3967
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
3968
+ Button,
3969
+ {
3970
+ variant: "tertiary",
3971
+ size: "medium",
3972
+ className: "!h-auto !px-0 !py-0 text-agg-primary hover:bg-transparent hover:text-agg-primary-hover",
3973
+ onClick: handleCancel,
3974
+ children: labels.onboarding.connectOnchainModal.cancel
3975
+ }
3976
+ )
3977
+ ] })
3978
+ ] }) })
3979
+ ]
3980
+ }
3981
+ ) });
3982
+ };
3983
+ ConnectOnchainModal.displayName = "ConnectOnchainModal";
3984
+
3985
+ // src/onboarding/index.tsx
3986
+ var import_jsx_runtime67 = require("react/jsx-runtime");
3987
+ var OnboardingModal = ({
3988
+ open,
3989
+ onOpenChange,
3990
+ onProfileSubmit,
3991
+ onConnectOnchain,
3992
+ onConnectKalshi,
3993
+ onComplete,
3994
+ howItWorksIcons,
3995
+ connectedOnchain = false,
3996
+ connectedKalshi = false
3997
+ }) => {
3998
+ var _a;
3999
+ const labels = (0, import_hooks10.useLabels)();
4000
+ const [step, setStep] = (0, import_react11.useState)(ONBOARDING_STEPS.HOW_IT_WORKS);
4001
+ const stepLabels = {
4002
+ [ONBOARDING_STEPS.HOW_IT_WORKS]: labels.onboarding.modal.stepHowItWorks,
4003
+ [ONBOARDING_STEPS.PROFILE_SETUP]: labels.onboarding.modal.stepProfileSetup,
4004
+ [ONBOARDING_STEPS.CONNECT_ACCOUNTS]: labels.onboarding.modal.stepConnectAccounts
4005
+ };
4006
+ const resolvedTitle = (_a = stepLabels[step]) != null ? _a : labels.onboarding.modal.title;
4007
+ const [kalshiModalOpen, setKalshiModalOpen] = (0, import_react11.useState)(false);
4008
+ const [kalshiConnected, setKalshiConnected] = (0, import_react11.useState)(false);
4009
+ const [onchainModalOpen, setOnchainModalOpen] = (0, import_react11.useState)(false);
4010
+ const [onchainConnected, setOnchainConnected] = (0, import_react11.useState)(false);
4011
+ (0, import_react11.useEffect)(() => {
4012
+ if (open) {
4013
+ setStep(ONBOARDING_STEPS.HOW_IT_WORKS);
4014
+ setKalshiConnected(false);
4015
+ setOnchainConnected(false);
4016
+ }
4017
+ }, [open]);
4018
+ const handleHowItWorksContinue = (0, import_react11.useCallback)(() => {
4019
+ setStep(ONBOARDING_STEPS.PROFILE_SETUP);
4020
+ }, []);
4021
+ const handleProfileContinue = (0, import_react11.useCallback)(
4022
+ (data) => {
4023
+ onProfileSubmit == null ? void 0 : onProfileSubmit(data);
4024
+ setStep(ONBOARDING_STEPS.CONNECT_ACCOUNTS);
4025
+ },
4026
+ [onProfileSubmit]
4027
+ );
4028
+ const handleConnectContinue = (0, import_react11.useCallback)(() => {
4029
+ onComplete == null ? void 0 : onComplete();
4030
+ }, [onComplete]);
4031
+ const handleOpenOnchainModal = (0, import_react11.useCallback)(() => {
4032
+ setOnchainModalOpen(true);
4033
+ }, []);
4034
+ const handleOnchainConnect = (0, import_react11.useCallback)(() => __async(void 0, null, function* () {
4035
+ yield onConnectOnchain == null ? void 0 : onConnectOnchain();
4036
+ setOnchainConnected(true);
4037
+ }), [onConnectOnchain]);
4038
+ const handleOpenKalshiModal = (0, import_react11.useCallback)(() => {
4039
+ setKalshiModalOpen(true);
4040
+ }, []);
4041
+ const handleKalshiVerify = (0, import_react11.useCallback)(
4042
+ (credentials) => __async(void 0, null, function* () {
4043
+ yield onConnectKalshi == null ? void 0 : onConnectKalshi(credentials);
4044
+ setKalshiConnected(true);
4045
+ }),
4046
+ [onConnectKalshi]
4047
+ );
4048
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_jsx_runtime67.Fragment, { children: [
4049
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Modal, { open, onOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
4050
+ Modal.Container,
4051
+ {
4052
+ maxWidth: "600px",
4053
+ "aria-label": resolvedTitle,
4054
+ classNames: { container: "!rounded-agg-lg" },
4055
+ children: [
4056
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(Dialog4.Title, { className: "sr-only", children: resolvedTitle }),
4057
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(Modal.Body, { classNames: { root: "px-5 py-6 sm:px-10 sm:py-8" }, children: [
4058
+ step === ONBOARDING_STEPS.HOW_IT_WORKS && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(HowItWorksStep, { onContinue: handleHowItWorksContinue, icons: howItWorksIcons }),
4059
+ step === ONBOARDING_STEPS.PROFILE_SETUP && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(ProfileSetupStep, { onContinue: handleProfileContinue }),
4060
+ step === ONBOARDING_STEPS.CONNECT_ACCOUNTS && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4061
+ ConnectAccountsStep,
4062
+ {
4063
+ onConnectOnchain: handleOpenOnchainModal,
4064
+ onConnectKalshi: handleOpenKalshiModal,
4065
+ onContinue: handleConnectContinue,
4066
+ connectedOnchain: connectedOnchain || onchainConnected,
4067
+ connectedKalshi: connectedKalshi || kalshiConnected
4068
+ }
4069
+ )
4070
+ ] })
4071
+ ]
4072
+ }
4073
+ ) }),
4074
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4075
+ ConnectOnchainModal,
4076
+ {
4077
+ open: onchainModalOpen,
4078
+ onOpenChange: setOnchainModalOpen,
4079
+ onConnect: handleOnchainConnect
4080
+ }
4081
+ ),
4082
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
4083
+ ConnectKalshiModal,
4084
+ {
4085
+ open: kalshiModalOpen,
4086
+ onOpenChange: setKalshiModalOpen,
4087
+ onVerify: handleKalshiVerify
4088
+ }
4089
+ )
4090
+ ] });
4091
+ };
4092
+ OnboardingModal.displayName = "OnboardingModal";
4093
+
4094
+ // src/profile/index.tsx
4095
+ var import_react13 = require("react");
4096
+
4097
+ // src/profile/profile-modal.constants.ts
4098
+ var PROFILE_TAB_KEYS = {
4099
+ ABOUT: "about",
4100
+ ACCOUNTS_WALLETS: "accounts-wallets"
4101
+ };
4102
+ var PROFILE_TAB_ITEMS = [
4103
+ { value: PROFILE_TAB_KEYS.ABOUT, label: "About", icon: "profile" },
4104
+ { value: PROFILE_TAB_KEYS.ACCOUNTS_WALLETS, label: "Accounts & wallets", icon: "wallet" }
4105
+ ];
4106
+
4107
+ // src/profile/tabs/about-tab.tsx
4108
+ var import_react12 = require("react");
4109
+ var import_hooks11 = require("@agg-market/hooks");
4110
+ var import_jsx_runtime68 = require("react/jsx-runtime");
4111
+ var AboutTab = ({
4112
+ avatarPreview,
4113
+ onDeleteProfile,
4114
+ draftUsername,
4115
+ onDraftUsernameChange,
4116
+ onDraftAvatarChange,
4117
+ draftAvatarPreview
4118
+ }) => {
4119
+ const labels = (0, import_hooks11.useLabels)();
4120
+ const fileInputRef = (0, import_react12.useRef)(null);
4121
+ const handleAvatarClick = (0, import_react12.useCallback)(() => {
4122
+ var _a;
4123
+ (_a = fileInputRef.current) == null ? void 0 : _a.click();
4124
+ }, []);
4125
+ const handleFileChange = (0, import_react12.useCallback)(
4126
+ (e) => {
4127
+ var _a;
4128
+ const file = (_a = e.target.files) == null ? void 0 : _a[0];
4129
+ if (!file)
4130
+ return;
4131
+ const reader = new FileReader();
4132
+ reader.onload = (event) => {
4133
+ var _a2;
4134
+ onDraftAvatarChange(file, (_a2 = event.target) == null ? void 0 : _a2.result);
4135
+ };
4136
+ reader.readAsDataURL(file);
4137
+ },
4138
+ [onDraftAvatarChange]
4139
+ );
4140
+ const resolvedPreview = draftAvatarPreview != null ? draftAvatarPreview : avatarPreview;
4141
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex flex-col gap-8", children: [
4142
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex justify-center", children: [
4143
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4144
+ "button",
4145
+ {
4146
+ type: "button",
4147
+ onClick: handleAvatarClick,
4148
+ className: cn(
4149
+ "relative flex items-center justify-center",
4150
+ "h-[80px] w-[80px]",
4151
+ "rounded-agg-full",
4152
+ "border-2 border-dashed border-agg-separator",
4153
+ "bg-agg-secondary",
4154
+ "hover:border-agg-muted-foreground hover:bg-agg-secondary-hover",
4155
+ "transition-colors cursor-pointer",
4156
+ "overflow-hidden"
4157
+ ),
4158
+ "aria-label": labels.onboarding.profileSetup.uploadProfilePictureAria,
4159
+ children: resolvedPreview ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4160
+ "img",
4161
+ {
4162
+ src: resolvedPreview,
4163
+ alt: labels.onboarding.profileSetup.profilePreviewAlt,
4164
+ className: "h-full w-full object-cover"
4165
+ }
4166
+ ) : /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ProfileIcon, { className: "h-8 w-8 text-agg-muted-foreground" })
4167
+ }
4168
+ ),
4169
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4170
+ "input",
4171
+ {
4172
+ ref: fileInputRef,
4173
+ type: "file",
4174
+ accept: "image/*",
4175
+ onChange: handleFileChange,
4176
+ className: "hidden",
4177
+ "aria-hidden": "true"
4178
+ }
4179
+ )
4180
+ ] }),
4181
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex flex-col gap-2", children: [
4182
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4183
+ "label",
4184
+ {
4185
+ htmlFor: "profile-username",
4186
+ className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground",
4187
+ children: "Username"
4188
+ }
4189
+ ),
4190
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4191
+ "input",
4192
+ {
4193
+ id: "profile-username",
4194
+ type: "text",
4195
+ placeholder: "e.g. CryptoJohn",
4196
+ value: draftUsername,
4197
+ onChange: (e) => onDraftUsernameChange(e.target.value),
4198
+ className: cn(
4199
+ "w-full px-4 py-3",
4200
+ "rounded-agg-xl",
4201
+ "border border-agg-separator",
4202
+ "bg-agg-secondary text-agg-foreground",
4203
+ "placeholder:text-agg-muted-foreground",
4204
+ "outline-none",
4205
+ "focus:border-agg-primary focus:ring-1 focus:ring-agg-primary",
4206
+ "transition-colors",
4207
+ "text-agg-sm sm:text-agg-base"
4208
+ )
4209
+ }
4210
+ )
4211
+ ] }),
4212
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex flex-col gap-4", children: [
4213
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: "flex flex-col gap-1", children: [
4214
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children: "Delete your profile" }),
4215
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("span", { className: "text-agg-sm leading-agg-5 text-agg-foreground", children: "This will permanently delete your account and all of its data. You will not be able to reactivate this account." })
4216
+ ] }),
4217
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
4218
+ "button",
4219
+ {
4220
+ type: "button",
4221
+ onClick: onDeleteProfile,
4222
+ className: cn(
4223
+ "self-start cursor-pointer",
4224
+ "rounded-agg-full border border-[#e5455f]",
4225
+ "h-8 px-4",
4226
+ "text-agg-sm font-agg-bold leading-agg-5 text-[#e5455f]",
4227
+ "bg-agg-secondary hover:bg-[#e5455f]/10",
4228
+ "transition-colors"
4229
+ ),
4230
+ children: "Delete Profile"
4231
+ }
4232
+ )
4233
+ ] })
4234
+ ] });
4235
+ };
4236
+ AboutTab.displayName = "AboutTab";
4237
+
4238
+ // src/profile/tabs/accounts-wallets-tab.tsx
4239
+ var import_jsx_runtime69 = require("react/jsx-runtime");
4240
+ var SectionTitle = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("h3", { className: "text-agg-sm font-agg-bold leading-agg-5 text-agg-foreground", children });
4241
+ var AccountRow = ({ children, className }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
4242
+ "div",
4243
+ {
4244
+ className: cn(
4245
+ "flex items-center justify-between",
4246
+ "rounded-agg-lg border border-agg-separator bg-agg-secondary",
4247
+ "px-5 py-3",
4248
+ className
4249
+ ),
4250
+ children
4251
+ }
4252
+ );
4253
+ var ConnectTextButton = ({ onClick }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
4254
+ "button",
4255
+ {
4256
+ type: "button",
4257
+ onClick,
4258
+ className: "shrink-0 cursor-pointer text-agg-sm font-agg-bold leading-agg-5 text-agg-primary whitespace-nowrap",
4259
+ children: "Connect"
4260
+ }
4261
+ );
4262
+ var DisconnectTextButton = ({ onClick }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
4263
+ "button",
4264
+ {
4265
+ type: "button",
4266
+ onClick,
4267
+ className: "shrink-0 cursor-pointer text-agg-sm font-agg-bold leading-agg-5 text-agg-muted-foreground whitespace-nowrap",
4268
+ children: "Disconnect"
4269
+ }
4270
+ );
4271
+ var AccountsWalletsTab = ({
4272
+ exchanges,
4273
+ socialAccounts,
4274
+ email,
4275
+ onDisconnectExchange,
4276
+ onConnectTwitter,
4277
+ onDisconnectTwitter,
4278
+ onConnectDiscord,
4279
+ onDisconnectDiscord,
4280
+ onConnectTelegram,
4281
+ onDisconnectTelegram,
4282
+ onConnectEmail
4283
+ }) => {
4284
+ const twitter = socialAccounts == null ? void 0 : socialAccounts.twitter;
4285
+ const discord = socialAccounts == null ? void 0 : socialAccounts.discord;
4286
+ const telegram = socialAccounts == null ? void 0 : socialAccounts.telegram;
4287
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex flex-col gap-8", children: [
4288
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex flex-col gap-3", children: [
4289
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(SectionTitle, { children: "Exchanges" }),
4290
+ exchanges.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("p", { className: "text-agg-sm leading-agg-5 text-agg-muted-foreground", children: "No exchange accounts connected." }) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex flex-col gap-2", children: exchanges.map((account) => {
4291
+ var _a;
4292
+ const displayName = (_a = venueLogoLabels[account.venue]) != null ? _a : account.venue;
4293
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(AccountRow, { children: [
4294
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-3 min-w-0", children: [
4295
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(VenueLogo, { venue: account.venue, size: "small" }),
4296
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: displayName }),
4297
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-2 min-w-0", children: [
4298
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "truncate text-agg-base font-agg-normal leading-6 text-agg-foreground", children: account.displayAddress }),
4299
+ account.verified ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
4300
+ Icon,
4301
+ {
4302
+ name: "check-badge",
4303
+ size: "small",
4304
+ color: "var(--agg-color-primary, #536dfe)"
4305
+ }
4306
+ ) : null
4307
+ ] })
4308
+ ] }),
4309
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(DisconnectTextButton, { onClick: () => onDisconnectExchange(account.venue) })
4310
+ ] }, account.venue);
4311
+ }) })
4312
+ ] }),
4313
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex flex-col gap-3", children: [
4314
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(SectionTitle, { children: "Social Accounts" }),
4315
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex flex-col gap-2", children: [
4316
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(AccountRow, { children: [
4317
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-3", children: [
4318
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "twitter", size: "small", color: "currentColor" }) }),
4319
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "X (Twitter)" })
4320
+ ] }),
4321
+ (twitter == null ? void 0 : twitter.connected) ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(DisconnectTextButton, { onClick: onDisconnectTwitter }) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ConnectTextButton, { onClick: onConnectTwitter })
4322
+ ] }),
4323
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(AccountRow, { children: [
4324
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-3", children: [
4325
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-[#5865F2]", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "discord", size: "small", color: "currentColor" }) }),
4326
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "Discord" })
4327
+ ] }),
4328
+ (discord == null ? void 0 : discord.connected) ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(DisconnectTextButton, { onClick: onDisconnectDiscord }) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ConnectTextButton, { onClick: onConnectDiscord })
4329
+ ] }),
4330
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(AccountRow, { children: [
4331
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-3", children: [
4332
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-[#26A5E4]", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "telegram", size: "small", color: "currentColor" }) }),
4333
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: "Telegram" })
4334
+ ] }),
4335
+ (telegram == null ? void 0 : telegram.connected) ? /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(DisconnectTextButton, { onClick: onDisconnectTelegram }) : /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(ConnectTextButton, { onClick: onConnectTelegram })
4336
+ ] })
4337
+ ] })
4338
+ ] }),
4339
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex flex-col gap-3", children: [
4340
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(SectionTitle, { children: "Email Address" }),
4341
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
4342
+ "button",
4343
+ {
4344
+ type: "button",
4345
+ onClick: onConnectEmail,
4346
+ className: cn(
4347
+ "flex items-center justify-between",
4348
+ "rounded-agg-lg border border-agg-separator bg-agg-secondary",
4349
+ "px-5 py-3",
4350
+ "cursor-pointer hover:bg-agg-secondary-hover"
4351
+ ),
4352
+ children: [
4353
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-3", children: [
4354
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-agg-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "email", size: "small", color: "currentColor" }) }),
4355
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-agg-base font-agg-normal leading-6 text-agg-foreground whitespace-nowrap", children: email != null ? email : "Connect email" })
4356
+ ] }),
4357
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Icon, { name: "chevron-right", size: "small", color: "currentColor" })
4358
+ ]
4359
+ }
4360
+ )
4361
+ ] })
4362
+ ] });
4363
+ };
4364
+ AccountsWalletsTab.displayName = "AccountsWalletsTab";
4365
+
4366
+ // src/profile/index.tsx
4367
+ var import_jsx_runtime70 = require("react/jsx-runtime");
4368
+ var ProfileModal = ({
4369
+ open,
4370
+ onOpenChange,
4371
+ username,
4372
+ avatarPreview,
4373
+ onSave,
4374
+ onDeleteProfile,
4375
+ exchanges,
4376
+ socialAccounts,
4377
+ email,
4378
+ onDisconnectExchange,
4379
+ onConnectTwitter,
4380
+ onDisconnectTwitter,
4381
+ onConnectDiscord,
4382
+ onDisconnectDiscord,
4383
+ onConnectTelegram,
4384
+ onDisconnectTelegram,
4385
+ onConnectEmail
4386
+ }) => {
4387
+ const [activeTab, setActiveTab] = (0, import_react13.useState)(PROFILE_TAB_KEYS.ABOUT);
4388
+ const [draftUsername, setDraftUsername] = (0, import_react13.useState)(username != null ? username : "");
4389
+ const [draftAvatarFile, setDraftAvatarFile] = (0, import_react13.useState)();
4390
+ const [draftAvatarPreview, setDraftAvatarPreview] = (0, import_react13.useState)();
4391
+ const [isSaving, setIsSaving] = (0, import_react13.useState)(false);
4392
+ (0, import_react13.useEffect)(() => {
4393
+ setDraftUsername(username != null ? username : "");
4394
+ }, [username]);
4395
+ const handleOpenChange = (0, import_react13.useCallback)(
4396
+ (isOpen) => {
4397
+ if (!isOpen) {
4398
+ setActiveTab(PROFILE_TAB_KEYS.ABOUT);
4399
+ setIsSaving(false);
4400
+ setDraftUsername(username != null ? username : "");
4401
+ setDraftAvatarFile(void 0);
4402
+ setDraftAvatarPreview(void 0);
4403
+ }
4404
+ onOpenChange(isOpen);
4405
+ },
4406
+ [
4407
+ onOpenChange,
4408
+ username,
4409
+ setActiveTab,
4410
+ setIsSaving,
4411
+ setDraftUsername,
4412
+ setDraftAvatarFile,
4413
+ setDraftAvatarPreview
4414
+ ]
4415
+ );
4416
+ const handleDraftAvatarChange = (0, import_react13.useCallback)(
4417
+ (file, preview) => {
4418
+ setDraftAvatarFile(file);
4419
+ setDraftAvatarPreview(preview);
4420
+ },
4421
+ []
4422
+ );
4423
+ const hasChanges = draftUsername !== (username != null ? username : "") || draftAvatarFile !== void 0;
4424
+ const handleSave = (0, import_react13.useCallback)(() => {
4425
+ setIsSaving(true);
4426
+ onSave({
4427
+ username: draftUsername || void 0,
4428
+ avatarFile: draftAvatarFile,
4429
+ avatarPreview: draftAvatarPreview
4430
+ });
4431
+ setTimeout(() => {
4432
+ setIsSaving(false);
4433
+ onOpenChange(false);
4434
+ }, 500);
4435
+ }, [draftUsername, draftAvatarFile, draftAvatarPreview, onSave, onOpenChange]);
4436
+ const handleCancel = (0, import_react13.useCallback)(() => {
4437
+ handleOpenChange(false);
4438
+ }, [handleOpenChange]);
4439
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Modal, { open, onOpenChange: handleOpenChange, children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Modal.Container, { maxWidth: "800px", "aria-label": "Edit Profile", children: [
4440
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Modal.Header, { title: "Edit Profile" }),
4441
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Modal.Body, { children: /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "flex flex-col sm:flex-row sm:gap-10", children: [
4442
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "shrink-0", children: [
4443
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "flex gap-2 sm:hidden mb-6", children: PROFILE_TAB_ITEMS.map((tab) => {
4444
+ const isActive = activeTab === tab.value;
4445
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
4446
+ "button",
4447
+ {
4448
+ type: "button",
4449
+ onClick: () => setActiveTab(tab.value),
4450
+ className: cn(
4451
+ "flex items-center gap-3 px-4 py-3 rounded-agg-lg",
4452
+ "text-agg-sm leading-agg-5 font-agg-sans",
4453
+ "transition-colors cursor-pointer",
4454
+ "border-b-2",
4455
+ isActive ? "font-agg-normal text-agg-foreground bg-agg-secondary-hover border-agg-primary" : "font-agg-normal text-agg-foreground border-transparent"
4456
+ ),
4457
+ children: [
4458
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Icon, { name: tab.icon, size: "small", color: "currentColor" }),
4459
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "whitespace-nowrap", children: tab.label })
4460
+ ]
4461
+ },
4462
+ tab.value
4463
+ );
4464
+ }) }),
4465
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4466
+ "nav",
4467
+ {
4468
+ className: cn(
4469
+ "hidden sm:flex sm:flex-col",
4470
+ "w-[240px]",
4471
+ "overflow-hidden rounded-agg-lg",
4472
+ "border border-agg-separator",
4473
+ "bg-agg-secondary",
4474
+ "py-3"
4475
+ ),
4476
+ role: "tablist",
4477
+ "aria-label": "Profile sections",
4478
+ children: PROFILE_TAB_ITEMS.map((tab) => {
4479
+ const isActive = activeTab === tab.value;
4480
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
4481
+ "button",
4482
+ {
4483
+ type: "button",
4484
+ role: "tab",
4485
+ "aria-selected": isActive,
4486
+ onClick: () => setActiveTab(tab.value),
4487
+ className: cn(
4488
+ "relative flex items-center gap-3",
4489
+ "h-[49px] px-6 py-4",
4490
+ "text-agg-sm leading-agg-5 font-agg-sans",
4491
+ "transition-colors cursor-pointer",
4492
+ isActive ? "font-agg-normal text-agg-foreground bg-agg-secondary-hover" : "font-agg-normal text-agg-foreground"
4493
+ ),
4494
+ children: [
4495
+ isActive ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: "absolute left-0 top-0 bottom-0 w-1 bg-agg-primary" }) : null,
4496
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Icon, { name: tab.icon, size: "small", color: "currentColor" }),
4497
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("span", { className: "shrink-0 whitespace-nowrap", children: tab.label })
4498
+ ]
4499
+ },
4500
+ tab.value
4501
+ );
4502
+ })
4503
+ }
4504
+ )
4505
+ ] }),
4506
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)("div", { className: "min-w-0 flex-1", children: [
4507
+ activeTab === PROFILE_TAB_KEYS.ABOUT ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4508
+ AboutTab,
4509
+ {
4510
+ username,
4511
+ avatarPreview,
4512
+ onDeleteProfile,
4513
+ draftUsername,
4514
+ onDraftUsernameChange: setDraftUsername,
4515
+ draftAvatarFile,
4516
+ onDraftAvatarChange: handleDraftAvatarChange,
4517
+ draftAvatarPreview
4518
+ }
4519
+ ) : null,
4520
+ activeTab === PROFILE_TAB_KEYS.ACCOUNTS_WALLETS ? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4521
+ AccountsWalletsTab,
4522
+ {
4523
+ exchanges,
4524
+ socialAccounts,
4525
+ email,
4526
+ onDisconnectExchange,
4527
+ onConnectTwitter,
4528
+ onDisconnectTwitter,
4529
+ onConnectDiscord,
4530
+ onDisconnectDiscord,
4531
+ onConnectTelegram,
4532
+ onDisconnectTelegram,
4533
+ onConnectEmail
4534
+ }
4535
+ ) : null
4536
+ ] })
4537
+ ] }) }),
4538
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(Modal.Footer, { children: [
4539
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Button, { variant: "secondary", size: "large", onClick: handleCancel, className: "min-w-[120px]", children: "Cancel" }),
4540
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
4541
+ Button,
4542
+ {
4543
+ variant: "primary",
4544
+ size: "large",
4545
+ disabled: !hasChanges,
4546
+ isLoading: isSaving,
4547
+ onClick: handleSave,
4548
+ children: "Save Changes"
4549
+ }
4550
+ )
4551
+ ] })
4552
+ ] }) });
4553
+ };
4554
+ ProfileModal.displayName = "ProfileModal";
2798
4555
  // Annotate the CommonJS export names for ESM import in node:
2799
4556
  0 && (module.exports = {
2800
- DepositModal
4557
+ ConnectAccountsStep,
4558
+ ConnectKalshiModal,
4559
+ ConnectOnchainModal,
4560
+ DepositModal,
4561
+ HowItWorksStep,
4562
+ OnboardingModal,
4563
+ ProfileModal,
4564
+ ProfileSetupStep,
4565
+ WithdrawModal
2801
4566
  });