@dcl/landing-site 0.5.1-24685869120.commit-1de5712 → 0.5.1-24686484792.commit-e56f2bf

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 (182) hide show
  1. package/assets/{AnimatedBackground--tmRk4pB.js → AnimatedBackground-BbbuCmrW.js} +2 -2
  2. package/assets/{AnimatedBackground--tmRk4pB.js.map → AnimatedBackground-BbbuCmrW.js.map} +1 -1
  3. package/assets/{AnimatedSection-4VTaj_2R.js → AnimatedSection-CcAt5h6R.js} +1 -1
  4. package/assets/{AnimatedSection-4VTaj_2R.js.map → AnimatedSection-CcAt5h6R.js.map} +1 -1
  5. package/assets/{ArrowBackIosNew-BmStpKu0.js → ArrowBackIosNew-lqzUFZQL.js} +1 -1
  6. package/assets/{ArrowBackIosNew-BmStpKu0.js.map → ArrowBackIosNew-lqzUFZQL.js.map} +1 -1
  7. package/assets/{AuthorPage-DsEGDjQw.js → AuthorPage-4inFQH2X.js} +1 -1
  8. package/assets/{AuthorPage-DsEGDjQw.js.map → AuthorPage-4inFQH2X.js.map} +1 -1
  9. package/assets/{Badges-DFm-dJP0.js → Badges-DPcq_7dC.js} +1 -1
  10. package/assets/{Badges-DFm-dJP0.js.map → Badges-DPcq_7dC.js.map} +1 -1
  11. package/assets/{BlogLayout-CxiSrxYR.js → BlogLayout-Bl9FID_L.js} +1 -1
  12. package/assets/{BlogLayout-CxiSrxYR.js.map → BlogLayout-Bl9FID_L.js.map} +1 -1
  13. package/assets/{BlogPage-BrmWjpqW.js → BlogPage-4c8ZFzdw.js} +1 -1
  14. package/assets/{BlogPage-BrmWjpqW.js.map → BlogPage-4c8ZFzdw.js.map} +1 -1
  15. package/assets/{CTAButton-DiWefRTF.js → CTAButton-D8_9d6Wu.js} +1 -1
  16. package/assets/{CTAButton-DiWefRTF.js.map → CTAButton-D8_9d6Wu.js.map} +1 -1
  17. package/assets/{CardContent-BGQcwSBj.js → CardContent-BQ0iSa2p.js} +1 -1
  18. package/assets/{CardContent-BGQcwSBj.js.map → CardContent-BQ0iSa2p.js.map} +1 -1
  19. package/assets/{CardMedia-RFT7-c29.js → CardMedia-B6PneSTk.js} +1 -1
  20. package/assets/{CardMedia-RFT7-c29.js.map → CardMedia-B6PneSTk.js.map} +1 -1
  21. package/assets/{Carousel-pw-zJClB.js → Carousel-DJd7E-wq.js} +1 -1
  22. package/assets/{Carousel-pw-zJClB.js.map → Carousel-DJd7E-wq.js.map} +1 -1
  23. package/assets/{CategoryPage-ZdXQJP2n.js → CategoryPage-DNQI3nXz.js} +1 -1
  24. package/assets/{CategoryPage-ZdXQJP2n.js.map → CategoryPage-DNQI3nXz.js.map} +1 -1
  25. package/assets/{CircleAndArrow-DjRydx_v.js → CircleAndArrow-DIeWRbH9.js} +1 -1
  26. package/assets/{CircleAndArrow-DjRydx_v.js.map → CircleAndArrow-DIeWRbH9.js.map} +1 -1
  27. package/assets/{CircularProgress-CpGrVwOe.js → CircularProgress-AsNM1BvH.js} +1 -1
  28. package/assets/{CircularProgress-CpGrVwOe.js.map → CircularProgress-AsNM1BvH.js.map} +1 -1
  29. package/assets/{ContentCopy-Biu7mI_B.js → ContentCopy-CDhBZqHF.js} +1 -1
  30. package/assets/{ContentCopy-Biu7mI_B.js.map → ContentCopy-CDhBZqHF.js.map} +1 -1
  31. package/assets/{CreateEventPage-CSyGxQEM.js → CreateEventPage-NcQUT47j.js} +1 -1
  32. package/assets/{CreateEventPage-CSyGxQEM.js.map → CreateEventPage-NcQUT47j.js.map} +1 -1
  33. package/assets/{CreatorHubDownload-C0lTqfvy.js → CreatorHubDownload-y9x_B8ll.js} +1 -1
  34. package/assets/{CreatorHubDownload-C0lTqfvy.js.map → CreatorHubDownload-y9x_B8ll.js.map} +1 -1
  35. package/assets/{CreatorHubDownloadSuccess-OmyWSLJA.js → CreatorHubDownloadSuccess-BP7MSbSp.js} +1 -1
  36. package/assets/{CreatorHubDownloadSuccess-OmyWSLJA.js.map → CreatorHubDownloadSuccess-BP7MSbSp.js.map} +1 -1
  37. package/assets/{DappsShell-DNMjP5_u.js → DappsShell-HNAsXcn5.js} +1 -1
  38. package/assets/{DappsShell-DNMjP5_u.js.map → DappsShell-HNAsXcn5.js.map} +1 -1
  39. package/assets/{DownloadSuccessLayout-OfN-COoN.js → DownloadSuccessLayout-COBp7A1N.js} +1 -1
  40. package/assets/{DownloadSuccessLayout-OfN-COoN.js.map → DownloadSuccessLayout-COBp7A1N.js.map} +1 -1
  41. package/assets/{Grow-vvw5xHGO.js → Grow-eKASrvPe.js} +1 -1
  42. package/assets/{Grow-vvw5xHGO.js.map → Grow-eKASrvPe.js.map} +1 -1
  43. package/assets/HomePage-CZwkfB5G.js +3 -0
  44. package/assets/HomePage-CZwkfB5G.js.map +1 -0
  45. package/assets/{InviteFaqs-VtXtD9Y7.js → InviteFaqs-BkOvxqyN.js} +1 -1
  46. package/assets/{InviteFaqs-VtXtD9Y7.js.map → InviteFaqs-BkOvxqyN.js.map} +1 -1
  47. package/assets/{InvitePage-B2ILV0JT.js → InvitePage-D5lELZNP.js} +2 -2
  48. package/assets/{InvitePage-B2ILV0JT.js.map → InvitePage-D5lELZNP.js.map} +1 -1
  49. package/assets/{JumpInIcon-DQLZFf5_.js → JumpInIcon-bPOWl5ae.js} +1 -1
  50. package/assets/{JumpInIcon-DQLZFf5_.js.map → JumpInIcon-bPOWl5ae.js.map} +1 -1
  51. package/assets/{LegalPageLayout-BPmxsGkt.js → LegalPageLayout-DeH35WpT.js} +1 -1
  52. package/assets/{LegalPageLayout-BPmxsGkt.js.map → LegalPageLayout-DeH35WpT.js.map} +1 -1
  53. package/assets/{Link-CRy-ui2j.js → Link-C3GGl2C6.js} +1 -1
  54. package/assets/{Link-CRy-ui2j.js.map → Link-C3GGl2C6.js.map} +1 -1
  55. package/assets/{MenuItem--w_lFNXz.js → MenuItem-B0piwgTa.js} +1 -1
  56. package/assets/{MenuItem--w_lFNXz.js.map → MenuItem-B0piwgTa.js.map} +1 -1
  57. package/assets/{Paper-DkTuC9MF.js → Paper-BfSYUoim.js} +1 -1
  58. package/assets/{Paper-DkTuC9MF.js.map → Paper-BfSYUoim.js.map} +1 -1
  59. package/assets/{PostCard-CoBBQR_z.js → PostCard-Zsk0_WYz.js} +1 -1
  60. package/assets/{PostCard-CoBBQR_z.js.map → PostCard-Zsk0_WYz.js.map} +1 -1
  61. package/assets/{PostPage-DTs37H2-.js → PostPage-FBb63V37.js} +1 -1
  62. package/assets/{PostPage-DTs37H2-.js.map → PostPage-FBb63V37.js.map} +1 -1
  63. package/assets/{PostPage.styled-DLL8lMAH.js → PostPage.styled-B7Xofl3c.js} +3 -3
  64. package/assets/{PostPage.styled-DLL8lMAH.js.map → PostPage.styled-B7Xofl3c.js.map} +1 -1
  65. package/assets/{PreviewPage-CM24MWpu.js → PreviewPage-Dla6vQZW.js} +1 -1
  66. package/assets/{PreviewPage-CM24MWpu.js.map → PreviewPage-Dla6vQZW.js.map} +1 -1
  67. package/assets/{SEO-B1CZcHhQ.js → SEO-CGGKu_zm.js} +1 -1
  68. package/assets/{SEO-B1CZcHhQ.js.map → SEO-CGGKu_zm.js.map} +1 -1
  69. package/assets/{SearchPage-Bc-IQg_Z.js → SearchPage-ByMcz1c8.js} +1 -1
  70. package/assets/{SearchPage-Bc-IQg_Z.js.map → SearchPage-ByMcz1c8.js.map} +1 -1
  71. package/assets/{SignInRedirect-CytWMFc_.js → SignInRedirect-BNwfxyGB.js} +1 -1
  72. package/assets/{SignInRedirect-CytWMFc_.js.map → SignInRedirect-BNwfxyGB.js.map} +1 -1
  73. package/assets/{SignInRedirect-CHd5tZSP.js → SignInRedirect-Bxl1dwag.js} +1 -1
  74. package/assets/{SignInRedirect-CHd5tZSP.js.map → SignInRedirect-Bxl1dwag.js.map} +1 -1
  75. package/assets/{Skeleton-Bp_3tZG7.js → Skeleton-BP1Os8gY.js} +1 -1
  76. package/assets/{Skeleton-Bp_3tZG7.js.map → Skeleton-BP1Os8gY.js.map} +1 -1
  77. package/assets/{TwitterEmbed-qGRZ9Jyy.js → TwitterEmbed-BbSYYog-.js} +1 -1
  78. package/assets/{TwitterEmbed-qGRZ9Jyy.js.map → TwitterEmbed-BbSYYog-.js.map} +1 -1
  79. package/assets/{Video-DnCE7TZC.js → Video--A0fBGqz.js} +1 -1
  80. package/assets/{Video-DnCE7TZC.js.map → Video--A0fBGqz.js.map} +1 -1
  81. package/assets/WearablePreview-KunRQByO.js +4 -0
  82. package/assets/{WearablePreview-DLAIz58Z.js.map → WearablePreview-KunRQByO.js.map} +1 -1
  83. package/assets/{auto-track-DyJFTD4H.js → auto-track-DJw7KsLA.js} +1 -1
  84. package/assets/{auto-track-DyJFTD4H.js.map → auto-track-DJw7KsLA.js.map} +1 -1
  85. package/assets/{ccip-Dh2ZOi0c.js → ccip-EHA4QwVS.js} +1 -1
  86. package/assets/{ccip-Dh2ZOi0c.js.map → ccip-EHA4QwVS.js.map} +1 -1
  87. package/assets/{createSvgIcon-DPMfLii4.js → createSvgIcon-CnAtXIjx.js} +1 -1
  88. package/assets/{createSvgIcon-DPMfLii4.js.map → createSvgIcon-CnAtXIjx.js.map} +1 -1
  89. package/assets/{download-30qm_WAk.js → download-Csh0UAX4.js} +2 -2
  90. package/assets/{download-30qm_WAk.js.map → download-Csh0UAX4.js.map} +1 -1
  91. package/assets/{downloadWithIdentity-BtEnlEpV.js → downloadWithIdentity-imzC-1Iy.js} +1 -1
  92. package/assets/{downloadWithIdentity-BtEnlEpV.js.map → downloadWithIdentity-imzC-1Iy.js.map} +1 -1
  93. package/assets/{events.client-Cm_vJXoK.js → events.client-BypQp_hx.js} +1 -1
  94. package/assets/{events.client-Cm_vJXoK.js.map → events.client-BypQp_hx.js.map} +1 -1
  95. package/assets/{index-DphyojdM.js → index-0VgKmd34.js} +1 -1
  96. package/assets/{index-DphyojdM.js.map → index-0VgKmd34.js.map} +1 -1
  97. package/assets/{index-CnliSg2U.js → index-B-PLjKpI.js} +1 -1
  98. package/assets/{index-CnliSg2U.js.map → index-B-PLjKpI.js.map} +1 -1
  99. package/assets/{index-3Yl6UR--.js → index-BKY10VNY.js} +1 -1
  100. package/assets/{index-3Yl6UR--.js.map → index-BKY10VNY.js.map} +1 -1
  101. package/assets/{index-CcVwIken.js → index-BO6ciUn8.js} +1 -1
  102. package/assets/{index-CcVwIken.js.map → index-BO6ciUn8.js.map} +1 -1
  103. package/assets/{index-C1q8L88E.js → index-BVu5N7d0.js} +1 -1
  104. package/assets/{index-C1q8L88E.js.map → index-BVu5N7d0.js.map} +1 -1
  105. package/assets/{index-BxZNYwr3.js → index-BaEE4ZXP.js} +1 -1
  106. package/assets/{index-BxZNYwr3.js.map → index-BaEE4ZXP.js.map} +1 -1
  107. package/assets/{index-C7VbadJ8.js → index-Bd63106P.js} +1 -1
  108. package/assets/{index-C7VbadJ8.js.map → index-Bd63106P.js.map} +1 -1
  109. package/assets/{index-SmcmwtEm.js → index-Bfn0rTR9.js} +1 -1
  110. package/assets/{index-SmcmwtEm.js.map → index-Bfn0rTR9.js.map} +1 -1
  111. package/assets/{index-BMggQVV_.js → index-Bq7PojkE.js} +1 -1
  112. package/assets/{index-BMggQVV_.js.map → index-Bq7PojkE.js.map} +1 -1
  113. package/assets/{index-BgUWva8u.js → index-BtL1Whr6.js} +1 -1
  114. package/assets/{index-BgUWva8u.js.map → index-BtL1Whr6.js.map} +1 -1
  115. package/assets/{index-XqSXzv-4.js → index-BzmWmDt2.js} +1 -1
  116. package/assets/{index-XqSXzv-4.js.map → index-BzmWmDt2.js.map} +1 -1
  117. package/assets/{index-Dgp9VKxh.js → index-C1apFG92.js} +1 -1
  118. package/assets/{index-Dgp9VKxh.js.map → index-C1apFG92.js.map} +1 -1
  119. package/assets/{index-CAq1HW41.js → index-CC8b5SLA.js} +1 -1
  120. package/assets/{index-CAq1HW41.js.map → index-CC8b5SLA.js.map} +1 -1
  121. package/assets/{index-D6BepkG_.js → index-CJ9b6HdV.js} +1 -1
  122. package/assets/{index-D6BepkG_.js.map → index-CJ9b6HdV.js.map} +1 -1
  123. package/assets/{index--KeAUoz4.js → index-CXMTgMUj.js} +1 -1
  124. package/assets/{index--KeAUoz4.js.map → index-CXMTgMUj.js.map} +1 -1
  125. package/assets/{index-C62RHb__.js → index-CfKiEnnb.js} +1 -1
  126. package/assets/{index-C62RHb__.js.map → index-CfKiEnnb.js.map} +1 -1
  127. package/assets/{index-vUzwsML4.js → index-CqU_IKja.js} +1 -1
  128. package/assets/{index-vUzwsML4.js.map → index-CqU_IKja.js.map} +1 -1
  129. package/assets/{index-DchvHHlK.js → index-CsY_wahP.js} +1 -1
  130. package/assets/{index-DchvHHlK.js.map → index-CsY_wahP.js.map} +1 -1
  131. package/assets/{index-B6K794Rf.js → index-DIU7xr_7.js} +1 -1
  132. package/assets/{index-B6K794Rf.js.map → index-DIU7xr_7.js.map} +1 -1
  133. package/assets/{index-BY3JByxP.js → index-DJdpP3iF.js} +1 -1
  134. package/assets/{index-BY3JByxP.js.map → index-DJdpP3iF.js.map} +1 -1
  135. package/assets/{index-D0nE3AYE.js → index-DUmIu2EK.js} +37 -37
  136. package/assets/index-DUmIu2EK.js.map +1 -0
  137. package/assets/{index-C8cR2Ojr.js → index-DV8UooZK.js} +1 -1
  138. package/assets/{index-C8cR2Ojr.js.map → index-DV8UooZK.js.map} +1 -1
  139. package/assets/{index-DLkc1FLr.js → index-DW87VeBc.js} +1 -1
  140. package/assets/{index-DLkc1FLr.js.map → index-DW87VeBc.js.map} +1 -1
  141. package/assets/{index-BrT6YuSM.js → index-DwKCx_Fj.js} +4 -4
  142. package/assets/{index-BrT6YuSM.js.map → index-DwKCx_Fj.js.map} +1 -1
  143. package/assets/{index-C_4lnhwn.js → index-Dx9lzInm.js} +1 -1
  144. package/assets/{index-C_4lnhwn.js.map → index-Dx9lzInm.js.map} +1 -1
  145. package/assets/{index-DsMEKak1.js → index-FcfsIuei.js} +1 -1
  146. package/assets/{index-DsMEKak1.js.map → index-FcfsIuei.js.map} +1 -1
  147. package/assets/{index-tdgsZ4Yr.js → index-Hs2OtJ7_.js} +1 -1
  148. package/assets/{index-tdgsZ4Yr.js.map → index-Hs2OtJ7_.js.map} +1 -1
  149. package/assets/{index-CALzixlI.js → index-KkMZZ6nz.js} +1 -1
  150. package/assets/{index-CALzixlI.js.map → index-KkMZZ6nz.js.map} +1 -1
  151. package/assets/{index-CTcKnQdc.js → index-XwRFjo-F.js} +3 -3
  152. package/assets/{index-CTcKnQdc.js.map → index-XwRFjo-F.js.map} +1 -1
  153. package/assets/{index-Fbn9W4zr.js → index-fmnLygLZ.js} +1 -1
  154. package/assets/{index-Fbn9W4zr.js.map → index-fmnLygLZ.js.map} +1 -1
  155. package/assets/{index-DklThyvZ.js → index-iTL2dY0l.js} +1 -1
  156. package/assets/{index-DklThyvZ.js.map → index-iTL2dY0l.js.map} +1 -1
  157. package/assets/{index-cnaXlDby.js → index-pguZ7Pr7.js} +2 -2
  158. package/assets/{index-cnaXlDby.js.map → index-pguZ7Pr7.js.map} +1 -1
  159. package/assets/{profile.client-DJkJAVO7.js → profile.client-BtZZbgxj.js} +1 -1
  160. package/assets/{profile.client-DJkJAVO7.js.map → profile.client-BtZZbgxj.js.map} +1 -1
  161. package/assets/{shared.styled-CdKr8-z1.js → shared.styled-D8qloAmp.js} +1 -1
  162. package/assets/{shared.styled-CdKr8-z1.js.map → shared.styled-D8qloAmp.js.map} +1 -1
  163. package/assets/{store-B-SZNpsH.js → store-OyTPwmKI.js} +1 -1
  164. package/assets/{store-B-SZNpsH.js.map → store-OyTPwmKI.js.map} +1 -1
  165. package/assets/{url-B6S3bwqB.js → url-BHzlJYXC.js} +1 -1
  166. package/assets/{url-B6S3bwqB.js.map → url-BHzlJYXC.js.map} +1 -1
  167. package/assets/{useAuthIdentity-BlDTBxRE.js → useAuthIdentity-D2zQ3q5X.js} +1 -1
  168. package/assets/{useAuthIdentity-BlDTBxRE.js.map → useAuthIdentity-D2zQ3q5X.js.map} +1 -1
  169. package/assets/{useCreatorHubDownload-TIbrehIm.js → useCreatorHubDownload-Dp_zMaiv.js} +1 -1
  170. package/assets/{useCreatorHubDownload-TIbrehIm.js.map → useCreatorHubDownload-Dp_zMaiv.js.map} +1 -1
  171. package/assets/{useInfiniteBlogPosts-DKtXiohd.js → useInfiniteBlogPosts-B9Mv_Fup.js} +1 -1
  172. package/assets/{useInfiniteBlogPosts-DKtXiohd.js.map → useInfiniteBlogPosts-B9Mv_Fup.js.map} +1 -1
  173. package/assets/{useSlot-B74_4mYS.js → useSlot-DM_UQPu8.js} +1 -1
  174. package/assets/{useSlot-B74_4mYS.js.map → useSlot-DM_UQPu8.js.map} +1 -1
  175. package/assets/{utils-B-HvTNW5.js → utils-CJGePSnj.js} +1 -1
  176. package/assets/{utils-B-HvTNW5.js.map → utils-CJGePSnj.js.map} +1 -1
  177. package/index.html +15 -15
  178. package/package.json +3 -3
  179. package/assets/HomePage-9QTR-dt7.js +0 -3
  180. package/assets/HomePage-9QTR-dt7.js.map +0 -1
  181. package/assets/WearablePreview-DLAIz58Z.js +0 -4
  182. package/assets/index-D0nE3AYE.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-vUzwsML4.js","sources":["../../src/pages/rewards-terms/RewardsTerms.tsx"],"sourcesContent":["import { memo } from 'react'\nimport { BulletList, LegalPageLayout, Paragraph, Section, SectionTitle, SubsectionTitle } from '../../components/LegalPage'\nimport type { TOCEntry } from '../../components/LegalPage'\n\nconst TABLE_OF_CONTENTS: TOCEntry[] = [\n { id: 'general-provisions', label: '1. General Provisions' },\n { id: 'program-duration', label: '2. Program Duration and Structure' },\n { id: 'credits-and-prize-allocation', label: '3. Credits and Prize Allocation' },\n { id: 'eligibility-and-participation', label: '4. Eligibility and Participation' },\n { id: 'earnings-and-credit-allocation', label: '5. Earnings and Credit Allocation' },\n { id: 'reward-validity-and-usage', label: '6. Reward Validity and Usage' },\n { id: 'non-transferability', label: '7. Non-Transferability and Restrictions' },\n { id: 'email-notifications', label: '8. Email Notifications' },\n { id: 'miscellaneous', label: '9. Miscellaneous' },\n { id: 'seasons', label: '10. Seasons' },\n { id: 'first-season', label: 'First Season (2025)', depth: 1 },\n { id: 'second-season', label: 'Second Season (2025)', depth: 1 },\n { id: 'third-season', label: 'Third Season (2025)', depth: 1 },\n { id: 'fourth-season', label: 'Fourth Season (2026)', depth: 1 },\n { id: 'fifth-season', label: 'Fifth Season (2026)', depth: 1 }\n]\n\nconst RewardsTerms = memo(() => (\n <LegalPageLayout title=\"Rewards Program\" activeSlug=\"/rewards-terms\" tableOfContents={TABLE_OF_CONTENTS}>\n <Paragraph>Terms and Conditions of the Rewards Program</Paragraph>\n\n <Section id=\"general-provisions\">\n <SectionTitle>1. General Provisions</SectionTitle>\n <Paragraph>\n 1.1. The Rewards Program (the &quot;Program&quot;) is offered by the Decentraland Foundation and is conducted in specific Seasons,\n the dates of which will be announced by the Decentraland Foundation.\n </Paragraph>\n <Paragraph>\n 1.2. Participation in the Program constitutes acceptance of these Terms and Conditions, as well as the Decentraland Terms of Use,\n Privacy Policy, and Content Policy.\n </Paragraph>\n <Paragraph>\n 1.3. The Decentraland Foundation reserves the right to modify, suspend, or terminate the Program at its discretion.\n </Paragraph>\n </Section>\n\n <Section id=\"program-duration\">\n <SectionTitle>2. Program Duration and Structure</SectionTitle>\n <Paragraph>\n 2.1. The Program is organized in Seasons (the &quot;Season&quot;). The Decentraland Foundation will announce the start and end dates\n for each Season.\n </Paragraph>\n </Section>\n\n <Section id=\"credits-and-prize-allocation\">\n <SectionTitle>3. Credits and Prize Allocation</SectionTitle>\n <Paragraph>\n 3.1. Credits issued under the Program may only be used on primary sales of Polygon Wearables &amp; Emotes (L1 sales are excluded).\n </Paragraph>\n <Paragraph>\n 3.2. Each Marketplace Credit is valued in each Season; however this value may be changed (lowered or increased) in the future at the\n discretion of the Decentraland Foundation.\n </Paragraph>\n <Paragraph>3.3. Credits do not represent voting power (VP).</Paragraph>\n <Paragraph>\n 3.4. A maximum total reward budget is allocated per Season. Once this budget is exhausted, no further rewards will be granted during\n that Season.\n </Paragraph>\n </Section>\n\n <Section id=\"eligibility-and-participation\">\n <SectionTitle>4. Eligibility and Participation</SectionTitle>\n <Paragraph>\n 4.1. To be eligible for rewards, participants must complete specified actions, attend designated events, or fulfill other tasks as\n determined by the Decentraland Foundation.\n </Paragraph>\n <Paragraph>\n 4.2. The Decentraland Foundation reserves the right to verify the completion of required actions before awarding any rewards.\n </Paragraph>\n </Section>\n\n <Section id=\"earnings-and-credit-allocation\">\n <SectionTitle>5. Earnings and Credit Allocation</SectionTitle>\n <Paragraph>\n 5.1. Participants who fully complete all designated weekly goals will earn the maximum Marketplace Credits per week mentioned in the\n corresponding Season.\n </Paragraph>\n <Paragraph>5.2. The maximum Marketplace Credits a user can earn during the Season shall be determined in each Season.</Paragraph>\n <Paragraph>5.3. A weekly goal must be fully completed to receive its associated credit value.</Paragraph>\n <Paragraph>\n 5.4. Participants will earn credits only for the goals they fully complete; it is not necessary to complete every goal in order to\n receive some credit.\n </Paragraph>\n </Section>\n\n <Section id=\"reward-validity-and-usage\">\n <SectionTitle>6. Reward Validity and Usage</SectionTitle>\n <Paragraph>\n 6.1. Rewards will be valid for a period of weeks to be announced in each Season (the &quot;validity period&quot;).\n </Paragraph>\n <Paragraph>6.2. Any rewards not redeemed within the validity period will expire and become non-redeemable.</Paragraph>\n </Section>\n\n <Section id=\"non-transferability\">\n <SectionTitle>7. Non-Transferability and Restrictions</SectionTitle>\n <Paragraph>7.1. Rewards are non-transferable and may only be used by the designated recipient.</Paragraph>\n <Paragraph>\n 7.2. Credits must be issued to a specific beneficiary (a valid EVM Address) and can only be utilized by that beneficiary.\n </Paragraph>\n <Paragraph>7.3. Rewards cannot be exchanged for cash, MANA, or any other alternative benefits.</Paragraph>\n <Paragraph>\n 7.4. Credits cannot be used to publish a collection, used on Ethereum for this iteration, or transferred between users.\n </Paragraph>\n <Paragraph>\n 7.5. The Decentraland Foundation reserves the right to revoke or cancel rewards if they are misused or if participants are found to\n be in violation of the Program&apos;s terms.\n </Paragraph>\n </Section>\n\n <Section id=\"email-notifications\">\n <SectionTitle>8. Email Notifications</SectionTitle>\n <Paragraph>\n 8.1. By participating in the Program, you consent to receive email notifications related to &quot;Weekly Rewards.&quot;\n </Paragraph>\n <Paragraph>8.2. The Decentraland Foundation may add additional email notification categories in the future.</Paragraph>\n </Section>\n\n <Section id=\"miscellaneous\">\n <SectionTitle>9. Miscellaneous</SectionTitle>\n <Paragraph>\n 9.1. The Decentraland Foundation is not responsible for any technical malfunctions, errors, or issues that may affect participation\n in the Program.\n </Paragraph>\n <Paragraph>\n 9.2. Any disputes regarding the Program shall be resolved at the sole discretion of the Decentraland Foundation.\n </Paragraph>\n <Paragraph>\n For further inquiries, please contact <a href=\"mailto:legal@decentraland.org\">legal@decentraland.org</a>.\n </Paragraph>\n </Section>\n\n <Section id=\"seasons\">\n <SectionTitle>10. Seasons</SectionTitle>\n\n <SubsectionTitle id=\"first-season\">First Season (2025)</SubsectionTitle>\n <BulletList>\n <li>The First Season starts on May 19, 2025 and finishes July 14, 2025.</li>\n <li>The First Season will run for 8 weeks, with each week defined as Monday 00:00 UTC to Sunday 23:59 UTC.</li>\n <li>The maximum total reward budget for the first Season is set at 640,000 Credits.</li>\n <li>The maximum a user can earn during the 8-week trial Season is 64 Marketplace Credits.</li>\n <li>Rewards will be valid for a period of ten (10) weeks from the Season launch date (the &quot;validity period&quot;).</li>\n <li>Each Marketplace Credit is valued at 1 MANA.</li>\n </BulletList>\n <Paragraph>Weekly Goals and Credit Values:</Paragraph>\n <BulletList>\n <li>Log into DCL on at least 3 separate days - Value: 4 Credits</li>\n <li>Attend at least 2 events - Value: 2 Credits</li>\n <li>View 3 new Profiles - Value: 1 Credit</li>\n <li>Visit 3 new locations - Value: 1 Credit</li>\n </BulletList>\n\n <SubsectionTitle id=\"second-season\">Second Season (2025)</SubsectionTitle>\n <BulletList>\n <li>Starts August 11, 2025, finishes October 12, 2025.</li>\n <li>9 weeks, Monday 00:00 UTC to Sunday 23:59 UTC.</li>\n <li>Budget: 640,000 Credits. Max per user: 360 Credits.</li>\n <li>Validity: eleven (11) weeks from launch (October 26, 2025 at 23:59).</li>\n <li>Each Credit valued at 1 MANA.</li>\n </BulletList>\n <Paragraph>Weekly Goals:</Paragraph>\n <BulletList>\n <li>Log into DCL on at least 3 separate days - 20 Credits (Must remain in-world 10+ min each day)</li>\n <li>Attend at least 2 events - 10 Credits (Must remain 10+ min each event)</li>\n <li>View 3 new Profiles - 5 Credits</li>\n <li>Visit 3 new locations - 5 Credits</li>\n </BulletList>\n\n <SubsectionTitle id=\"third-season\">Third Season (2025)</SubsectionTitle>\n <BulletList>\n <li>Starts October 27, 2025, finishes December 21, 2025.</li>\n <li>8 weeks. Budget: 640,000 Credits. Max per user: 320 Credits.</li>\n <li>Validity: ten (10) weeks (January 4, 2026 at 23:59:59).</li>\n <li>Each Credit valued at 1 MANA.</li>\n </BulletList>\n <Paragraph>Weekly Goals:</Paragraph>\n <BulletList>\n <li>Log into DCL on at least 3 separate days - 20 Credits</li>\n <li>Attend at least 2 events - 10 Credits (Must remain 5+ min)</li>\n <li>Explore a weekly location - 5 Credits</li>\n <li>Snap A Photo Emoting With Someone - 5 Credits</li>\n </BulletList>\n\n <SubsectionTitle id=\"fourth-season\">Fourth Season (2026)</SubsectionTitle>\n <BulletList>\n <li>Starts January 12, 2026, finishes March 01, 2026.</li>\n <li>7 weeks. Budget: 640,000 Credits. Max per user: 280 Credits.</li>\n <li>Validity: nine (9) weeks (March 15, 2026 at 23:59:59).</li>\n <li>Each Credit valued at 1 MANA.</li>\n </BulletList>\n <Paragraph>Weekly Goals:</Paragraph>\n <BulletList>\n <li>Log into DCL on at least 3 separate days - 20 Credits</li>\n <li>Attend at least 2 events - 10 Credits (Must remain 5+ min)</li>\n <li>Explore a weekly location - 5 Credits</li>\n <li>Snap A Photo Emoting With Someone - 5 Credits</li>\n </BulletList>\n\n <SubsectionTitle id=\"fifth-season\">Fifth Season (2026)</SubsectionTitle>\n <BulletList>\n <li>Starts March 16, 2026, finishes April 19, 2026.</li>\n <li>5 weeks. Budget: 640,000 Credits. Max per user: 200 Credits.</li>\n <li>Validity: six (6) weeks (April 26, 2026 at 23:59:59).</li>\n <li>Each Credit valued at 1 MANA.</li>\n </BulletList>\n <Paragraph>Weekly Goals:</Paragraph>\n <BulletList>\n <li>Log into DCL on at least 3 separate days - 20 Credits</li>\n <li>Attend at least 2 events - 10 Credits (Must remain 5+ min)</li>\n <li>Explore a weekly location - 5 Credits</li>\n <li>Snap A Photo Emoting With Someone - 5 Credits</li>\n </BulletList>\n </Section>\n </LegalPageLayout>\n))\n\nRewardsTerms.displayName = 'RewardsTerms'\n\nexport { RewardsTerms }\n"],"names":["TABLE_OF_CONTENTS","RewardsTerms","memo","jsxs","LegalPageLayout","jsx","Paragraph","Section","SectionTitle","SubsectionTitle","BulletList"],"mappings":"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"}
1
+ {"version":3,"file":"index-CqU_IKja.js","sources":["../../src/pages/rewards-terms/RewardsTerms.tsx"],"sourcesContent":["import { memo } from 'react'\nimport { BulletList, LegalPageLayout, Paragraph, Section, SectionTitle, SubsectionTitle } from '../../components/LegalPage'\nimport type { TOCEntry } from '../../components/LegalPage'\n\nconst TABLE_OF_CONTENTS: TOCEntry[] = [\n { id: 'general-provisions', label: '1. General Provisions' },\n { id: 'program-duration', label: '2. Program Duration and Structure' },\n { id: 'credits-and-prize-allocation', label: '3. Credits and Prize Allocation' },\n { id: 'eligibility-and-participation', label: '4. Eligibility and Participation' },\n { id: 'earnings-and-credit-allocation', label: '5. Earnings and Credit Allocation' },\n { id: 'reward-validity-and-usage', label: '6. Reward Validity and Usage' },\n { id: 'non-transferability', label: '7. Non-Transferability and Restrictions' },\n { id: 'email-notifications', label: '8. Email Notifications' },\n { id: 'miscellaneous', label: '9. Miscellaneous' },\n { id: 'seasons', label: '10. Seasons' },\n { id: 'first-season', label: 'First Season (2025)', depth: 1 },\n { id: 'second-season', label: 'Second Season (2025)', depth: 1 },\n { id: 'third-season', label: 'Third Season (2025)', depth: 1 },\n { id: 'fourth-season', label: 'Fourth Season (2026)', depth: 1 },\n { id: 'fifth-season', label: 'Fifth Season (2026)', depth: 1 }\n]\n\nconst RewardsTerms = memo(() => (\n <LegalPageLayout title=\"Rewards Program\" activeSlug=\"/rewards-terms\" tableOfContents={TABLE_OF_CONTENTS}>\n <Paragraph>Terms and Conditions of the Rewards Program</Paragraph>\n\n <Section id=\"general-provisions\">\n <SectionTitle>1. General Provisions</SectionTitle>\n <Paragraph>\n 1.1. The Rewards Program (the &quot;Program&quot;) is offered by the Decentraland Foundation and is conducted in specific Seasons,\n the dates of which will be announced by the Decentraland Foundation.\n </Paragraph>\n <Paragraph>\n 1.2. Participation in the Program constitutes acceptance of these Terms and Conditions, as well as the Decentraland Terms of Use,\n Privacy Policy, and Content Policy.\n </Paragraph>\n <Paragraph>\n 1.3. The Decentraland Foundation reserves the right to modify, suspend, or terminate the Program at its discretion.\n </Paragraph>\n </Section>\n\n <Section id=\"program-duration\">\n <SectionTitle>2. Program Duration and Structure</SectionTitle>\n <Paragraph>\n 2.1. The Program is organized in Seasons (the &quot;Season&quot;). The Decentraland Foundation will announce the start and end dates\n for each Season.\n </Paragraph>\n </Section>\n\n <Section id=\"credits-and-prize-allocation\">\n <SectionTitle>3. Credits and Prize Allocation</SectionTitle>\n <Paragraph>\n 3.1. Credits issued under the Program may only be used on primary sales of Polygon Wearables &amp; Emotes (L1 sales are excluded).\n </Paragraph>\n <Paragraph>\n 3.2. Each Marketplace Credit is valued in each Season; however this value may be changed (lowered or increased) in the future at the\n discretion of the Decentraland Foundation.\n </Paragraph>\n <Paragraph>3.3. Credits do not represent voting power (VP).</Paragraph>\n <Paragraph>\n 3.4. A maximum total reward budget is allocated per Season. Once this budget is exhausted, no further rewards will be granted during\n that Season.\n </Paragraph>\n </Section>\n\n <Section id=\"eligibility-and-participation\">\n <SectionTitle>4. Eligibility and Participation</SectionTitle>\n <Paragraph>\n 4.1. To be eligible for rewards, participants must complete specified actions, attend designated events, or fulfill other tasks as\n determined by the Decentraland Foundation.\n </Paragraph>\n <Paragraph>\n 4.2. The Decentraland Foundation reserves the right to verify the completion of required actions before awarding any rewards.\n </Paragraph>\n </Section>\n\n <Section id=\"earnings-and-credit-allocation\">\n <SectionTitle>5. Earnings and Credit Allocation</SectionTitle>\n <Paragraph>\n 5.1. Participants who fully complete all designated weekly goals will earn the maximum Marketplace Credits per week mentioned in the\n corresponding Season.\n </Paragraph>\n <Paragraph>5.2. The maximum Marketplace Credits a user can earn during the Season shall be determined in each Season.</Paragraph>\n <Paragraph>5.3. A weekly goal must be fully completed to receive its associated credit value.</Paragraph>\n <Paragraph>\n 5.4. Participants will earn credits only for the goals they fully complete; it is not necessary to complete every goal in order to\n receive some credit.\n </Paragraph>\n </Section>\n\n <Section id=\"reward-validity-and-usage\">\n <SectionTitle>6. Reward Validity and Usage</SectionTitle>\n <Paragraph>\n 6.1. Rewards will be valid for a period of weeks to be announced in each Season (the &quot;validity period&quot;).\n </Paragraph>\n <Paragraph>6.2. Any rewards not redeemed within the validity period will expire and become non-redeemable.</Paragraph>\n </Section>\n\n <Section id=\"non-transferability\">\n <SectionTitle>7. Non-Transferability and Restrictions</SectionTitle>\n <Paragraph>7.1. Rewards are non-transferable and may only be used by the designated recipient.</Paragraph>\n <Paragraph>\n 7.2. Credits must be issued to a specific beneficiary (a valid EVM Address) and can only be utilized by that beneficiary.\n </Paragraph>\n <Paragraph>7.3. Rewards cannot be exchanged for cash, MANA, or any other alternative benefits.</Paragraph>\n <Paragraph>\n 7.4. Credits cannot be used to publish a collection, used on Ethereum for this iteration, or transferred between users.\n </Paragraph>\n <Paragraph>\n 7.5. The Decentraland Foundation reserves the right to revoke or cancel rewards if they are misused or if participants are found to\n be in violation of the Program&apos;s terms.\n </Paragraph>\n </Section>\n\n <Section id=\"email-notifications\">\n <SectionTitle>8. Email Notifications</SectionTitle>\n <Paragraph>\n 8.1. By participating in the Program, you consent to receive email notifications related to &quot;Weekly Rewards.&quot;\n </Paragraph>\n <Paragraph>8.2. The Decentraland Foundation may add additional email notification categories in the future.</Paragraph>\n </Section>\n\n <Section id=\"miscellaneous\">\n <SectionTitle>9. Miscellaneous</SectionTitle>\n <Paragraph>\n 9.1. The Decentraland Foundation is not responsible for any technical malfunctions, errors, or issues that may affect participation\n in the Program.\n </Paragraph>\n <Paragraph>\n 9.2. Any disputes regarding the Program shall be resolved at the sole discretion of the Decentraland Foundation.\n </Paragraph>\n <Paragraph>\n For further inquiries, please contact <a href=\"mailto:legal@decentraland.org\">legal@decentraland.org</a>.\n </Paragraph>\n </Section>\n\n <Section id=\"seasons\">\n <SectionTitle>10. Seasons</SectionTitle>\n\n <SubsectionTitle id=\"first-season\">First Season (2025)</SubsectionTitle>\n <BulletList>\n <li>The First Season starts on May 19, 2025 and finishes July 14, 2025.</li>\n <li>The First Season will run for 8 weeks, with each week defined as Monday 00:00 UTC to Sunday 23:59 UTC.</li>\n <li>The maximum total reward budget for the first Season is set at 640,000 Credits.</li>\n <li>The maximum a user can earn during the 8-week trial Season is 64 Marketplace Credits.</li>\n <li>Rewards will be valid for a period of ten (10) weeks from the Season launch date (the &quot;validity period&quot;).</li>\n <li>Each Marketplace Credit is valued at 1 MANA.</li>\n </BulletList>\n <Paragraph>Weekly Goals and Credit Values:</Paragraph>\n <BulletList>\n <li>Log into DCL on at least 3 separate days - Value: 4 Credits</li>\n <li>Attend at least 2 events - Value: 2 Credits</li>\n <li>View 3 new Profiles - Value: 1 Credit</li>\n <li>Visit 3 new locations - Value: 1 Credit</li>\n </BulletList>\n\n <SubsectionTitle id=\"second-season\">Second Season (2025)</SubsectionTitle>\n <BulletList>\n <li>Starts August 11, 2025, finishes October 12, 2025.</li>\n <li>9 weeks, Monday 00:00 UTC to Sunday 23:59 UTC.</li>\n <li>Budget: 640,000 Credits. Max per user: 360 Credits.</li>\n <li>Validity: eleven (11) weeks from launch (October 26, 2025 at 23:59).</li>\n <li>Each Credit valued at 1 MANA.</li>\n </BulletList>\n <Paragraph>Weekly Goals:</Paragraph>\n <BulletList>\n <li>Log into DCL on at least 3 separate days - 20 Credits (Must remain in-world 10+ min each day)</li>\n <li>Attend at least 2 events - 10 Credits (Must remain 10+ min each event)</li>\n <li>View 3 new Profiles - 5 Credits</li>\n <li>Visit 3 new locations - 5 Credits</li>\n </BulletList>\n\n <SubsectionTitle id=\"third-season\">Third Season (2025)</SubsectionTitle>\n <BulletList>\n <li>Starts October 27, 2025, finishes December 21, 2025.</li>\n <li>8 weeks. Budget: 640,000 Credits. Max per user: 320 Credits.</li>\n <li>Validity: ten (10) weeks (January 4, 2026 at 23:59:59).</li>\n <li>Each Credit valued at 1 MANA.</li>\n </BulletList>\n <Paragraph>Weekly Goals:</Paragraph>\n <BulletList>\n <li>Log into DCL on at least 3 separate days - 20 Credits</li>\n <li>Attend at least 2 events - 10 Credits (Must remain 5+ min)</li>\n <li>Explore a weekly location - 5 Credits</li>\n <li>Snap A Photo Emoting With Someone - 5 Credits</li>\n </BulletList>\n\n <SubsectionTitle id=\"fourth-season\">Fourth Season (2026)</SubsectionTitle>\n <BulletList>\n <li>Starts January 12, 2026, finishes March 01, 2026.</li>\n <li>7 weeks. Budget: 640,000 Credits. Max per user: 280 Credits.</li>\n <li>Validity: nine (9) weeks (March 15, 2026 at 23:59:59).</li>\n <li>Each Credit valued at 1 MANA.</li>\n </BulletList>\n <Paragraph>Weekly Goals:</Paragraph>\n <BulletList>\n <li>Log into DCL on at least 3 separate days - 20 Credits</li>\n <li>Attend at least 2 events - 10 Credits (Must remain 5+ min)</li>\n <li>Explore a weekly location - 5 Credits</li>\n <li>Snap A Photo Emoting With Someone - 5 Credits</li>\n </BulletList>\n\n <SubsectionTitle id=\"fifth-season\">Fifth Season (2026)</SubsectionTitle>\n <BulletList>\n <li>Starts March 16, 2026, finishes April 19, 2026.</li>\n <li>5 weeks. Budget: 640,000 Credits. Max per user: 200 Credits.</li>\n <li>Validity: six (6) weeks (April 26, 2026 at 23:59:59).</li>\n <li>Each Credit valued at 1 MANA.</li>\n </BulletList>\n <Paragraph>Weekly Goals:</Paragraph>\n <BulletList>\n <li>Log into DCL on at least 3 separate days - 20 Credits</li>\n <li>Attend at least 2 events - 10 Credits (Must remain 5+ min)</li>\n <li>Explore a weekly location - 5 Credits</li>\n <li>Snap A Photo Emoting With Someone - 5 Credits</li>\n </BulletList>\n </Section>\n </LegalPageLayout>\n))\n\nRewardsTerms.displayName = 'RewardsTerms'\n\nexport { RewardsTerms }\n"],"names":["TABLE_OF_CONTENTS","RewardsTerms","memo","jsxs","LegalPageLayout","jsx","Paragraph","Section","SectionTitle","SubsectionTitle","BulletList"],"mappings":"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"}
@@ -1 +1 @@
1
- import{s as a,a as c,v as g,z as m,w as y,M as T,N as A,j as o,P as E,Q as x,R as N,U as V,V as $}from"./index-D0nE3AYE.js";import{r}from"./vendor-router-D_36sTKu.js";import{u as _}from"./profile.client-DJkJAVO7.js";import{C as D}from"./Carousel-pw-zJClB.js";import{J as H,A as P}from"./JumpInIcon-DQLZFf5_.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";import"./createSvgIcon-DPMfLii4.js";import"./useSlot-B74_4mYS.js";const U=a(c)(({theme:e})=>({position:"relative",display:"flex",flexDirection:"column",alignItems:"center",gap:e.spacing(6),padding:`${e.spacing(10)} ${e.spacing(2.5)}`,width:"100%",backgroundColor:"#570F88",overflow:"hidden","& .desktop-only-ellipse":{[e.breakpoints.down("sm")]:{display:"none"}},[e.breakpoints.down("sm")]:{padding:`${e.spacing(6)} 0`,gap:e.spacing(4)}})),R=a(g)(({theme:e})=>({color:m.white,fontWeight:600,textAlign:"center",position:"relative",zIndex:1,[e.breakpoints.down("sm")]:{fontSize:32,padding:`0 ${e.spacing(3)}`}})),W=a(c)(({theme:e})=>({display:"flex",gap:e.spacing(3),width:"100%",justifyContent:"center",padding:`0 ${e.spacing(2.5)}`,zIndex:1,[e.breakpoints.down("sm")]:{display:"none"}})),L=a(c)(({theme:e})=>({position:"relative",flex:"1 1 0",minWidth:0,maxWidth:680,height:450,borderRadius:e.spacing(3),overflow:"hidden",backgroundColor:"rgba(0, 0, 0, 0.6)",boxShadow:"0px 2px 4px 0px rgba(0, 0, 0, 0.04)",cursor:"pointer",display:"flex",flexDirection:"column","&:hover .catch-vibe-video, &.playing .catch-vibe-video":{opacity:1},"&:hover .catch-vibe-image, &.playing .catch-vibe-image":{opacity:0},[e.breakpoints.down("lg")]:{height:380},[e.breakpoints.down("md")]:{height:320},[e.breakpoints.down("sm")]:{margin:"0 auto"}})),B=a(c)({position:"relative",flex:1,minHeight:0,borderRadius:"24px",overflow:"hidden"}),O=a("img")({position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover",transition:"opacity 0.4s ease",zIndex:1}),G=a("video")({position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover",opacity:0,transition:"opacity 0.4s ease"}),J=a(c)(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:`${e.spacing(2)} ${e.spacing(1.5)} ${e.spacing(2)} ${e.spacing(2)}`,flexShrink:0})),Q=a(c)(({theme:e})=>({display:"flex",alignItems:"center",gap:e.spacing(1)})),q=a(g)({color:m.white,fontWeight:600,fontSize:14,lineHeight:1.57});a(g)({color:m.white,fontWeight:600,fontSize:14,lineHeight:1.57});const K=a(c)(({theme:e})=>({position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.3)",zIndex:2,cursor:"pointer",transition:"opacity 0.3s ease",[e.breakpoints.up("sm")]:{top:"auto",right:"auto",bottom:13,left:13,width:"auto",height:26,padding:"5.5px 6px",borderRadius:8,backgroundColor:"#161518"}})),X=a("button")({position:"absolute",top:12,right:12,width:32,height:32,borderRadius:8,border:"none",backgroundColor:"rgba(0, 0, 0, 0.6)",color:"#FCFCFC",fontSize:16,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",zIndex:3,transition:"background-color 0.2s ease","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.8)"}}),Y=a(c)(({theme:e})=>({width:0,height:0,borderStyle:"solid",borderColor:"transparent transparent transparent #FCFCFC",flexShrink:0,borderWidth:"20px 0 20px 34px",[e.breakpoints.up("sm")]:{borderWidth:"5px 0 5px 8px"}})),Z=a(g)(({theme:e})=>({color:"#FCFCFC",fontWeight:600,fontSize:14,lineHeight:"normal",whiteSpace:"nowrap",[e.breakpoints.down("sm")]:{display:"none"}}));a("img")(({theme:e})=>({position:"absolute",right:-20,bottom:-40,height:"110%",maxHeight:650,pointerEvents:"none",zIndex:0,[e.breakpoints.down("lg")]:{right:-60,opacity:.5},[e.breakpoints.down("md")]:{display:"none"}}));const ee=a(c)(({theme:e})=>({display:"none",width:"100%",zIndex:1,[e.breakpoints.down("sm")]:{display:"block"}}));function te(e){const p=Math.floor(e/60),i=Math.floor(e%60);return`${p}:${i.toString().padStart(2,"0")}`}const v=({item:e})=>{const p=y(),i=r.useRef(null),[d,l]=r.useState(!1),[h,n]=r.useState(!0),[b,C]=r.useState(null),{data:w}=_(e.userAddress,{skip:!e.userAddress}),f=w?.avatars?.[0],k=e.userAvatarUrl.startsWith("http")?e.userAvatarUrl:`${window.location.origin}${e.userAvatarUrl}`.replace(/^http:\/\//,"https://"),j=!!f?.avatar?.snapshots?.face256?f:{name:f?.name??e.userName,ethAddress:e.userAddress??"",avatar:{snapshots:{face256:k,body:""}}};r.useEffect(()=>{const t=i.current;if(!t)return;const s=()=>{t.duration&&isFinite(t.duration)&&C(te(t.duration))};return t.addEventListener("loadedmetadata",s),()=>t.removeEventListener("loadedmetadata",s)},[]);const u=typeof window<"u"&&!window.matchMedia("(hover: hover)").matches,I=r.useCallback(()=>{const t=i.current;t&&(d?(t.pause(),l(!1)):(t.muted=!1,n(!1),t.play().catch(()=>{t.muted=!0,n(!0),t.play().catch(s=>console.warn("Video playback failed:",s))}),l(!0)))},[d]);r.useEffect(()=>{const t=i.current;if(!t||!u)return;const s=new IntersectionObserver(([S])=>{!S.isIntersecting&&!t.paused&&(t.pause(),t.currentTime=0,l(!1),n(!0))},{threshold:.3});return s.observe(t),()=>s.disconnect()},[u]);const F=r.useCallback(()=>{const t=i.current;t&&t.play(),l(!0)},[]),M=r.useCallback(()=>{const t=i.current;t&&(t.pause(),t.currentTime=0,t.muted=!0),l(!1),n(!0)},[]),z=r.useCallback(t=>{t.stopPropagation();const s=i.current;s&&(s.muted=!s.muted,n(s.muted))},[]);return o.jsxs(L,{className:d?"playing":"",onMouseEnter:u?void 0:F,onMouseLeave:u?void 0:M,onClick:u?I:void 0,children:[o.jsxs(B,{children:[o.jsx(O,{className:"catch-vibe-image",src:e.imageUrl,alt:e.userName,loading:"lazy",width:680,height:382}),o.jsx(G,{className:"catch-vibe-video",ref:i,loop:!0,muted:!0,playsInline:!0,preload:"metadata",poster:e.imageUrl,src:e.videoUrl}),!d&&o.jsxs(K,{children:[o.jsx(Y,{}),o.jsx(Z,{children:b??"0:00"})]}),d&&o.jsx(X,{onClick:z,"aria-label":p(h?"page.home.catch_the_vibe.unmute":"page.home.catch_the_vibe.mute"),children:h?"🔇":"🔊"})]}),o.jsx(J,{children:o.jsxs(Q,{children:[o.jsx(P,{size:"small",avatar:j}),o.jsx(q,{children:e.userName})]})})]})},oe=r.memo(()=>{const e=y(),p=T(),{handleClick:i,isDownloadModalOpen:d,closeDownloadModal:l,downloadModalProps:h}=A();return o.jsxs(U,{children:[o.jsx("img",{src:E("/ellipse_gradient.webp"),alt:"",style:{position:"absolute",top:0,left:0,width:"60%",height:"100%",objectFit:"cover",objectPosition:"center left",pointerEvents:"none",zIndex:0},className:"desktop-only-ellipse"}),o.jsx(R,{variant:"h3",children:e("page.home.catch_the_vibe.title")}),o.jsx(W,{children:x.cards.map((n,b)=>o.jsx(v,{item:n},b))}),o.jsx(ee,{children:o.jsx(D,{items:x.cards,renderItem:n=>o.jsx(v,{item:n}),keyExtractor:n=>n.userName,autoplayDelay:0})}),o.jsx(N,{variant:"contained",onClick:n=>{p(n),i(n)},"data-place":V.LANDING_CATCH_THE_VIBE,"data-event":"click",endIcon:o.jsx(H,{}),children:e("page.home.hang_out_now")}),o.jsx($,{open:d,onClose:l,...h})]})});oe.displayName="CatchTheVibe";export{oe as CatchTheVibe};
1
+ import{s as a,a as c,v as g,z as m,w as y,M as T,N as A,j as o,P as E,Q as x,R as N,U as V,V as $}from"./index-DUmIu2EK.js";import{r}from"./vendor-router-D_36sTKu.js";import{u as _}from"./profile.client-BtZZbgxj.js";import{C as D}from"./Carousel-DJd7E-wq.js";import{J as H,A as P}from"./JumpInIcon-bPOWl5ae.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";import"./createSvgIcon-CnAtXIjx.js";import"./useSlot-DM_UQPu8.js";const U=a(c)(({theme:e})=>({position:"relative",display:"flex",flexDirection:"column",alignItems:"center",gap:e.spacing(6),padding:`${e.spacing(10)} ${e.spacing(2.5)}`,width:"100%",backgroundColor:"#570F88",overflow:"hidden","& .desktop-only-ellipse":{[e.breakpoints.down("sm")]:{display:"none"}},[e.breakpoints.down("sm")]:{padding:`${e.spacing(6)} 0`,gap:e.spacing(4)}})),R=a(g)(({theme:e})=>({color:m.white,fontWeight:600,textAlign:"center",position:"relative",zIndex:1,[e.breakpoints.down("sm")]:{fontSize:32,padding:`0 ${e.spacing(3)}`}})),W=a(c)(({theme:e})=>({display:"flex",gap:e.spacing(3),width:"100%",justifyContent:"center",padding:`0 ${e.spacing(2.5)}`,zIndex:1,[e.breakpoints.down("sm")]:{display:"none"}})),L=a(c)(({theme:e})=>({position:"relative",flex:"1 1 0",minWidth:0,maxWidth:680,height:450,borderRadius:e.spacing(3),overflow:"hidden",backgroundColor:"rgba(0, 0, 0, 0.6)",boxShadow:"0px 2px 4px 0px rgba(0, 0, 0, 0.04)",cursor:"pointer",display:"flex",flexDirection:"column","&:hover .catch-vibe-video, &.playing .catch-vibe-video":{opacity:1},"&:hover .catch-vibe-image, &.playing .catch-vibe-image":{opacity:0},[e.breakpoints.down("lg")]:{height:380},[e.breakpoints.down("md")]:{height:320},[e.breakpoints.down("sm")]:{margin:"0 auto"}})),B=a(c)({position:"relative",flex:1,minHeight:0,borderRadius:"24px",overflow:"hidden"}),O=a("img")({position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover",transition:"opacity 0.4s ease",zIndex:1}),G=a("video")({position:"absolute",top:0,left:0,width:"100%",height:"100%",objectFit:"cover",opacity:0,transition:"opacity 0.4s ease"}),J=a(c)(({theme:e})=>({display:"flex",alignItems:"center",justifyContent:"space-between",padding:`${e.spacing(2)} ${e.spacing(1.5)} ${e.spacing(2)} ${e.spacing(2)}`,flexShrink:0})),Q=a(c)(({theme:e})=>({display:"flex",alignItems:"center",gap:e.spacing(1)})),q=a(g)({color:m.white,fontWeight:600,fontSize:14,lineHeight:1.57});a(g)({color:m.white,fontWeight:600,fontSize:14,lineHeight:1.57});const K=a(c)(({theme:e})=>({position:"absolute",top:0,left:0,right:0,bottom:0,display:"flex",alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.3)",zIndex:2,cursor:"pointer",transition:"opacity 0.3s ease",[e.breakpoints.up("sm")]:{top:"auto",right:"auto",bottom:13,left:13,width:"auto",height:26,padding:"5.5px 6px",borderRadius:8,backgroundColor:"#161518"}})),X=a("button")({position:"absolute",top:12,right:12,width:32,height:32,borderRadius:8,border:"none",backgroundColor:"rgba(0, 0, 0, 0.6)",color:"#FCFCFC",fontSize:16,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",zIndex:3,transition:"background-color 0.2s ease","&:hover":{backgroundColor:"rgba(0, 0, 0, 0.8)"}}),Y=a(c)(({theme:e})=>({width:0,height:0,borderStyle:"solid",borderColor:"transparent transparent transparent #FCFCFC",flexShrink:0,borderWidth:"20px 0 20px 34px",[e.breakpoints.up("sm")]:{borderWidth:"5px 0 5px 8px"}})),Z=a(g)(({theme:e})=>({color:"#FCFCFC",fontWeight:600,fontSize:14,lineHeight:"normal",whiteSpace:"nowrap",[e.breakpoints.down("sm")]:{display:"none"}}));a("img")(({theme:e})=>({position:"absolute",right:-20,bottom:-40,height:"110%",maxHeight:650,pointerEvents:"none",zIndex:0,[e.breakpoints.down("lg")]:{right:-60,opacity:.5},[e.breakpoints.down("md")]:{display:"none"}}));const ee=a(c)(({theme:e})=>({display:"none",width:"100%",zIndex:1,[e.breakpoints.down("sm")]:{display:"block"}}));function te(e){const p=Math.floor(e/60),i=Math.floor(e%60);return`${p}:${i.toString().padStart(2,"0")}`}const v=({item:e})=>{const p=y(),i=r.useRef(null),[d,l]=r.useState(!1),[h,n]=r.useState(!0),[b,C]=r.useState(null),{data:w}=_(e.userAddress,{skip:!e.userAddress}),f=w?.avatars?.[0],k=e.userAvatarUrl.startsWith("http")?e.userAvatarUrl:`${window.location.origin}${e.userAvatarUrl}`.replace(/^http:\/\//,"https://"),j=!!f?.avatar?.snapshots?.face256?f:{name:f?.name??e.userName,ethAddress:e.userAddress??"",avatar:{snapshots:{face256:k,body:""}}};r.useEffect(()=>{const t=i.current;if(!t)return;const s=()=>{t.duration&&isFinite(t.duration)&&C(te(t.duration))};return t.addEventListener("loadedmetadata",s),()=>t.removeEventListener("loadedmetadata",s)},[]);const u=typeof window<"u"&&!window.matchMedia("(hover: hover)").matches,I=r.useCallback(()=>{const t=i.current;t&&(d?(t.pause(),l(!1)):(t.muted=!1,n(!1),t.play().catch(()=>{t.muted=!0,n(!0),t.play().catch(s=>console.warn("Video playback failed:",s))}),l(!0)))},[d]);r.useEffect(()=>{const t=i.current;if(!t||!u)return;const s=new IntersectionObserver(([S])=>{!S.isIntersecting&&!t.paused&&(t.pause(),t.currentTime=0,l(!1),n(!0))},{threshold:.3});return s.observe(t),()=>s.disconnect()},[u]);const F=r.useCallback(()=>{const t=i.current;t&&t.play(),l(!0)},[]),M=r.useCallback(()=>{const t=i.current;t&&(t.pause(),t.currentTime=0,t.muted=!0),l(!1),n(!0)},[]),z=r.useCallback(t=>{t.stopPropagation();const s=i.current;s&&(s.muted=!s.muted,n(s.muted))},[]);return o.jsxs(L,{className:d?"playing":"",onMouseEnter:u?void 0:F,onMouseLeave:u?void 0:M,onClick:u?I:void 0,children:[o.jsxs(B,{children:[o.jsx(O,{className:"catch-vibe-image",src:e.imageUrl,alt:e.userName,loading:"lazy",width:680,height:382}),o.jsx(G,{className:"catch-vibe-video",ref:i,loop:!0,muted:!0,playsInline:!0,preload:"metadata",poster:e.imageUrl,src:e.videoUrl}),!d&&o.jsxs(K,{children:[o.jsx(Y,{}),o.jsx(Z,{children:b??"0:00"})]}),d&&o.jsx(X,{onClick:z,"aria-label":p(h?"page.home.catch_the_vibe.unmute":"page.home.catch_the_vibe.mute"),children:h?"🔇":"🔊"})]}),o.jsx(J,{children:o.jsxs(Q,{children:[o.jsx(P,{size:"small",avatar:j}),o.jsx(q,{children:e.userName})]})})]})},oe=r.memo(()=>{const e=y(),p=T(),{handleClick:i,isDownloadModalOpen:d,closeDownloadModal:l,downloadModalProps:h}=A();return o.jsxs(U,{children:[o.jsx("img",{src:E("/ellipse_gradient.webp"),alt:"",style:{position:"absolute",top:0,left:0,width:"60%",height:"100%",objectFit:"cover",objectPosition:"center left",pointerEvents:"none",zIndex:0},className:"desktop-only-ellipse"}),o.jsx(R,{variant:"h3",children:e("page.home.catch_the_vibe.title")}),o.jsx(W,{children:x.cards.map((n,b)=>o.jsx(v,{item:n},b))}),o.jsx(ee,{children:o.jsx(D,{items:x.cards,renderItem:n=>o.jsx(v,{item:n}),keyExtractor:n=>n.userName,autoplayDelay:0})}),o.jsx(N,{variant:"contained",onClick:n=>{p(n),i(n)},"data-place":V.LANDING_CATCH_THE_VIBE,"data-event":"click",endIcon:o.jsx(H,{}),children:e("page.home.hang_out_now")}),o.jsx($,{open:d,onClose:l,...h})]})});oe.displayName="CatchTheVibe";export{oe as CatchTheVibe};
@@ -1 +1 @@
1
- {"version":3,"file":"index-DchvHHlK.js","sources":["../../src/components/Home/CatchTheVibe/CatchTheVibe.styled.ts","../../src/components/Home/CatchTheVibe/CatchTheVibe.tsx"],"sourcesContent":["import { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst CatchTheVibeContainer = styled(Box)(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(6),\n padding: `${theme.spacing(10)} ${theme.spacing(2.5)}`,\n width: '100%',\n backgroundColor: '#570F88',\n overflow: 'hidden',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& .desktop-only-ellipse': {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n },\n [theme.breakpoints.down('sm')]: {\n padding: `${theme.spacing(6)} 0`,\n gap: theme.spacing(4)\n }\n}))\n\nconst CatchTheVibeTitle = styled(Typography)(({ theme }) => ({\n color: dclColors.neutral.white,\n fontWeight: 600,\n textAlign: 'center',\n position: 'relative',\n zIndex: 1,\n [theme.breakpoints.down('sm')]: {\n fontSize: 32,\n padding: `0 ${theme.spacing(3)}`\n }\n}))\n\nconst CardsRow = styled(Box)(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(3),\n width: '100%',\n justifyContent: 'center',\n padding: `0 ${theme.spacing(2.5)}`,\n zIndex: 1,\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n}))\n\nconst VideoCard = styled(Box)(({ theme }) => ({\n position: 'relative',\n flex: '1 1 0',\n minWidth: 0,\n maxWidth: 680,\n height: 450,\n borderRadius: theme.spacing(3),\n overflow: 'hidden',\n backgroundColor: 'rgba(0, 0, 0, 0.6)',\n boxShadow: '0px 2px 4px 0px rgba(0, 0, 0, 0.04)',\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'column',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover .catch-vibe-video, &.playing .catch-vibe-video': {\n opacity: 1\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover .catch-vibe-image, &.playing .catch-vibe-image': {\n opacity: 0\n },\n [theme.breakpoints.down('lg')]: {\n height: 380\n },\n [theme.breakpoints.down('md')]: {\n height: 320\n },\n [theme.breakpoints.down('sm')]: {\n margin: '0 auto'\n }\n}))\n\nconst MediaContainer = styled(Box)({\n position: 'relative',\n flex: 1,\n minHeight: 0,\n borderRadius: '24px',\n overflow: 'hidden'\n})\n\nconst CardImage = styled('img')({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n transition: 'opacity 0.4s ease',\n zIndex: 1\n})\n\nconst VideoElement = styled('video')({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n opacity: 0,\n transition: 'opacity 0.4s ease'\n})\n\nconst VideoCardFooter = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: `${theme.spacing(2)} ${theme.spacing(1.5)} ${theme.spacing(2)} ${theme.spacing(2)}`,\n flexShrink: 0\n}))\n\nconst UserInfo = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1)\n}))\n\nconst UserName = styled(Typography)({\n color: dclColors.neutral.white,\n fontWeight: 600,\n fontSize: 14,\n lineHeight: 1.57\n})\n\nconst CommunityLabel = styled(Typography)({\n color: dclColors.neutral.white,\n fontWeight: 600,\n fontSize: 14,\n lineHeight: 1.57\n})\n\nconst PlayBadge = styled(Box)(({ theme }) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.3)',\n zIndex: 2,\n cursor: 'pointer',\n transition: 'opacity 0.3s ease',\n // Desktop: small badge at bottom-left\n [theme.breakpoints.up('sm')]: {\n top: 'auto',\n right: 'auto',\n bottom: 13,\n left: 13,\n width: 'auto',\n height: 26,\n padding: '5.5px 6px',\n borderRadius: 8,\n backgroundColor: '#161518'\n }\n}))\n\nconst MuteButton = styled('button')({\n position: 'absolute',\n top: 12,\n right: 12,\n width: 32,\n height: 32,\n borderRadius: 8,\n border: 'none',\n backgroundColor: 'rgba(0, 0, 0, 0.6)',\n color: '#FCFCFC',\n fontSize: 16,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 3,\n transition: 'background-color 0.2s ease',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.8)'\n }\n})\n\nconst PlayIcon = styled(Box)(({ theme }) => ({\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderColor: 'transparent transparent transparent #FCFCFC',\n flexShrink: 0,\n // Mobile: large centered play triangle\n borderWidth: '20px 0 20px 34px',\n // Desktop: small badge play triangle\n [theme.breakpoints.up('sm')]: {\n borderWidth: '5px 0 5px 8px'\n }\n}))\n\nconst DurationText = styled(Typography)(({ theme }) => ({\n color: '#FCFCFC',\n fontWeight: 600,\n fontSize: 14,\n lineHeight: 'normal',\n whiteSpace: 'nowrap',\n // Hide duration in mobile overlay — only show on desktop badge\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n}))\n\nconst PersonaImage = styled('img')(({ theme }) => ({\n position: 'absolute',\n right: -20,\n bottom: -40,\n height: '110%',\n maxHeight: 650,\n pointerEvents: 'none',\n zIndex: 0,\n [theme.breakpoints.down('lg')]: {\n right: -60,\n opacity: 0.5\n },\n [theme.breakpoints.down('md')]: {\n display: 'none'\n }\n}))\n\nconst MobileCarouselContainer = styled(Box)(({ theme }) => ({\n display: 'none',\n width: '100%',\n zIndex: 1,\n [theme.breakpoints.down('sm')]: {\n display: 'block'\n }\n}))\n\nexport {\n CardImage,\n CardsRow,\n MediaContainer,\n CatchTheVibeContainer,\n CatchTheVibeTitle,\n CommunityLabel,\n DurationText,\n MobileCarouselContainer,\n MuteButton,\n PersonaImage,\n PlayBadge,\n PlayIcon,\n UserInfo,\n UserName,\n VideoCard,\n VideoCardFooter,\n VideoElement\n}\n","import { memo, useCallback, useEffect, useRef, useState } from 'react'\nimport type { Avatar } from '@dcl/schemas'\nimport { AvatarFace, DownloadModal, JumpInIcon } from 'decentraland-ui2'\nimport { catchTheVibeContent } from '../../../data/static-content'\nimport { useGetProfileQuery } from '../../../features/profile/profile.client'\nimport { useFormatMessage } from '../../../hooks/adapters/useFormatMessage'\nimport { useTrackClick } from '../../../hooks/adapters/useTrackLinkContext'\nimport { useHangOutAction } from '../../../hooks/useHangOutAction'\nimport { SectionViewedTrack } from '../../../modules/segment'\nimport { assetUrl } from '../../../utils/assetUrl'\nimport { Carousel } from '../../Carousel/Carousel'\nimport { HangOutButton } from '../shared/HangOutButton.styled'\nimport {\n CardImage,\n CardsRow,\n CatchTheVibeContainer,\n CatchTheVibeTitle,\n DurationText,\n MediaContainer,\n MobileCarouselContainer,\n MuteButton,\n PlayBadge,\n PlayIcon,\n UserInfo,\n UserName,\n VideoCard,\n VideoCardFooter,\n VideoElement\n} from './CatchTheVibe.styled'\n\ninterface CardItem {\n imageUrl: string\n videoUrl: string\n userName: string\n userAddress?: string\n userAvatarUrl: string\n}\n\nfunction formatDuration(seconds: number): string {\n const mins = Math.floor(seconds / 60)\n const secs = Math.floor(seconds % 60)\n return `${mins}:${secs.toString().padStart(2, '0')}`\n}\n\nconst VideoCardContent = ({ item }: { item: CardItem }) => {\n const l = useFormatMessage()\n const videoRef = useRef<HTMLVideoElement>(null)\n const [isPlaying, setIsPlaying] = useState(false)\n const [isMuted, setIsMuted] = useState(true)\n const [duration, setDuration] = useState<string | null>(null)\n const { data: profile } = useGetProfileQuery(item.userAddress, { skip: !item.userAddress })\n const fetchedAvatar = profile?.avatars?.[0] as Avatar | undefined\n // AvatarFace only passes through URLs starting with https://.\n const fallbackFace = item.userAvatarUrl.startsWith('http')\n ? item.userAvatarUrl\n : `${window.location.origin}${item.userAvatarUrl}`.replace(/^http:\\/\\//, 'https://')\n\n // Use fetched profile if it has a face256 snapshot, otherwise fall back to static image\n const hasFace = !!fetchedAvatar?.avatar?.snapshots?.face256\n const avatar: Avatar = hasFace\n ? fetchedAvatar\n : ({\n name: fetchedAvatar?.name ?? item.userName,\n ethAddress: item.userAddress ?? '',\n avatar: { snapshots: { face256: fallbackFace, body: '' } }\n } as Avatar)\n\n useEffect(() => {\n const video = videoRef.current\n if (!video) return\n const handleLoaded = () => {\n if (video.duration && isFinite(video.duration)) {\n setDuration(formatDuration(video.duration))\n }\n }\n video.addEventListener('loadedmetadata', handleLoaded)\n return () => video.removeEventListener('loadedmetadata', handleLoaded)\n }, [])\n\n const isTouchDevice = typeof window !== 'undefined' && !window.matchMedia('(hover: hover)').matches\n\n const handleMobilePlay = useCallback(() => {\n const video = videoRef.current\n if (!video) return\n if (isPlaying) {\n video.pause()\n setIsPlaying(false)\n } else {\n video.muted = false\n setIsMuted(false)\n video.play().catch(() => {\n // iOS fallback: if unmuted play fails, retry muted\n video.muted = true\n setIsMuted(true)\n video.play().catch(e => console.warn('Video playback failed:', e))\n })\n setIsPlaying(true)\n }\n }, [isPlaying])\n\n // Pause video when it scrolls out of view (e.g. swiper slide change)\n useEffect(() => {\n const video = videoRef.current\n if (!video || !isTouchDevice) return\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry.isIntersecting && !video.paused) {\n video.pause()\n video.currentTime = 0\n setIsPlaying(false)\n setIsMuted(true)\n }\n },\n { threshold: 0.3 }\n )\n observer.observe(video)\n return () => observer.disconnect()\n }, [isTouchDevice])\n\n const handleMouseEnter = useCallback(() => {\n const video = videoRef.current\n if (video) {\n video.play()\n }\n setIsPlaying(true)\n }, [])\n\n const handleMouseLeave = useCallback(() => {\n const video = videoRef.current\n if (video) {\n video.pause()\n video.currentTime = 0\n video.muted = true\n }\n setIsPlaying(false)\n setIsMuted(true)\n }, [])\n\n const toggleMute = useCallback((e: React.MouseEvent) => {\n e.stopPropagation()\n const video = videoRef.current\n if (video) {\n video.muted = !video.muted\n setIsMuted(video.muted)\n }\n }, [])\n\n return (\n <VideoCard\n className={isPlaying ? 'playing' : ''}\n onMouseEnter={isTouchDevice ? undefined : handleMouseEnter}\n onMouseLeave={isTouchDevice ? undefined : handleMouseLeave}\n onClick={isTouchDevice ? handleMobilePlay : undefined}\n >\n <MediaContainer>\n <CardImage className=\"catch-vibe-image\" src={item.imageUrl} alt={item.userName} loading=\"lazy\" width={680} height={382} />\n <VideoElement\n className=\"catch-vibe-video\"\n ref={videoRef}\n loop\n muted\n playsInline\n preload=\"metadata\"\n poster={item.imageUrl}\n src={item.videoUrl}\n />\n {!isPlaying && (\n <PlayBadge>\n <PlayIcon />\n <DurationText>{duration ?? '0:00'}</DurationText>\n </PlayBadge>\n )}\n {isPlaying && (\n <MuteButton onClick={toggleMute} aria-label={isMuted ? l('page.home.catch_the_vibe.unmute') : l('page.home.catch_the_vibe.mute')}>\n {isMuted ? '🔇' : '🔊'}\n </MuteButton>\n )}\n </MediaContainer>\n <VideoCardFooter>\n <UserInfo>\n <AvatarFace size=\"small\" avatar={avatar} />\n <UserName>{item.userName}</UserName>\n </UserInfo>\n </VideoCardFooter>\n </VideoCard>\n )\n}\n\nconst CatchTheVibe = memo(() => {\n const l = useFormatMessage()\n const onClickHandle = useTrackClick()\n const { handleClick, isDownloadModalOpen, closeDownloadModal, downloadModalProps } = useHangOutAction()\n\n return (\n <CatchTheVibeContainer>\n <img\n src={assetUrl('/ellipse_gradient.webp')}\n alt=\"\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '60%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'center left',\n pointerEvents: 'none',\n zIndex: 0\n }}\n className=\"desktop-only-ellipse\"\n />\n <CatchTheVibeTitle variant=\"h3\">{l('page.home.catch_the_vibe.title')}</CatchTheVibeTitle>\n <CardsRow>\n {catchTheVibeContent.cards.map((item, index) => (\n <VideoCardContent key={index} item={item} />\n ))}\n </CardsRow>\n <MobileCarouselContainer>\n <Carousel\n items={catchTheVibeContent.cards}\n renderItem={item => <VideoCardContent item={item} />}\n keyExtractor={item => item.userName}\n autoplayDelay={0}\n />\n </MobileCarouselContainer>\n <HangOutButton\n variant=\"contained\"\n onClick={e => {\n onClickHandle(e)\n handleClick(e)\n }}\n data-place={SectionViewedTrack.LANDING_CATCH_THE_VIBE}\n data-event=\"click\"\n endIcon={<JumpInIcon />}\n >\n {l('page.home.hang_out_now')}\n </HangOutButton>\n <DownloadModal open={isDownloadModalOpen} onClose={closeDownloadModal} {...downloadModalProps} />\n </CatchTheVibeContainer>\n )\n})\n\nCatchTheVibe.displayName = 'CatchTheVibe'\n\nexport { CatchTheVibe }\n"],"names":["CatchTheVibeContainer","styled","Box","theme","CatchTheVibeTitle","Typography","dclColors.neutral","CardsRow","VideoCard","MediaContainer","CardImage","VideoElement","VideoCardFooter","UserInfo","UserName","PlayBadge","MuteButton","PlayIcon","DurationText","MobileCarouselContainer","formatDuration","seconds","mins","secs","VideoCardContent","item","l","useFormatMessage","videoRef","useRef","isPlaying","setIsPlaying","useState","isMuted","setIsMuted","duration","setDuration","profile","useGetProfileQuery","fetchedAvatar","fallbackFace","avatar","useEffect","video","handleLoaded","isTouchDevice","handleMobilePlay","useCallback","e","observer","entry","handleMouseEnter","handleMouseLeave","toggleMute","jsxs","jsx","AvatarFace","CatchTheVibe","memo","onClickHandle","useTrackClick","handleClick","isDownloadModalOpen","closeDownloadModal","downloadModalProps","useHangOutAction","assetUrl","catchTheVibeContent","index","Carousel","HangOutButton","SectionViewedTrack","JumpInIcon","DownloadModal"],"mappings":"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"}
1
+ {"version":3,"file":"index-CsY_wahP.js","sources":["../../src/components/Home/CatchTheVibe/CatchTheVibe.styled.ts","../../src/components/Home/CatchTheVibe/CatchTheVibe.tsx"],"sourcesContent":["import { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst CatchTheVibeContainer = styled(Box)(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(6),\n padding: `${theme.spacing(10)} ${theme.spacing(2.5)}`,\n width: '100%',\n backgroundColor: '#570F88',\n overflow: 'hidden',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& .desktop-only-ellipse': {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n },\n [theme.breakpoints.down('sm')]: {\n padding: `${theme.spacing(6)} 0`,\n gap: theme.spacing(4)\n }\n}))\n\nconst CatchTheVibeTitle = styled(Typography)(({ theme }) => ({\n color: dclColors.neutral.white,\n fontWeight: 600,\n textAlign: 'center',\n position: 'relative',\n zIndex: 1,\n [theme.breakpoints.down('sm')]: {\n fontSize: 32,\n padding: `0 ${theme.spacing(3)}`\n }\n}))\n\nconst CardsRow = styled(Box)(({ theme }) => ({\n display: 'flex',\n gap: theme.spacing(3),\n width: '100%',\n justifyContent: 'center',\n padding: `0 ${theme.spacing(2.5)}`,\n zIndex: 1,\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n}))\n\nconst VideoCard = styled(Box)(({ theme }) => ({\n position: 'relative',\n flex: '1 1 0',\n minWidth: 0,\n maxWidth: 680,\n height: 450,\n borderRadius: theme.spacing(3),\n overflow: 'hidden',\n backgroundColor: 'rgba(0, 0, 0, 0.6)',\n boxShadow: '0px 2px 4px 0px rgba(0, 0, 0, 0.04)',\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'column',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover .catch-vibe-video, &.playing .catch-vibe-video': {\n opacity: 1\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover .catch-vibe-image, &.playing .catch-vibe-image': {\n opacity: 0\n },\n [theme.breakpoints.down('lg')]: {\n height: 380\n },\n [theme.breakpoints.down('md')]: {\n height: 320\n },\n [theme.breakpoints.down('sm')]: {\n margin: '0 auto'\n }\n}))\n\nconst MediaContainer = styled(Box)({\n position: 'relative',\n flex: 1,\n minHeight: 0,\n borderRadius: '24px',\n overflow: 'hidden'\n})\n\nconst CardImage = styled('img')({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n transition: 'opacity 0.4s ease',\n zIndex: 1\n})\n\nconst VideoElement = styled('video')({\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n opacity: 0,\n transition: 'opacity 0.4s ease'\n})\n\nconst VideoCardFooter = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: `${theme.spacing(2)} ${theme.spacing(1.5)} ${theme.spacing(2)} ${theme.spacing(2)}`,\n flexShrink: 0\n}))\n\nconst UserInfo = styled(Box)(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1)\n}))\n\nconst UserName = styled(Typography)({\n color: dclColors.neutral.white,\n fontWeight: 600,\n fontSize: 14,\n lineHeight: 1.57\n})\n\nconst CommunityLabel = styled(Typography)({\n color: dclColors.neutral.white,\n fontWeight: 600,\n fontSize: 14,\n lineHeight: 1.57\n})\n\nconst PlayBadge = styled(Box)(({ theme }) => ({\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.3)',\n zIndex: 2,\n cursor: 'pointer',\n transition: 'opacity 0.3s ease',\n // Desktop: small badge at bottom-left\n [theme.breakpoints.up('sm')]: {\n top: 'auto',\n right: 'auto',\n bottom: 13,\n left: 13,\n width: 'auto',\n height: 26,\n padding: '5.5px 6px',\n borderRadius: 8,\n backgroundColor: '#161518'\n }\n}))\n\nconst MuteButton = styled('button')({\n position: 'absolute',\n top: 12,\n right: 12,\n width: 32,\n height: 32,\n borderRadius: 8,\n border: 'none',\n backgroundColor: 'rgba(0, 0, 0, 0.6)',\n color: '#FCFCFC',\n fontSize: 16,\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 3,\n transition: 'background-color 0.2s ease',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n backgroundColor: 'rgba(0, 0, 0, 0.8)'\n }\n})\n\nconst PlayIcon = styled(Box)(({ theme }) => ({\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderColor: 'transparent transparent transparent #FCFCFC',\n flexShrink: 0,\n // Mobile: large centered play triangle\n borderWidth: '20px 0 20px 34px',\n // Desktop: small badge play triangle\n [theme.breakpoints.up('sm')]: {\n borderWidth: '5px 0 5px 8px'\n }\n}))\n\nconst DurationText = styled(Typography)(({ theme }) => ({\n color: '#FCFCFC',\n fontWeight: 600,\n fontSize: 14,\n lineHeight: 'normal',\n whiteSpace: 'nowrap',\n // Hide duration in mobile overlay — only show on desktop badge\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n}))\n\nconst PersonaImage = styled('img')(({ theme }) => ({\n position: 'absolute',\n right: -20,\n bottom: -40,\n height: '110%',\n maxHeight: 650,\n pointerEvents: 'none',\n zIndex: 0,\n [theme.breakpoints.down('lg')]: {\n right: -60,\n opacity: 0.5\n },\n [theme.breakpoints.down('md')]: {\n display: 'none'\n }\n}))\n\nconst MobileCarouselContainer = styled(Box)(({ theme }) => ({\n display: 'none',\n width: '100%',\n zIndex: 1,\n [theme.breakpoints.down('sm')]: {\n display: 'block'\n }\n}))\n\nexport {\n CardImage,\n CardsRow,\n MediaContainer,\n CatchTheVibeContainer,\n CatchTheVibeTitle,\n CommunityLabel,\n DurationText,\n MobileCarouselContainer,\n MuteButton,\n PersonaImage,\n PlayBadge,\n PlayIcon,\n UserInfo,\n UserName,\n VideoCard,\n VideoCardFooter,\n VideoElement\n}\n","import { memo, useCallback, useEffect, useRef, useState } from 'react'\nimport type { Avatar } from '@dcl/schemas'\nimport { AvatarFace, DownloadModal, JumpInIcon } from 'decentraland-ui2'\nimport { catchTheVibeContent } from '../../../data/static-content'\nimport { useGetProfileQuery } from '../../../features/profile/profile.client'\nimport { useFormatMessage } from '../../../hooks/adapters/useFormatMessage'\nimport { useTrackClick } from '../../../hooks/adapters/useTrackLinkContext'\nimport { useHangOutAction } from '../../../hooks/useHangOutAction'\nimport { SectionViewedTrack } from '../../../modules/segment'\nimport { assetUrl } from '../../../utils/assetUrl'\nimport { Carousel } from '../../Carousel/Carousel'\nimport { HangOutButton } from '../shared/HangOutButton.styled'\nimport {\n CardImage,\n CardsRow,\n CatchTheVibeContainer,\n CatchTheVibeTitle,\n DurationText,\n MediaContainer,\n MobileCarouselContainer,\n MuteButton,\n PlayBadge,\n PlayIcon,\n UserInfo,\n UserName,\n VideoCard,\n VideoCardFooter,\n VideoElement\n} from './CatchTheVibe.styled'\n\ninterface CardItem {\n imageUrl: string\n videoUrl: string\n userName: string\n userAddress?: string\n userAvatarUrl: string\n}\n\nfunction formatDuration(seconds: number): string {\n const mins = Math.floor(seconds / 60)\n const secs = Math.floor(seconds % 60)\n return `${mins}:${secs.toString().padStart(2, '0')}`\n}\n\nconst VideoCardContent = ({ item }: { item: CardItem }) => {\n const l = useFormatMessage()\n const videoRef = useRef<HTMLVideoElement>(null)\n const [isPlaying, setIsPlaying] = useState(false)\n const [isMuted, setIsMuted] = useState(true)\n const [duration, setDuration] = useState<string | null>(null)\n const { data: profile } = useGetProfileQuery(item.userAddress, { skip: !item.userAddress })\n const fetchedAvatar = profile?.avatars?.[0] as Avatar | undefined\n // AvatarFace only passes through URLs starting with https://.\n const fallbackFace = item.userAvatarUrl.startsWith('http')\n ? item.userAvatarUrl\n : `${window.location.origin}${item.userAvatarUrl}`.replace(/^http:\\/\\//, 'https://')\n\n // Use fetched profile if it has a face256 snapshot, otherwise fall back to static image\n const hasFace = !!fetchedAvatar?.avatar?.snapshots?.face256\n const avatar: Avatar = hasFace\n ? fetchedAvatar\n : ({\n name: fetchedAvatar?.name ?? item.userName,\n ethAddress: item.userAddress ?? '',\n avatar: { snapshots: { face256: fallbackFace, body: '' } }\n } as Avatar)\n\n useEffect(() => {\n const video = videoRef.current\n if (!video) return\n const handleLoaded = () => {\n if (video.duration && isFinite(video.duration)) {\n setDuration(formatDuration(video.duration))\n }\n }\n video.addEventListener('loadedmetadata', handleLoaded)\n return () => video.removeEventListener('loadedmetadata', handleLoaded)\n }, [])\n\n const isTouchDevice = typeof window !== 'undefined' && !window.matchMedia('(hover: hover)').matches\n\n const handleMobilePlay = useCallback(() => {\n const video = videoRef.current\n if (!video) return\n if (isPlaying) {\n video.pause()\n setIsPlaying(false)\n } else {\n video.muted = false\n setIsMuted(false)\n video.play().catch(() => {\n // iOS fallback: if unmuted play fails, retry muted\n video.muted = true\n setIsMuted(true)\n video.play().catch(e => console.warn('Video playback failed:', e))\n })\n setIsPlaying(true)\n }\n }, [isPlaying])\n\n // Pause video when it scrolls out of view (e.g. swiper slide change)\n useEffect(() => {\n const video = videoRef.current\n if (!video || !isTouchDevice) return\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry.isIntersecting && !video.paused) {\n video.pause()\n video.currentTime = 0\n setIsPlaying(false)\n setIsMuted(true)\n }\n },\n { threshold: 0.3 }\n )\n observer.observe(video)\n return () => observer.disconnect()\n }, [isTouchDevice])\n\n const handleMouseEnter = useCallback(() => {\n const video = videoRef.current\n if (video) {\n video.play()\n }\n setIsPlaying(true)\n }, [])\n\n const handleMouseLeave = useCallback(() => {\n const video = videoRef.current\n if (video) {\n video.pause()\n video.currentTime = 0\n video.muted = true\n }\n setIsPlaying(false)\n setIsMuted(true)\n }, [])\n\n const toggleMute = useCallback((e: React.MouseEvent) => {\n e.stopPropagation()\n const video = videoRef.current\n if (video) {\n video.muted = !video.muted\n setIsMuted(video.muted)\n }\n }, [])\n\n return (\n <VideoCard\n className={isPlaying ? 'playing' : ''}\n onMouseEnter={isTouchDevice ? undefined : handleMouseEnter}\n onMouseLeave={isTouchDevice ? undefined : handleMouseLeave}\n onClick={isTouchDevice ? handleMobilePlay : undefined}\n >\n <MediaContainer>\n <CardImage className=\"catch-vibe-image\" src={item.imageUrl} alt={item.userName} loading=\"lazy\" width={680} height={382} />\n <VideoElement\n className=\"catch-vibe-video\"\n ref={videoRef}\n loop\n muted\n playsInline\n preload=\"metadata\"\n poster={item.imageUrl}\n src={item.videoUrl}\n />\n {!isPlaying && (\n <PlayBadge>\n <PlayIcon />\n <DurationText>{duration ?? '0:00'}</DurationText>\n </PlayBadge>\n )}\n {isPlaying && (\n <MuteButton onClick={toggleMute} aria-label={isMuted ? l('page.home.catch_the_vibe.unmute') : l('page.home.catch_the_vibe.mute')}>\n {isMuted ? '🔇' : '🔊'}\n </MuteButton>\n )}\n </MediaContainer>\n <VideoCardFooter>\n <UserInfo>\n <AvatarFace size=\"small\" avatar={avatar} />\n <UserName>{item.userName}</UserName>\n </UserInfo>\n </VideoCardFooter>\n </VideoCard>\n )\n}\n\nconst CatchTheVibe = memo(() => {\n const l = useFormatMessage()\n const onClickHandle = useTrackClick()\n const { handleClick, isDownloadModalOpen, closeDownloadModal, downloadModalProps } = useHangOutAction()\n\n return (\n <CatchTheVibeContainer>\n <img\n src={assetUrl('/ellipse_gradient.webp')}\n alt=\"\"\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n width: '60%',\n height: '100%',\n objectFit: 'cover',\n objectPosition: 'center left',\n pointerEvents: 'none',\n zIndex: 0\n }}\n className=\"desktop-only-ellipse\"\n />\n <CatchTheVibeTitle variant=\"h3\">{l('page.home.catch_the_vibe.title')}</CatchTheVibeTitle>\n <CardsRow>\n {catchTheVibeContent.cards.map((item, index) => (\n <VideoCardContent key={index} item={item} />\n ))}\n </CardsRow>\n <MobileCarouselContainer>\n <Carousel\n items={catchTheVibeContent.cards}\n renderItem={item => <VideoCardContent item={item} />}\n keyExtractor={item => item.userName}\n autoplayDelay={0}\n />\n </MobileCarouselContainer>\n <HangOutButton\n variant=\"contained\"\n onClick={e => {\n onClickHandle(e)\n handleClick(e)\n }}\n data-place={SectionViewedTrack.LANDING_CATCH_THE_VIBE}\n data-event=\"click\"\n endIcon={<JumpInIcon />}\n >\n {l('page.home.hang_out_now')}\n </HangOutButton>\n <DownloadModal open={isDownloadModalOpen} onClose={closeDownloadModal} {...downloadModalProps} />\n </CatchTheVibeContainer>\n )\n})\n\nCatchTheVibe.displayName = 'CatchTheVibe'\n\nexport { CatchTheVibe }\n"],"names":["CatchTheVibeContainer","styled","Box","theme","CatchTheVibeTitle","Typography","dclColors.neutral","CardsRow","VideoCard","MediaContainer","CardImage","VideoElement","VideoCardFooter","UserInfo","UserName","PlayBadge","MuteButton","PlayIcon","DurationText","MobileCarouselContainer","formatDuration","seconds","mins","secs","VideoCardContent","item","l","useFormatMessage","videoRef","useRef","isPlaying","setIsPlaying","useState","isMuted","setIsMuted","duration","setDuration","profile","useGetProfileQuery","fetchedAvatar","fallbackFace","avatar","useEffect","video","handleLoaded","isTouchDevice","handleMobilePlay","useCallback","e","observer","entry","handleMouseEnter","handleMouseLeave","toggleMute","jsxs","jsx","AvatarFace","CatchTheVibe","memo","onClickHandle","useTrackClick","handleClick","isDownloadModalOpen","closeDownloadModal","downloadModalProps","useHangOutAction","assetUrl","catchTheVibeContent","index","Carousel","HangOutButton","SectionViewedTrack","JumpInIcon","DownloadModal"],"mappings":"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"}
@@ -1 +1 @@
1
- import{j as e}from"./index-D0nE3AYE.js";import{r as i}from"./vendor-router-D_36sTKu.js";import{L as a,S as o,a as n,P as t}from"./LegalPageLayout-BPmxsGkt.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";const r=[{id:"definitions",label:"1. Definitions"},{id:"prohibited-content",label:"2. Prohibited Content"},{id:"gambling",label:"3. Gambling"},{id:"breaches-of-this-policy",label:"4. Breaches of this Policy"},{id:"age-restricted-content",label:"5. Age-Restricted Content"},{id:"user-representations-and-warranties",label:"6. User Representations and Warranties"},{id:"storage",label:"7. Storage"},{id:"limitations-to-liability",label:"8. Limitations to Liability"},{id:"changes-to-this-policy",label:"9. Changes to this Policy"}],s=i.memo(()=>e.jsxs(a,{title:"Content Policy",activeSlug:"/content",tableOfContents:r,children:[e.jsxs(o,{id:"definitions",children:[e.jsx(n,{children:"1. Definitions"}),e.jsx(t,{children:'"Content" shall mean any work of authorship, creative works, graphics, images, textures, photos, logos, video, audio, text and interactive features, including without limitation NFTs, submitted by the Users of Decentraland.'}),e.jsx(t,{children:`"Intellectual Property Rights" shall mean rights in, arising out of, or associated with intellectual property in any jurisdiction, including without limitation rights in or arising out of, or associated with (1) copyrights, mask work rights... (2) patents... (3) trademarks... (4) trade secrets... (5) a person's name, voice... (6) attribution and integrity... (7) internet domain names; (8) data and databases; and (9) similar proprietary rights arising under the laws of any jurisdiction`}),e.jsx(t,{children:'"NFT" means non-fungible token, including, LAND, Wearables and any other kind of NFTs available in Decentraland. All NFTs must comply with this Content Policy in accordance with section 12.4 of the Terms of Use.'})]}),e.jsxs(o,{id:"prohibited-content",children:[e.jsx(n,{children:"2. Prohibited Content"}),e.jsx(t,{children:"All Content uploaded, posted, created, displayed, transmitted or made available by the User through the Tools must not include:"}),e.jsx(t,{children:"2.1. Content involving illegality, such as piracy, criminal activity, terrorism, obscenity, child pornography, gambling (subject to Section 3 below), and illegal drug use."}),e.jsx(t,{children:"2.2. Content infringing third party Intellectual Property Rights."}),e.jsx(t,{children:"2.3. Cruel or hateful Content that could harm, harass, promote or condone violence against, or that is primarily intended to incite hatred of, animals, or individuals or groups based on race or ethnic origin, religion, nationality, disability, gender, age, veteran status, or sexual orientation/gender identity."}),e.jsx(t,{children:"2.4. Content that is libelous, false, inaccurate, misleading, or invades another person's privacy."}),e.jsx(t,{children:"2.5. Content that breaches the Privacy Policy or applicable data privacy laws."}),e.jsx(t,{children:"2.6. Content that promotes or could be construed as primarily intended to evade the limitations above."})]}),e.jsxs(o,{id:"gambling",children:[e.jsx(n,{children:"3. Gambling"}),e.jsx(t,{children:"If your Content involves gambling, the following shall apply: (i) if you reside in a jurisdiction which requires a license for online gambling, you must obtain such license prior to making your Content available; (ii) you must be in full compliance with the regulations of your country of residence; (iii) you must geo-block your Content for IPs from jurisdictions where online gambling is banned (including, without limitation, the United States of America, South Korea and China) and (iv) you must include in the terms and conditions of use of your Content (if any) a release from liability in favor of the Foundation and the DAO to the fullest extent allowed by applicable law vis a vis you and the users of your Content."})]}),e.jsxs(o,{id:"breaches-of-this-policy",children:[e.jsx(n,{children:"4. Breaches of this Policy"}),e.jsx(t,{children:"Any Content in infringement of Section 2, may be blocked and upon blocking shall not be available to other users of the Tools. Moreover, infringing Content may result in suspension of the Account, court orders, civil actions, injunctions, criminal prosecutions and other legal consequences brought by the Foundation, the DAO or third parties against the creator, distributor and/or user of said infringing Content. The User's Account may also be terminated in accordance with Section 15 of the Terms of Use."})]}),e.jsxs(o,{id:"age-restricted-content",children:[e.jsx(n,{children:"5. Age-Restricted Content"}),e.jsx(t,{children:"Any Content which qualifies as (i) intensely violent or graphic, (ii) gambling or (ii) sexually explicit, shall only be available to people aged 18 or older. If you upload, post, create, display, transmit or make available such Content on the Tools, you must provide sufficient warning as to this restriction. Failure to do so may result in termination of your Account pursuant to Section 15 of the Terms."})]}),e.jsxs(o,{id:"user-representations-and-warranties",children:[e.jsx(n,{children:"6. User Representations and Warranties"}),e.jsx(t,{children:"You represent and warrant that at any time you submit Content, you are at least the age of majority in the jurisdiction in which you reside and are the parent or legal guardian, or have all proper consents from the parent or legal guardian, of any minor who is depicted in or contributed to any Content you submit, and that, as to that Content, (a) you are the sole author and owner of the Intellectual Property Rights to such Content, or you have a lawful right to submit the Content, all without any obligation to obtain consent of any third party and without creating any obligation or liability for the Foundation; (b) the Content is accurate; (c) the Content does not and will not infringe any Intellectual Property Right of any third party; and (d) the User Content will not violate the Terms or this Content Policy, or cause injury or harm to any person."}),e.jsx(t,{children:"You expressly acknowledge and accept that the Content you submit will be accessible to and viewable by other users and waive any claim with regards to the Foundation, its directors, officers, employees and affiliates in connection with said third party access. You can withdraw your Content at any time you wish."}),e.jsx(t,{children:"Please remember that the Content that you submit will be accessible to and viewable by other users. Except as may be required to register and/or maintain your Account, do not submit personally identifiable information (e.g. first and last name together, password, phone number, address, credit or debit card number, medical information, e-mail address, or other contact information) on the Tools."}),e.jsx(t,{children:"By submitting, posting or displaying content, and or through Decentraland and/or the Marketplace, you grant us a worldwide, non-exclusive, royalty-free perpetual, irrevocable, transferable right and license (with the right to sublicense) to use, copy, reproduce, process, adapt, modify, publish, transmit, display, develop, improve, distribute such Content, promote Decentraland, activities, Events, in any and all media or distribution methods (now known or later developed). You further grant Decentraland, the DAO and/or the Foundation, the right to use your name and trademarks, if any, in connection with our use of your Content available at the Platform and/or the Marketplace, from time to time."})]}),e.jsxs(o,{id:"storage",children:[e.jsx(n,{children:"7. Storage"}),e.jsx(t,{children:'You acknowledge that due to the decentralized nature of Decentraland and of the blockchain technology, all Content and information submitted by you is not stored in a centralized server, but in several decentralized nodes (the "Nodes"). Thus, the Foundation or the DAO are not liable for any loss of content or information.'}),e.jsx(t,{children:"The Nodes recognize and accept that in the event of any court order relating to the blocking, suspension or deletion of any Content, they will abide by any such court order."})]}),e.jsxs(o,{id:"limitations-to-liability",children:[e.jsx(n,{children:"8. Limitations to Liability"}),e.jsx(t,{children:"The Foundation, its officers, employees, and the DAO are not responsible or liable for the Content, conduct, or services of users or third parties. The Foundation, its officers, employees and the DAO do not control or endorse the Content of communications between users or users' interactions with each other or the Tools."}),e.jsx(t,{children:"You acknowledge that you will be exposed to various aspects of the Tools involving the conduct, Content, and services of users, and that the Foundation does not control and is not responsible or liable for the quality, safety, legality, truthfulness or accuracy of any such user conduct, Content or user services. You acknowledge that the Foundation does not guarantee the accuracy of information submitted by any user of the Tools, nor any identity information about any user. Your interactions with other users and your use of Content are entirely at your own risk. The Foundation has no obligation to become involved in any dispute that you may have or claim to have with one or more users of the Tools, or in any manner in any resolution thereof."}),e.jsx(t,{children:"THE TOOLS MAY CONTAIN LINKS TO OR OTHERWISE ALLOW CONNECTIONS TO THIRD-PARTY WEBSITES, SERVERS, AND ONLINE SERVICES OR ENVIRONMENTS THAT ARE NOT OWNED OR CONTROLLED BY THE FOUNDATION. THE FOUNDATION, ITS OFFICERS, EMPLOYEES AND THE DAO ARE NOT RESPONSIBLE OR LIABLE FOR THE CONTENT, POLICIES OR PRACTICES OF ANY THIRD-PARTY WEBSITES, SERVERS OR ONLINE SERVICES OR ENVIRONMENTS. Please consult any applicable terms of use and privacy policies provided by the third party for such websites, servers or online services or environments."}),e.jsx(t,{children:'You acknowledge that the Content of the Tools is provided or made available to you under license from independent Content Providers, including other users of the Tools ("Content Providers"). You acknowledge and agree that except as expressly provided in this Agreement, the Intellectual Property Rights of other Content Providers in their respective Content are not licensed to you by your mere use of the Tools. You must obtain from the applicable Content Providers any necessary license rights in Content that you desire to use or access.'}),e.jsx(t,{children:"You copy and use Content at your own risk. You are solely responsible and liable for your use, reproduction, distribution, modification, display, or performance of any Content in violation of any Intellectual Property Rights. You agree that the Foundation will have no liability for, and you agree to defend, indemnify, and hold the Foundation harmless from, any claims, losses or damages arising out of or in connection with your use, reproduction, distribution, modification, display, or performance of any Content."})]}),e.jsxs(o,{id:"changes-to-this-policy",children:[e.jsx(n,{children:"9. Changes to this Policy"}),e.jsx(t,{children:"The DAO may change this Content Policy from time to time. All users have the obligation to be aware of the updated versions of this Policy."}),e.jsx(t,{children:e.jsx("a",{href:"https://governance.decentraland.org/proposal/?id=7e3f57c0-e0f2-11eb-a20f-d75df7f87ed8",target:"_blank",rel:"noopener noreferrer",children:"Approved by the DAO on Jul 16, 2021"})})]})]}));s.displayName="ContentPolicy";export{s as ContentPolicy};
1
+ import{j as e}from"./index-DUmIu2EK.js";import{r as i}from"./vendor-router-D_36sTKu.js";import{L as a,S as o,a as n,P as t}from"./LegalPageLayout-DeH35WpT.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";const r=[{id:"definitions",label:"1. Definitions"},{id:"prohibited-content",label:"2. Prohibited Content"},{id:"gambling",label:"3. Gambling"},{id:"breaches-of-this-policy",label:"4. Breaches of this Policy"},{id:"age-restricted-content",label:"5. Age-Restricted Content"},{id:"user-representations-and-warranties",label:"6. User Representations and Warranties"},{id:"storage",label:"7. Storage"},{id:"limitations-to-liability",label:"8. Limitations to Liability"},{id:"changes-to-this-policy",label:"9. Changes to this Policy"}],s=i.memo(()=>e.jsxs(a,{title:"Content Policy",activeSlug:"/content",tableOfContents:r,children:[e.jsxs(o,{id:"definitions",children:[e.jsx(n,{children:"1. Definitions"}),e.jsx(t,{children:'"Content" shall mean any work of authorship, creative works, graphics, images, textures, photos, logos, video, audio, text and interactive features, including without limitation NFTs, submitted by the Users of Decentraland.'}),e.jsx(t,{children:`"Intellectual Property Rights" shall mean rights in, arising out of, or associated with intellectual property in any jurisdiction, including without limitation rights in or arising out of, or associated with (1) copyrights, mask work rights... (2) patents... (3) trademarks... (4) trade secrets... (5) a person's name, voice... (6) attribution and integrity... (7) internet domain names; (8) data and databases; and (9) similar proprietary rights arising under the laws of any jurisdiction`}),e.jsx(t,{children:'"NFT" means non-fungible token, including, LAND, Wearables and any other kind of NFTs available in Decentraland. All NFTs must comply with this Content Policy in accordance with section 12.4 of the Terms of Use.'})]}),e.jsxs(o,{id:"prohibited-content",children:[e.jsx(n,{children:"2. Prohibited Content"}),e.jsx(t,{children:"All Content uploaded, posted, created, displayed, transmitted or made available by the User through the Tools must not include:"}),e.jsx(t,{children:"2.1. Content involving illegality, such as piracy, criminal activity, terrorism, obscenity, child pornography, gambling (subject to Section 3 below), and illegal drug use."}),e.jsx(t,{children:"2.2. Content infringing third party Intellectual Property Rights."}),e.jsx(t,{children:"2.3. Cruel or hateful Content that could harm, harass, promote or condone violence against, or that is primarily intended to incite hatred of, animals, or individuals or groups based on race or ethnic origin, religion, nationality, disability, gender, age, veteran status, or sexual orientation/gender identity."}),e.jsx(t,{children:"2.4. Content that is libelous, false, inaccurate, misleading, or invades another person's privacy."}),e.jsx(t,{children:"2.5. Content that breaches the Privacy Policy or applicable data privacy laws."}),e.jsx(t,{children:"2.6. Content that promotes or could be construed as primarily intended to evade the limitations above."})]}),e.jsxs(o,{id:"gambling",children:[e.jsx(n,{children:"3. Gambling"}),e.jsx(t,{children:"If your Content involves gambling, the following shall apply: (i) if you reside in a jurisdiction which requires a license for online gambling, you must obtain such license prior to making your Content available; (ii) you must be in full compliance with the regulations of your country of residence; (iii) you must geo-block your Content for IPs from jurisdictions where online gambling is banned (including, without limitation, the United States of America, South Korea and China) and (iv) you must include in the terms and conditions of use of your Content (if any) a release from liability in favor of the Foundation and the DAO to the fullest extent allowed by applicable law vis a vis you and the users of your Content."})]}),e.jsxs(o,{id:"breaches-of-this-policy",children:[e.jsx(n,{children:"4. Breaches of this Policy"}),e.jsx(t,{children:"Any Content in infringement of Section 2, may be blocked and upon blocking shall not be available to other users of the Tools. Moreover, infringing Content may result in suspension of the Account, court orders, civil actions, injunctions, criminal prosecutions and other legal consequences brought by the Foundation, the DAO or third parties against the creator, distributor and/or user of said infringing Content. The User's Account may also be terminated in accordance with Section 15 of the Terms of Use."})]}),e.jsxs(o,{id:"age-restricted-content",children:[e.jsx(n,{children:"5. Age-Restricted Content"}),e.jsx(t,{children:"Any Content which qualifies as (i) intensely violent or graphic, (ii) gambling or (ii) sexually explicit, shall only be available to people aged 18 or older. If you upload, post, create, display, transmit or make available such Content on the Tools, you must provide sufficient warning as to this restriction. Failure to do so may result in termination of your Account pursuant to Section 15 of the Terms."})]}),e.jsxs(o,{id:"user-representations-and-warranties",children:[e.jsx(n,{children:"6. User Representations and Warranties"}),e.jsx(t,{children:"You represent and warrant that at any time you submit Content, you are at least the age of majority in the jurisdiction in which you reside and are the parent or legal guardian, or have all proper consents from the parent or legal guardian, of any minor who is depicted in or contributed to any Content you submit, and that, as to that Content, (a) you are the sole author and owner of the Intellectual Property Rights to such Content, or you have a lawful right to submit the Content, all without any obligation to obtain consent of any third party and without creating any obligation or liability for the Foundation; (b) the Content is accurate; (c) the Content does not and will not infringe any Intellectual Property Right of any third party; and (d) the User Content will not violate the Terms or this Content Policy, or cause injury or harm to any person."}),e.jsx(t,{children:"You expressly acknowledge and accept that the Content you submit will be accessible to and viewable by other users and waive any claim with regards to the Foundation, its directors, officers, employees and affiliates in connection with said third party access. You can withdraw your Content at any time you wish."}),e.jsx(t,{children:"Please remember that the Content that you submit will be accessible to and viewable by other users. Except as may be required to register and/or maintain your Account, do not submit personally identifiable information (e.g. first and last name together, password, phone number, address, credit or debit card number, medical information, e-mail address, or other contact information) on the Tools."}),e.jsx(t,{children:"By submitting, posting or displaying content, and or through Decentraland and/or the Marketplace, you grant us a worldwide, non-exclusive, royalty-free perpetual, irrevocable, transferable right and license (with the right to sublicense) to use, copy, reproduce, process, adapt, modify, publish, transmit, display, develop, improve, distribute such Content, promote Decentraland, activities, Events, in any and all media or distribution methods (now known or later developed). You further grant Decentraland, the DAO and/or the Foundation, the right to use your name and trademarks, if any, in connection with our use of your Content available at the Platform and/or the Marketplace, from time to time."})]}),e.jsxs(o,{id:"storage",children:[e.jsx(n,{children:"7. Storage"}),e.jsx(t,{children:'You acknowledge that due to the decentralized nature of Decentraland and of the blockchain technology, all Content and information submitted by you is not stored in a centralized server, but in several decentralized nodes (the "Nodes"). Thus, the Foundation or the DAO are not liable for any loss of content or information.'}),e.jsx(t,{children:"The Nodes recognize and accept that in the event of any court order relating to the blocking, suspension or deletion of any Content, they will abide by any such court order."})]}),e.jsxs(o,{id:"limitations-to-liability",children:[e.jsx(n,{children:"8. Limitations to Liability"}),e.jsx(t,{children:"The Foundation, its officers, employees, and the DAO are not responsible or liable for the Content, conduct, or services of users or third parties. The Foundation, its officers, employees and the DAO do not control or endorse the Content of communications between users or users' interactions with each other or the Tools."}),e.jsx(t,{children:"You acknowledge that you will be exposed to various aspects of the Tools involving the conduct, Content, and services of users, and that the Foundation does not control and is not responsible or liable for the quality, safety, legality, truthfulness or accuracy of any such user conduct, Content or user services. You acknowledge that the Foundation does not guarantee the accuracy of information submitted by any user of the Tools, nor any identity information about any user. Your interactions with other users and your use of Content are entirely at your own risk. The Foundation has no obligation to become involved in any dispute that you may have or claim to have with one or more users of the Tools, or in any manner in any resolution thereof."}),e.jsx(t,{children:"THE TOOLS MAY CONTAIN LINKS TO OR OTHERWISE ALLOW CONNECTIONS TO THIRD-PARTY WEBSITES, SERVERS, AND ONLINE SERVICES OR ENVIRONMENTS THAT ARE NOT OWNED OR CONTROLLED BY THE FOUNDATION. THE FOUNDATION, ITS OFFICERS, EMPLOYEES AND THE DAO ARE NOT RESPONSIBLE OR LIABLE FOR THE CONTENT, POLICIES OR PRACTICES OF ANY THIRD-PARTY WEBSITES, SERVERS OR ONLINE SERVICES OR ENVIRONMENTS. Please consult any applicable terms of use and privacy policies provided by the third party for such websites, servers or online services or environments."}),e.jsx(t,{children:'You acknowledge that the Content of the Tools is provided or made available to you under license from independent Content Providers, including other users of the Tools ("Content Providers"). You acknowledge and agree that except as expressly provided in this Agreement, the Intellectual Property Rights of other Content Providers in their respective Content are not licensed to you by your mere use of the Tools. You must obtain from the applicable Content Providers any necessary license rights in Content that you desire to use or access.'}),e.jsx(t,{children:"You copy and use Content at your own risk. You are solely responsible and liable for your use, reproduction, distribution, modification, display, or performance of any Content in violation of any Intellectual Property Rights. You agree that the Foundation will have no liability for, and you agree to defend, indemnify, and hold the Foundation harmless from, any claims, losses or damages arising out of or in connection with your use, reproduction, distribution, modification, display, or performance of any Content."})]}),e.jsxs(o,{id:"changes-to-this-policy",children:[e.jsx(n,{children:"9. Changes to this Policy"}),e.jsx(t,{children:"The DAO may change this Content Policy from time to time. All users have the obligation to be aware of the updated versions of this Policy."}),e.jsx(t,{children:e.jsx("a",{href:"https://governance.decentraland.org/proposal/?id=7e3f57c0-e0f2-11eb-a20f-d75df7f87ed8",target:"_blank",rel:"noopener noreferrer",children:"Approved by the DAO on Jul 16, 2021"})})]})]}));s.displayName="ContentPolicy";export{s as ContentPolicy};
@@ -1 +1 @@
1
- {"version":3,"file":"index-B6K794Rf.js","sources":["../../src/pages/content/ContentPolicy.tsx"],"sourcesContent":["import { memo } from 'react'\nimport { LegalPageLayout, Paragraph, Section, SectionTitle } from '../../components/LegalPage'\nimport type { TOCEntry } from '../../components/LegalPage'\n\nconst TABLE_OF_CONTENTS: TOCEntry[] = [\n { id: 'definitions', label: '1. Definitions' },\n { id: 'prohibited-content', label: '2. Prohibited Content' },\n { id: 'gambling', label: '3. Gambling' },\n { id: 'breaches-of-this-policy', label: '4. Breaches of this Policy' },\n { id: 'age-restricted-content', label: '5. Age-Restricted Content' },\n { id: 'user-representations-and-warranties', label: '6. User Representations and Warranties' },\n { id: 'storage', label: '7. Storage' },\n { id: 'limitations-to-liability', label: '8. Limitations to Liability' },\n { id: 'changes-to-this-policy', label: '9. Changes to this Policy' }\n]\n\nconst ContentPolicy = memo(() => (\n <LegalPageLayout title=\"Content Policy\" activeSlug=\"/content\" tableOfContents={TABLE_OF_CONTENTS}>\n <Section id=\"definitions\">\n <SectionTitle>1. Definitions</SectionTitle>\n <Paragraph>\n &quot;Content&quot; shall mean any work of authorship, creative works, graphics, images, textures, photos, logos, video, audio, text\n and interactive features, including without limitation NFTs, submitted by the Users of Decentraland.\n </Paragraph>\n <Paragraph>\n &quot;Intellectual Property Rights&quot; shall mean rights in, arising out of, or associated with intellectual property in any\n jurisdiction, including without limitation rights in or arising out of, or associated with (1) copyrights, mask work rights... (2)\n patents... (3) trademarks... (4) trade secrets... (5) a person&apos;s name, voice... (6) attribution and integrity... (7) internet\n domain names; (8) data and databases; and (9) similar proprietary rights arising under the laws of any jurisdiction\n </Paragraph>\n <Paragraph>\n &quot;NFT&quot; means non-fungible token, including, LAND, Wearables and any other kind of NFTs available in Decentraland. All NFTs\n must comply with this Content Policy in accordance with section 12.4 of the Terms of Use.\n </Paragraph>\n </Section>\n\n <Section id=\"prohibited-content\">\n <SectionTitle>2. Prohibited Content</SectionTitle>\n <Paragraph>\n All Content uploaded, posted, created, displayed, transmitted or made available by the User through the Tools must not include:\n </Paragraph>\n <Paragraph>\n 2.1. Content involving illegality, such as piracy, criminal activity, terrorism, obscenity, child pornography, gambling (subject to\n Section 3 below), and illegal drug use.\n </Paragraph>\n <Paragraph>2.2. Content infringing third party Intellectual Property Rights.</Paragraph>\n <Paragraph>\n 2.3. Cruel or hateful Content that could harm, harass, promote or condone violence against, or that is primarily intended to incite\n hatred of, animals, or individuals or groups based on race or ethnic origin, religion, nationality, disability, gender, age, veteran\n status, or sexual orientation/gender identity.\n </Paragraph>\n <Paragraph>2.4. Content that is libelous, false, inaccurate, misleading, or invades another person&apos;s privacy.</Paragraph>\n <Paragraph>2.5. Content that breaches the Privacy Policy or applicable data privacy laws.</Paragraph>\n <Paragraph>2.6. Content that promotes or could be construed as primarily intended to evade the limitations above.</Paragraph>\n </Section>\n\n <Section id=\"gambling\">\n <SectionTitle>3. Gambling</SectionTitle>\n <Paragraph>\n If your Content involves gambling, the following shall apply: (i) if you reside in a jurisdiction which requires a license for\n online gambling, you must obtain such license prior to making your Content available; (ii) you must be in full compliance with the\n regulations of your country of residence; (iii) you must geo-block your Content for IPs from jurisdictions where online gambling is\n banned (including, without limitation, the United States of America, South Korea and China) and (iv) you must include in the terms\n and conditions of use of your Content (if any) a release from liability in favor of the Foundation and the DAO to the fullest extent\n allowed by applicable law vis a vis you and the users of your Content.\n </Paragraph>\n </Section>\n\n <Section id=\"breaches-of-this-policy\">\n <SectionTitle>4. Breaches of this Policy</SectionTitle>\n <Paragraph>\n Any Content in infringement of Section 2, may be blocked and upon blocking shall not be available to other users of the Tools.\n Moreover, infringing Content may result in suspension of the Account, court orders, civil actions, injunctions, criminal\n prosecutions and other legal consequences brought by the Foundation, the DAO or third parties against the creator, distributor\n and/or user of said infringing Content. The User&apos;s Account may also be terminated in accordance with Section 15 of the Terms of\n Use.\n </Paragraph>\n </Section>\n\n <Section id=\"age-restricted-content\">\n <SectionTitle>5. Age-Restricted Content</SectionTitle>\n <Paragraph>\n Any Content which qualifies as (i) intensely violent or graphic, (ii) gambling or (ii) sexually explicit, shall only be available to\n people aged 18 or older. If you upload, post, create, display, transmit or make available such Content on the Tools, you must\n provide sufficient warning as to this restriction. Failure to do so may result in termination of your Account pursuant to Section 15\n of the Terms.\n </Paragraph>\n </Section>\n\n <Section id=\"user-representations-and-warranties\">\n <SectionTitle>6. User Representations and Warranties</SectionTitle>\n <Paragraph>\n You represent and warrant that at any time you submit Content, you are at least the age of majority in the jurisdiction in which you\n reside and are the parent or legal guardian, or have all proper consents from the parent or legal guardian, of any minor who is\n depicted in or contributed to any Content you submit, and that, as to that Content, (a) you are the sole author and owner of the\n Intellectual Property Rights to such Content, or you have a lawful right to submit the Content, all without any obligation to obtain\n consent of any third party and without creating any obligation or liability for the Foundation; (b) the Content is accurate; (c) the\n Content does not and will not infringe any Intellectual Property Right of any third party; and (d) the User Content will not violate\n the Terms or this Content Policy, or cause injury or harm to any person.\n </Paragraph>\n <Paragraph>\n You expressly acknowledge and accept that the Content you submit will be accessible to and viewable by other users and waive any\n claim with regards to the Foundation, its directors, officers, employees and affiliates in connection with said third party access.\n You can withdraw your Content at any time you wish.\n </Paragraph>\n <Paragraph>\n Please remember that the Content that you submit will be accessible to and viewable by other users. Except as may be required to\n register and/or maintain your Account, do not submit personally identifiable information (e.g. first and last name together,\n password, phone number, address, credit or debit card number, medical information, e-mail address, or other contact information) on\n the Tools.\n </Paragraph>\n <Paragraph>\n By submitting, posting or displaying content, and or through Decentraland and/or the Marketplace, you grant us a worldwide,\n non-exclusive, royalty-free perpetual, irrevocable, transferable right and license (with the right to sublicense) to use, copy,\n reproduce, process, adapt, modify, publish, transmit, display, develop, improve, distribute such Content, promote Decentraland,\n activities, Events, in any and all media or distribution methods (now known or later developed). You further grant Decentraland, the\n DAO and/or the Foundation, the right to use your name and trademarks, if any, in connection with our use of your Content available\n at the Platform and/or the Marketplace, from time to time.\n </Paragraph>\n </Section>\n\n <Section id=\"storage\">\n <SectionTitle>7. Storage</SectionTitle>\n <Paragraph>\n You acknowledge that due to the decentralized nature of Decentraland and of the blockchain technology, all Content and information\n submitted by you is not stored in a centralized server, but in several decentralized nodes (the &quot;Nodes&quot;). Thus, the\n Foundation or the DAO are not liable for any loss of content or information.\n </Paragraph>\n <Paragraph>\n The Nodes recognize and accept that in the event of any court order relating to the blocking, suspension or deletion of any Content,\n they will abide by any such court order.\n </Paragraph>\n </Section>\n\n <Section id=\"limitations-to-liability\">\n <SectionTitle>8. Limitations to Liability</SectionTitle>\n <Paragraph>\n The Foundation, its officers, employees, and the DAO are not responsible or liable for the Content, conduct, or services of users or\n third parties. The Foundation, its officers, employees and the DAO do not control or endorse the Content of communications between\n users or users&apos; interactions with each other or the Tools.\n </Paragraph>\n <Paragraph>\n You acknowledge that you will be exposed to various aspects of the Tools involving the conduct, Content, and services of users, and\n that the Foundation does not control and is not responsible or liable for the quality, safety, legality, truthfulness or accuracy of\n any such user conduct, Content or user services. You acknowledge that the Foundation does not guarantee the accuracy of information\n submitted by any user of the Tools, nor any identity information about any user. Your interactions with other users and your use of\n Content are entirely at your own risk. The Foundation has no obligation to become involved in any dispute that you may have or claim\n to have with one or more users of the Tools, or in any manner in any resolution thereof.\n </Paragraph>\n <Paragraph>\n THE TOOLS MAY CONTAIN LINKS TO OR OTHERWISE ALLOW CONNECTIONS TO THIRD-PARTY WEBSITES, SERVERS, AND ONLINE SERVICES OR ENVIRONMENTS\n THAT ARE NOT OWNED OR CONTROLLED BY THE FOUNDATION. THE FOUNDATION, ITS OFFICERS, EMPLOYEES AND THE DAO ARE NOT RESPONSIBLE OR\n LIABLE FOR THE CONTENT, POLICIES OR PRACTICES OF ANY THIRD-PARTY WEBSITES, SERVERS OR ONLINE SERVICES OR ENVIRONMENTS. Please\n consult any applicable terms of use and privacy policies provided by the third party for such websites, servers or online services\n or environments.\n </Paragraph>\n <Paragraph>\n You acknowledge that the Content of the Tools is provided or made available to you under license from independent Content Providers,\n including other users of the Tools (&quot;Content Providers&quot;). You acknowledge and agree that except as expressly provided in\n this Agreement, the Intellectual Property Rights of other Content Providers in their respective Content are not licensed to you by\n your mere use of the Tools. You must obtain from the applicable Content Providers any necessary license rights in Content that you\n desire to use or access.\n </Paragraph>\n <Paragraph>\n You copy and use Content at your own risk. You are solely responsible and liable for your use, reproduction, distribution,\n modification, display, or performance of any Content in violation of any Intellectual Property Rights. You agree that the Foundation\n will have no liability for, and you agree to defend, indemnify, and hold the Foundation harmless from, any claims, losses or damages\n arising out of or in connection with your use, reproduction, distribution, modification, display, or performance of any Content.\n </Paragraph>\n </Section>\n\n <Section id=\"changes-to-this-policy\">\n <SectionTitle>9. Changes to this Policy</SectionTitle>\n <Paragraph>\n The DAO may change this Content Policy from time to time. All users have the obligation to be aware of the updated versions of this\n Policy.\n </Paragraph>\n <Paragraph>\n <a\n href=\"https://governance.decentraland.org/proposal/?id=7e3f57c0-e0f2-11eb-a20f-d75df7f87ed8\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Approved by the DAO on Jul 16, 2021\n </a>\n </Paragraph>\n </Section>\n </LegalPageLayout>\n))\n\nContentPolicy.displayName = 'ContentPolicy'\n\nexport { ContentPolicy }\n"],"names":["TABLE_OF_CONTENTS","ContentPolicy","memo","jsxs","LegalPageLayout","Section","jsx","SectionTitle","Paragraph"],"mappings":"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"}
1
+ {"version":3,"file":"index-DIU7xr_7.js","sources":["../../src/pages/content/ContentPolicy.tsx"],"sourcesContent":["import { memo } from 'react'\nimport { LegalPageLayout, Paragraph, Section, SectionTitle } from '../../components/LegalPage'\nimport type { TOCEntry } from '../../components/LegalPage'\n\nconst TABLE_OF_CONTENTS: TOCEntry[] = [\n { id: 'definitions', label: '1. Definitions' },\n { id: 'prohibited-content', label: '2. Prohibited Content' },\n { id: 'gambling', label: '3. Gambling' },\n { id: 'breaches-of-this-policy', label: '4. Breaches of this Policy' },\n { id: 'age-restricted-content', label: '5. Age-Restricted Content' },\n { id: 'user-representations-and-warranties', label: '6. User Representations and Warranties' },\n { id: 'storage', label: '7. Storage' },\n { id: 'limitations-to-liability', label: '8. Limitations to Liability' },\n { id: 'changes-to-this-policy', label: '9. Changes to this Policy' }\n]\n\nconst ContentPolicy = memo(() => (\n <LegalPageLayout title=\"Content Policy\" activeSlug=\"/content\" tableOfContents={TABLE_OF_CONTENTS}>\n <Section id=\"definitions\">\n <SectionTitle>1. Definitions</SectionTitle>\n <Paragraph>\n &quot;Content&quot; shall mean any work of authorship, creative works, graphics, images, textures, photos, logos, video, audio, text\n and interactive features, including without limitation NFTs, submitted by the Users of Decentraland.\n </Paragraph>\n <Paragraph>\n &quot;Intellectual Property Rights&quot; shall mean rights in, arising out of, or associated with intellectual property in any\n jurisdiction, including without limitation rights in or arising out of, or associated with (1) copyrights, mask work rights... (2)\n patents... (3) trademarks... (4) trade secrets... (5) a person&apos;s name, voice... (6) attribution and integrity... (7) internet\n domain names; (8) data and databases; and (9) similar proprietary rights arising under the laws of any jurisdiction\n </Paragraph>\n <Paragraph>\n &quot;NFT&quot; means non-fungible token, including, LAND, Wearables and any other kind of NFTs available in Decentraland. All NFTs\n must comply with this Content Policy in accordance with section 12.4 of the Terms of Use.\n </Paragraph>\n </Section>\n\n <Section id=\"prohibited-content\">\n <SectionTitle>2. Prohibited Content</SectionTitle>\n <Paragraph>\n All Content uploaded, posted, created, displayed, transmitted or made available by the User through the Tools must not include:\n </Paragraph>\n <Paragraph>\n 2.1. Content involving illegality, such as piracy, criminal activity, terrorism, obscenity, child pornography, gambling (subject to\n Section 3 below), and illegal drug use.\n </Paragraph>\n <Paragraph>2.2. Content infringing third party Intellectual Property Rights.</Paragraph>\n <Paragraph>\n 2.3. Cruel or hateful Content that could harm, harass, promote or condone violence against, or that is primarily intended to incite\n hatred of, animals, or individuals or groups based on race or ethnic origin, religion, nationality, disability, gender, age, veteran\n status, or sexual orientation/gender identity.\n </Paragraph>\n <Paragraph>2.4. Content that is libelous, false, inaccurate, misleading, or invades another person&apos;s privacy.</Paragraph>\n <Paragraph>2.5. Content that breaches the Privacy Policy or applicable data privacy laws.</Paragraph>\n <Paragraph>2.6. Content that promotes or could be construed as primarily intended to evade the limitations above.</Paragraph>\n </Section>\n\n <Section id=\"gambling\">\n <SectionTitle>3. Gambling</SectionTitle>\n <Paragraph>\n If your Content involves gambling, the following shall apply: (i) if you reside in a jurisdiction which requires a license for\n online gambling, you must obtain such license prior to making your Content available; (ii) you must be in full compliance with the\n regulations of your country of residence; (iii) you must geo-block your Content for IPs from jurisdictions where online gambling is\n banned (including, without limitation, the United States of America, South Korea and China) and (iv) you must include in the terms\n and conditions of use of your Content (if any) a release from liability in favor of the Foundation and the DAO to the fullest extent\n allowed by applicable law vis a vis you and the users of your Content.\n </Paragraph>\n </Section>\n\n <Section id=\"breaches-of-this-policy\">\n <SectionTitle>4. Breaches of this Policy</SectionTitle>\n <Paragraph>\n Any Content in infringement of Section 2, may be blocked and upon blocking shall not be available to other users of the Tools.\n Moreover, infringing Content may result in suspension of the Account, court orders, civil actions, injunctions, criminal\n prosecutions and other legal consequences brought by the Foundation, the DAO or third parties against the creator, distributor\n and/or user of said infringing Content. The User&apos;s Account may also be terminated in accordance with Section 15 of the Terms of\n Use.\n </Paragraph>\n </Section>\n\n <Section id=\"age-restricted-content\">\n <SectionTitle>5. Age-Restricted Content</SectionTitle>\n <Paragraph>\n Any Content which qualifies as (i) intensely violent or graphic, (ii) gambling or (ii) sexually explicit, shall only be available to\n people aged 18 or older. If you upload, post, create, display, transmit or make available such Content on the Tools, you must\n provide sufficient warning as to this restriction. Failure to do so may result in termination of your Account pursuant to Section 15\n of the Terms.\n </Paragraph>\n </Section>\n\n <Section id=\"user-representations-and-warranties\">\n <SectionTitle>6. User Representations and Warranties</SectionTitle>\n <Paragraph>\n You represent and warrant that at any time you submit Content, you are at least the age of majority in the jurisdiction in which you\n reside and are the parent or legal guardian, or have all proper consents from the parent or legal guardian, of any minor who is\n depicted in or contributed to any Content you submit, and that, as to that Content, (a) you are the sole author and owner of the\n Intellectual Property Rights to such Content, or you have a lawful right to submit the Content, all without any obligation to obtain\n consent of any third party and without creating any obligation or liability for the Foundation; (b) the Content is accurate; (c) the\n Content does not and will not infringe any Intellectual Property Right of any third party; and (d) the User Content will not violate\n the Terms or this Content Policy, or cause injury or harm to any person.\n </Paragraph>\n <Paragraph>\n You expressly acknowledge and accept that the Content you submit will be accessible to and viewable by other users and waive any\n claim with regards to the Foundation, its directors, officers, employees and affiliates in connection with said third party access.\n You can withdraw your Content at any time you wish.\n </Paragraph>\n <Paragraph>\n Please remember that the Content that you submit will be accessible to and viewable by other users. Except as may be required to\n register and/or maintain your Account, do not submit personally identifiable information (e.g. first and last name together,\n password, phone number, address, credit or debit card number, medical information, e-mail address, or other contact information) on\n the Tools.\n </Paragraph>\n <Paragraph>\n By submitting, posting or displaying content, and or through Decentraland and/or the Marketplace, you grant us a worldwide,\n non-exclusive, royalty-free perpetual, irrevocable, transferable right and license (with the right to sublicense) to use, copy,\n reproduce, process, adapt, modify, publish, transmit, display, develop, improve, distribute such Content, promote Decentraland,\n activities, Events, in any and all media or distribution methods (now known or later developed). You further grant Decentraland, the\n DAO and/or the Foundation, the right to use your name and trademarks, if any, in connection with our use of your Content available\n at the Platform and/or the Marketplace, from time to time.\n </Paragraph>\n </Section>\n\n <Section id=\"storage\">\n <SectionTitle>7. Storage</SectionTitle>\n <Paragraph>\n You acknowledge that due to the decentralized nature of Decentraland and of the blockchain technology, all Content and information\n submitted by you is not stored in a centralized server, but in several decentralized nodes (the &quot;Nodes&quot;). Thus, the\n Foundation or the DAO are not liable for any loss of content or information.\n </Paragraph>\n <Paragraph>\n The Nodes recognize and accept that in the event of any court order relating to the blocking, suspension or deletion of any Content,\n they will abide by any such court order.\n </Paragraph>\n </Section>\n\n <Section id=\"limitations-to-liability\">\n <SectionTitle>8. Limitations to Liability</SectionTitle>\n <Paragraph>\n The Foundation, its officers, employees, and the DAO are not responsible or liable for the Content, conduct, or services of users or\n third parties. The Foundation, its officers, employees and the DAO do not control or endorse the Content of communications between\n users or users&apos; interactions with each other or the Tools.\n </Paragraph>\n <Paragraph>\n You acknowledge that you will be exposed to various aspects of the Tools involving the conduct, Content, and services of users, and\n that the Foundation does not control and is not responsible or liable for the quality, safety, legality, truthfulness or accuracy of\n any such user conduct, Content or user services. You acknowledge that the Foundation does not guarantee the accuracy of information\n submitted by any user of the Tools, nor any identity information about any user. Your interactions with other users and your use of\n Content are entirely at your own risk. The Foundation has no obligation to become involved in any dispute that you may have or claim\n to have with one or more users of the Tools, or in any manner in any resolution thereof.\n </Paragraph>\n <Paragraph>\n THE TOOLS MAY CONTAIN LINKS TO OR OTHERWISE ALLOW CONNECTIONS TO THIRD-PARTY WEBSITES, SERVERS, AND ONLINE SERVICES OR ENVIRONMENTS\n THAT ARE NOT OWNED OR CONTROLLED BY THE FOUNDATION. THE FOUNDATION, ITS OFFICERS, EMPLOYEES AND THE DAO ARE NOT RESPONSIBLE OR\n LIABLE FOR THE CONTENT, POLICIES OR PRACTICES OF ANY THIRD-PARTY WEBSITES, SERVERS OR ONLINE SERVICES OR ENVIRONMENTS. Please\n consult any applicable terms of use and privacy policies provided by the third party for such websites, servers or online services\n or environments.\n </Paragraph>\n <Paragraph>\n You acknowledge that the Content of the Tools is provided or made available to you under license from independent Content Providers,\n including other users of the Tools (&quot;Content Providers&quot;). You acknowledge and agree that except as expressly provided in\n this Agreement, the Intellectual Property Rights of other Content Providers in their respective Content are not licensed to you by\n your mere use of the Tools. You must obtain from the applicable Content Providers any necessary license rights in Content that you\n desire to use or access.\n </Paragraph>\n <Paragraph>\n You copy and use Content at your own risk. You are solely responsible and liable for your use, reproduction, distribution,\n modification, display, or performance of any Content in violation of any Intellectual Property Rights. You agree that the Foundation\n will have no liability for, and you agree to defend, indemnify, and hold the Foundation harmless from, any claims, losses or damages\n arising out of or in connection with your use, reproduction, distribution, modification, display, or performance of any Content.\n </Paragraph>\n </Section>\n\n <Section id=\"changes-to-this-policy\">\n <SectionTitle>9. Changes to this Policy</SectionTitle>\n <Paragraph>\n The DAO may change this Content Policy from time to time. All users have the obligation to be aware of the updated versions of this\n Policy.\n </Paragraph>\n <Paragraph>\n <a\n href=\"https://governance.decentraland.org/proposal/?id=7e3f57c0-e0f2-11eb-a20f-d75df7f87ed8\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n Approved by the DAO on Jul 16, 2021\n </a>\n </Paragraph>\n </Section>\n </LegalPageLayout>\n))\n\nContentPolicy.displayName = 'ContentPolicy'\n\nexport { ContentPolicy }\n"],"names":["TABLE_OF_CONTENTS","ContentPolicy","memo","jsxs","LegalPageLayout","Section","jsx","SectionTitle","Paragraph"],"mappings":"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"}
@@ -1 +1 @@
1
- import{x as $,ar as q,O as r,t as Y,q as Q,ad as S,j as a,L as G,v as J,U as X}from"./index-D0nE3AYE.js";import{r as o,b as Z}from"./vendor-router-D_36sTKu.js";import"./vendor-ua-D7qqAxdq.js";import{LandingFooter as ee}from"./index-C7VbadJ8.js";import{u as te,a as se,g as oe,A as W,c as ae}from"./downloadWithIdentity-BtEnlEpV.js";import{t as ne}from"./file-Cr_gl9BS.js";import{F as m,a as re}from"./url-B6S3bwqB.js";import{D as ce,a as de,b as ie,c as le,d as pe,e as we,H as ue}from"./DownloadSuccessLayout-OfN-COoN.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-intl-D2lXWsDp.js";import"./useAuthIdentity-BlDTBxRE.js";import"./index-BxZNYwr3.js";import"./CardContent-BGQcwSBj.js";import"./Paper-DkTuC9MF.js";import"./CardMedia-RFT7-c29.js";const ge="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24685869120.commit-1de5712/assets/macos_launcher-tAnkzoV6.webp",me="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24685869120.commit-1de5712/assets/macos_launching_decentraland-D20EhlLN.webp",fe="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24685869120.commit-1de5712/assets/macos_recent_download-BanUqEgV.webp",De="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24685869120.commit-1de5712/assets/windows_downloads_folder-BjMDtSd-.webp",Se="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24685869120.commit-1de5712/assets/windows_launching_decentraland-Bg5TsdCP.webp",he="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24685869120.commit-1de5712/assets/windows_setup-Dzomx64Q.webp",Oe=new Set(["amd64","arm64"]),h="downloadSuccess:autoDownloadKey",xe="downloadSuccess:triggered",ye=o.memo(()=>{const[O]=Z(),{intl:x}=$(),{isInitialized:y,track:A}=q(),i=te(),l=se(),[_,p]=o.useState(!1),[j,f]=o.useState(null),[T,w]=o.useState(!1),D=o.useRef(!1),I=o.useRef(i),L=o.useRef(l),u=o.useRef(y),g=o.useRef(A);I.current=i,L.current=l,u.current=y,g.current=A;const U=O.get("os")||"",n={windows:r.WINDOWS,macos:r.MACOS}[U.toLowerCase()]??r.MACOS,C=n===r.WINDOWS?"amd64":"arm64",E=O.get("arch")||C,c=Oe.has(E)?E:C,v=n===r.WINDOWS?Y:Q,M=n===r.WINDOWS?m[n]?.amd64:m[n]?.[c],e=o.useCallback((t,s)=>x.formatMessage({id:t},s),[x]),k=e("page.download.success.subtitle_action_exploring"),b=o.useMemo(()=>{const t=s=>a.jsx("span",{children:s});return{[r.WINDOWS]:[{title:e("page.download.success.steps.windows.step1.title"),text:e("page.download.success.steps.windows.step1.text",{span:t}),image:De},{title:e("page.download.success.steps.windows.step2.title"),text:e("page.download.success.steps.windows.step2.text",{span:t}),image:he},{title:e("page.download.success.steps.windows.step3.title"),text:e("page.download.success.steps.windows.step3.text",{span:t}),image:Se}],[r.MACOS]:[{title:e("page.download.success.steps.macOS.step1.title"),text:e("page.download.success.steps.macOS.step1.text",{span:t}),image:fe},{title:e("page.download.success.steps.macOS.step2.title"),text:e("page.download.success.steps.macOS.step2.text",{span:t}),image:ge},{title:e("page.download.success.steps.macOS.step3.title"),text:e("page.download.success.steps.macOS.step3.text",{span:t}),image:me}]}},[e]),B=b[n]||b[r.MACOS];o.useEffect(()=>{let t=!1;const s=`${n}:${c}`,N=()=>window.history.state&&typeof window.history.state=="object"?window.history.state:{};return(async()=>{const d=`${xe}:${s}`;if(sessionStorage.getItem(d)){w(!0);return}if(N()[h]===s){w(!0);return}p(!0),f(null),w(!1),u.current&&g.current(S.DOWNLOAD_STARTED);const{url:H,filename:z}=await ae({os:n,arch:c,fallbackLinks:m,getIdentityId:I.current});if(t)return;const R=N();if(R[h]!==s&&window.history.replaceState({...R,[h]:s},"",window.location.href),t)return;sessionStorage.setItem(d,"1");const V=re(H,{[W]:L.current});ne(V),w(!0),u.current&&g.current(S.DOWNLOAD_SUCCESS,{filename:z})})().catch(d=>{t||(console.error("Download error:",d),f(d instanceof Error?d.message:"Download failed"),u.current&&g.current(S.DOWNLOAD_FAILED))}).finally(()=>{t||p(!1)}),()=>{t=!0}},[n,c]);const F=o.useCallback(async t=>{if(t.preventDefault(),!D.current){D.current=!0,p(!0);try{await oe({os:n,arch:c,fallbackLinks:m,queryParams:{[W]:l},getIdentityId:i})}catch(s){console.error("Download error:",s),f(s instanceof Error?s.message:"Download failed")}finally{D.current=!1,p(!1)}}},[n,c,l,i]),P=_||!j&&!T,K=_?a.jsxs(ce,{children:[a.jsx(G,{size:"huge"}),a.jsxs(de,{children:[a.jsx(ie,{variant:"h6",children:e("page.download.downloading")}),a.jsx(le,{children:a.jsx(pe,{})})]})]}):void 0;return a.jsx(we,{loading:P,backdropContent:K,osIcon:v,title:e("page.download.success.title"),subtitle:e("page.download.success.subtitle",{action:k}),steps:B,renderCardOverlay:(t,s)=>s===0&&k==="exploring"?a.jsx(ue,{}):null,footer:a.jsx(J,{variant:"body1",children:e("page.download.success.footer",{link:a.jsx("a",{href:M,onClick:F,"data-event":X.DOWNLOAD,children:e("page.download.success.footer_link_label")})})}),afterContent:a.jsx(ee,{})})});ye.displayName="DownloadSuccess";export{ye as DownloadSuccess};
1
+ import{x as $,ar as q,O as r,t as Y,q as Q,ad as S,j as a,L as G,v as J,U as X}from"./index-DUmIu2EK.js";import{r as o,b as Z}from"./vendor-router-D_36sTKu.js";import"./vendor-ua-D7qqAxdq.js";import{LandingFooter as ee}from"./index-Bd63106P.js";import{u as te,a as se,g as oe,A as W,c as ae}from"./downloadWithIdentity-imzC-1Iy.js";import{t as ne}from"./file-Cr_gl9BS.js";import{F as m,a as re}from"./url-BHzlJYXC.js";import{D as ce,a as de,b as ie,c as le,d as pe,e as we,H as ue}from"./DownloadSuccessLayout-COBp7A1N.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-intl-D2lXWsDp.js";import"./useAuthIdentity-D2zQ3q5X.js";import"./index-BaEE4ZXP.js";import"./CardContent-BQ0iSa2p.js";import"./Paper-BfSYUoim.js";import"./CardMedia-B6PneSTk.js";const ge="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24686484792.commit-e56f2bf/assets/macos_launcher-tAnkzoV6.webp",me="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24686484792.commit-e56f2bf/assets/macos_launching_decentraland-D20EhlLN.webp",fe="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24686484792.commit-e56f2bf/assets/macos_recent_download-BanUqEgV.webp",De="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24686484792.commit-e56f2bf/assets/windows_downloads_folder-BjMDtSd-.webp",Se="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24686484792.commit-e56f2bf/assets/windows_launching_decentraland-Bg5TsdCP.webp",he="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24686484792.commit-e56f2bf/assets/windows_setup-Dzomx64Q.webp",Oe=new Set(["amd64","arm64"]),h="downloadSuccess:autoDownloadKey",xe="downloadSuccess:triggered",ye=o.memo(()=>{const[O]=Z(),{intl:x}=$(),{isInitialized:y,track:A}=q(),i=te(),l=se(),[_,p]=o.useState(!1),[j,f]=o.useState(null),[T,w]=o.useState(!1),D=o.useRef(!1),I=o.useRef(i),L=o.useRef(l),u=o.useRef(y),g=o.useRef(A);I.current=i,L.current=l,u.current=y,g.current=A;const U=O.get("os")||"",n={windows:r.WINDOWS,macos:r.MACOS}[U.toLowerCase()]??r.MACOS,b=n===r.WINDOWS?"amd64":"arm64",C=O.get("arch")||b,c=Oe.has(C)?C:b,v=n===r.WINDOWS?Y:Q,M=n===r.WINDOWS?m[n]?.amd64:m[n]?.[c],e=o.useCallback((t,s)=>x.formatMessage({id:t},s),[x]),E=e("page.download.success.subtitle_action_exploring"),k=o.useMemo(()=>{const t=s=>a.jsx("span",{children:s});return{[r.WINDOWS]:[{title:e("page.download.success.steps.windows.step1.title"),text:e("page.download.success.steps.windows.step1.text",{span:t}),image:De},{title:e("page.download.success.steps.windows.step2.title"),text:e("page.download.success.steps.windows.step2.text",{span:t}),image:he},{title:e("page.download.success.steps.windows.step3.title"),text:e("page.download.success.steps.windows.step3.text",{span:t}),image:Se}],[r.MACOS]:[{title:e("page.download.success.steps.macOS.step1.title"),text:e("page.download.success.steps.macOS.step1.text",{span:t}),image:fe},{title:e("page.download.success.steps.macOS.step2.title"),text:e("page.download.success.steps.macOS.step2.text",{span:t}),image:ge},{title:e("page.download.success.steps.macOS.step3.title"),text:e("page.download.success.steps.macOS.step3.text",{span:t}),image:me}]}},[e]),B=k[n]||k[r.MACOS];o.useEffect(()=>{let t=!1;const s=`${n}:${c}`,N=()=>window.history.state&&typeof window.history.state=="object"?window.history.state:{};return(async()=>{const d=`${xe}:${s}`;if(sessionStorage.getItem(d)){w(!0);return}if(N()[h]===s){w(!0);return}p(!0),f(null),w(!1),u.current&&g.current(S.DOWNLOAD_STARTED);const{url:H,filename:z}=await ae({os:n,arch:c,fallbackLinks:m,getIdentityId:I.current});if(t)return;const R=N();if(R[h]!==s&&window.history.replaceState({...R,[h]:s},"",window.location.href),t)return;sessionStorage.setItem(d,"1");const V=re(H,{[W]:L.current});ne(V),w(!0),u.current&&g.current(S.DOWNLOAD_SUCCESS,{filename:z})})().catch(d=>{t||(console.error("Download error:",d),f(d instanceof Error?d.message:"Download failed"),u.current&&g.current(S.DOWNLOAD_FAILED))}).finally(()=>{t||p(!1)}),()=>{t=!0}},[n,c]);const F=o.useCallback(async t=>{if(t.preventDefault(),!D.current){D.current=!0,p(!0);try{await oe({os:n,arch:c,fallbackLinks:m,queryParams:{[W]:l},getIdentityId:i})}catch(s){console.error("Download error:",s),f(s instanceof Error?s.message:"Download failed")}finally{D.current=!1,p(!1)}}},[n,c,l,i]),P=_||!j&&!T,K=_?a.jsxs(ce,{children:[a.jsx(G,{size:"huge"}),a.jsxs(de,{children:[a.jsx(ie,{variant:"h6",children:e("page.download.downloading")}),a.jsx(le,{children:a.jsx(pe,{})})]})]}):void 0;return a.jsx(we,{loading:P,backdropContent:K,osIcon:v,title:e("page.download.success.title"),subtitle:e("page.download.success.subtitle",{action:E}),steps:B,renderCardOverlay:(t,s)=>s===0&&E==="exploring"?a.jsx(ue,{}):null,footer:a.jsx(J,{variant:"body1",children:e("page.download.success.footer",{link:a.jsx("a",{href:M,onClick:F,"data-event":X.DOWNLOAD,children:e("page.download.success.footer_link_label")})})}),afterContent:a.jsx(ee,{})})});ye.displayName="DownloadSuccess";export{ye as DownloadSuccess};
@@ -1 +1 @@
1
- {"version":3,"file":"index-BY3JByxP.js","sources":["../../src/images/download/macos_launcher.webp","../../src/images/download/macos_launching_decentraland.webp","../../src/images/download/macos_recent_download.webp","../../src/images/download/windows_downloads_folder.webp","../../src/images/download/windows_launching_decentraland.webp","../../src/images/download/windows_setup.webp","../../src/pages/DownloadSuccess/DownloadSuccess.tsx"],"sourcesContent":["export default \"__VITE_ASSET__DStHG5Mc__\"","export default \"__VITE_ASSET__DWimWUWi__\"","export default \"__VITE_ASSET__vWVoSUUz__\"","export default \"__VITE_ASSET__DhYSbSkN__\"","export default \"__VITE_ASSET__BgHKSzHv__\"","export default \"__VITE_ASSET__BQKnEWYh__\"","import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useSearchParams } from 'react-router-dom'\nimport { useAnalytics, useTranslation } from '@dcl/hooks'\nimport { Logo, Typography } from 'decentraland-ui2'\nimport { LandingFooter } from '../../components/LandingFooter'\nimport { ANON_USER_ID_PARAM, useAnonUserId } from '../../hooks/useAnonUserId'\nimport { useGetIdentityId } from '../../hooks/useGetIdentityId'\nimport appleLogo from '../../images/apple-logo.svg'\nimport macOsLauncher from '../../images/download/macos_launcher.webp'\nimport macOsLaunchingDecentraland from '../../images/download/macos_launching_decentraland.webp'\nimport macOsRecentDownload from '../../images/download/macos_recent_download.webp'\nimport windowsDownloadsFolder from '../../images/download/windows_downloads_folder.webp'\nimport windowsLaunchingDecentraland from '../../images/download/windows_launching_decentraland.webp'\nimport windowsSetup from '../../images/download/windows_setup.webp'\nimport microsoftLogo from '../../images/microsoft-logo.svg'\nimport { calculateDownloadUrl, getDownloadLinkWithIdentity } from '../../modules/downloadWithIdentity'\nimport { triggerFileDownload } from '../../modules/file'\nimport { SectionViewedTrack, SegmentEvent } from '../../modules/segment'\nimport { FALLBACK_CDN_RELEASE_LINKS, addQueryParamsToUrlString } from '../../modules/url'\nimport { Architecture, OperativeSystem } from '../../types/download.types'\nimport { DownloadSuccessLayout } from './DownloadSuccessLayout'\nimport type { DownloadSuccessStep, DownloadSuccessStepsWithOs } from './DownloadSuccess.types'\nimport {\n DownloadBackdropContent,\n DownloadBackdropText,\n DownloadDetailContainer,\n DownloadProgressBar,\n DownloadProgressContainer,\n HighlightAnimation\n} from './DownloadSuccess.styled'\n\nconst VALID_ARCHS = new Set<string>(['amd64', 'arm64'])\nconst AUTO_DOWNLOAD_HISTORY_STATE_KEY = 'downloadSuccess:autoDownloadKey'\nconst AUTO_DOWNLOAD_SESSION_KEY = 'downloadSuccess:triggered'\n\nconst DownloadSuccess = memo(() => {\n const [searchParams] = useSearchParams()\n const { intl } = useTranslation()\n const { isInitialized, track } = useAnalytics()\n const getIdentityId = useGetIdentityId()\n const anonUserId = useAnonUserId()\n\n const [isDownloading, setIsDownloading] = useState(false)\n const [downloadError, setDownloadError] = useState<string | null>(null)\n const [isFileSaved, setIsFileSaved] = useState(false)\n const downloadingRef = useRef(false)\n const getIdentityIdRef = useRef(getIdentityId)\n const anonUserIdRef = useRef(anonUserId)\n const isInitializedRef = useRef(isInitialized)\n const trackRef = useRef(track)\n getIdentityIdRef.current = getIdentityId\n anonUserIdRef.current = anonUserId\n isInitializedRef.current = isInitialized\n trackRef.current = track\n\n const rawOs = searchParams.get('os') || ''\n const osMap: Record<string, OperativeSystem> = {\n windows: OperativeSystem.WINDOWS,\n macos: OperativeSystem.MACOS\n }\n const clientOS = osMap[rawOs.toLowerCase()] ?? OperativeSystem.MACOS\n const defaultArch = clientOS === OperativeSystem.WINDOWS ? 'amd64' : 'arm64'\n const rawArch = searchParams.get('arch') || defaultArch\n const clientArch = (VALID_ARCHS.has(rawArch) ? rawArch : defaultArch) as Architecture\n\n const osIcon = clientOS === OperativeSystem.WINDOWS ? microsoftLogo : appleLogo\n const osLink =\n clientOS === OperativeSystem.WINDOWS ? FALLBACK_CDN_RELEASE_LINKS[clientOS]?.amd64 : FALLBACK_CDN_RELEASE_LINKS[clientOS]?.[clientArch]\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const l = useCallback((id: string, values?: Record<string, any>) => intl.formatMessage({ id }, values), [intl])\n\n const productAction = l('page.download.success.subtitle_action_exploring') as string\n\n const steps: DownloadSuccessStepsWithOs = useMemo(() => {\n const spanTag = (chunks: React.ReactNode) => <span>{chunks}</span>\n\n return {\n [OperativeSystem.WINDOWS]: [\n {\n title: l('page.download.success.steps.windows.step1.title'),\n text: l('page.download.success.steps.windows.step1.text', { span: spanTag }),\n image: windowsDownloadsFolder\n },\n {\n title: l('page.download.success.steps.windows.step2.title'),\n text: l('page.download.success.steps.windows.step2.text', { span: spanTag }),\n image: windowsSetup\n },\n {\n title: l('page.download.success.steps.windows.step3.title'),\n text: l('page.download.success.steps.windows.step3.text', { span: spanTag }),\n image: windowsLaunchingDecentraland\n }\n ],\n [OperativeSystem.MACOS]: [\n {\n title: l('page.download.success.steps.macOS.step1.title'),\n text: l('page.download.success.steps.macOS.step1.text', { span: spanTag }),\n image: macOsRecentDownload\n },\n {\n title: l('page.download.success.steps.macOS.step2.title'),\n text: l('page.download.success.steps.macOS.step2.text', { span: spanTag }),\n image: macOsLauncher\n },\n {\n title: l('page.download.success.steps.macOS.step3.title'),\n text: l('page.download.success.steps.macOS.step3.text', { span: spanTag }),\n image: macOsLaunchingDecentraland\n }\n ]\n }\n }, [l])\n\n const currentSteps: DownloadSuccessStep[] = steps[clientOS] || steps[OperativeSystem.MACOS]\n\n useEffect(() => {\n let cancelled = false\n const autoDownloadKey = `${clientOS}:${clientArch}`\n\n const getHistoryState = (): Record<string, unknown> =>\n window.history.state && typeof window.history.state === 'object' ? (window.history.state as Record<string, unknown>) : {}\n\n const startDownload = async () => {\n const sessionKey = `${AUTO_DOWNLOAD_SESSION_KEY}:${autoDownloadKey}`\n if (sessionStorage.getItem(sessionKey)) {\n setIsFileSaved(true)\n return\n }\n\n const historyState = getHistoryState()\n\n if (historyState[AUTO_DOWNLOAD_HISTORY_STATE_KEY] === autoDownloadKey) {\n setIsFileSaved(true)\n return\n }\n\n setIsDownloading(true)\n setDownloadError(null)\n setIsFileSaved(false)\n\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_STARTED)\n }\n\n const { url, filename } = await calculateDownloadUrl({\n os: clientOS,\n arch: clientArch,\n fallbackLinks: FALLBACK_CDN_RELEASE_LINKS,\n getIdentityId: getIdentityIdRef.current\n })\n\n if (cancelled) return\n\n const latestHistoryState = getHistoryState()\n if (latestHistoryState[AUTO_DOWNLOAD_HISTORY_STATE_KEY] !== autoDownloadKey) {\n window.history.replaceState(\n {\n ...latestHistoryState,\n [AUTO_DOWNLOAD_HISTORY_STATE_KEY]: autoDownloadKey\n },\n '',\n window.location.href\n )\n }\n\n if (cancelled) return\n\n sessionStorage.setItem(sessionKey, '1')\n const downloadUrl = addQueryParamsToUrlString(url, { [ANON_USER_ID_PARAM]: anonUserIdRef.current })\n triggerFileDownload(downloadUrl)\n setIsFileSaved(true)\n\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_SUCCESS, { filename })\n }\n }\n\n startDownload()\n .catch(error => {\n if (cancelled) return\n console.error('Download error:', error)\n setDownloadError(error instanceof Error ? error.message : 'Download failed')\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_FAILED)\n }\n })\n .finally(() => {\n if (!cancelled) {\n setIsDownloading(false)\n }\n })\n\n return () => {\n cancelled = true\n }\n }, [clientOS, clientArch])\n\n const handleDownloadClick = useCallback(\n async (event: React.MouseEvent<HTMLAnchorElement>) => {\n event.preventDefault()\n if (downloadingRef.current) return\n downloadingRef.current = true\n setIsDownloading(true)\n\n try {\n await getDownloadLinkWithIdentity({\n os: clientOS,\n arch: clientArch,\n fallbackLinks: FALLBACK_CDN_RELEASE_LINKS,\n queryParams: { [ANON_USER_ID_PARAM]: anonUserId },\n getIdentityId\n })\n } catch (error) {\n console.error('Download error:', error)\n setDownloadError(error instanceof Error ? error.message : 'Download failed')\n } finally {\n downloadingRef.current = false\n setIsDownloading(false)\n }\n },\n [clientOS, clientArch, anonUserId, getIdentityId]\n )\n\n const showBackdrop = isDownloading || (!downloadError && !isFileSaved)\n\n const backdropContent = isDownloading ? (\n <DownloadBackdropContent>\n <Logo size=\"huge\" />\n <DownloadDetailContainer>\n <DownloadBackdropText variant=\"h6\">{l('page.download.downloading')}</DownloadBackdropText>\n <DownloadProgressContainer>\n <DownloadProgressBar />\n </DownloadProgressContainer>\n </DownloadDetailContainer>\n </DownloadBackdropContent>\n ) : undefined\n\n return (\n <DownloadSuccessLayout\n loading={showBackdrop}\n backdropContent={backdropContent}\n osIcon={osIcon}\n title={l('page.download.success.title')}\n subtitle={l('page.download.success.subtitle', { action: productAction })}\n steps={currentSteps}\n renderCardOverlay={(_step, index) => (index === 0 && productAction === 'exploring' ? <HighlightAnimation /> : null)}\n footer={\n <Typography variant=\"body1\">\n {l('page.download.success.footer', {\n link: (\n <a href={osLink} onClick={handleDownloadClick} data-event={SectionViewedTrack.DOWNLOAD}>\n {l('page.download.success.footer_link_label')}\n </a>\n )\n })}\n </Typography>\n }\n afterContent={<LandingFooter />}\n />\n )\n})\n\nDownloadSuccess.displayName = 'DownloadSuccess'\n\nexport { DownloadSuccess }\n"],"names":["macOsLauncher","macOsLaunchingDecentraland","macOsRecentDownload","windowsDownloadsFolder","windowsLaunchingDecentraland","windowsSetup","VALID_ARCHS","AUTO_DOWNLOAD_HISTORY_STATE_KEY","AUTO_DOWNLOAD_SESSION_KEY","DownloadSuccess","memo","searchParams","useSearchParams","intl","useTranslation","isInitialized","track","useAnalytics","getIdentityId","useGetIdentityId","anonUserId","useAnonUserId","isDownloading","setIsDownloading","useState","downloadError","setDownloadError","isFileSaved","setIsFileSaved","downloadingRef","useRef","getIdentityIdRef","anonUserIdRef","isInitializedRef","trackRef","rawOs","clientOS","OperativeSystem","defaultArch","rawArch","clientArch","osIcon","microsoftLogo","appleLogo","osLink","FALLBACK_CDN_RELEASE_LINKS","l","useCallback","id","values","productAction","steps","useMemo","spanTag","chunks","jsx","currentSteps","useEffect","cancelled","autoDownloadKey","getHistoryState","sessionKey","SegmentEvent","url","filename","calculateDownloadUrl","latestHistoryState","downloadUrl","addQueryParamsToUrlString","ANON_USER_ID_PARAM","triggerFileDownload","error","handleDownloadClick","event","getDownloadLinkWithIdentity","showBackdrop","backdropContent","jsxs","DownloadBackdropContent","Logo","DownloadDetailContainer","DownloadBackdropText","DownloadProgressContainer","DownloadProgressBar","DownloadSuccessLayout","_step","index","HighlightAnimation","Typography","SectionViewedTrack","LandingFooter"],"mappings":"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"}
1
+ {"version":3,"file":"index-DJdpP3iF.js","sources":["../../src/images/download/macos_launcher.webp","../../src/images/download/macos_launching_decentraland.webp","../../src/images/download/macos_recent_download.webp","../../src/images/download/windows_downloads_folder.webp","../../src/images/download/windows_launching_decentraland.webp","../../src/images/download/windows_setup.webp","../../src/pages/DownloadSuccess/DownloadSuccess.tsx"],"sourcesContent":["export default \"__VITE_ASSET__DStHG5Mc__\"","export default \"__VITE_ASSET__DWimWUWi__\"","export default \"__VITE_ASSET__vWVoSUUz__\"","export default \"__VITE_ASSET__DhYSbSkN__\"","export default \"__VITE_ASSET__BgHKSzHv__\"","export default \"__VITE_ASSET__BQKnEWYh__\"","import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useSearchParams } from 'react-router-dom'\nimport { useAnalytics, useTranslation } from '@dcl/hooks'\nimport { Logo, Typography } from 'decentraland-ui2'\nimport { LandingFooter } from '../../components/LandingFooter'\nimport { ANON_USER_ID_PARAM, useAnonUserId } from '../../hooks/useAnonUserId'\nimport { useGetIdentityId } from '../../hooks/useGetIdentityId'\nimport appleLogo from '../../images/apple-logo.svg'\nimport macOsLauncher from '../../images/download/macos_launcher.webp'\nimport macOsLaunchingDecentraland from '../../images/download/macos_launching_decentraland.webp'\nimport macOsRecentDownload from '../../images/download/macos_recent_download.webp'\nimport windowsDownloadsFolder from '../../images/download/windows_downloads_folder.webp'\nimport windowsLaunchingDecentraland from '../../images/download/windows_launching_decentraland.webp'\nimport windowsSetup from '../../images/download/windows_setup.webp'\nimport microsoftLogo from '../../images/microsoft-logo.svg'\nimport { calculateDownloadUrl, getDownloadLinkWithIdentity } from '../../modules/downloadWithIdentity'\nimport { triggerFileDownload } from '../../modules/file'\nimport { SectionViewedTrack, SegmentEvent } from '../../modules/segment'\nimport { FALLBACK_CDN_RELEASE_LINKS, addQueryParamsToUrlString } from '../../modules/url'\nimport { Architecture, OperativeSystem } from '../../types/download.types'\nimport { DownloadSuccessLayout } from './DownloadSuccessLayout'\nimport type { DownloadSuccessStep, DownloadSuccessStepsWithOs } from './DownloadSuccess.types'\nimport {\n DownloadBackdropContent,\n DownloadBackdropText,\n DownloadDetailContainer,\n DownloadProgressBar,\n DownloadProgressContainer,\n HighlightAnimation\n} from './DownloadSuccess.styled'\n\nconst VALID_ARCHS = new Set<string>(['amd64', 'arm64'])\nconst AUTO_DOWNLOAD_HISTORY_STATE_KEY = 'downloadSuccess:autoDownloadKey'\nconst AUTO_DOWNLOAD_SESSION_KEY = 'downloadSuccess:triggered'\n\nconst DownloadSuccess = memo(() => {\n const [searchParams] = useSearchParams()\n const { intl } = useTranslation()\n const { isInitialized, track } = useAnalytics()\n const getIdentityId = useGetIdentityId()\n const anonUserId = useAnonUserId()\n\n const [isDownloading, setIsDownloading] = useState(false)\n const [downloadError, setDownloadError] = useState<string | null>(null)\n const [isFileSaved, setIsFileSaved] = useState(false)\n const downloadingRef = useRef(false)\n const getIdentityIdRef = useRef(getIdentityId)\n const anonUserIdRef = useRef(anonUserId)\n const isInitializedRef = useRef(isInitialized)\n const trackRef = useRef(track)\n getIdentityIdRef.current = getIdentityId\n anonUserIdRef.current = anonUserId\n isInitializedRef.current = isInitialized\n trackRef.current = track\n\n const rawOs = searchParams.get('os') || ''\n const osMap: Record<string, OperativeSystem> = {\n windows: OperativeSystem.WINDOWS,\n macos: OperativeSystem.MACOS\n }\n const clientOS = osMap[rawOs.toLowerCase()] ?? OperativeSystem.MACOS\n const defaultArch = clientOS === OperativeSystem.WINDOWS ? 'amd64' : 'arm64'\n const rawArch = searchParams.get('arch') || defaultArch\n const clientArch = (VALID_ARCHS.has(rawArch) ? rawArch : defaultArch) as Architecture\n\n const osIcon = clientOS === OperativeSystem.WINDOWS ? microsoftLogo : appleLogo\n const osLink =\n clientOS === OperativeSystem.WINDOWS ? FALLBACK_CDN_RELEASE_LINKS[clientOS]?.amd64 : FALLBACK_CDN_RELEASE_LINKS[clientOS]?.[clientArch]\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const l = useCallback((id: string, values?: Record<string, any>) => intl.formatMessage({ id }, values), [intl])\n\n const productAction = l('page.download.success.subtitle_action_exploring') as string\n\n const steps: DownloadSuccessStepsWithOs = useMemo(() => {\n const spanTag = (chunks: React.ReactNode) => <span>{chunks}</span>\n\n return {\n [OperativeSystem.WINDOWS]: [\n {\n title: l('page.download.success.steps.windows.step1.title'),\n text: l('page.download.success.steps.windows.step1.text', { span: spanTag }),\n image: windowsDownloadsFolder\n },\n {\n title: l('page.download.success.steps.windows.step2.title'),\n text: l('page.download.success.steps.windows.step2.text', { span: spanTag }),\n image: windowsSetup\n },\n {\n title: l('page.download.success.steps.windows.step3.title'),\n text: l('page.download.success.steps.windows.step3.text', { span: spanTag }),\n image: windowsLaunchingDecentraland\n }\n ],\n [OperativeSystem.MACOS]: [\n {\n title: l('page.download.success.steps.macOS.step1.title'),\n text: l('page.download.success.steps.macOS.step1.text', { span: spanTag }),\n image: macOsRecentDownload\n },\n {\n title: l('page.download.success.steps.macOS.step2.title'),\n text: l('page.download.success.steps.macOS.step2.text', { span: spanTag }),\n image: macOsLauncher\n },\n {\n title: l('page.download.success.steps.macOS.step3.title'),\n text: l('page.download.success.steps.macOS.step3.text', { span: spanTag }),\n image: macOsLaunchingDecentraland\n }\n ]\n }\n }, [l])\n\n const currentSteps: DownloadSuccessStep[] = steps[clientOS] || steps[OperativeSystem.MACOS]\n\n useEffect(() => {\n let cancelled = false\n const autoDownloadKey = `${clientOS}:${clientArch}`\n\n const getHistoryState = (): Record<string, unknown> =>\n window.history.state && typeof window.history.state === 'object' ? (window.history.state as Record<string, unknown>) : {}\n\n const startDownload = async () => {\n const sessionKey = `${AUTO_DOWNLOAD_SESSION_KEY}:${autoDownloadKey}`\n if (sessionStorage.getItem(sessionKey)) {\n setIsFileSaved(true)\n return\n }\n\n const historyState = getHistoryState()\n\n if (historyState[AUTO_DOWNLOAD_HISTORY_STATE_KEY] === autoDownloadKey) {\n setIsFileSaved(true)\n return\n }\n\n setIsDownloading(true)\n setDownloadError(null)\n setIsFileSaved(false)\n\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_STARTED)\n }\n\n const { url, filename } = await calculateDownloadUrl({\n os: clientOS,\n arch: clientArch,\n fallbackLinks: FALLBACK_CDN_RELEASE_LINKS,\n getIdentityId: getIdentityIdRef.current\n })\n\n if (cancelled) return\n\n const latestHistoryState = getHistoryState()\n if (latestHistoryState[AUTO_DOWNLOAD_HISTORY_STATE_KEY] !== autoDownloadKey) {\n window.history.replaceState(\n {\n ...latestHistoryState,\n [AUTO_DOWNLOAD_HISTORY_STATE_KEY]: autoDownloadKey\n },\n '',\n window.location.href\n )\n }\n\n if (cancelled) return\n\n sessionStorage.setItem(sessionKey, '1')\n const downloadUrl = addQueryParamsToUrlString(url, { [ANON_USER_ID_PARAM]: anonUserIdRef.current })\n triggerFileDownload(downloadUrl)\n setIsFileSaved(true)\n\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_SUCCESS, { filename })\n }\n }\n\n startDownload()\n .catch(error => {\n if (cancelled) return\n console.error('Download error:', error)\n setDownloadError(error instanceof Error ? error.message : 'Download failed')\n if (isInitializedRef.current) {\n trackRef.current(SegmentEvent.DOWNLOAD_FAILED)\n }\n })\n .finally(() => {\n if (!cancelled) {\n setIsDownloading(false)\n }\n })\n\n return () => {\n cancelled = true\n }\n }, [clientOS, clientArch])\n\n const handleDownloadClick = useCallback(\n async (event: React.MouseEvent<HTMLAnchorElement>) => {\n event.preventDefault()\n if (downloadingRef.current) return\n downloadingRef.current = true\n setIsDownloading(true)\n\n try {\n await getDownloadLinkWithIdentity({\n os: clientOS,\n arch: clientArch,\n fallbackLinks: FALLBACK_CDN_RELEASE_LINKS,\n queryParams: { [ANON_USER_ID_PARAM]: anonUserId },\n getIdentityId\n })\n } catch (error) {\n console.error('Download error:', error)\n setDownloadError(error instanceof Error ? error.message : 'Download failed')\n } finally {\n downloadingRef.current = false\n setIsDownloading(false)\n }\n },\n [clientOS, clientArch, anonUserId, getIdentityId]\n )\n\n const showBackdrop = isDownloading || (!downloadError && !isFileSaved)\n\n const backdropContent = isDownloading ? (\n <DownloadBackdropContent>\n <Logo size=\"huge\" />\n <DownloadDetailContainer>\n <DownloadBackdropText variant=\"h6\">{l('page.download.downloading')}</DownloadBackdropText>\n <DownloadProgressContainer>\n <DownloadProgressBar />\n </DownloadProgressContainer>\n </DownloadDetailContainer>\n </DownloadBackdropContent>\n ) : undefined\n\n return (\n <DownloadSuccessLayout\n loading={showBackdrop}\n backdropContent={backdropContent}\n osIcon={osIcon}\n title={l('page.download.success.title')}\n subtitle={l('page.download.success.subtitle', { action: productAction })}\n steps={currentSteps}\n renderCardOverlay={(_step, index) => (index === 0 && productAction === 'exploring' ? <HighlightAnimation /> : null)}\n footer={\n <Typography variant=\"body1\">\n {l('page.download.success.footer', {\n link: (\n <a href={osLink} onClick={handleDownloadClick} data-event={SectionViewedTrack.DOWNLOAD}>\n {l('page.download.success.footer_link_label')}\n </a>\n )\n })}\n </Typography>\n }\n afterContent={<LandingFooter />}\n />\n )\n})\n\nDownloadSuccess.displayName = 'DownloadSuccess'\n\nexport { DownloadSuccess }\n"],"names":["macOsLauncher","macOsLaunchingDecentraland","macOsRecentDownload","windowsDownloadsFolder","windowsLaunchingDecentraland","windowsSetup","VALID_ARCHS","AUTO_DOWNLOAD_HISTORY_STATE_KEY","AUTO_DOWNLOAD_SESSION_KEY","DownloadSuccess","memo","searchParams","useSearchParams","intl","useTranslation","isInitialized","track","useAnalytics","getIdentityId","useGetIdentityId","anonUserId","useAnonUserId","isDownloading","setIsDownloading","useState","downloadError","setDownloadError","isFileSaved","setIsFileSaved","downloadingRef","useRef","getIdentityIdRef","anonUserIdRef","isInitializedRef","trackRef","rawOs","clientOS","OperativeSystem","defaultArch","rawArch","clientArch","osIcon","microsoftLogo","appleLogo","osLink","FALLBACK_CDN_RELEASE_LINKS","l","useCallback","id","values","productAction","steps","useMemo","spanTag","chunks","jsx","currentSteps","useEffect","cancelled","autoDownloadKey","getHistoryState","sessionKey","SegmentEvent","url","filename","calculateDownloadUrl","latestHistoryState","downloadUrl","addQueryParamsToUrlString","ANON_USER_ID_PARAM","triggerFileDownload","error","handleDownloadClick","event","getDownloadLinkWithIdentity","showBackdrop","backdropContent","jsxs","DownloadBackdropContent","Logo","DownloadDetailContainer","DownloadBackdropText","DownloadProgressContainer","DownloadProgressBar","DownloadSuccessLayout","_step","index","HighlightAnimation","Typography","SectionViewedTrack","LandingFooter"],"mappings":"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"}