@trifle/trifle-hub 1.0.161 → 1.0.162

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/AccountIndex-CTjOLmjP.js +144 -0
  2. package/dist/Earn-DMrF4S31.js +255 -0
  3. package/dist/{ExchangeController-D9_uwgvR.js → ExchangeController-6NjzC79Z.js} +1 -1
  4. package/dist/{Games-M9GlINCE.js → Games-CLUUM0mP.js} +10 -10
  5. package/dist/{HelpersUtil-3kK0MJ3p.js → HelpersUtil-Dj0wfodo.js} +4 -4
  6. package/dist/{Leaderboard-B7Mh8DS-.js → Leaderboard-CuG041PJ.js} +1 -1
  7. package/dist/Profile-YoSRBmlN.js +1818 -0
  8. package/dist/QuestCard-CapG6iNR.js +318 -0
  9. package/dist/{ReownAuthentication-CVPDiHcH.js → ReownAuthentication-ClyLCgeo.js} +4 -4
  10. package/dist/{SocialsButtons-aWpzKjcb.js → SocialsButtons-uL2_XTTy.js} +1 -1
  11. package/dist/SwapBalls-ChUy9GIh.js +277 -0
  12. package/dist/{SwapController-BeK9JnGm.js → SwapController-Q_rNvOur.js} +1 -1
  13. package/dist/{TrifleGuide-CR0Ozy_0.js → TrifleGuide-Dn1FDCub.js} +1 -1
  14. package/dist/components/QuestCard.vue.d.ts +2 -0
  15. package/dist/components/ScrollMaskedX.vue.d.ts +17 -0
  16. package/dist/config/pointsConfig.d.ts +98 -0
  17. package/dist/config/socialsConfig.d.ts +12 -0
  18. package/dist/config/tailwindTheme.d.ts +12 -0
  19. package/dist/{data-capture-SpEqbF3k.js → data-capture-C1pQbx1q.js} +10 -10
  20. package/dist/{email-nGysUKxe.js → email-D2uCwQIX.js} +15 -15
  21. package/dist/{embedded-wallet-CVRT-KKq.js → embedded-wallet-C4TtNIAk.js} +20 -20
  22. package/dist/{features-ltH2yyBF.js → features-p7PixpOp.js} +1 -1
  23. package/dist/{if-defined-Dy4LSJRL.js → if-defined-Db2RYcoI.js} +1 -1
  24. package/dist/{index-D7KogVqW.js → index-B7YpXXOx.js} +3 -3
  25. package/dist/{index-el2rRTti.js → index-B874HQ1C.js} +1 -1
  26. package/dist/{index-DB2RGu8K.js → index-BBZwHOZx.js} +7174 -7062
  27. package/dist/{index-CGTgmNWF.js → index-BCwqn9QZ.js} +7 -7
  28. package/dist/{index-D8jtytdS.js → index-BPUorytH.js} +4 -4
  29. package/dist/{index-B6EegOWr.js → index-BUYdR_2_.js} +3 -3
  30. package/dist/{index-Br4pPBw3.js → index-Be1ETcsd.js} +2 -2
  31. package/dist/{index-vWXwGhx5.js → index-BgP8qyHN.js} +8 -8
  32. package/dist/{index-B5tdNBnN.js → index-BlHGPGWv.js} +5 -5
  33. package/dist/{index-DFRmrUjX.js → index-Bw4BSPxV.js} +1 -1
  34. package/dist/{index-D_P4Urp2.js → index-ByEuzHZx.js} +4 -4
  35. package/dist/{index-Ry5qK6ET.js → index-Bz5RbsFD.js} +4 -4
  36. package/dist/{index-fsHFGWT7.js → index-C5VTkzn_.js} +2 -2
  37. package/dist/{index-BPEOHrMY.js → index-CCLcIWvl.js} +2 -2
  38. package/dist/{index-B6ReSoq4.js → index-CEp7-6gC.js} +12 -12
  39. package/dist/{index-zrzeJIBS.js → index-CG4RerkJ.js} +4 -4
  40. package/dist/{index-CABGgn9P.js → index-CGVqIMrP.js} +2 -2
  41. package/dist/{index-JL3Wermk.js → index-CRnT53WM.js} +4 -4
  42. package/dist/{index-fMGZyGCM.js → index-CbMqJqgs.js} +3 -3
  43. package/dist/{index-CAqkQtOq.js → index-Ch8Y71PT.js} +2 -2
  44. package/dist/{index-C2ffuAYb.js → index-CldzoQ7r.js} +4 -4
  45. package/dist/{index-Dpn8_aG_.js → index-CnEa77cL.js} +23 -23
  46. package/dist/{index-DHWhyTIK.js → index-Cs4b_oEO.js} +4 -4
  47. package/dist/{index-C2PmirTf.js → index-D6xLy_9u.js} +3 -3
  48. package/dist/{index-356dXR_D.js → index-DCC9iWUP.js} +5 -5
  49. package/dist/{index-Dg7OV12A.js → index-DISZZqKI.js} +86 -86
  50. package/dist/{index-C2kYO0cy.js → index-DKxX5-s9.js} +4 -4
  51. package/dist/{index-BHFhjWws.js → index-DPKtJuhj.js} +7 -7
  52. package/dist/{index-BIohKOaQ.js → index-DT6SLq6J.js} +101 -101
  53. package/dist/{index-D0PeBPfJ.js → index-Diei326e.js} +8 -8
  54. package/dist/{index-Dvj2aQzS.js → index-DoLlp6XK.js} +6 -6
  55. package/dist/{index-Ce6TjHV2.js → index-Dw0RgphK.js} +3 -3
  56. package/dist/{index-DUlBiQtl.js → index-gICsvOhN.js} +3 -3
  57. package/dist/{index-5j1niEF0.js → index-iR5Uvd14.js} +3 -3
  58. package/dist/{index-cQyA4S9L.js → index-u4YndyyJ.js} +7 -7
  59. package/dist/{index-Cx-FU6Gm.js → index-wAnKlCQm.js} +7 -7
  60. package/dist/index.es.js +2 -2
  61. package/dist/{onramp-DqtQTg4r.js → onramp-3E-5EGhn.js} +47 -47
  62. package/dist/{pay-with-exchange-C0oNjyvj.js → pay-with-exchange-DBpQTxCY.js} +17 -17
  63. package/dist/{receive-Bb7EcFWE.js → receive-DDXsTS6R.js} +5 -5
  64. package/dist/{ref-CujhPCia.js → ref-CRKmoaio.js} +2 -2
  65. package/dist/{send-DGTDv4Th.js → send-Bp9p9m9K.js} +18 -18
  66. package/dist/{socials-Cp4djpe9.js → socials-C1MyEZn9.js} +20 -20
  67. package/dist/{swaps-DD8uJyu7.js → swaps-Hpy8DwH3.js} +11 -11
  68. package/dist/{transactions-DYOP0lkN.js → transactions-BV1mkVO3.js} +7 -7
  69. package/dist/{w3m-modal-JJJ6hUHU.js → w3m-modal-Du6ALWMy.js} +20 -20
  70. package/package.json +2 -1
  71. package/dist/AccountIndex-BEX1k5b6.js +0 -128
  72. package/dist/Earn-CgpWSs87.js +0 -521
  73. package/dist/Profile-Ct-mDc2u.js +0 -1696
  74. package/dist/SwapBalls-D14eVMm3.js +0 -279
@@ -0,0 +1,1818 @@
1
+ import { createElementBlock as a, openBlock as t, createElementVNode as e, renderSlot as ie, createCommentVNode as i, computed as g, inject as ge, normalizeStyle as pe, toDisplayString as v, ref as p, unref as d, Fragment as D, createTextVNode as x, watch as Ee, normalizeClass as C, createBlock as E, renderList as q, withCtx as I, defineComponent as st, onMounted as ze, withDirectives as be, withKeys as Le, vModelText as Me, resolveDynamicComponent as lt, mergeProps as nt, nextTick as Qe, onBeforeUnmount as ot, defineAsyncComponent as rt, createSlots as it, createVNode as Ue, vShow as Ye } from "vue";
2
+ import { p as Re, a6 as Oe, a7 as ut, a8 as Ke, a9 as Xe, aa as Je, ab as Ve, n as je, o as ct } from "./index-BBZwHOZx.js";
3
+ import { storeToRefs as $e } from "pinia";
4
+ import { _ as Fe } from "./_plugin-vue_export-helper-CHgC5LLL.js";
5
+ import { _ as dt } from "./QuestCard-CapG6iNR.js";
6
+ const _t = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI0AAAB1CAYAAABzn2LRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABnrSURBVHgB7V0JdFzVef5n3/d9tNmSvIDBgZpASdMAcRJoMKQNMZCwBNIkBJwTCgQ4BVIMlMU5YQkkoS5L7aSJWVMcdgIYw8FAbBYDxkACXrAxNsabLEu2pFG/b+YJhJDeaN7cNxrJ851zjwy23rvv3v/++/9fm9RQKVgSicQEh8NxIIbX7/e7mpubc7Nmzep+6qmneqWGGvpj2rRpjkgk/iObzfYB/jNntVr32O32DSCex/Hn65PJzCk+n29qKpVKTp061Scy24p/Z5EqRdVObKygqakps3Hjh1fs2dN5Si6Xc8gna/4p7mKxWDpcLtca/Jt3AoHQazabfUUu1/WW0+nc5PV6t9XX1+8CR+oZ+Hs1jCHMnDnTFo/HZ4AQVuA/c1LY7GIj98mw9IATtXs83vc8Hs9il8v9m3A4dgqIaHIgEIhPmTLFKbVDP3YArhDFRl8H0bNThk8wwyEmcpqdIKZXIOp+B6L8t2g0+rVQKNmSzWbjra2trtmz86LNVNQoVS0ssVjsoI6OjhswDu3t7TVrfT8WURBr3eA+m8Vq/cDlcKwEZ3vPZnO+2Na27U0o2xtBWNtWrFixR2qoPkCJ9QWD4XPAATaLGu5imCOBkKhstzudrjdsNset6XR6itRQVbBAHO3v8wUewkZ1ycgQiy4RQR96YNy4cWGpYeRBUzqZTJ4KHWOjjBx3KTpAzLuh+1xx+OGH26WGEYMlm21udHu9t1mttg6pYoLpG3aHY1MikTlKaqg8aEqDuxzn9njelVFALP1Gzu32LIFinJUaKge4/UNut/tKOuJkdBFM3+iGRXU9xarUYC7IXeAH+Qev1/8MCKbPKzsqB8IXWxOJ9PFSc7eYBxALg4v/Ybc72sRc7pKTCnEveqljsexkqUE5YEq3tCLu83/4c7eYuKGwbrqxkavxczMGRV+PmEtEPfBY31kIjpYOm9TwGcCn4bbbXadt3frhvM7Ojs/jf5kZde6FgroKHO2ocDh8Ty5necFut62FMxnE0+uEOLTDs2zV5qAKFgRGx3d19XzY0bHrRSkQUg1G0dDQkMUpvJvueTGJswwYuVA4vJSEOmAqzsYJE5oxl2/5AoHb4WnuFMWcB9ztnbq6us9JDcZAZTeVqpsO6+h1qaxllAuHI0/j56csGupSiUTiKGzs3cy9MendPXj+gwx2Sg2lAbGZhM/n+yU2p10qb0rnQqHIHdJP/EFMHQjifQLcZbfZ8wFH3RMIBK6qeYuHD0alD4YIoFyvmPUyYOQCgdB/900ok8kchKj16krOBYdlUzbb+BWpQR+MSoP9nz3CUWmedHKaOZwTAp8TqBRXej6cg8fnWwxPd0pqGBSWSCSyH0zpRxQ76nI4sdtKfabFYu3BfM7Hn+1wHv5aCuZ27wiMLnDcXw2ikO/d6ItKY3PzCd6ibsG7oRM9HI8nz9D8LMN+NtMpQDSzwPVaMa8RjZZjLm0Q16dKzVtcQCxWX4eNvY1pAqJuY3I2m3273x+8jPkq2Pwvlvp8/nsEEU9MpTIXy8hxmY+Hy+V+nU5N2ZtBqyAeTx/tdJaU4D2c0QMifAGW1xGincxkMnMc9YNSnmO12nalUtljI5HonTKCXKZv0D8Fa2puNjvNK3sjGhsbI8Fg+CYou7tEIXdhDo3P579+4sSJn/JvpNPZWVIit8Dc2lpaJh0FE/sZqQJOIwXCafcFg2dXIkm9mmAByz8Iih2dZspOL5VcOMPehdw/WQY44wgQzYVS4saDALeA+A5GUPQJqQJO0zdg9r/PyL7sDWDOSyyWuAibodKUZqJ2J5xutycbGlqGeLU1Gk/+otR3ghA3UIcIhUKPShURDQ8IxNRDYz63GB85CX6OJ7HBytg8dRSIkA+xqWewrkjn9fZoNDpXStt4Vg6sZjkudJo/SBURTeHbrR1wPF4wJsUUqw2ZWITNXSUKF57mMMUGNvUQ0TFDtRTQr0J0vV3iO0g0axA0nJjJ1J1TjQlemNMmHIYjZSyZ4dis5mAwuEBxFJjiaEs0Hj+HyrTe+ykOgSvx/u1G3k9CgbI+LxSKH2T0GSaPHByhy5hIL2MA1mg0eaTN5virKFd23a9DkT5c9E8Xle2/g9m9uFQze+AAgW4Hpzzd6XQ/J9VHNFyTLhD2DaM6txi6RQKONJ7uHaLWUdcWDkduhNXQoPd+eG/9sKAuUKhs5xwOx0u+QOB+qUKikQJhbw3HYv8io1BM8XQf4fF4l5d7uuXTJwniyP42HHVH4791UwQgipp9vsCfmKKp6v19c0AYoVKJX4YGHaQIqo4ebzEm6wmHo+fidKuU+/kGQ4FA8L5QKDVe7/1kzYlE6gSIw9VSpdzA7EHDIBqNf19GASywXvbDxt6vuFaa4mhdPJX6Iawvv94EotG6epjz80dLNaVZg8YGQh4nSDWDpzsUjf4Am8t0R5XiiFHpx6LR9L76M5hthTg8DIqx6rjViA8j4h1E097YOP6rUq1oatonA1Pvdi1qrGqx8jkvYLGX0VTWez98J7FIJHa1YnFYFQObz9jZBwZ+b8ukSZOmSrVBazt2TIltx4ZzsnoQT3k5na4/TPTLQSwg1oMQQHxepbJdTYMcw+v1bSzx93JQhN9vaWnRtSwrDrYdY4I3TrfKBG9yl3bEja7PZifqZt0za62QSGXbInux7jLUOiJEs7KaYlFM8P48XPbPKT7djBu9C1N6puib0hboN1Og7P6R1pTC9+fnoPh5IzV6vF7/Ehkkul9xpFJT4dMK/ZTyUhRHpUGEdzPMoPd+TRyeBGVbdQpon3d5hcv1cbVD7ygeiHoHH5IRdu7BlK7fHxv7qOYoU+jZtb0H7vLdYknS+Ps03OM3anm9Khc4xwgxYmK/5juSybpDoU+tl9FNODns1S9lpEBTmqcbrnOlp5snG3L3Gfp1pEhUOhKJHw0u8Iao5y4k2nUQt6fIJ6zcHosl/t0E0WdoYI02Y46lzgWKsPsSGQHk7wdwu723QtnsFHULwQ/ajBD+7GKKWiIxxe/x+K5RrGznB4kCnOu+TKZpn4HvZRUnLLKHynknNroHSn1Z0Xxy1UwmezUsoa0lPoeO1e9KJVGolU6d6PF6VZdpkGAQus9+QYqY0kwB9fuDf4boUB3jIXf5CNzlJwx3DDUB/N1UiCnD3I1WYDyeeBgb/5HBZ0DEBBZiH6bbHY6SiI/dvxAk/rpUCixm93g8V2ttx1Ru1C4ED+cVqwykbqMp20YXW28x2evlxUQm849SXEkE4SZPop/E4DwYDX8eVt7p4FrLtAzFYT2HYhMOvUeYJZhO180s9f2Mcjc3T95fKoF0ujWBDbtNcVQYPgPvCnz88UVyPCzjx49vgu/nDsXKdh/RtkdisTl1dZNjMkxQPMJn9FujWXqFgv3Qz5uaJuyD59yC7yLn1iMeWpJt4DD3wDGX5BwymfoflLgWzDBc39AwyfwmjxAHE3EilkIcKLOMmBCEk72AfWT03k1iikYTJ0B2K03SEulLpbC9Cw73TTHQGAr6zb6amDJEOBBTH8Kz/U/4s4P+rULzSOtKJnMx7KKNDnJWN0IxkUiSVQVO7fWWdDp7qZRONK/ip7klu1RIwQ4XiboNY+ft96HsnjscUxqc6JZSS2SHMwfGbaDs/g4bP06MwwIRcwxEjdEkLuhxzr9gLejSz4tExsoger4MQ+N4jng8NQMHi1bkQD3PBu54U4nvhWjzPSVqu3F9GlQGwQ5vUVgV0F1Q4OopU/X0Bis28zBwouWi3ieS9/9gY76tXZtTFvKcMBa7wmJQbGuVkA8mEqmzvd7wgQzByDCqBvheENxdJa5PLhSJ/EFMhB1U+XNFmfWMG+0A1/gZPla3TLS1tTWIQOPlilNA83NgHg+e/UwkklKqCLIRtMfjfV6MV1bmtPntstsdz9PYgJ7zJSq7Q90HRS4Noim1xoqc5hdiFrLZJt7RqCIkgFiH90VwDspuXVOajYAgCheb0CeP1srGRCJ9YbFUCoNAzCv5NRD6+1L+evU1ZdoNVvK6zeaYF4slzwyFQtNoXWqdriyFBtqeZSU+m91HZ4kZoFhCfGKhlLcAeasEpvR1TCDXex+L1+A7OAvcyBRTGvNYBqLt6+5pCrCpLQ6H82XF8//4hjoQfRtiX69CWb4ZOtDxCG0cDONgTSnvo2KtBX3VA5P6ltYnzvDH4uNW4WRzgnpWiSXV1DQent0FiluHaERr3wkZfnOfiWoGCr1yMsdhvVYrnr8eIZETt5X6u2xSMG5c62GiGpSVDofrSTG4ADSl/cHgAlYb6r2HbBZs9xReEirqFxsWmuslWh5SpCqhHLCbJr5VdTeLUoinpN9hflFLyz77iWowl7aM1MwcLR72wdN7By0EsNsbQGDKuQvjRoji3pWAuS7mwQpz+Ev9GkP2joLBtdkAVaBe1GKaIxSKlFPATr/DuokTJ9YN9nRyF/b4xWIvFVO4i3stROKP9eJG5YJ+q3A0epkJ1p3pRAM14M1i5cklAxp5Iza0rHwRsMCtEyZMOGTgs6EnBWnuQdlVzsqp7LJhIz20Yl5yESyk6L7wqSxS2c2igoPdR5eAz6s9ULFE4jQps4sTUyWgq5zc77EWphhgU83o25JDlHcrNvNyM3NeybkQyvgeiEWFST1iRBOJxGgRq7MgafY6Xa4Hyl0UxnOgU1zJZ1K34Z3TUEqV1jtpg4laz2m98ky7UITdOsFdFmoFfqM6Yw9ydZ6oRDAYo0hR0eaDRHMf/BbjwV0eMKFXCxW6Dq/XPzfvcjcJWt7QMSZ1Hc9JhQmQhxmc5ipRCAuccHNUfQj0li3Y2FViwmKDu/w1mUyfqiJuNBRY4MeuE1B2d5rwDd1er+9VOALfxhrx+cPOpSlnaH2OfyyqcMABB4RNCA4qfRbzT8DB7kwmh+yVpwIWxHxYvmvGDS752BI41xxGspubpzSCEx8LAroKh+w1LR3CtPvA+W74rY4VVWD/Wyiw1XaB+ceLjU3cFA7HfmJm63YmVbFNPRbXDFOa/qu3Ie6+I5/Vv3iJfJTpEBDpF8N/tUnxu7U19PyNl9WLItgw2dukOpW8bvgWnmLpiJhoSkNZn+b3Bx83Kee4E3G8eQjGNulNgtwnEAhdaS20XlM2B+qUCAI/WayyoyQwmAg94W9SXUSTs9sdW7CRlzJVQkwC9SLeZ2DSDS4MMrI54g9Fv5oR+qRvf3zvEsVz4Pu3U1dV7o7w+YKs66km0cQE71fIrsW8qDR8R+ObgsHwfDMCpYXedqHHM5mGg/QmwUR9pj2obsGC0eP3B5ak0/WHi2p3BH0zUMIekergMvm281B25zY1NWXEJOQL7OLxE9mx3ITvpjjazIqJSZMmBfTmoV079JjqRH26IxjXS6VMiuzzujxq1TLyRJOPi/AWEzGxMJ1s2ul0zTHpmxnKWJpMJlm3NaTuUGjflpjJ7l2K50BlG+6IzMlmuiNYJXmxjCzB5HNDwErvRSBNt8C/TCAqnf0iHIJmXHZB7rIzGAzeNK5IZB3Kbj2MjlvUXwxi3c0keXBo9hs0r7C/kIvrWyYjRDT0UEJEbPQFAucXyxsuB2z76nbnc47N6IRFd8DKWCz1DdHRHQo154mvQ2y8KcqVXedmEMw5FblJLh5PH6Z1B+8dgcFeeYsymcZpYqIpzUQwHIwHTQpl7IZ193sos416k4jHJwXAhS5noZsoJJiCsh18DL4Xhn8qcucBwwbXSeW5TJ6V493XmGlKU8EPRSJnQH9Zq/obtW4SG2Kx2JlFTreFebxut3uxamUX+tA2KNvnF1O2lYI5s3Bnr5LKEk0Op55ZfUzBNO1ksHxXyzlW3g5EaxN/P5Tdz+nNgaZ0KBT9KaxB1YnyULZ9r/DSD6l0U6JAKMTGw0ao32h0ltbRSjObA2pR6RnQMcxwVNIdsJ3X3xTpVQzjor4VCvdC9dyloGyb6Y4YEmSpwJ/FwMKyIIydNY38Lu9DSuPlYgLogkds5boyujjozbvH4/W+yLb8UsSUhvf3BCi7qhPlWdnBenPeZ2Ba3pAuqBxiEiUXwVHxgw/gpGg0zk4FJSuWhSh1cLbii6q08l2vGVYgT/eOSCT2nxB5ui1QoIzWQWzMV1xznle2Q6HwH5ubJ+tWdpgNSzyZPNdA582c0+VaxxxiEFyTUX2I92hDgfyyKAD1hkAgcBHLfUVMUXZX8XZe0T/dVjhIj4DrQKkp/YmynZhVX3+oaUnywwI7cGLDn5XSP5DZeHdLYQHt4XD0cjHmJMtBkVxYZrWAJZ1u3Bcn+09aVFp5N4lQKHIniHsfvUnU1+8bJedkHoyoJRg4O4OPwr90gFQDeB2fdplEaR9itbbHCgHEPGg9QHYbsgxY5Rc2eDt9oXw3NotOQTFF2bWuSWYyJxczpenjAtEuLaWD1fDeb9uOA3mZSfXmhmBhY0MxwGUgApb39wnQgvAHAkZrvXMOp3M5Oy1ICUgmx6cgGv+HZq+Bd+rOh6cbcZsnnE5/Ee5S7wHRnqXau1xo3eZ9GdxtulTT5V2YUB0230gInnczXj7weUy6LkPxo0f4Wq0Dgi5oleBd3zDpBhUeiM0QBRcVKSLTynD896i+GATPY+v+a8eZWxFqDLFY8lQD7nQu6qbGxtYpA58XhUcXYoLcxmjrsM3FrsXL10r7/Qjw2VVehtr/dL9QrJsECTsQCJ+uugyHyi7NcxwI3rtkWr25YTBUDtPtXjEgmoKhEHvmDhpqByF+pRxWDTf/G3BWDSYSrJlMZhrrmsQE7mKz29uh7M6lyBMd0NSG2LoRf1TKXRjzw/vvAPefLNWKVKppPDag5K7ilPXwy5wz1HOpMIIYbxGDG6uV0z7YvxVsBEog3nmpooZKn9kwWI9vZrMN/8y69aG+S7tnYQZLTVRfDAJxtB7c5V8rEpUuBwyuSeliJN9loNgFmWDvB7PLlBgnHPacu5WKNtzkrVDWF2kbpXizbLuhR81nTove99BywRyu5UUeCufAOxa6fD7/05iDbtyqKkAnGOTx02JANIE1/1aKaPNUVKEoX1KOgshm1uA4C/FzlYgpyu6GeDz5I5rsOp9iwVodyMx9xXPg+z+Co+4iMytClQLxkL83cjsJTkY7/BFHDOcdhdiPu9wCf+WlqpZCY8aHi5VvsOY8FApdYNT3NPQaWniL2/JMpoFd0CuS86ICFlgfN4gBLgPu9FopvUwYA1K96GUMnu4tON0XFrtBlwX+breXjQ9UJmrllW2Y0rcXE4dVh0LzZs8qMUA00O7nSAkg64+xn676zpylDpbAvJQpcsdBISqdPA6HY7UoFkdQtldCFB1nZoK3aWB+iYH7gOhD6QCXOUZKBJQ8em0fNSG9crjcpQ3i6KZi5RvQXRrAXehd5tqojEqz3vzeUcdd+sEaiUTnigEuAzm8ngXqYgCF1Avva6I+67/o6dZ6FesmeMO8PxKE/ZaoV3Y3sOv4iEelywH77Rtshsykn3J6s1lSqboZqm+bE53TDc/u3cUSvCOR5hBM+itUtw8peJZ9jw+jdX/1IxyNfk8Mpi+A06wuswskrwn8tsmEw141bMw4q0iqhYXRffzbRaKeu7QxbqS8+eFIoNAL2PGEGFwkZrtjIaZLebCFw7HTsLDK642obEN3uV/rVWzRW4dwOHoevqfUK/uKDU3Zrj9KqjFuZASRSGRqOaWnWiLQTUUu7ioKWlTw9l6pOA2yBzrTf02dOlWvV7EFuksLNvZexdZcPkkL0e7fmNkFfUTAlE4pc5Ow2FtBfDOkTLDCEeY70zKVtPNgth50k/kkChmEy5BQE+n06U6Xa5WoN6XXsFa63MNUdSjc0eR/XBQsGBZpabF29cMB0wugmH8fp1SJmKCnFcr6X+DFnd5/A+mXglJ6p1bzpNSUBte6h+UpMtqV3cGQzY6bjA9UEiGmZYBTvaCIKBgWuLmhSORMrT2Ykg3F/D7yBYNnM6ajtZ1X3Qmdyu5GcLWzqj4qXQ4QmDtDFC4ca4lgiZ2niCXbeXUMW+GLOsIhF1gCbrBNFJvSULaf5R1UMha5i2gfxY1dvnz5gu7u7m+Kwg9lxr3L5f1ZIOC9Cwrgjj179nSLQWzfvt26efPmo3fu3HVjd/eerKJ59oq67+3l3UpOp3tuLBa5eu3atVtljCK/YI2N+0c2bXrn2c7OXZNEcVSVJxpxmlUgyLdzuVz7YO+XwTevV/uZKzzGshsn+KPe3t7pO3furI4yjU/Qy9a4iEmdt379msVS8HONbcC8nYRNUV6a2m/kFI/eKhlUdjuhXM+vygRvM6HV+47GG0JGlGDcHs9bybS5XdCrFlAyjaR17rXEol0o/3vtbu4xqezqQXNlj0xTgVEIKLvOLV6/7/pIKHTt6tWrO2UvRJ5oentztGr2uhNTCrRE9kVeb/CSDz5Yt2z71q052ZuBxTjUhHshx4w4Yt87mNKzK9p2rNrB+iGYxWbcIDLaB9uOvardnjtqErwrBWs0mji7CvJ0q2XkTelgMPyrhoaGkhoO7FVADCbt9wcW7uWEQ8uoB36XlYjUf2dMx41UgYnTTHC2WJRGe0cFsXCw4jMWS1yTzTY3Sg3DB/UbEM7NYM+btOqAsUo8eULhN+JbN8Lv8r9akLGmuxTBUGY2L284BAHGUzs7O7/Q1dXFdqJexI4c2u+MZvM8n5BltVpgETnfh1X0sN/vvW39+vV9LWFrKIJim29rampK5nLW1rZdO1o6du6KY6HTWPAwftOC5ff19PTkk6Ot1vyzeIItuVz+Z/7/8c+D/eTfD/bnwf5dH0C09vb2dr6vPzfIv7PfTxn4Z7fbu8Nut7XZbNYNOACbHA73m5FIbHlXl/29deve6EuNqGGYMMIx+nOaSnMdo+/L9ftZI5Ay8f+8FFLxg4KdeQAAAABJRU5ErkJggg==", ft = {}, mt = { class: "_p-5 _w-full _flex _flex-col _gap-5 _items-center _overflow-y-scroll-masked _no-scrollbar _relative" }, vt = { class: "_absolute _top-4 _left-4 _z-10" }, pt = { class: "_mt-6 _w-full _text-center" }, gt = { class: "_size-24 _rounded-full _mx-auto" }, ht = { class: "_mt-5 _flex _flex-col _gap-3 _w-full" }, yt = { class: "_text-5xl _tracking-wide _w-full _text-center _min-w-0" }, bt = { class: "_w-full _flex-1 _flex _flex-col _gap-3" };
7
+ function xt(k, l) {
8
+ return t(), a("div", mt, [
9
+ e("div", vt, [
10
+ ie(k.$slots, "admin-controls")
11
+ ]),
12
+ e("header", pt, [
13
+ e("div", gt, [
14
+ ie(k.$slots, "avatar")
15
+ ]),
16
+ e("div", ht, [
17
+ e("h2", yt, [
18
+ ie(k.$slots, "title")
19
+ ]),
20
+ k.$slots.description ? ie(k.$slots, "description", { key: 0 }) : i("", !0)
21
+ ])
22
+ ]),
23
+ e("section", bt, [
24
+ ie(k.$slots, "default")
25
+ ])
26
+ ]);
27
+ }
28
+ const wt = /* @__PURE__ */ Fe(ft, [["render", xt]]), kt = ["disabled"], At = { class: "_size-7 _rounded-lg _overflow-hidden" }, St = ["src"], Ct = { class: "_flex-1 _min-w-0 _truncate _text-center _text-stroke-md _leading-snug" }, Ut = { class: "_size-7 _flex _justify-end _items-center" }, zt = {
29
+ key: 0,
30
+ class: "_whitespace-nowrap _leading-snug _pr-[0.25em] _pl-[0.4em] _shadow-panel-inset _rounded-full _text-[0.875em] _tracking-tight"
31
+ }, re = {
32
+ __name: "AuthButton",
33
+ props: {
34
+ platform: {
35
+ type: String,
36
+ default: "wallet"
37
+ },
38
+ points: {
39
+ type: String,
40
+ default: void 0
41
+ },
42
+ disabled: {
43
+ type: Boolean,
44
+ default: !1
45
+ }
46
+ },
47
+ setup(k) {
48
+ const l = k, b = g(() => Re[l.platform]), r = ge("TrifleHub/store");
49
+ let A = !1;
50
+ const U = async (h) => {
51
+ if (!A)
52
+ switch (A = !0, setTimeout(() => {
53
+ A = !1;
54
+ }, 1e3), h) {
55
+ case "discord":
56
+ await f();
57
+ break;
58
+ case "farcaster":
59
+ await w();
60
+ break;
61
+ case "wallet":
62
+ case "email":
63
+ await o();
64
+ break;
65
+ case "twitter":
66
+ await B();
67
+ break;
68
+ case "telegram":
69
+ await z();
70
+ break;
71
+ case "solana":
72
+ await L();
73
+ break;
74
+ default:
75
+ throw new Error(`Unsupported platform: ${h}`);
76
+ }
77
+ }, w = async () => {
78
+ console.log("Farcaster connect clicked");
79
+ try {
80
+ await r.connectFarcaster();
81
+ } catch (h) {
82
+ console.error("Farcaster connection failed:", h), r.addNotification({
83
+ type: "error",
84
+ message: "Farcaster login failed. Try again?"
85
+ });
86
+ }
87
+ }, o = async () => {
88
+ try {
89
+ await r.connectWallet();
90
+ } catch (h) {
91
+ console.error("Wallet connection failed:", h), r.addNotification({
92
+ type: "error",
93
+ message: "Wallet login failed. Try again?"
94
+ });
95
+ }
96
+ }, f = async () => {
97
+ try {
98
+ await r.connectDiscord();
99
+ } catch (h) {
100
+ h.message.includes("Authentication window closed") && r.addNotification({
101
+ type: "error",
102
+ message: "Discord login failed. Try again?"
103
+ }), console.error("Discord connection failed:", h);
104
+ }
105
+ }, B = async () => {
106
+ try {
107
+ await r.connectTwitter();
108
+ } catch (h) {
109
+ h.message.includes("Authentication window closed") && r.addNotification({
110
+ type: "error",
111
+ message: "TwitterX login failed. Try again?"
112
+ }), console.error("TwitterX connection failed:", h);
113
+ }
114
+ }, z = async () => {
115
+ try {
116
+ await r.connectTelegram();
117
+ } catch (h) {
118
+ console.error("Telegram connection failed:", h), r.addNotification({
119
+ type: "error",
120
+ message: "Telegram login failed. Try again?"
121
+ });
122
+ }
123
+ }, L = async () => {
124
+ try {
125
+ await r.connectSolana();
126
+ } catch (h) {
127
+ console.error("Solana connection failed:", h), r.addNotification({
128
+ type: "error",
129
+ message: h.message || "Solana login failed. Try again?"
130
+ });
131
+ }
132
+ };
133
+ return (h, M) => (t(), a("button", {
134
+ class: "_platform-login-btn _bubble-btn-full _p-4.5",
135
+ style: pe({
136
+ filter: `hue-rotate(${b.value.bubbleButtonStyle.hueRotate}deg) saturate(${b.value.bubbleButtonStyle.saturate}) brightness(${b.value.bubbleButtonStyle.brightness || 1})`
137
+ }),
138
+ disabled: l.disabled,
139
+ onClick: M[0] || (M[0] = (P) => l.click || U(l.platform))
140
+ }, [
141
+ e("div", {
142
+ class: "_flex _justify-between _items-center _gap-2.5",
143
+ style: pe({
144
+ filter: `hue-rotate(${b.value.bubbleButtonStyle.hueRotate * -1}deg) saturate(${1 / b.value.bubbleButtonStyle.saturate})`
145
+ })
146
+ }, [
147
+ e("div", At, [
148
+ e("img", {
149
+ src: b.value.icon,
150
+ class: "_w-full",
151
+ style: pe({ backgroundColor: b.value.iconBgColor })
152
+ }, null, 12, St)
153
+ ]),
154
+ e("div", Ct, [
155
+ ie(h.$slots, "default")
156
+ ]),
157
+ e("div", Ut, [
158
+ l.points ? (t(), a("div", zt, v(l.points) + " 🪩 ", 1)) : i("", !0)
159
+ ])
160
+ ], 4)
161
+ ], 12, kt));
162
+ }
163
+ }, Tt = { class: "_flex _flex-col _gap-2ff _bg-metallic-linear _shadow-panel _rounded-lg _p-3 _gap-3" }, Dt = { class: "_flex _items-center _justify-between _gap-3" }, Bt = { class: "_flex _items-center _gap-2.5 _min-w-0" }, Nt = { class: "_flex-1 _min-w-0 _leading-tight" }, Lt = { class: "_flex-1 _min-w-0 _truncate _text-em-lg _text-gray-500" }, Mt = ["disabled"], jt = { class: "_flex-1 _min-w-0 _truncate _text-center _text-stroke-md _leading-snug" }, $t = {
164
+ key: 0,
165
+ class: "_animate-pulse-deep"
166
+ }, Ft = {
167
+ __name: "AuthenticateWalletSection",
168
+ props: {
169
+ walletAddress: String,
170
+ walletAvatar: String,
171
+ displayName: String,
172
+ points: String,
173
+ disabled: {
174
+ type: Boolean,
175
+ default: !1
176
+ }
177
+ },
178
+ setup(k) {
179
+ const l = Re.wallet, b = k, r = ge("TrifleHub/store"), A = p(!1), U = async () => {
180
+ if (b.disabled || r.isSimulationMode) {
181
+ r.addNotification({
182
+ message: "Cannot disconnect wallet in simulation mode",
183
+ type: "error"
184
+ });
185
+ return;
186
+ }
187
+ try {
188
+ if (!b.walletAddress)
189
+ throw new Error("No wallet address provided");
190
+ r.isWalletAuthenticated(b.walletAddress) ? await r.disconnectPlatformInstance("wallet", b.walletAddress) : await r.disconnectWalletConnection(), r.addNotification({ message: "Wallet disconnected" });
191
+ } catch (o) {
192
+ console.error(o), r.addNotification({ type: "error", message: "Failed to disconnect wallet" });
193
+ }
194
+ }, w = async () => {
195
+ if (b.disabled || r.isSimulationMode) {
196
+ r.addNotification({
197
+ message: "Cannot authenticate wallet in simulation mode",
198
+ type: "error"
199
+ });
200
+ return;
201
+ }
202
+ A.value = !0;
203
+ try {
204
+ await r.authenticateWithWallet(b.walletAddress);
205
+ } catch {
206
+ r.addNotification({ type: "error", message: "Authentication failed" });
207
+ } finally {
208
+ A.value = !1;
209
+ }
210
+ };
211
+ return (o, f) => (t(), a("section", Tt, [
212
+ e("div", Dt, [
213
+ e("div", Bt, [
214
+ f[0] || (f[0] = e("img", {
215
+ src: Oe,
216
+ class: "_size-7 _rounded-md",
217
+ style: { "background-color": "#f1584d" }
218
+ }, null, -1)),
219
+ e("div", Nt, [
220
+ e("div", Lt, v(k.displayName), 1)
221
+ ])
222
+ ]),
223
+ e("button", {
224
+ class: "_bubble-btn _h-10 _text-sm _text-stroke-md _px-[1em]",
225
+ "aria-label": "Disconnect wallet",
226
+ onClick: U,
227
+ title: "Disconnect wallet"
228
+ }, f[1] || (f[1] = [
229
+ e("span", null, "⛌", -1)
230
+ ]))
231
+ ]),
232
+ e("button", {
233
+ class: "_platform-login-btn _bubble-btn _p-4.5 flex-1 basis-1/2ff min-w-0",
234
+ style: pe({
235
+ filter: `hue-rotate(${d(l).bubbleButtonStyle.hueRotate}deg) saturate(${d(l).bubbleButtonStyle.saturate}) brightness(${d(l).bubbleButtonStyle.brightness || 1})`
236
+ }),
237
+ onClick: w,
238
+ disabled: A.value || k.disabled
239
+ }, [
240
+ e("div", jt, [
241
+ A.value ? (t(), a("span", $t, "Confirm in your wallet...")) : (t(), a(D, { key: 1 }, [
242
+ x("Finish Wallet Login")
243
+ ], 64))
244
+ ])
245
+ ], 12, Mt)
246
+ ]));
247
+ }
248
+ }, Ht = /* @__PURE__ */ Fe(Ft, [["__scopeId", "data-v-221d7566"]]), It = {
249
+ key: 0,
250
+ class: "_flex _items-center _gap-2.5 _-mt-1.5"
251
+ }, Pt = { class: "_text-mlg _opacity-30 _weight-bold" }, Yt = { class: "_flex _flex-col _gap-0.5" }, Wt = { class: "_flex _items-center _gap-2" }, Et = ["disabled"], Qt = ["onClick"], Rt = ["src"], Ot = {
252
+ key: 1,
253
+ class: "_w-full _flex _items-center _justify-center"
254
+ }, Kt = { class: "_flex-1 _min-w-0 _leading-tight" }, Xt = ["onClick"], Jt = {
255
+ key: 0,
256
+ class: "_text-em-2xs _text-primary _leading-none _weight-semibold"
257
+ }, Vt = {
258
+ key: 0,
259
+ class: "_opacity-30"
260
+ }, Gt = {
261
+ key: 1,
262
+ class: "_text-em-2xs _text-gray-500 _leading-none _weight-semibold"
263
+ }, Zt = ["onClick"], qt = { styleff: "filter: hue-rotate(-130deg) saturate(0.5)" }, ea = {
264
+ key: 0,
265
+ class: "_flex _items-center _gap-2.5 _-mt-1.5"
266
+ }, ta = { class: "_text-mlg _opacity-30 _weight-bold" }, aa = { class: "_flex _flex-col _gap-0.5" }, sa = { class: "_flex _items-center _gap-2" }, la = { class: "_flex-1 _min-w-0 _leading-tight" }, na = { class: "_flex-1 _min-w-0 _truncate _text-em-lg" }, oa = ["onClick"], ra = {
267
+ key: 0,
268
+ class: "_flex _items-center _gap-2.5 _-mt-1.5"
269
+ }, ia = { class: "_space-y-0.5" }, ua = { class: "_flex _items-center _gap-2" }, ca = ["disabled"], da = ["onClick"], _a = ["src"], fa = {
270
+ key: 1,
271
+ class: "_w-full _flex _items-center _justify-center"
272
+ }, ma = { class: "_flex-1 _min-w-0 _leading-tight" }, va = { class: "_flex-1 _min-w-0 _truncate _text-em-lg" }, pa = ["onClick"], ga = { styleff: "filter: hue-rotate(-130deg) saturate(0.5)" }, ha = {
273
+ key: 0,
274
+ class: "_flex _items-center _gap-2.5 _-mt-1.5"
275
+ }, ya = { class: "_space-y-0.5" }, ba = { class: "_flex _items-center _gap-2" }, xa = ["disabled"], wa = ["onClick"], ka = ["src"], Aa = {
276
+ key: 1,
277
+ class: "_w-full _flex _items-center _justify-center"
278
+ }, Sa = { class: "_flex-1 _min-w-0 _leading-tight" }, Ca = { class: "_flex-1 _min-w-0 _truncate _text-em-lg" }, Ua = {
279
+ key: 0,
280
+ class: "_text-em-2xs _text-blue-400 _leading-none"
281
+ }, za = ["onClick"], Ta = { styleff: "filter: hue-rotate(-130deg) saturate(0.5)" }, Da = {
282
+ key: 0,
283
+ class: "_flex _items-center _gap-2.5 _-mt-1.5"
284
+ }, Ba = { class: "_space-y-0.5" }, Na = { class: "_flex _items-center _gap-2" }, La = ["disabled"], Ma = ["onClick"], ja = ["src"], $a = {
285
+ key: 1,
286
+ class: "_w-full _flex _items-center _justify-center"
287
+ }, Fa = { class: "_flex-1 _min-w-0 _leading-tight" }, Ha = { class: "_flex-1 _min-w-0 _truncate _text-em-lg" }, Ia = ["onClick"], Pa = { styleff: "filter: hue-rotate(-130deg) saturate(0.5)" }, Ya = {
288
+ key: 0,
289
+ class: "_flex _items-center _gap-2.5 _-mt-1.5"
290
+ }, Wa = { class: "_space-y-0.5" }, Ea = { class: "_flex _items-center _p-2 _pr-3.5 _justify-between _bg-metallic-linear _shadow-panel _rounded-lg" }, Qa = { class: "_flex _items-center _gap-2" }, Ra = ["disabled"], Oa = ["onClick"], Ka = ["src"], Xa = {
291
+ key: 1,
292
+ class: "_w-full _flex _items-center _justify-center"
293
+ }, Ja = { class: "_flex-1 _min-w-0 _leading-tight" }, Va = { class: "_flex-1 _min-w-0 _truncate _text-em-lg" }, Ga = ["onClick"], Za = { styleff: "filter: hue-rotate(-130deg) saturate(0.5)" }, qa = {
294
+ __name: "AccountSettings",
295
+ setup(k) {
296
+ const l = ge("TrifleHub/store"), { isAuthenticated: b, backendUrl: r } = $e(l), A = g(() => !!l.isFarcaster), U = g(() => l.isSuperApp), w = async () => {
297
+ await l.addFrame();
298
+ }, o = g(() => l.getPlatformData("wallet")), f = g(() => l.getPlatformData("solana")), B = g(() => l.getPlatformData("discord").filter((_) => _.username)), z = g(() => l.getPlatformData("farcaster")), L = g(() => l.getPlatformData("twitter").filter((_) => _.username)), h = g(() => l.getPlatformData("telegram").filter((_) => _.username)), M = g(() => B.value.length > 0), P = g(() => z.value.length > 0), Y = g(() => L.value.length > 0), K = g(() => h.value.length > 0), X = g(() => f.value.length > 0), O = g(
299
+ () => o.value.length + f.value.length + B.value.length + z.value.length + L.value.length + h.value.length
300
+ ), N = p({ platform: null, id: null }), Q = async (_, y, R) => {
301
+ if (R.stopPropagation(), l.isSimulationMode) {
302
+ l.addNotification({
303
+ message: "Cannot disconnect platforms in simulation mode",
304
+ type: "error"
305
+ });
306
+ return;
307
+ }
308
+ if (N.value.platform === _ && N.value.id === y) {
309
+ try {
310
+ await l.disconnectPlatformInstance(_, y);
311
+ } catch (de) {
312
+ console.error(`Failed to disconnect ${_} instance:`, de);
313
+ }
314
+ N.value = { platform: null, id: null };
315
+ return;
316
+ }
317
+ N.value = { platform: _, id: y };
318
+ }, ee = () => {
319
+ N.value = { platform: null, id: null };
320
+ };
321
+ Ee(N, (_) => {
322
+ _.platform ? window.addEventListener("click", ee, { once: !0 }) : window.removeEventListener("click", ee);
323
+ });
324
+ const te = (_) => _ ? `0x${_.slice(2, 6).toUpperCase()}...${_.slice(-4).toUpperCase()}` : "", ue = (_) => _ ? `${_.slice(0, 4)}...${_.slice(-4)}` : "", T = async () => {
325
+ try {
326
+ await l.disconnect(), console.log("User logged out");
327
+ } catch (_) {
328
+ console.error("Logout failed:", _);
329
+ }
330
+ };
331
+ g(() => l.isWalletAuthenticated(l.accountAddress));
332
+ const m = g(() => l.accountAddress), j = g(() => m.value ? o.value.find((_) => {
333
+ var y, R;
334
+ return ((y = _.id) == null ? void 0 : y.toLowerCase()) === ((R = m.value) == null ? void 0 : R.toLowerCase());
335
+ }) : null), ce = async () => {
336
+ try {
337
+ await l.openAccountModal();
338
+ } catch {
339
+ l.addNotification({ type: "error", message: "Couldn't open wallet modal" });
340
+ }
341
+ }, J = async (_, y) => {
342
+ if (l.isSimulationMode) {
343
+ l.addNotification({
344
+ message: "Cannot set avatar in simulation mode",
345
+ type: "error"
346
+ });
347
+ return;
348
+ }
349
+ try {
350
+ if (!(await fetch(`${r.value}/auth/update-avatar`, {
351
+ method: "POST",
352
+ headers: {
353
+ "Content-Type": "application/json",
354
+ Authorization: `Bearer ${l.authToken}`
355
+ },
356
+ body: JSON.stringify({ platform: _, platformId: y })
357
+ })).ok) throw new Error("Failed to set avatar");
358
+ await l.fetchUserStatus(), l.addNotification({ type: "success", message: "Avatar updated!" });
359
+ } catch (R) {
360
+ l.addNotification({ type: "error", message: "Oops, couldn't set avatar. Try again?" }), console.error("Failed to set avatar:", R);
361
+ }
362
+ };
363
+ return (_, y) => {
364
+ var R, de, xe, we, ae, se, le, ne, ke;
365
+ return t(), a("section", {
366
+ class: C(["_flex _flex-col _gap-[inherit]", _.$attrs.class])
367
+ }, [
368
+ e("section", {
369
+ class: C(["_bg-metallic-linear _shadow-panel _p-4 _space-y-1.5 _rounded-lg", { "_order-last": !((R = o.value) != null && R.length) }])
370
+ }, [
371
+ o.value.length ? (t(), a("header", It, [
372
+ e("h3", Pt, " wallet" + v(o.value.length > 1 ? "s" : ""), 1)
373
+ ])) : i("", !0),
374
+ e("ul", Yt, [
375
+ (t(!0), a(D, null, q(o.value, (n) => {
376
+ var $, F, W, _e, fe, Ae, Se, he;
377
+ return t(), a("li", {
378
+ key: n.id,
379
+ class: C(["_flex _items-center _p-2 _pr-3.5 _justify-between _bg-metallic-linear _shadow-panel _rounded-lg", {
380
+ "_order-first": d(l).accountConnected && n.id.toLowerCase() === (($ = d(l).accountAddress) == null ? void 0 : $.toLowerCase())
381
+ }])
382
+ }, [
383
+ e("div", Wt, [
384
+ e("button", {
385
+ class: C(["_size-11 _flex _items-stretch _p-1.5 _group _rounded-md _overflow-hidden", [
386
+ {
387
+ "_shadow-panel": n.avatar,
388
+ "_shadow-panel-inset _bg-metallic-cone _cursor-default": n.avatar === ((F = d(l).user) == null ? void 0 : F.avatar)
389
+ }
390
+ ]]),
391
+ disabled: !n.avatar
392
+ }, [
393
+ n.avatar ? (t(), a("div", {
394
+ key: 0,
395
+ onClick: () => J("wallet", n.id),
396
+ style: { background: "none" },
397
+ type: "button",
398
+ title: "Set as profile avatar"
399
+ }, [
400
+ e("img", {
401
+ src: `${n.avatar}`,
402
+ class: C(["_size-full _rounded-full _duration-150", {
403
+ "group-hover:_scale-[1.8]": n.avatar !== ((W = d(l).user) == null ? void 0 : W.avatar)
404
+ }])
405
+ }, null, 10, Rt)
406
+ ], 8, Qt)) : (t(), a("div", Ot, y[0] || (y[0] = [
407
+ e("img", {
408
+ src: Oe,
409
+ class: "_size-6 _rounded",
410
+ style: { "background-color": "#f1584d" }
411
+ }, null, -1)
412
+ ])))
413
+ ], 10, Et),
414
+ e("div", Kt, [
415
+ e("div", {
416
+ onClick: () => {
417
+ var V;
418
+ return n.id.toLowerCase() == ((V = d(l).accountAddress) == null ? void 0 : V.toLowerCase()) && ce();
419
+ },
420
+ class: C(["_flex-1 _min-w-0 _truncate _text-em-lg", {
421
+ "_text-stroke-xl _tracking-wide": o.value.length > 1 && d(l).accountConnected && n.id.toLowerCase() === ((_e = d(l).accountAddress) == null ? void 0 : _e.toLowerCase()),
422
+ "cursor-pointer": n.id.toLowerCase() == ((fe = d(l).accountAddress) == null ? void 0 : fe.toLowerCase())
423
+ }])
424
+ }, v(n.username == n.id ? te(n.id) : n.username), 11, Xt),
425
+ d(l).accountConnected && n.id.toLowerCase() === ((Ae = d(l).accountAddress) == null ? void 0 : Ae.toLowerCase()) ? (t(), a("div", Jt, [
426
+ y[1] || (y[1] = x(" connected ")),
427
+ (Se = n.metadata) != null && Se.origin ? (t(), a("span", Vt, " via " + v(n.metadata.origin), 1)) : i("", !0)
428
+ ])) : (he = n.metadata) != null && he.origin ? (t(), a("div", Gt, " via " + v(n.metadata.origin), 1)) : i("", !0)
429
+ ])
430
+ ]),
431
+ O.value > 1 ? (t(), a("button", {
432
+ key: 0,
433
+ class: "_bubble-btn _h-10 _text-sm _text-stroke-md _px-[1em]",
434
+ onClick: (V) => Q("wallet", n.id, V),
435
+ styleff: "filter: hue-rotate(130deg) saturate(2)",
436
+ "aria-label": "Remove"
437
+ }, [
438
+ e("span", qt, [
439
+ N.value.platform == "wallet" && N.value.id == n.id ? (t(), a(D, { key: 0 }, [
440
+ x(" Confirm? ")
441
+ ], 64)) : (t(), a(D, { key: 1 }, [
442
+ x(" ⛌ ")
443
+ ], 64))
444
+ ])
445
+ ], 8, Zt)) : i("", !0)
446
+ ], 2);
447
+ }), 128)),
448
+ d(b) && d(l).accountConnected && d(l).currentWalletNeedsAuth && !A.value ? (t(), E(Ht, {
449
+ key: 0,
450
+ "wallet-address": d(l).accountAddress,
451
+ "wallet-avatar": (de = j.value) == null ? void 0 : de.avatar,
452
+ "display-name": ((xe = j.value) == null ? void 0 : xe.username) || m.value,
453
+ disabled: d(l).isSimulationMode
454
+ }, {
455
+ default: I(() => [
456
+ x(" Authenticate " + v(te(d(l).accountAddress)), 1)
457
+ ]),
458
+ _: 1
459
+ }, 8, ["wallet-address", "wallet-avatar", "display-name", "disabled"])) : i("", !0),
460
+ d(b) && !d(l).accountConnected && !A.value ? (t(), E(re, {
461
+ key: 1,
462
+ platform: "wallet",
463
+ points: o.value.length ? void 0 : "+10",
464
+ disabled: d(l).isSimulationMode,
465
+ class: "_w-full"
466
+ }, {
467
+ default: I(() => [
468
+ x(v(o.value.length > 0 ? "Link another Wallet" : "Link Wallet"), 1)
469
+ ]),
470
+ _: 1
471
+ }, 8, ["points", "disabled"])) : i("", !0)
472
+ ])
473
+ ], 2),
474
+ e("section", {
475
+ class: C(["_bg-metallic-linear _shadow-panel _p-4 _space-y-1.5 _rounded-lg", { "_order-last": !((we = f.value) != null && we.length) }])
476
+ }, [
477
+ f.value.length ? (t(), a("div", ea, [
478
+ e("h3", ta, " solana wallet" + v(f.value.length > 1 ? "s" : ""), 1)
479
+ ])) : i("", !0),
480
+ e("ul", aa, [
481
+ (t(!0), a(D, null, q(f.value, (n) => (t(), a("li", {
482
+ key: n.id,
483
+ class: "_flex _items-center _p-2 _pr-3.5 _justify-between _bg-metallic-linear _shadow-panel _rounded-lg"
484
+ }, [
485
+ e("div", sa, [
486
+ y[2] || (y[2] = e("div", { class: "_size-11 _flex _items-stretch _p-1.5 _rounded-md" }, [
487
+ e("div", { class: "_w-full _flex _items-center _justify-center" }, [
488
+ e("img", {
489
+ src: ut,
490
+ class: "_size-6 _rounded",
491
+ style: { "background-color": "#000" }
492
+ })
493
+ ])
494
+ ], -1)),
495
+ e("div", la, [
496
+ e("div", na, v(ue(n.id)), 1)
497
+ ])
498
+ ]),
499
+ O.value > 1 ? (t(), a("button", {
500
+ key: 0,
501
+ class: "_bubble-btn _h-10 _text-sm _text-stroke-md _px-[1em]",
502
+ onClick: ($) => Q("solana", n.id, $),
503
+ "aria-label": "Remove"
504
+ }, [
505
+ e("span", null, [
506
+ N.value.platform == "solana" && N.value.id == n.id ? (t(), a(D, { key: 0 }, [
507
+ x(" Confirm? ")
508
+ ], 64)) : (t(), a(D, { key: 1 }, [
509
+ x(" ⛌ ")
510
+ ], 64))
511
+ ])
512
+ ], 8, oa)) : i("", !0)
513
+ ]))), 128)),
514
+ !X.value && !A.value ? (t(), E(re, {
515
+ key: 0,
516
+ platform: "solana",
517
+ points: f.value.length ? void 0 : "+10",
518
+ disabled: d(l).isSimulationMode,
519
+ class: "_w-full"
520
+ }, {
521
+ default: I(() => [
522
+ x(v(f.value.length > 0 ? "Link another Solana" : "Link Solana"), 1)
523
+ ]),
524
+ _: 1
525
+ }, 8, ["points", "disabled"])) : i("", !0)
526
+ ])
527
+ ], 2),
528
+ e("section", {
529
+ class: C(["_bg-metallic-linear _shadow-panel _p-4 _space-y-1.5 _rounded-lg", { "_order-last": !((ae = B.value) != null && ae.length) }])
530
+ }, [
531
+ B.value.length ? (t(), a("div", ra, y[3] || (y[3] = [
532
+ e("h3", { class: "_text-mlg _opacity-30 _weight-bold" }, "discord", -1)
533
+ ]))) : i("", !0),
534
+ e("ul", ia, [
535
+ (t(!0), a(D, null, q(B.value, (n) => {
536
+ var $, F;
537
+ return t(), a("li", {
538
+ key: n.id,
539
+ class: "_flex _items-center _p-2 _pr-3.5 _justify-between _bg-metallic-linear _shadow-panel _rounded-lg"
540
+ }, [
541
+ e("div", ua, [
542
+ e("button", {
543
+ class: C(["_size-11 _flex _items-stretch _p-1.5 _group _overflow-hidden _rounded-md", [
544
+ {
545
+ "_shadow-panel": n.avatar,
546
+ "_shadow-panel-inset _bg-metallic-cone _cursor-default": n.avatar === (($ = d(l).user) == null ? void 0 : $.avatar)
547
+ }
548
+ ]]),
549
+ disabled: !n.avatar
550
+ }, [
551
+ n.avatar ? (t(), a("div", {
552
+ key: 0,
553
+ onClick: () => J("discord", n.id),
554
+ style: { background: "none" },
555
+ type: "button",
556
+ title: "Set as profile avatar"
557
+ }, [
558
+ e("img", {
559
+ src: `${n.avatar}`,
560
+ class: C(["_size-full _rounded-full _duration-150", {
561
+ "group-hover:_scale-[1.8]": n.avatar !== ((F = d(l).user) == null ? void 0 : F.avatar)
562
+ }])
563
+ }, null, 10, _a)
564
+ ], 8, da)) : (t(), a("div", fa, y[4] || (y[4] = [
565
+ e("img", {
566
+ src: Ke,
567
+ class: "_size-6 _rounded",
568
+ style: { "background-color": "#5865f2" }
569
+ }, null, -1)
570
+ ])))
571
+ ], 10, ca),
572
+ e("div", ma, [
573
+ e("div", va, v(n.username), 1)
574
+ ])
575
+ ]),
576
+ O.value > 1 ? (t(), a("button", {
577
+ key: 0,
578
+ class: "_bubble-btn _h-10 _text-sm _text-stroke-md _px-[1em]",
579
+ onClick: (W) => Q("discord", n.id, W),
580
+ styleff: "filter: hue-rotate(130deg) saturate(2)",
581
+ "aria-label": "Remove"
582
+ }, [
583
+ e("span", ga, [
584
+ N.value.platform == "discord" && N.value.id == n.id ? (t(), a(D, { key: 0 }, [
585
+ x(" Confirm? ")
586
+ ], 64)) : (t(), a(D, { key: 1 }, [
587
+ x(" ⛌ ")
588
+ ], 64))
589
+ ])
590
+ ], 8, pa)) : i("", !0)
591
+ ]);
592
+ }), 128)),
593
+ M.value ? i("", !0) : (t(), E(re, {
594
+ key: 0,
595
+ platform: "discord",
596
+ points: "+10",
597
+ disabled: d(l).isSimulationMode,
598
+ class: "_w-full"
599
+ }, {
600
+ default: I(() => [
601
+ x(v(B.value.length > 0 ? "Link Another Discord" : "Link Discord"), 1)
602
+ ]),
603
+ _: 1
604
+ }, 8, ["disabled"]))
605
+ ])
606
+ ], 2),
607
+ e("section", {
608
+ class: C(["_bg-metallic-linear _shadow-panel _p-4 _space-y-1.5 _rounded-lg", { "_order-last": !((se = L.value) != null && se.length) }])
609
+ }, [
610
+ L.value.length ? (t(), a("div", ha, y[5] || (y[5] = [
611
+ e("h3", { class: "_text-mlg _opacity-30 _weight-bold" }, "twitter", -1)
612
+ ]))) : i("", !0),
613
+ e("ul", ya, [
614
+ (t(!0), a(D, null, q(L.value, (n) => {
615
+ var $, F, W;
616
+ return t(), a("li", {
617
+ key: n.id,
618
+ class: "_flex _items-center _p-2 _pr-3.5 _justify-between _bg-metallic-linear _shadow-panel _rounded-lg"
619
+ }, [
620
+ e("div", ba, [
621
+ e("button", {
622
+ class: C(["_size-11 _flex _items-stretch _p-1.5 _group _overflow-hidden _rounded-md", [
623
+ {
624
+ "_shadow-panel": n.avatar,
625
+ "_shadow-panel-inset _bg-metallic-cone _cursor-default": n.avatar === (($ = d(l).user) == null ? void 0 : $.avatar)
626
+ }
627
+ ]]),
628
+ disabled: !n.avatar
629
+ }, [
630
+ n.avatar ? (t(), a("div", {
631
+ key: 0,
632
+ onClick: () => J("twitter", n.id),
633
+ style: { background: "none" },
634
+ type: "button",
635
+ title: "Set as profile avatar"
636
+ }, [
637
+ e("img", {
638
+ src: `${n.avatar}`,
639
+ class: C(["_size-full _rounded-full _duration-150", {
640
+ "group-hover:_scale-[1.8]": n.avatar !== ((F = d(l).user) == null ? void 0 : F.avatar)
641
+ }])
642
+ }, null, 10, ka)
643
+ ], 8, wa)) : (t(), a("div", Aa, y[6] || (y[6] = [
644
+ e("img", {
645
+ src: Xe,
646
+ class: "_size-6 _rounded",
647
+ style: { "background-color": "#000" }
648
+ }, null, -1)
649
+ ])))
650
+ ], 10, xa),
651
+ e("div", Sa, [
652
+ e("div", Ca, v(n.username), 1),
653
+ (W = n.metadata) != null && W.verified ? (t(), a("div", Ua, " verified ✓ ")) : i("", !0)
654
+ ])
655
+ ]),
656
+ O.value > 1 ? (t(), a("button", {
657
+ key: 0,
658
+ class: "_bubble-btn _h-10 _text-sm _text-stroke-md _px-[1em]",
659
+ onClick: (_e) => Q("twitter", n.id, _e),
660
+ styleff: "filter: hue-rotate(130deg) saturate(2)",
661
+ "aria-label": "Remove"
662
+ }, [
663
+ e("span", Ta, [
664
+ N.value.platform == "twitter" && N.value.id == n.id ? (t(), a(D, { key: 0 }, [
665
+ x(" Confirm? ")
666
+ ], 64)) : (t(), a(D, { key: 1 }, [
667
+ x(" ⛌ ")
668
+ ], 64))
669
+ ])
670
+ ], 8, za)) : i("", !0)
671
+ ]);
672
+ }), 128)),
673
+ Y.value ? i("", !0) : (t(), E(re, {
674
+ key: 0,
675
+ platform: "twitter",
676
+ points: "+10",
677
+ disabled: d(l).isSimulationMode,
678
+ class: "_w-full"
679
+ }, {
680
+ default: I(() => [
681
+ x(v(L.value.length > 0 ? "Link Another TwitterX" : "Link TwitterX"), 1)
682
+ ]),
683
+ _: 1
684
+ }, 8, ["disabled"]))
685
+ ])
686
+ ], 2),
687
+ e("section", {
688
+ class: C(["_bg-metallic-linear _shadow-panel _p-4 _space-y-1.5 _rounded-lg", { "_order-last": !((le = h.value) != null && le.length) }])
689
+ }, [
690
+ h.value.length ? (t(), a("div", Da, y[7] || (y[7] = [
691
+ e("h3", { class: "_text-mlg _opacity-30 _weight-bold" }, "telegram", -1)
692
+ ]))) : i("", !0),
693
+ e("ul", Ba, [
694
+ (t(!0), a(D, null, q(h.value, (n) => {
695
+ var $, F;
696
+ return t(), a("li", {
697
+ key: n.id,
698
+ class: "_flex _items-center _p-2 _pr-3.5 _justify-between _bg-metallic-linear _shadow-panel _rounded-lg"
699
+ }, [
700
+ e("div", Na, [
701
+ e("button", {
702
+ class: C(["_size-11 _flex _items-stretch _p-1.5 _group _overflow-hidden _rounded-md", [
703
+ {
704
+ "_shadow-panel": n.avatar,
705
+ "_shadow-panel-inset _bg-metallic-cone _cursor-default": n.avatar === (($ = d(l).user) == null ? void 0 : $.avatar)
706
+ }
707
+ ]]),
708
+ disabled: !n.avatar
709
+ }, [
710
+ n.avatar ? (t(), a("div", {
711
+ key: 0,
712
+ onClick: () => J("telegram", n.id),
713
+ style: { background: "none" },
714
+ type: "button",
715
+ title: "Set as profile avatar"
716
+ }, [
717
+ e("img", {
718
+ src: `${n.avatar}`,
719
+ class: C(["_size-full _rounded-full _duration-150", {
720
+ "group-hover:_scale-[1.8]": n.avatar !== ((F = d(l).user) == null ? void 0 : F.avatar)
721
+ }])
722
+ }, null, 10, ja)
723
+ ], 8, Ma)) : (t(), a("div", $a, y[8] || (y[8] = [
724
+ e("img", {
725
+ src: Je,
726
+ class: "_size-6 _rounded",
727
+ style: { "background-color": "#0088cc" }
728
+ }, null, -1)
729
+ ])))
730
+ ], 10, La),
731
+ e("div", Fa, [
732
+ e("div", Ha, v(n.username), 1)
733
+ ])
734
+ ]),
735
+ O.value > 1 ? (t(), a("button", {
736
+ key: 0,
737
+ class: "_bubble-btn _h-10 _text-sm _text-stroke-md _px-[1em]",
738
+ onClick: (W) => Q("telegram", n.id, W),
739
+ styleff: "filter: hue-rotate(130deg) saturate(2)",
740
+ "aria-label": "Remove"
741
+ }, [
742
+ e("span", Pa, [
743
+ N.value.platform == "telegram" && N.value.id == n.id ? (t(), a(D, { key: 0 }, [
744
+ x(" Confirm? ")
745
+ ], 64)) : (t(), a(D, { key: 1 }, [
746
+ x(" ⛌ ")
747
+ ], 64))
748
+ ])
749
+ ], 8, Ia)) : i("", !0)
750
+ ]);
751
+ }), 128)),
752
+ K.value ? i("", !0) : (t(), a(D, { key: 0 }, [
753
+ K.value ? i("", !0) : (t(), E(re, {
754
+ key: 0,
755
+ platform: "telegram",
756
+ points: "+10",
757
+ disabled: d(l).isSimulationMode
758
+ }, {
759
+ default: I(() => [
760
+ x(v(h.value.length > 0 ? "Link Another Telegram" : "Link Telegram"), 1)
761
+ ]),
762
+ _: 1
763
+ }, 8, ["disabled"]))
764
+ ], 64))
765
+ ])
766
+ ], 2),
767
+ e("section", {
768
+ class: C(["_bg-metallic-linear _shadow-panel _p-4 _space-y-1.5 _rounded-lg", { "_order-first": A.value }])
769
+ }, [
770
+ z.value.length ? (t(), a("div", Ya, y[9] || (y[9] = [
771
+ e("h3", { class: "_text-mlg _opacity-30 _weight-bold" }, "farcaster", -1)
772
+ ]))) : i("", !0),
773
+ e("ul", Wa, [
774
+ (t(!0), a(D, null, q(z.value, (n) => {
775
+ var $, F;
776
+ return t(), a("li", {
777
+ key: n.id
778
+ }, [
779
+ e("div", Ea, [
780
+ e("div", Qa, [
781
+ e("button", {
782
+ class: C(["_size-11 _flex _items-stretch _p-1.5 _group _overflow-hidden _rounded-md", [
783
+ {
784
+ "_shadow-panel": n.avatar,
785
+ "_shadow-panel-inset _bg-metallic-cone _cursor-default": n.avatar === (($ = d(l).user) == null ? void 0 : $.avatar)
786
+ }
787
+ ]]),
788
+ disabled: !n.avatar
789
+ }, [
790
+ n.avatar ? (t(), a("div", {
791
+ key: 0,
792
+ onClick: () => J("farcaster", n.id),
793
+ style: { background: "none" },
794
+ type: "button",
795
+ title: "Set as profile avatar"
796
+ }, [
797
+ e("img", {
798
+ src: `${n.avatar}`,
799
+ class: C(["_size-full _rounded-full _duration-150", {
800
+ "group-hover:_scale-[1.8]": n.avatar !== ((F = d(l).user) == null ? void 0 : F.avatar)
801
+ }])
802
+ }, null, 10, Ka)
803
+ ], 8, Oa)) : (t(), a("div", Xa, y[10] || (y[10] = [
804
+ e("img", {
805
+ src: Ve,
806
+ class: "_size-6 _rounded",
807
+ style: { "background-color": "#000" }
808
+ }, null, -1)
809
+ ])))
810
+ ], 10, Ra),
811
+ e("div", Ja, [
812
+ e("div", Va, v(n.username), 1)
813
+ ])
814
+ ]),
815
+ O.value > 1 ? (t(), a("button", {
816
+ key: 0,
817
+ class: "_bubble-btn _h-10 _text-sm _text-stroke-md _px-[1em]",
818
+ onClick: (W) => Q("farcaster", n.id, W),
819
+ styleff: "filter: hue-rotate(130deg) saturate(2)",
820
+ "aria-label": "Remove"
821
+ }, [
822
+ e("span", Za, [
823
+ N.value.platform == "farcaster" && N.value.id == n.id ? (t(), a(D, { key: 0 }, [
824
+ x(" Confirm? ")
825
+ ], 64)) : (t(), a(D, { key: 1 }, [
826
+ x(" ⛌ ")
827
+ ], 64))
828
+ ])
829
+ ], 8, Ga)) : i("", !0)
830
+ ])
831
+ ]);
832
+ }), 128)),
833
+ P.value ? i("", !0) : (t(), E(re, {
834
+ key: 0,
835
+ platform: "farcaster",
836
+ points: "+10",
837
+ disabled: d(l).isSimulationMode,
838
+ class: "_w-full"
839
+ }, {
840
+ default: I(() => [
841
+ x(v(z.value.length > 0 ? "Link Another Farcaster" : "Link Farcaster"), 1)
842
+ ]),
843
+ _: 1
844
+ }, 8, ["disabled"])),
845
+ A.value && !((ke = (ne = d(l).isFarcaster) == null ? void 0 : ne.client) != null && ke.added) && U.value ? (t(), E(re, {
846
+ key: 1,
847
+ platform: "farcaster",
848
+ points: "+10",
849
+ disabled: d(l).isSimulationMode,
850
+ class: "_w-full",
851
+ onClick: w
852
+ }, {
853
+ default: I(() => y[11] || (y[11] = [
854
+ x(" Add this Mini App ")
855
+ ])),
856
+ _: 1
857
+ }, 8, ["disabled"])) : i("", !0)
858
+ ])
859
+ ], 2),
860
+ e("footer", { class: "_order-last _bg-metallic-cone _p-4 _rounded-lg _shadow-panel" }, [
861
+ e("div", { class: "_w-full" }, [
862
+ e("button", {
863
+ onClick: T,
864
+ class: "_bubble-btn-full _h-16 _text-lg _bold"
865
+ }, y[12] || (y[12] = [
866
+ e("span", null, "logout 💤", -1)
867
+ ]))
868
+ ])
869
+ ])
870
+ ], 2);
871
+ };
872
+ }
873
+ }, es = { class: "_bg-metallic-linear _shadow-panel _p-4 _space-y-2 _rounded-lg" }, ts = { class: "_flex _items-center _justify-between _-mt-1.5" }, as = {
874
+ key: 0,
875
+ class: "_text-sm _text-red-400"
876
+ }, ss = {
877
+ key: 1,
878
+ class: "_space-y-2"
879
+ }, ls = { class: "_flex _flex-col _gap-0.5" }, ns = {
880
+ key: 0,
881
+ class: "_bg-metallic-linear _shadow-panel _p-3 _rounded-lg _flex _flex-col _gap-2.5"
882
+ }, os = { class: "_w-full _flex _flex-col _gap-2.5" }, rs = { class: "_w-full _truncate _min-w-0" }, is = {
883
+ key: 0,
884
+ class: "_flex _flex-wrap _gap-[inherit] _text-center"
885
+ }, us = { class: "_flex-1 _bg-metallic-linear _shadow-panel _rounded-lg _p-3" }, cs = { class: "_text-3xl _font-bold _text-primary _leading-tight" }, ds = { class: "_flex-1 _bg-metallic-linear _shadow-panel _rounded-lg _p-3" }, _s = { class: "_text-md" }, fs = {
886
+ key: 0,
887
+ class: "_bg-metallic-linear _shadow-panel _p-3 _rounded-lg _space-y-2"
888
+ }, ms = { class: "_flex _items-center _gap-2" }, vs = ["disabled"], ps = ["disabled"], gs = {
889
+ key: 0,
890
+ class: "_text-xs _text-red-500"
891
+ }, hs = {
892
+ key: 1,
893
+ class: "_text-xs _text-emerald-300"
894
+ }, ys = {
895
+ key: 1,
896
+ class: "_text-xs _bg-metallic-linear _shadow-panel _px-3 _py-1 _rounded-lg _text-zinc-500"
897
+ }, bs = { class: "" }, xs = { class: "_weight-black _text-em-xl _text-black" }, ws = /* @__PURE__ */ st({
898
+ __name: "ReferralSection",
899
+ setup(k) {
900
+ const l = ge("TrifleHub/store"), { backendUrl: b } = $e(l), r = p(!0), A = p(null), U = p({
901
+ invited: 0,
902
+ qualified: 0,
903
+ points: 0
904
+ }), w = p(""), o = p(null), f = g(() => !!o.value), B = p(""), z = p(!1), L = p(""), h = p(!1), M = p(!1), P = p(!1), Y = g(() => {
905
+ var T;
906
+ return ((T = l == null ? void 0 : l.user) == null ? void 0 : T.username) || "";
907
+ }), K = g(() => o.value ? o.value.username || o.value.displayName : "someone"), X = g(() => {
908
+ const T = w.value || Y.value;
909
+ return T ? `${window.location.origin}?ref=${T}` : "";
910
+ });
911
+ g(() => X.value.replace("https://", ""));
912
+ const O = () => {
913
+ const T = {
914
+ "Content-Type": "application/json"
915
+ };
916
+ return l != null && l.authToken && (T.Authorization = `Bearer ${l.authToken}`), T;
917
+ }, N = async () => {
918
+ r.value = !0, A.value = null;
919
+ try {
920
+ if (!b.value || !(l != null && l.isAuthenticated)) {
921
+ r.value = !1;
922
+ return;
923
+ }
924
+ const T = await fetch(`${b.value}/profile/me`, {
925
+ headers: {
926
+ Authorization: `Bearer ${l.authToken}`
927
+ }
928
+ });
929
+ let m = null;
930
+ try {
931
+ m = await T.json();
932
+ } catch {
933
+ }
934
+ if (!T.ok) {
935
+ const j = m && m.error || "";
936
+ if (T.status === 404 || /no route matches/i.test(j)) {
937
+ r.value = !1;
938
+ return;
939
+ }
940
+ A.value = j || `failed to load referrals (status ${T.status})`;
941
+ return;
942
+ }
943
+ U.value = m.referralStats || { invited: 0, qualified: 0, points: 0 }, w.value = m.referralCode || "", o.value = m.referrer || null;
944
+ } catch (T) {
945
+ console.error("Referral profile fetch error:", T), A.value = T.message || "error loading referrals";
946
+ } finally {
947
+ r.value = !1;
948
+ }
949
+ }, Q = () => {
950
+ X.value && (navigator.clipboard.writeText(X.value), M.value = !0, setTimeout(() => {
951
+ M.value = !1;
952
+ }, 2e3));
953
+ }, ee = () => {
954
+ !w.value || !Y.value || (navigator.clipboard.writeText(w.value || Y.value), P.value = !0, setTimeout(() => {
955
+ P.value = !1;
956
+ }, 2e3));
957
+ }, te = (T) => {
958
+ const m = T.trim();
959
+ try {
960
+ const j = new URL(m);
961
+ if (j.hash) {
962
+ const _ = new URLSearchParams(j.hash.substring(1)).get("ref");
963
+ if (_) return _;
964
+ }
965
+ const ce = j.searchParams.get("ref");
966
+ if (ce) return ce;
967
+ } catch {
968
+ }
969
+ return m;
970
+ }, ue = async () => {
971
+ const T = te(B.value);
972
+ if (!(!T || z.value)) {
973
+ z.value = !0, L.value = "", h.value = !1;
974
+ try {
975
+ const m = await fetch(`${b.value}/profile/referral`, {
976
+ method: "POST",
977
+ headers: O(),
978
+ body: JSON.stringify({ referralCode: T })
979
+ }), j = await m.json();
980
+ if (!m.ok) {
981
+ j.error === "Already referred" ? L.value = "You already have a referrer" : j.error === "Invalid referral code" ? L.value = "Invalid referral code" : j.error === "Cannot refer yourself" ? L.value = "You can't use your own code" : L.value = j.error || "Something went wrong";
982
+ return;
983
+ }
984
+ h.value = !0, B.value = "", await N();
985
+ } catch (m) {
986
+ console.error("Referral submit error:", m), L.value = m.message || "Something went wrong";
987
+ } finally {
988
+ z.value = !1;
989
+ }
990
+ }
991
+ };
992
+ return ze(() => {
993
+ N();
994
+ }), (T, m) => (t(), a("section", {
995
+ class: C(["_w-full _max-w-2xl", T.$attrs.class])
996
+ }, [
997
+ e("section", es, [
998
+ e("div", ts, [
999
+ e("h3", {
1000
+ class: C(["_text-mlg _weight-bold", { "_animate-pulse-deep": r.value }])
1001
+ }, m[1] || (m[1] = [
1002
+ e("span", { class: "_opacity-30" }, "invites", -1)
1003
+ ]), 2)
1004
+ ]),
1005
+ A.value ? (t(), a("div", as, v(A.value), 1)) : (t(), a("div", ss, [
1006
+ e("section", ls, [
1007
+ w.value ? (t(), a("div", ns, [
1008
+ m[4] || (m[4] = e("div", { class: "_text-base" }, [
1009
+ x(" Invite a friend and "),
1010
+ e("u", null, "you both"),
1011
+ x(" get "),
1012
+ e("span", { class: "_font-semiboldff _whitespace-nowrap" }, "10🪩"),
1013
+ x(" for every 100🪩 they earn ")
1014
+ ], -1)),
1015
+ e("div", os, [
1016
+ e("button", {
1017
+ class: "_flex-1 _bubble-btn _py-4 _weight-black",
1018
+ style: { filter: "hue-rotate(20deg) saturate(3)" },
1019
+ onClick: Q
1020
+ }, v(M.value ? "Copied!" : "Copy Invite Link"), 1),
1021
+ e("button", {
1022
+ class: "_py-0.5 _border-4 _border-dashed _border-zinc-400 _rounded-lg _px-2 _leading-relaxed _text-center _text-zinc-500 _text-em-lg _text-stroke-3xl",
1023
+ onClick: ee
1024
+ }, [
1025
+ e("div", rs, v(P.value ? "Copied!" : w.value || Y.value), 1)
1026
+ ])
1027
+ ]),
1028
+ U.value.invited > 0 ? (t(), a("div", is, [
1029
+ e("div", us, [
1030
+ e("div", cs, v(U.value.invited), 1),
1031
+ m[2] || (m[2] = e("div", { class: "_text-md" }, "invited", -1))
1032
+ ]),
1033
+ e("div", ds, [
1034
+ e("div", {
1035
+ class: C(["_text-3xl _font-bold _leading-tight", { "_text-primary": !U.value.points }])
1036
+ }, [
1037
+ x(v(U.value.points) + " ", 1),
1038
+ U.value.points > 0 ? (t(), a(D, { key: 0 }, [
1039
+ x("🪩")
1040
+ ], 64)) : i("", !0)
1041
+ ], 2),
1042
+ e("div", _s, [
1043
+ U.value.points ? i("", !0) : (t(), a(D, { key: 0 }, [
1044
+ x("🪩 ")
1045
+ ], 64)),
1046
+ m[3] || (m[3] = x("earned"))
1047
+ ])
1048
+ ])
1049
+ ])) : i("", !0),
1050
+ e("div", {
1051
+ class: C(["_text-zinc-500 _text-xs _-my-0.5", { "_text-center": U.value.invited > 0, "_text-right": U.value.invited === 0 }])
1052
+ }, " Max 100🪩 per friend ", 2)
1053
+ ])) : i("", !0)
1054
+ ]),
1055
+ f.value ? (t(), a("div", ys, [
1056
+ e("div", bs, [
1057
+ m[6] || (m[6] = x(" ♡ You were invited by ")),
1058
+ e("span", xs, v(K.value), 1),
1059
+ m[7] || (m[7] = e("br", null, null, -1)),
1060
+ m[8] || (m[8] = x(" You BOTH earn 10🪩 every time YOU earn 100🪩 (max 100) "))
1061
+ ]),
1062
+ m[9] || (m[9] = e("div", { class: "_text-em-2xsff _mt-0.5" }, null, -1))
1063
+ ])) : (t(), a("div", fs, [
1064
+ m[5] || (m[5] = e("div", { class: "_text-base" }, "Have an invite?", -1)),
1065
+ e("div", ms, [
1066
+ be(e("input", {
1067
+ "onUpdate:modelValue": m[0] || (m[0] = (j) => B.value = j),
1068
+ type: "text",
1069
+ placeholder: "enter code or invite link",
1070
+ class: "_flex-1 _bg-metallic-linear _shadow-panel-inset _rounded-lg _px-3 _h-10 _text-sm _min-w-0",
1071
+ disabled: z.value,
1072
+ onKeyup: Le(ue, ["enter"])
1073
+ }, null, 40, vs), [
1074
+ [Me, B.value]
1075
+ ]),
1076
+ e("button", {
1077
+ class: "_bubble-btn _h-12 _text-sm _text-stroke-md _px-[1.5em] _font-bold",
1078
+ disabled: !B.value.trim() || z.value,
1079
+ style: pe({
1080
+ filter: B.value.trim().length > 0 && !z.value ? "hue-rotate(20deg) saturate(3)" : "none"
1081
+ }),
1082
+ onClick: ue
1083
+ }, [
1084
+ e("span", {
1085
+ class: C({ "_opacity-30": !B.value.trim() || z.value })
1086
+ }, v(z.value ? "Sending..." : "Apply"), 3)
1087
+ ], 12, ps)
1088
+ ]),
1089
+ L.value ? (t(), a("div", gs, v(L.value), 1)) : i("", !0),
1090
+ h.value ? (t(), a("div", hs, "invite code applied!")) : i("", !0)
1091
+ ]))
1092
+ ]))
1093
+ ])
1094
+ ], 2));
1095
+ }
1096
+ }), ks = { class: "_flex _w-full _gap-2.5 _items-stretch" }, As = { class: "_size-9 _flex-shrink-0" }, Ss = ["src"], Cs = { class: "_flex-1 _flex _flex-col _gap-[0.25em] _justify-center _min-h-8 _text-left _leading-normal _min-w-0" }, Us = { class: "_min-w-0 _leading-[1.1]" }, zs = {
1097
+ key: 0,
1098
+ class: "_weight-semiboldff"
1099
+ }, Ts = {
1100
+ key: 0,
1101
+ class: "_text-em-2xs _opacity-25 _leading-tight _flex _gap-[0.35em] _truncate"
1102
+ }, Ds = { class: "_flex _items-center _h-9 _text-em-sm _flex-shrink-0 sm:_text-mlg" }, Bs = { class: "_rounded-full _bg-metallic-linear _shadow-panel _pr-[0.4em] _pl-[0.25em] _flex _gap-[0.15em]" }, Ns = {
1103
+ __name: "PointCard",
1104
+ props: { point: Object },
1105
+ setup(k) {
1106
+ const l = k, b = g(
1107
+ () => je.find((o) => o.name === l.point.name || o.id === l.point.name)
1108
+ ), r = (o) => {
1109
+ if (!o) return "";
1110
+ const f = /* @__PURE__ */ new Date(), B = new Date(o), z = f - B, L = Math.floor(z / (1e3 * 60)), h = Math.floor(z / (1e3 * 60 * 60)), M = Math.floor(z / (1e3 * 60 * 60 * 24)), P = Math.floor(M / 7), Y = Math.floor(M / 30), K = Math.floor(M / 365);
1111
+ return L < 1 ? "<1m" : L < 60 ? `${L}m` : h < 24 ? `${h}h` : M < 7 ? `${M}d` : P < 4 ? `${P}wk` : Y < 12 ? `${Y}mo` : `${K}y`;
1112
+ }, A = (o) => (o = Number(o), o % 1 === 0 ? o : o.toFixed(2)), U = (o) => {
1113
+ if (!o) return "";
1114
+ const f = new Date(o), B = f.toLocaleString("en-US", { month: "short" }).toUpperCase(), z = f.toLocaleString("en-US", { day: "2-digit" });
1115
+ return `${B} ${z}`;
1116
+ }, w = g(() => {
1117
+ var f;
1118
+ let o;
1119
+ try {
1120
+ o = new URL((f = b.value) == null ? void 0 : f.link), ["farcaster", "discord"].includes(o.host.split(".")[0]) && (o = { host: "trifle", origin: o.href });
1121
+ } catch {
1122
+ }
1123
+ return o;
1124
+ });
1125
+ return (o, f) => (t(), E(lt(w.value ? "a" : "div"), nt(w.value ? { href: w.value.origin, target: "_blank" } : {}, {
1126
+ class: ["_bg-metallic-linear _shadow-panel _w-full _p-2 _px-2.5 _pr-3 _rounded-lg _block _flex _items-center _min-h-14", { "mouse:hover:_scale-[1.01] _origin-center _duration-150 _group": w.value }]
1127
+ }), {
1128
+ default: I(() => {
1129
+ var B, z;
1130
+ return [
1131
+ e("header", ks, [
1132
+ e("div", As, [
1133
+ b.value && b.value.icon ? (t(), a("img", {
1134
+ key: 0,
1135
+ src: b.value.icon,
1136
+ class: "_w-full _h-full _rounded-lg _block"
1137
+ }, null, 8, Ss)) : i("", !0)
1138
+ ]),
1139
+ e("div", Cs, [
1140
+ e("div", Us, [
1141
+ k.point.name === "anybody-daily" ? (t(), a(D, { key: 0 }, [
1142
+ x("Solved " + v(U(k.point.createdAt)), 1)
1143
+ ], 64)) : k.point.name === "gm" ? (t(), a(D, { key: 1 }, [
1144
+ x('"' + v(k.point.extra) + '"', 1)
1145
+ ], 64)) : k.point.name === "gm-react" ? (t(), a(D, { key: 2 }, [
1146
+ x(v(!k.point.giver || k.point.giver === "???" ? "someone" : k.point.giver) + " ♥︎ ", 1),
1147
+ k.point.gmMessage ? (t(), a("span", zs, '"' + v(k.point.gmMessage) + '"', 1)) : (t(), a(D, { key: 1 }, [
1148
+ x("your gm")
1149
+ ], 64))
1150
+ ], 64)) : (t(), a(D, { key: 3 }, [
1151
+ x(v(((B = b.value) == null ? void 0 : B.activityText) || ((z = b.value) == null ? void 0 : z.name) || k.point.name), 1)
1152
+ ], 64))
1153
+ ]),
1154
+ w.value ? (t(), a("div", Ts, [
1155
+ e("span", null, v(r(k.point.createdAt)), 1),
1156
+ f[0] || (f[0] = e("span", null, "·", -1)),
1157
+ e("u", null, v(w.value.host), 1)
1158
+ ])) : i("", !0)
1159
+ ]),
1160
+ e("div", Ds, [
1161
+ e("div", Bs, [
1162
+ f[1] || (f[1] = e("div", null, "🪩", -1)),
1163
+ e("span", null, v(A(k.point.value)), 1)
1164
+ ])
1165
+ ])
1166
+ ])
1167
+ ];
1168
+ }),
1169
+ _: 1
1170
+ }, 16, ["class"]));
1171
+ }
1172
+ }, Ls = {
1173
+ __name: "ScrollMaskedX",
1174
+ props: {
1175
+ fade: { type: String, default: "1.5rem" }
1176
+ },
1177
+ setup(k) {
1178
+ const l = p(null), b = p(null), r = p(!0), A = p(!1), U = () => {
1179
+ const f = l.value;
1180
+ f && (r.value = f.scrollLeft <= 1, A.value = f.scrollLeft + f.clientWidth >= f.scrollWidth - 1);
1181
+ };
1182
+ let w, o;
1183
+ return ze(async () => {
1184
+ await Qe(), U(), typeof ResizeObserver < "u" && (w = new ResizeObserver(U), w.observe(l.value), b.value && w.observe(b.value)), typeof MutationObserver < "u" && b.value && (o = new MutationObserver(U), o.observe(b.value, { childList: !0, subtree: !0, characterData: !0 }));
1185
+ }), ot(() => {
1186
+ w == null || w.disconnect(), o == null || o.disconnect();
1187
+ }), (f, B) => (t(), a("div", {
1188
+ ref_key: "el",
1189
+ ref: l,
1190
+ class: "_overflow-x-scroll _no-scrollbar _scroll-masked-x",
1191
+ style: pe({
1192
+ "--fade-left": r.value ? "0rem" : k.fade,
1193
+ "--fade-right": A.value ? "0rem" : k.fade
1194
+ }),
1195
+ onScrollPassive: U
1196
+ }, [
1197
+ e("div", {
1198
+ ref_key: "inner",
1199
+ ref: b,
1200
+ class: "_scroll-masked-x-inner"
1201
+ }, [
1202
+ ie(f.$slots, "default", {}, void 0, !0)
1203
+ ], 512)
1204
+ ], 36));
1205
+ }
1206
+ }, We = /* @__PURE__ */ Fe(Ls, [["__scopeId", "data-v-83ac05cc"]]), Ms = {
1207
+ key: 0,
1208
+ class: "_flex _flex-col _gap-2"
1209
+ }, js = {
1210
+ xmlns: "http://www.w3.org/2000/svg",
1211
+ class: "_size-5 _opacity-60",
1212
+ fill: "none",
1213
+ viewBox: "0 0 24 24",
1214
+ stroke: "currentColor",
1215
+ style: { "pointer-events": "none" }
1216
+ }, $s = {
1217
+ key: 1,
1218
+ class: "_bg-metallic-linear _shadow-panel _rounded-lg _p-3 _space-y-2 _min-w-[200px]"
1219
+ }, Fs = {
1220
+ key: 0,
1221
+ class: "_text-xs _font-semibold _text-center _bg-yellow-500/20 _border _border-yellow-500/40 _rounded _py-1"
1222
+ }, Hs = {
1223
+ key: 1,
1224
+ class: "_space-y-2"
1225
+ }, Is = ["disabled"], Ps = {
1226
+ key: 0,
1227
+ class: "_h-12 _flex _items-center _gap-1 _w-full _justify-center _border _border-transparent"
1228
+ }, Ys = { class: "_text-stroke-2xl _min-w-0 _px-0.5" }, Ws = {
1229
+ key: 1,
1230
+ class: "_h-12 _flex _items-center _gap-1 _w-full _justify-center _border _border-transparent"
1231
+ }, Es = { class: "_flex _items-center _gap-1 _w-full _justify-center _pl-[1em]" }, Qs = { class: "_text-stroke-2xl _min-w-0 _truncate _px-0.5" }, Rs = { class: "_relative _h-12 _flex _items-stretch _gap-0.5 _px-1 _rounded-lg _shadow-panel-inset _text-center _bg-metallic-linear" }, Os = { class: "_flex _justify-center _gap-2 _h-10 _items-center" }, Ks = ["href"], Xs = ["href"], Js = ["href"], Vs = ["href"], Gs = { class: "_inline-flex _gap-2" }, Zs = { class: "_inline-flex _flex-col _bg-metallic-linear _shadow-panel _px-3 _py-2 _pb-1.5 _rounded-lg" }, qs = { class: "_flex _justify-end _text-2xl _gap-[0.1em] _pl-4" }, el = { key: 0 }, tl = {
1232
+ key: 1,
1233
+ class: "_text-stroke-xl _animate-pulse-deep"
1234
+ }, al = {
1235
+ key: 2,
1236
+ class: "_text-stroke-xl"
1237
+ }, sl = { class: "_inline-flex _flex-col _bg-metallic-linear _shadow-panel _px-3 _py-2 _pb-1.5 _rounded-lg" }, ll = { class: "_flex _justify-end _text-2xl _gap-[0.1em] _pl-4" }, nl = { key: 0 }, ol = {
1238
+ key: 1,
1239
+ class: "_text-stroke-xl _animate-pulse-deep"
1240
+ }, rl = {
1241
+ key: 2,
1242
+ class: "_text-stroke-xl"
1243
+ }, il = { class: "_flex _justify-end _text-2xl _pl-4" }, ul = {
1244
+ key: 0,
1245
+ class: "_text-stroke-xl _animate-pulse-deep"
1246
+ }, cl = {
1247
+ key: 1,
1248
+ class: "_text-stroke-xl"
1249
+ }, dl = {
1250
+ key: 0,
1251
+ class: "_w-full _max-w-2xl"
1252
+ }, _l = { class: "_bg-metallic-linear _shadow-panel _p-4 _space-y-2 _rounded-lg" }, fl = { class: "_inline-flex _gap-2 _items-start" }, ml = { class: "_w-full _max-w-2xl" }, vl = { class: "_bg-metallic-linear _shadow-panel _p-4 _space-y-2 _rounded-lg" }, pl = { class: "_flex _items-center _justify-between _-mt-1.5" }, gl = {
1253
+ key: 0,
1254
+ class: "_flex _items-center _gap-2"
1255
+ }, hl = {
1256
+ key: 0,
1257
+ class: "_text-xs _opacity-30 _tracking-wide"
1258
+ }, yl = { key: 0 }, bl = { class: "_flex _items-center _gap-1" }, xl = ["disabled"], wl = ["disabled"], kl = {
1259
+ key: 0,
1260
+ class: "_text-sm _text-red-400"
1261
+ }, Al = {
1262
+ key: 1,
1263
+ class: "_flex _flex-col _gap-4"
1264
+ }, Sl = { class: "_space-y-0.5" }, Ne = 3, Cl = {
1265
+ __name: "Profile",
1266
+ setup(k) {
1267
+ const l = rt(() => import("./TrifleBall-BzjRmmn0.js")), b = ge("hub"), r = ge("TrifleHub/store"), { currentProfileUsername: A, backendUrl: U, user: w } = $e(r), o = p(null), f = p(!0), B = p(null), z = p([]), L = p(!1), h = p(null), M = p(1), P = p(!1), Y = p(0), K = g(() => Math.max(1, Math.ceil(Y.value / Ne))), X = ["follow-trifle-twitter", "trifler"], O = ["twitter-like-tweet", "twitter-reply-tweet", "trifler"], N = p([...X]);
1268
+ let Q = !1;
1269
+ const ee = p(
1270
+ N.value.map((u) => {
1271
+ const s = je.find((c) => c.id === u);
1272
+ return {
1273
+ ...s,
1274
+ completed: !1,
1275
+ enabled: (s == null ? void 0 : s.enabled) !== void 0 ? s.enabled : !0,
1276
+ link: (s == null ? void 0 : s.link) || null
1277
+ };
1278
+ })
1279
+ ), te = async () => {
1280
+ var u;
1281
+ if (!(!_.value || !((u = w.value) != null && u.id)))
1282
+ try {
1283
+ const s = await fetch(`${U.value}/balls/point-categories-with-counts`, {
1284
+ method: "POST",
1285
+ headers: { "Content-Type": "application/json" },
1286
+ body: JSON.stringify({ userId: w.value.id })
1287
+ });
1288
+ if (!s.ok) return;
1289
+ const c = await s.json();
1290
+ if (!Q) {
1291
+ const S = c.balls.data.some((H) => H.name === "follow-trifle-twitter");
1292
+ N.value = S ? [...O] : [...X], Q = !0;
1293
+ }
1294
+ ee.value = N.value.map((S) => {
1295
+ const H = je.find((Be) => Be.id === S), at = c.balls.data.some((Be) => Be.name === S);
1296
+ return {
1297
+ ...H,
1298
+ completed: at,
1299
+ enabled: (H == null ? void 0 : H.enabled) !== void 0 ? H.enabled : !0,
1300
+ link: (H == null ? void 0 : H.link) || null
1301
+ };
1302
+ });
1303
+ } catch (s) {
1304
+ console.error("Failed to fetch profile quests", s);
1305
+ }
1306
+ }, ue = () => {
1307
+ b.openHub("earn");
1308
+ }, T = p(null), m = p(0), j = p(!0), ce = g(() => {
1309
+ const u = T.value;
1310
+ if (!u || isNaN(u)) return "—";
1311
+ const s = Number(u), c = s % 10, S = s % 100;
1312
+ return c === 1 && S !== 11 ? `${s}st` : c === 2 && S !== 12 ? `${s}nd` : c === 3 && S !== 13 ? `${s}rd` : `${s}th`;
1313
+ }), J = g(
1314
+ () => Number(m.value || 0).toLocaleString("en-us")
1315
+ ), _ = g(() => {
1316
+ var u;
1317
+ return !((u = w.value) != null && u.username) || !A.value ? !1 : w.value.username === A.value;
1318
+ }), y = g(
1319
+ () => {
1320
+ var u, s;
1321
+ return _.value ? (u = w.value) == null ? void 0 : u.avatar : (s = o.value) == null ? void 0 : s.avatar;
1322
+ }
1323
+ ), R = g(() => {
1324
+ var s, c;
1325
+ return (_.value ? r.getPlatformData("discord") || [] : ((c = (s = o.value) == null ? void 0 : s.linkedAccounts) == null ? void 0 : c.discord) || []).filter((S) => S.username);
1326
+ }), de = g(() => {
1327
+ var s, c;
1328
+ return (_.value ? r.getPlatformData("twitter") || [] : ((c = (s = o.value) == null ? void 0 : s.linkedAccounts) == null ? void 0 : c.twitter) || []).filter((S) => S.username);
1329
+ }), xe = g(() => {
1330
+ var s, c;
1331
+ return (_.value ? r.getPlatformData("telegram") || [] : ((c = (s = o.value) == null ? void 0 : s.linkedAccounts) == null ? void 0 : c.telegram) || []).filter((S) => S.username);
1332
+ }), we = g(() => {
1333
+ var s, c;
1334
+ return (_.value ? r.getPlatformData("farcaster") || [] : ((c = (s = o.value) == null ? void 0 : s.linkedAccounts) == null ? void 0 : c.farcaster) || []).filter((S) => S.username);
1335
+ }), ae = g(() => R.value[0] || null), se = g(() => de.value[0] || null), le = g(() => xe.value[0] || null), ne = g(() => we.value[0] || null), ke = g(
1336
+ () => ae.value ? `https://discord.com/users/${ae.value.id}` : "#"
1337
+ ), n = g(
1338
+ () => se.value ? `https://x.com/${se.value.username}` : "#"
1339
+ ), $ = g(
1340
+ () => le.value ? `https://t.me/${le.value.username}` : "#"
1341
+ ), F = g(
1342
+ () => ne.value ? `https://warpcast.com/${ne.value.username}` : "#"
1343
+ ), W = async () => {
1344
+ f.value = !0, B.value = null;
1345
+ try {
1346
+ const u = await fetch(
1347
+ `${U.value}/auth/by-username?username=${encodeURIComponent(
1348
+ A.value
1349
+ )}`
1350
+ );
1351
+ if (!u.ok) throw new Error("Failed to fetch user");
1352
+ const s = await u.json();
1353
+ console.log({ data: s }), o.value = s.user, console.log({ user: o });
1354
+ } catch (u) {
1355
+ B.value = u.message;
1356
+ } finally {
1357
+ f.value = !1;
1358
+ }
1359
+ }, _e = async () => {
1360
+ var u;
1361
+ j.value = !0;
1362
+ try {
1363
+ if (!U.value || !((u = o.value) != null && u.id)) return;
1364
+ const s = new URLSearchParams({
1365
+ sortBy: "count",
1366
+ sortDir: "desc",
1367
+ limit: "1",
1368
+ userId: String(o.value.id)
1369
+ }), c = await fetch(`${U.value}/balls/airdrop-points?${s.toString()}`);
1370
+ if (!c.ok) return;
1371
+ const S = await c.json();
1372
+ S.currentUser && (m.value = S.currentUser.totalBalls || 0, T.value = S.currentUser.rank || null);
1373
+ } catch (s) {
1374
+ console.error("Failed to fetch airdrop info", s);
1375
+ } finally {
1376
+ j.value = !1;
1377
+ }
1378
+ }, fe = async () => {
1379
+ L.value = !0, h.value = null;
1380
+ try {
1381
+ let u = `${U.value}/balls/list?page=${M.value}&limit=${Ne}&username=${encodeURIComponent(A.value)}`;
1382
+ const s = await fetch(u);
1383
+ if (!s.ok) throw new Error("Failed to fetch points");
1384
+ const c = await s.json();
1385
+ z.value = c.data, P.value = c.data.length === Ne, Y.value = c.total || 0;
1386
+ } catch (u) {
1387
+ h.value = u.message;
1388
+ } finally {
1389
+ L.value = !1;
1390
+ }
1391
+ }, Ae = () => {
1392
+ M.value > 1 && (M.value--, fe());
1393
+ }, Se = () => {
1394
+ P.value && (M.value++, fe());
1395
+ }, he = async () => {
1396
+ if (!A.value) {
1397
+ f.value = !1;
1398
+ return;
1399
+ }
1400
+ await W(), await Promise.all([_e(), fe(), te()]);
1401
+ };
1402
+ ze(async () => {
1403
+ console.log("onMounted", A.value), await he();
1404
+ }), Ee(A, async (u, s) => {
1405
+ !u || u === s || (o.value = null, M.value = 1, Q = !1, N.value = [...X], await he());
1406
+ });
1407
+ const V = p(!1);
1408
+ ze(() => {
1409
+ setTimeout(() => {
1410
+ V.value = !0;
1411
+ }, 350);
1412
+ });
1413
+ const me = p(!1), ve = p(""), Ce = p(!1), He = async () => {
1414
+ var u;
1415
+ if (ve.value) {
1416
+ Ce.value = !0;
1417
+ try {
1418
+ await r.enterSimulationMode(ve.value), me.value = !1, ve.value = "", r.addNotification({
1419
+ message: `Entered simulation mode for user: ${(u = r.user) == null ? void 0 : u.username}`,
1420
+ type: "success"
1421
+ });
1422
+ } catch (s) {
1423
+ r.addNotification({
1424
+ message: s.message || "Failed to enter simulation mode",
1425
+ type: "error"
1426
+ });
1427
+ } finally {
1428
+ Ce.value = !1;
1429
+ }
1430
+ }
1431
+ }, Ge = () => {
1432
+ r.exitSimulationMode(), me.value = !1, r.addNotification({
1433
+ message: "Exited simulation mode",
1434
+ type: "success"
1435
+ });
1436
+ }, Te = p(null), ye = p(!1), G = p(""), Ie = p(!1), Z = p(""), Pe = p(!1), oe = p(!0);
1437
+ let De;
1438
+ const Ze = async (u) => {
1439
+ var c;
1440
+ if (!u) {
1441
+ oe.value = !0, Z.value = "";
1442
+ return;
1443
+ }
1444
+ if (u === ((c = w.value) == null ? void 0 : c.username)) {
1445
+ oe.value = !0, Z.value = "";
1446
+ return;
1447
+ }
1448
+ if (!/^(?!.*--)[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*$/.test(u)) {
1449
+ Z.value = "Username must be alphanumeric";
1450
+ return;
1451
+ }
1452
+ if (u.length > 22) {
1453
+ Z.value = "Username must be 22 characters or less";
1454
+ return;
1455
+ }
1456
+ Pe.value = !0;
1457
+ try {
1458
+ const S = await fetch(
1459
+ `${U.value}/auth/username/check?username=${encodeURIComponent(u)}`
1460
+ );
1461
+ if (!S.ok) throw new Error("Failed to check username availability");
1462
+ const H = await S.json();
1463
+ oe.value = H.available, Z.value = H.available ? "" : "This username is already taken";
1464
+ } catch (S) {
1465
+ console.error("Failed to check username:", S), Z.value = "Error checking username";
1466
+ } finally {
1467
+ Pe.value = !1;
1468
+ }
1469
+ }, qe = (u) => {
1470
+ const s = u.target.value.trim();
1471
+ G.value = s, Z.value = "", De && clearTimeout(De), s ? De = setTimeout(() => Ze(s), 500) : oe.value = !0;
1472
+ }, et = async () => {
1473
+ var u, s, c;
1474
+ if (_.value) {
1475
+ if (r.isSimulationMode) {
1476
+ r.addNotification({
1477
+ message: "Cannot edit username in simulation mode",
1478
+ type: "error"
1479
+ });
1480
+ return;
1481
+ }
1482
+ Z.value = "", G.value = ((u = w.value) == null ? void 0 : u.username) || "", ye.value = !0, oe.value = !0, await Qe(), (s = Te.value) == null || s.focus(), (c = Te.value) == null || c.select();
1483
+ }
1484
+ }, tt = async () => {
1485
+ var u;
1486
+ if (!G.value.trim()) {
1487
+ r.addNotification({ type: "error", message: "Oops, name can't be empty!" });
1488
+ return;
1489
+ }
1490
+ if (!oe.value) {
1491
+ r.addNotification({ type: "error", message: "This name is already taken" });
1492
+ return;
1493
+ }
1494
+ if (G.value.trim() === ((u = w.value) == null ? void 0 : u.username)) {
1495
+ ye.value = !1;
1496
+ return;
1497
+ }
1498
+ Ie.value = !0;
1499
+ try {
1500
+ await r.updateUsername(G.value.trim()), ye.value = !1, r.addNotification({ type: "success", message: "Name updated!" });
1501
+ } catch (s) {
1502
+ console.error("Failed to update name:", s), r.addNotification({ type: "error", message: "Hmm, something went wrong" });
1503
+ } finally {
1504
+ Ie.value = !1;
1505
+ }
1506
+ };
1507
+ return (u, s) => (t(), E(wt, null, it({
1508
+ "admin-controls": I(() => [
1509
+ _.value && d(r).isAdmin ? (t(), a("div", Ms, [
1510
+ !me.value && !d(r).isSimulationMode ? (t(), a("button", {
1511
+ key: 0,
1512
+ class: "_p-2 _bg-metallic-linear _shadow-panel _rounded-full _cursor-pointer mouse:hover:_scale-110 _duration-150",
1513
+ onClick: s[0] || (s[0] = (c) => me.value = !0),
1514
+ title: "Admin Mode"
1515
+ }, [
1516
+ (t(), a("svg", js, s[5] || (s[5] = [
1517
+ e("path", {
1518
+ "stroke-linecap": "round",
1519
+ "stroke-linejoin": "round",
1520
+ "stroke-width": "2",
1521
+ d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z",
1522
+ style: { "pointer-events": "none" }
1523
+ }, null, -1),
1524
+ e("path", {
1525
+ "stroke-linecap": "round",
1526
+ "stroke-linejoin": "round",
1527
+ "stroke-width": "2",
1528
+ d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z",
1529
+ style: { "pointer-events": "none" }
1530
+ }, null, -1)
1531
+ ])))
1532
+ ])) : i("", !0),
1533
+ me.value || d(r).isSimulationMode ? (t(), a("div", $s, [
1534
+ d(r).isSimulationMode ? (t(), a("div", Fs, " SIMULATION MODE ")) : i("", !0),
1535
+ d(r).isSimulationMode ? i("", !0) : (t(), a("div", Hs, [
1536
+ be(e("input", {
1537
+ "onUpdate:modelValue": s[1] || (s[1] = (c) => ve.value = c),
1538
+ type: "text",
1539
+ placeholder: "Username or ID",
1540
+ autocomplete: "off",
1541
+ "data-1p-ignore": "",
1542
+ class: "_w-full _px-2 _py-1 _text-sm _font-normal _rounded _bg-black/20 _border _border-white/10 _outline-none focus:_border-white/30",
1543
+ onKeyup: Le(He, ["enter"])
1544
+ }, null, 544), [
1545
+ [Me, ve.value]
1546
+ ]),
1547
+ e("button", {
1548
+ class: "_w-full _px-3 _py-1 _text-sm _bg-blue-500/80 _rounded mouse:hover:_bg-blue-500 _duration-150",
1549
+ disabled: !ve.value || Ce.value,
1550
+ onClick: He
1551
+ }, v(Ce.value ? "Loading..." : "Simulate User"), 9, Is),
1552
+ e("button", {
1553
+ class: "_w-full _px-3 _py-1 _text-xs _bg-white/10 _rounded mouse:hover:_bg-white/20 _duration-150",
1554
+ onClick: s[2] || (s[2] = (c) => me.value = !1)
1555
+ }, " Cancel ")
1556
+ ])),
1557
+ d(r).isSimulationMode ? (t(), a("button", {
1558
+ key: 2,
1559
+ class: "_w-full _px-3 _py-1.5 _text-sm _bg-red-500/80 _rounded mouse:hover:_bg-red-500 _duration-150 _font-semibold",
1560
+ onClick: Ge
1561
+ }, " Exit Simulation ")) : i("", !0)
1562
+ ])) : i("", !0)
1563
+ ])) : i("", !0)
1564
+ ]),
1565
+ avatar: I(() => [
1566
+ e("div", {
1567
+ class: C(["_size-full _flex _items-center _justify-center _rounded-full _duration-150 _delay-50", { "_opacity-0": !V.value }]),
1568
+ style: { "box-shadow": "0 16px 24px 2px rgba(0, 0, 0, 0.4)" }
1569
+ }, [
1570
+ V.value ? (t(), E(d(l), {
1571
+ key: y.value || "smiley-face",
1572
+ mode: "glass-inner-wall",
1573
+ "image-source": y.value || d(ct),
1574
+ style: { width: "175%", height: "175%" },
1575
+ class: "_cursor-grab"
1576
+ }, null, 8, ["image-source"])) : i("", !0)
1577
+ ], 2)
1578
+ ]),
1579
+ title: I(() => {
1580
+ var c, S;
1581
+ return [
1582
+ _.value ? (t(), a("div", Ws, [
1583
+ be(e("div", Es, [
1584
+ e("span", Qs, v(((S = d(w)) == null ? void 0 : S.username) || "Not set"), 1),
1585
+ e("button", {
1586
+ class: "_p-1 _-m-0.5 _leading-none _flex-shrink-0 _block mouse:hover:_scale-[1.2] _duration-150 _rounded-md",
1587
+ onClick: et
1588
+ }, s[6] || (s[6] = [
1589
+ e("img", {
1590
+ src: _t,
1591
+ class: "_h-[0.72em] _opacity-20 _pointer-events-none"
1592
+ }, null, -1)
1593
+ ]))
1594
+ ], 512), [
1595
+ [Ye, !ye.value]
1596
+ ]),
1597
+ be(e("div", Rs, [
1598
+ be(e("input", {
1599
+ ref_key: "usernameInput",
1600
+ ref: Te,
1601
+ "onUpdate:modelValue": s[3] || (s[3] = (H) => G.value = H),
1602
+ type: "text",
1603
+ maxlength: "22",
1604
+ autocomplete: "off",
1605
+ "data-1p-ignore": "",
1606
+ class: C(["_flex-1 _text-stroke-2xl _bg-transparent _text-center _w-full _outline-none", { "_border-red-500": !oe.value && G.value }]),
1607
+ placeholder: "Enter new username",
1608
+ onInput: qe,
1609
+ onKeyup: Le(tt, ["enter"])
1610
+ }, null, 34), [
1611
+ [Me, G.value]
1612
+ ])
1613
+ ], 512), [
1614
+ [Ye, ye.value]
1615
+ ])
1616
+ ])) : (t(), a("div", Ps, [
1617
+ e("span", Ys, v(((c = o.value) == null ? void 0 : c.username) || "..."), 1)
1618
+ ]))
1619
+ ];
1620
+ }),
1621
+ default: I(() => [
1622
+ Ue(We, { class: "_whitespace-nowrap _align-top _-ml-[2px] _p-[2px]" }, {
1623
+ default: I(() => {
1624
+ var c, S;
1625
+ return [
1626
+ e("div", Gs, [
1627
+ e("section", Zs, [
1628
+ s[11] || (s[11] = e("header", { class: "_flex _justify-between _leading-snug _text-mlg _weight-bold _opacity-30" }, [
1629
+ e("h3", null, "balance")
1630
+ ], -1)),
1631
+ e("div", qs, [
1632
+ f.value ? i("", !0) : (t(), a("span", el, "🪩")),
1633
+ f.value ? (t(), a("span", tl, "...")) : (t(), a("span", al, v(((S = (c = o.value) == null ? void 0 : c.totalPoints) == null ? void 0 : S.toLocaleString()) || 0), 1))
1634
+ ])
1635
+ ]),
1636
+ e("section", sl, [
1637
+ s[12] || (s[12] = e("header", { class: "_flex _justify-between _items-center _leading-snug _text-mlg _weight-bold _opacity-30" }, [
1638
+ e("h3", null, "airdrop pts.")
1639
+ ], -1)),
1640
+ e("div", ll, [
1641
+ j.value ? i("", !0) : (t(), a("span", nl, "🪂")),
1642
+ j.value ? (t(), a("span", ol, "...")) : (t(), a("span", rl, v(J.value), 1))
1643
+ ])
1644
+ ]),
1645
+ e("section", {
1646
+ class: C(["_inline-flex _flex-col _bg-metallic-linear _shadow-panel _px-3 _py-2 _pb-1.5 _rounded-lg", { "_order-first": T.value < 100 || !_.value }]),
1647
+ onClick: s[4] || (s[4] = (H) => d(b).openHub("leaderboard"))
1648
+ }, [
1649
+ s[13] || (s[13] = e("header", { class: "_flex _justify-between _items-center _leading-snug _text-mlg _weight-bold _opacity-30" }, [
1650
+ e("h3", null, "rank")
1651
+ ], -1)),
1652
+ e("div", il, [
1653
+ j.value ? (t(), a("span", ul, "...")) : (t(), a("span", cl, v(ce.value), 1))
1654
+ ])
1655
+ ], 2)
1656
+ ])
1657
+ ];
1658
+ }),
1659
+ _: 1
1660
+ }),
1661
+ _.value ? (t(), a("section", dl, [
1662
+ e("section", _l, [
1663
+ s[14] || (s[14] = e("div", { class: "_flex _items-center _justify-between _-mt-1.5" }, [
1664
+ e("h3", { class: "_text-mlg _weight-bold" }, [
1665
+ e("span", { class: "_opacity-30" }, "quests")
1666
+ ])
1667
+ ], -1)),
1668
+ Ue(We, { class: "_whitespace-nowrap _align-top _-mx-[2px] _p-[2px]" }, {
1669
+ default: I(() => [
1670
+ e("div", fl, [
1671
+ (t(!0), a(D, null, q(ee.value, (c, S) => (t(), a("div", {
1672
+ key: c.id,
1673
+ class: C(["_inline-block _align-top", { "_max-w-[14em]": !S }])
1674
+ }, [
1675
+ Ue(dt, {
1676
+ quest: c,
1677
+ onPointsUpdated: te
1678
+ }, null, 8, ["quest"])
1679
+ ], 2))), 128)),
1680
+ e("button", {
1681
+ class: "_bubble-btn _px-5 _py-4.5 _inline-flex _items-center _justify-center _text-stroke-xl _whitespace-nowrap",
1682
+ style: { filter: "hue-rotate(20deg) saturate(3)" },
1683
+ onClick: ue
1684
+ }, " view all Quests ")
1685
+ ])
1686
+ ]),
1687
+ _: 1
1688
+ })
1689
+ ])
1690
+ ])) : i("", !0),
1691
+ e("section", ml, [
1692
+ e("section", vl, [
1693
+ e("div", pl, [
1694
+ e("h3", {
1695
+ class: C(["_text-mlg _weight-bold", { "_animate-pulse-deep": L.value }])
1696
+ }, s[15] || (s[15] = [
1697
+ e("span", { class: "_opacity-30" }, "activity", -1)
1698
+ ]), 2),
1699
+ K.value > 1 ? (t(), a("div", gl, [
1700
+ M.value > 1 ? (t(), a("div", hl, [
1701
+ x(" Page " + v(M.value), 1),
1702
+ Y.value ? (t(), a("span", yl, " of " + v(K.value), 1)) : i("", !0)
1703
+ ])) : i("", !0),
1704
+ e("div", bl, [
1705
+ e("button", {
1706
+ class: C(["_size-8 _flex _items-center _justify-center _rounded-lg _bg-metallic-cone _shadow-panel _text-xl mouse:hover:_scale-[1.05] _duration-150", { "_opacity-30 _cursor-default": M.value === 1 }]),
1707
+ onClick: Ae,
1708
+ disabled: M.value === 1,
1709
+ "aria-label": "Previous page"
1710
+ }, " ← ", 10, xl),
1711
+ e("button", {
1712
+ class: C(["_size-8 _flex _items-center _justify-center _rounded-lg _bg-metallic-cone _shadow-panel _text-xl mouse:hover:_scale-[1.05] _duration-150", { "_opacity-30 _cursor-default": !P.value }]),
1713
+ onClick: Se,
1714
+ disabled: !P.value,
1715
+ "aria-label": "Next page"
1716
+ }, " → ", 10, wl)
1717
+ ])
1718
+ ])) : i("", !0)
1719
+ ]),
1720
+ h.value ? (t(), a("div", kl, v(h.value), 1)) : z.value.length ? (t(), a("section", Al, [
1721
+ e("ul", Sl, [
1722
+ (t(!0), a(D, null, q(z.value, (c) => (t(), a("li", {
1723
+ key: c.id
1724
+ }, [
1725
+ Ue(Ns, { point: c }, null, 8, ["point"])
1726
+ ]))), 128))
1727
+ ])
1728
+ ])) : i("", !0)
1729
+ ])
1730
+ ]),
1731
+ _.value ? (t(), E(ws, {
1732
+ key: 1,
1733
+ class: "_w-full _max-w-2xl"
1734
+ })) : i("", !0),
1735
+ _.value ? (t(), E(qa, {
1736
+ key: 2,
1737
+ class: "_w-full _max-w-2xl"
1738
+ })) : i("", !0)
1739
+ ]),
1740
+ _: 2
1741
+ }, [
1742
+ ae.value || se.value || le.value || ne.value ? {
1743
+ name: "description",
1744
+ fn: I(() => [
1745
+ e("div", Os, [
1746
+ ae.value ? (t(), a("a", {
1747
+ key: 0,
1748
+ href: ke.value,
1749
+ target: "_blank",
1750
+ rel: "noopener noreferrer",
1751
+ class: "_p-1.5 _flex _items-center _justify-center _rounded-lg _bg-metallic-cone _shadow-panel",
1752
+ "aria-label": "View Discord profile"
1753
+ }, s[7] || (s[7] = [
1754
+ e("img", {
1755
+ src: Ke,
1756
+ class: "_size-7 _rounded",
1757
+ style: { "background-color": "#5865f2" }
1758
+ }, null, -1)
1759
+ ]), 8, Ks)) : i("", !0),
1760
+ se.value ? (t(), a("a", {
1761
+ key: 1,
1762
+ href: n.value,
1763
+ target: "_blank",
1764
+ rel: "noopener noreferrer",
1765
+ class: "_p-1.5 _flex _items-center _justify-center _rounded-lg _bg-metallic-cone _shadow-panel",
1766
+ "aria-label": "View Twitter profile"
1767
+ }, s[8] || (s[8] = [
1768
+ e("img", {
1769
+ src: Xe,
1770
+ class: "_size-7 _rounded",
1771
+ style: { "background-color": "#000" }
1772
+ }, null, -1)
1773
+ ]), 8, Xs)) : i("", !0),
1774
+ le.value ? (t(), a("a", {
1775
+ key: 2,
1776
+ href: $.value,
1777
+ target: "_blank",
1778
+ rel: "noopener noreferrer",
1779
+ class: "_p-1.5 _flex _items-center _justify-center _rounded-lg _bg-metallic-cone _shadow-panel",
1780
+ "aria-label": "View Telegram profile"
1781
+ }, s[9] || (s[9] = [
1782
+ e("img", {
1783
+ src: Je,
1784
+ class: "_size-7 _rounded",
1785
+ style: { "background-color": "#0088cc" }
1786
+ }, null, -1)
1787
+ ]), 8, Js)) : i("", !0),
1788
+ ne.value ? (t(), a("a", {
1789
+ key: 3,
1790
+ href: F.value,
1791
+ target: "_blank",
1792
+ rel: "noopener noreferrer",
1793
+ class: "_p-1.5 _flex _items-center _justify-center _rounded-lg _bg-metallic-cone _shadow-panel",
1794
+ "aria-label": "View Farcaster profile"
1795
+ }, s[10] || (s[10] = [
1796
+ e("img", {
1797
+ src: Ve,
1798
+ class: "_size-7 _rounded",
1799
+ style: { "background-color": "#000" }
1800
+ }, null, -1)
1801
+ ]), 8, Vs)) : i("", !0)
1802
+ ])
1803
+ ]),
1804
+ key: "0"
1805
+ } : void 0
1806
+ ]), 1024));
1807
+ }
1808
+ }, Nl = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1809
+ __proto__: null,
1810
+ default: Cl
1811
+ }, Symbol.toStringTag, { value: "Module" }));
1812
+ export {
1813
+ wt as A,
1814
+ Nl as P,
1815
+ re as _,
1816
+ Ht as a,
1817
+ Cl as b
1818
+ };