@dcl/landing-site 0.5.1-24801915635.commit-87136d4 → 0.5.1-24803483354.commit-bb6520e
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.
- package/assets/{AccessTime-BWYr2GAR.js → AccessTime-DpsycoTx.js} +1 -1
- package/assets/{AccessTime-BWYr2GAR.js.map → AccessTime-DpsycoTx.js.map} +1 -1
- package/assets/{Add-CFG384eO.js → Add-CtUiG6Qa.js} +1 -1
- package/assets/{Add-CFG384eO.js.map → Add-CtUiG6Qa.js.map} +1 -1
- package/assets/{AdminLayout.styled-CY2ZUSCu.js → AdminLayout.styled-nMbBrmih.js} +1 -1
- package/assets/{AdminLayout.styled-CY2ZUSCu.js.map → AdminLayout.styled-nMbBrmih.js.map} +1 -1
- package/assets/{AnimatedBackground-BoyiQsN4.js → AnimatedBackground-CO__t7bG.js} +2 -2
- package/assets/{AnimatedBackground-BoyiQsN4.js.map → AnimatedBackground-CO__t7bG.js.map} +1 -1
- package/assets/{AnimatedSection-BWenmPvj.js → AnimatedSection-CpvtnDxq.js} +1 -1
- package/assets/{AnimatedSection-BWenmPvj.js.map → AnimatedSection-CpvtnDxq.js.map} +1 -1
- package/assets/{ArrowBackIosNew-DnNkUGim.js → ArrowBackIosNew-Dvsk5ZUT.js} +1 -1
- package/assets/{ArrowBackIosNew-DnNkUGim.js.map → ArrowBackIosNew-Dvsk5ZUT.js.map} +1 -1
- package/assets/{AuthorPage-Crlea8ve.js → AuthorPage-Bpt5CD2Q.js} +1 -1
- package/assets/{AuthorPage-Crlea8ve.js.map → AuthorPage-Bpt5CD2Q.js.map} +1 -1
- package/assets/{Avatar-DED0doms.js → Avatar-DM27A1Qp.js} +1 -1
- package/assets/{Avatar-DED0doms.js.map → Avatar-DM27A1Qp.js.map} +1 -1
- package/assets/{AvatarFace-Ee29FqSG.js → AvatarFace-L7ktQqoW.js} +1 -1
- package/assets/{AvatarFace-Ee29FqSG.js.map → AvatarFace-L7ktQqoW.js.map} +1 -1
- package/assets/{Badges-CfDzFfSq.js → Badges-Cfdyl8RH.js} +1 -1
- package/assets/{Badges-CfDzFfSq.js.map → Badges-Cfdyl8RH.js.map} +1 -1
- package/assets/{BlogLayout-l22xG2dq.js → BlogLayout-C4txjesH.js} +1 -1
- package/assets/{BlogLayout-l22xG2dq.js.map → BlogLayout-C4txjesH.js.map} +1 -1
- package/assets/{BlogPage-D4ICclt5.js → BlogPage-Ck61T45y.js} +1 -1
- package/assets/{BlogPage-D4ICclt5.js.map → BlogPage-Ck61T45y.js.map} +1 -1
- package/assets/{CTAButton-7wTVBC5v.js → CTAButton-CFiXuCIG.js} +1 -1
- package/assets/{CTAButton-7wTVBC5v.js.map → CTAButton-CFiXuCIG.js.map} +1 -1
- package/assets/{CardContent-BzuGH0ak.js → CardContent-BmJC2B1l.js} +1 -1
- package/assets/{CardContent-BzuGH0ak.js.map → CardContent-BmJC2B1l.js.map} +1 -1
- package/assets/{CardMedia-B1K82r_f.js → CardMedia-BvzeWU4S.js} +1 -1
- package/assets/{CardMedia-B1K82r_f.js.map → CardMedia-BvzeWU4S.js.map} +1 -1
- package/assets/{Carousel-UFnW5JP2.js → Carousel-ByC5ldRJ.js} +1 -1
- package/assets/{Carousel-UFnW5JP2.js.map → Carousel-ByC5ldRJ.js.map} +1 -1
- package/assets/{CategoryPage-BwyuJWwW.js → CategoryPage-BqkILV2z.js} +1 -1
- package/assets/{CategoryPage-BwyuJWwW.js.map → CategoryPage-BqkILV2z.js.map} +1 -1
- package/assets/{Check-DCv15P2C.js → Check-BOF4_DCU.js} +1 -1
- package/assets/{Check-DCv15P2C.js.map → Check-BOF4_DCU.js.map} +1 -1
- package/assets/{CircleAndArrow-oEkez2p7.js → CircleAndArrow-El01hGIC.js} +1 -1
- package/assets/{CircleAndArrow-oEkez2p7.js.map → CircleAndArrow-El01hGIC.js.map} +1 -1
- package/assets/{CircularProgress-dSnthF0O.js → CircularProgress-D1x03AKQ.js} +1 -1
- package/assets/{CircularProgress-dSnthF0O.js.map → CircularProgress-D1x03AKQ.js.map} +1 -1
- package/assets/{ContentCopy-DaBTgiLz.js → ContentCopy-C4kDxda3.js} +1 -1
- package/assets/{ContentCopy-DaBTgiLz.js.map → ContentCopy-C4kDxda3.js.map} +1 -1
- package/assets/{CreateEventPage-9IG12LX4.js → CreateEventPage-ZOlXojoA.js} +1 -1
- package/assets/{CreateEventPage-9IG12LX4.js.map → CreateEventPage-ZOlXojoA.js.map} +1 -1
- package/assets/{CreatorHubDownload-Dwd_an_K.js → CreatorHubDownload-D_CBz7M3.js} +1 -1
- package/assets/{CreatorHubDownload-Dwd_an_K.js.map → CreatorHubDownload-D_CBz7M3.js.map} +1 -1
- package/assets/{CreatorHubDownloadSuccess-BjtNdySU.js → CreatorHubDownloadSuccess-B5QI-fsj.js} +1 -1
- package/assets/{CreatorHubDownloadSuccess-BjtNdySU.js.map → CreatorHubDownloadSuccess-B5QI-fsj.js.map} +1 -1
- package/assets/{DappsShell-CzTGZvLz.js → DappsShell-BC3H8ts9.js} +1 -1
- package/assets/{DappsShell-CzTGZvLz.js.map → DappsShell-BC3H8ts9.js.map} +1 -1
- package/assets/{DownloadSuccessLayout-DW9wmMeO.js → DownloadSuccessLayout-DUmT7uWX.js} +1 -1
- package/assets/{DownloadSuccessLayout-DW9wmMeO.js.map → DownloadSuccessLayout-DUmT7uWX.js.map} +1 -1
- package/assets/{EventsPage-DXGC1CFM.js → EventsPage-C9kUjKcs.js} +1 -1
- package/assets/{EventsPage-DXGC1CFM.js.map → EventsPage-C9kUjKcs.js.map} +1 -1
- package/assets/{FutureCard-mqQIzWfk.js → FutureCard-WKBFz6qp.js} +1 -1
- package/assets/{FutureCard-mqQIzWfk.js.map → FutureCard-WKBFz6qp.js.map} +1 -1
- package/assets/{Grow-CmMhBdOc.js → Grow-BxJOb7Ur.js} +1 -1
- package/assets/{Grow-CmMhBdOc.js.map → Grow-BxJOb7Ur.js.map} +1 -1
- package/assets/HomePage-CUPFKRVr.js +1 -0
- package/assets/{HomePage-DY2M8d6S.js.map → HomePage-CUPFKRVr.js.map} +1 -1
- package/assets/{InvalidPage-CvMtUP8S.js → InvalidPage-Bzsjkjz7.js} +1 -1
- package/assets/{InvalidPage-CvMtUP8S.js.map → InvalidPage-Bzsjkjz7.js.map} +1 -1
- package/assets/{InviteFaqs-BI7Q9WKu.js → InviteFaqs-D5mF7omx.js} +1 -1
- package/assets/{InviteFaqs-BI7Q9WKu.js.map → InviteFaqs-D5mF7omx.js.map} +1 -1
- package/assets/{InvitePage-Cs-XEvkP.js → InvitePage-BpKnAj4V.js} +2 -2
- package/assets/{InvitePage-Cs-XEvkP.js.map → InvitePage-BpKnAj4V.js.map} +1 -1
- package/assets/{JumpInButton-CvEN49xj.js → JumpInButton-CqKycSau.js} +1 -1
- package/assets/{JumpInButton-CvEN49xj.js.map → JumpInButton-CqKycSau.js.map} +1 -1
- package/assets/{JumpInIcon-Og6M0zmn.js → JumpInIcon-ZOn0wOk1.js} +1 -1
- package/assets/{JumpInIcon-Og6M0zmn.js.map → JumpInIcon-ZOn0wOk1.js.map} +1 -1
- package/assets/{KeyboardArrowRight-aEipAwza.js → KeyboardArrowRight-BYjm2LN-.js} +1 -1
- package/assets/{KeyboardArrowRight-aEipAwza.js.map → KeyboardArrowRight-BYjm2LN-.js.map} +1 -1
- package/assets/{LegacyEventRedirect-BL4YNcDr.js → LegacyEventRedirect-dCzyDptD.js} +1 -1
- package/assets/{LegacyEventRedirect-BL4YNcDr.js.map → LegacyEventRedirect-dCzyDptD.js.map} +1 -1
- package/assets/{LegalPageLayout-BdpOQUHl.js → LegalPageLayout-DINPtlgk.js} +1 -1
- package/assets/{LegalPageLayout-BdpOQUHl.js.map → LegalPageLayout-DINPtlgk.js.map} +1 -1
- package/assets/{Link-CuzG1Wyx.js → Link-lvNSZJho.js} +1 -1
- package/assets/{Link-CuzG1Wyx.js.map → Link-lvNSZJho.js.map} +1 -1
- package/assets/{MenuItem-q0AiDW5X.js → MenuItem-duRqfCJq.js} +1 -1
- package/assets/{MenuItem-q0AiDW5X.js.map → MenuItem-duRqfCJq.js.map} +1 -1
- package/assets/{PageContainer.styled-f6kPBP5p.js → PageContainer.styled-Bbv_6rIn.js} +1 -1
- package/assets/{PageContainer.styled-f6kPBP5p.js.map → PageContainer.styled-Bbv_6rIn.js.map} +1 -1
- package/assets/{Paper-BN5onZaS.js → Paper-CaFKxPzv.js} +1 -1
- package/assets/{Paper-BN5onZaS.js.map → Paper-CaFKxPzv.js.map} +1 -1
- package/assets/{PendingEventsPage-DrsBQAUB.js → PendingEventsPage-CM3liVzS.js} +1 -1
- package/assets/{PendingEventsPage-DrsBQAUB.js.map → PendingEventsPage-CM3liVzS.js.map} +1 -1
- package/assets/{PlacesPage-CqwRrJhb.js → PlacesPage-Btx40VGe.js} +1 -1
- package/assets/{PlacesPage-CqwRrJhb.js.map → PlacesPage-Btx40VGe.js.map} +1 -1
- package/assets/{PostCard-DtBejQ1J.js → PostCard-SDZ_3aVu.js} +1 -1
- package/assets/{PostCard-DtBejQ1J.js.map → PostCard-SDZ_3aVu.js.map} +1 -1
- package/assets/{PostPage-B0Q_9fDS.js → PostPage-D9faiVAT.js} +1 -1
- package/assets/{PostPage-B0Q_9fDS.js.map → PostPage-D9faiVAT.js.map} +1 -1
- package/assets/{PostPage.styled-OnV-8RSg.js → PostPage.styled-CzIG7Tl3.js} +3 -3
- package/assets/{PostPage.styled-OnV-8RSg.js.map → PostPage.styled-CzIG7Tl3.js.map} +1 -1
- package/assets/{PreviewPage-BuQyTF5g.js → PreviewPage-CF-KNgQh.js} +1 -1
- package/assets/{PreviewPage-BuQyTF5g.js.map → PreviewPage-CF-KNgQh.js.map} +1 -1
- package/assets/{RemindMeButton-CN-qVReD.js → RemindMeButton-BtxpQEzy.js} +1 -1
- package/assets/{RemindMeButton-CN-qVReD.js.map → RemindMeButton-BtxpQEzy.js.map} +1 -1
- package/assets/{SEO-B3dLT1aM.js → SEO-B1EK7Y3P.js} +1 -1
- package/assets/{SEO-B3dLT1aM.js.map → SEO-B1EK7Y3P.js.map} +1 -1
- package/assets/{SearchPage-DGxZ1mj8.js → SearchPage-B4wICXqh.js} +1 -1
- package/assets/{SearchPage-DGxZ1mj8.js.map → SearchPage-B4wICXqh.js.map} +1 -1
- package/assets/{SignInRedirect-CGw4Owdj.js → SignInRedirect-CFIlTqwD.js} +1 -1
- package/assets/{SignInRedirect-CGw4Owdj.js.map → SignInRedirect-CFIlTqwD.js.map} +1 -1
- package/assets/{SignInRedirect-0ad8vtCc.js → SignInRedirect-DunroI2V.js} +1 -1
- package/assets/{SignInRedirect-0ad8vtCc.js.map → SignInRedirect-DunroI2V.js.map} +1 -1
- package/assets/{Skeleton-BXGNx4su.js → Skeleton-iNlScP9H.js} +1 -1
- package/assets/{Skeleton-BXGNx4su.js.map → Skeleton-iNlScP9H.js.map} +1 -1
- package/assets/{TextField-DZjOoNSY.js → TextField-DpWq-ZfM.js} +1 -1
- package/assets/{TextField-DZjOoNSY.js.map → TextField-DpWq-ZfM.js.map} +1 -1
- package/assets/{Tooltip-C_ow4vqT.js → Tooltip-Kem9dSAd.js} +1 -1
- package/assets/{Tooltip-C_ow4vqT.js.map → Tooltip-Kem9dSAd.js.map} +1 -1
- package/assets/{TwitterEmbed-CnJs5KdX.js → TwitterEmbed-BRI3ivet.js} +1 -1
- package/assets/{TwitterEmbed-CnJs5KdX.js.map → TwitterEmbed-BRI3ivet.js.map} +1 -1
- package/assets/{UsersAdminPage-DoXq9lMl.js → UsersAdminPage-Bv_kpY6k.js} +1 -1
- package/assets/{UsersAdminPage-DoXq9lMl.js.map → UsersAdminPage-Bv_kpY6k.js.map} +1 -1
- package/assets/{Video-Bogaatxf.js → Video-CKs5_Z0w.js} +1 -1
- package/assets/{Video-Bogaatxf.js.map → Video-CKs5_Z0w.js.map} +1 -1
- package/assets/WearablePreview-Bca5KMOK.js +4 -0
- package/assets/{WearablePreview-hxPLI1eL.js.map → WearablePreview-Bca5KMOK.js.map} +1 -1
- package/assets/{WhatsOnLayout-D-p-xcM1.js → WhatsOnLayout-BiKCXvlg.js} +1 -1
- package/assets/{WhatsOnLayout-D-p-xcM1.js.map → WhatsOnLayout-BiKCXvlg.js.map} +1 -1
- package/assets/{admin.client-69_utPoG.js → admin.client-BVloTpEY.js} +1 -1
- package/assets/{admin.client-69_utPoG.js.map → admin.client-BVloTpEY.js.map} +1 -1
- package/assets/{auto-track-ByrvIGFg.js → auto-track-DNEnayEP.js} +1 -1
- package/assets/{auto-track-ByrvIGFg.js.map → auto-track-DNEnayEP.js.map} +1 -1
- package/assets/{ccip-DaSN34ba.js → ccip-BhHvKQc6.js} +1 -1
- package/assets/{ccip-DaSN34ba.js.map → ccip-BhHvKQc6.js.map} +1 -1
- package/assets/{createSvgIcon-BV0NE246.js → createSvgIcon-B2OEoWjD.js} +1 -1
- package/assets/{createSvgIcon-BV0NE246.js.map → createSvgIcon-B2OEoWjD.js.map} +1 -1
- package/assets/{download-Cr9yORsL.js → download-BJW25sds.js} +2 -2
- package/assets/{download-Cr9yORsL.js.map → download-BJW25sds.js.map} +1 -1
- package/assets/{downloadWithIdentity-CryFPoBm.js → downloadWithIdentity-COI7bkOD.js} +1 -1
- package/assets/{downloadWithIdentity-CryFPoBm.js.map → downloadWithIdentity-COI7bkOD.js.map} +1 -1
- package/assets/{events.client-DNbyuh_1.js → events.client-By7Zddj9.js} +1 -1
- package/assets/{events.client-DNbyuh_1.js.map → events.client-By7Zddj9.js.map} +1 -1
- package/assets/{index-CAPOcchZ.js → index-B-X7xo-v.js} +1 -1
- package/assets/{index-CAPOcchZ.js.map → index-B-X7xo-v.js.map} +1 -1
- package/assets/{index-C-Xnr_3y.js → index-B3_NlVHL.js} +1 -1
- package/assets/{index-C-Xnr_3y.js.map → index-B3_NlVHL.js.map} +1 -1
- package/assets/{index-Cz20PkgD.js → index-B7GlY0il.js} +1 -1
- package/assets/{index-Cz20PkgD.js.map → index-B7GlY0il.js.map} +1 -1
- package/assets/{index-Dl0FqTVc.js → index-BDx-bY1l.js} +2 -2
- package/assets/{index-Dl0FqTVc.js.map → index-BDx-bY1l.js.map} +1 -1
- package/assets/{index-BG9nZVgT.js → index-BEU_7_ne.js} +1 -1
- package/assets/{index-BG9nZVgT.js.map → index-BEU_7_ne.js.map} +1 -1
- package/assets/{index-Cg55GENv.js → index-BM3mFwuT.js} +1 -1
- package/assets/{index-Cg55GENv.js.map → index-BM3mFwuT.js.map} +1 -1
- package/assets/{index-C9bFoDdH.js → index-BRm9VGyh.js} +1 -1
- package/assets/{index-C9bFoDdH.js.map → index-BRm9VGyh.js.map} +1 -1
- package/assets/{index-2k-GaKcj.js → index-BbM07Zad.js} +1 -1
- package/assets/{index-2k-GaKcj.js.map → index-BbM07Zad.js.map} +1 -1
- package/assets/{index-DJDzXQRF.js → index-BqjJBRSi.js} +1 -1
- package/assets/{index-DJDzXQRF.js.map → index-BqjJBRSi.js.map} +1 -1
- package/assets/{index-BkoR9vhD.js → index-Bu59k1qI.js} +1 -1
- package/assets/{index-BkoR9vhD.js.map → index-Bu59k1qI.js.map} +1 -1
- package/assets/{index-B5c5JDjS.js → index-CCJh3g39.js} +1 -1
- package/assets/{index-B5c5JDjS.js.map → index-CCJh3g39.js.map} +1 -1
- package/assets/{index-BQ5rEWHF.js → index-CbJkiIwc.js} +1 -1
- package/assets/{index-BQ5rEWHF.js.map → index-CbJkiIwc.js.map} +1 -1
- package/assets/{index-CxzJS4Vc.js → index-Cec4TfYr.js} +1 -1
- package/assets/{index-CxzJS4Vc.js.map → index-Cec4TfYr.js.map} +1 -1
- package/assets/{index-DmkVq8v_.js → index-D9krZGYy.js} +3 -3
- package/assets/{index-DmkVq8v_.js.map → index-D9krZGYy.js.map} +1 -1
- package/assets/{index-Bi8qoRd-.js → index-DErVyQiP.js} +1 -1
- package/assets/{index-Bi8qoRd-.js.map → index-DErVyQiP.js.map} +1 -1
- package/assets/{index-CwDp9CBB.js → index-DOEJnoYg.js} +1 -1
- package/assets/{index-CwDp9CBB.js.map → index-DOEJnoYg.js.map} +1 -1
- package/assets/index-Dg4AWVL8.js +1 -0
- package/assets/{index-DGmH-ysI.js.map → index-Dg4AWVL8.js.map} +1 -1
- package/assets/{index-DuX24G0c.js → index-Ds3h83Za.js} +1 -1
- package/assets/{index-DuX24G0c.js.map → index-Ds3h83Za.js.map} +1 -1
- package/assets/{index-QckGfQAK.js → index-DsKNeH7X.js} +1 -1
- package/assets/{index-QckGfQAK.js.map → index-DsKNeH7X.js.map} +1 -1
- package/assets/{index-Czz8_BrM.js → index-DskznNlR.js} +1 -1
- package/assets/{index-Czz8_BrM.js.map → index-DskznNlR.js.map} +1 -1
- package/assets/{index-DOrgcpTG.js → index-DukWSxvV.js} +1 -1
- package/assets/{index-DOrgcpTG.js.map → index-DukWSxvV.js.map} +1 -1
- package/assets/{index-BbedTLdT.js → index-DvT2DV5d.js} +1 -1
- package/assets/{index-BbedTLdT.js.map → index-DvT2DV5d.js.map} +1 -1
- package/assets/{index-BnMiub37.js → index-DytFFz4y.js} +3 -3
- package/assets/{index-BnMiub37.js.map → index-DytFFz4y.js.map} +1 -1
- package/assets/{index-C9gNf008.js → index-PzH_zo30.js} +1 -1
- package/assets/{index-C9gNf008.js.map → index-PzH_zo30.js.map} +1 -1
- package/assets/{index-DaWf6OjB.js → index-TNlEMSkO.js} +1 -1
- package/assets/{index-DaWf6OjB.js.map → index-TNlEMSkO.js.map} +1 -1
- package/assets/{index--N_IrCtr.js → index-XmZQan5Q.js} +1 -1
- package/assets/{index--N_IrCtr.js.map → index-XmZQan5Q.js.map} +1 -1
- package/assets/{index-CXj_npkD.js → index-aBiQGEwK.js} +1 -1
- package/assets/{index-CXj_npkD.js.map → index-aBiQGEwK.js.map} +1 -1
- package/assets/{index-CY1IHITi.js → index-ch8SCHpn.js} +1 -1
- package/assets/{index-CY1IHITi.js.map → index-ch8SCHpn.js.map} +1 -1
- package/assets/{index-SBWxRPs2.js → index-eL7TPZy3.js} +1 -1
- package/assets/{index-SBWxRPs2.js.map → index-eL7TPZy3.js.map} +1 -1
- package/assets/{index-DS5m8QZD.js → index-gJ1MOEiZ.js} +3 -3
- package/assets/{index-DS5m8QZD.js.map → index-gJ1MOEiZ.js.map} +1 -1
- package/assets/{index-ofRvH6xb.js → index-h1t0zAy8.js} +1 -1
- package/assets/{index-ofRvH6xb.js.map → index-h1t0zAy8.js.map} +1 -1
- package/assets/{index-YFZGd0WN.js → index-tw_cdOWS.js} +1 -1
- package/assets/{index-YFZGd0WN.js.map → index-tw_cdOWS.js.map} +1 -1
- package/assets/{profile.client-DxfSKyHh.js → profile.client-BhwopOt8.js} +1 -1
- package/assets/{profile.client-DxfSKyHh.js.map → profile.client-BhwopOt8.js.map} +1 -1
- package/assets/{shared.styled-dRRPahQx.js → shared.styled-CwLQaYli.js} +1 -1
- package/assets/{shared.styled-dRRPahQx.js.map → shared.styled-CwLQaYli.js.map} +1 -1
- package/assets/{signedFetch-DgKT0E5F.js → signedFetch-BH66xky9.js} +1 -1
- package/assets/{signedFetch-DgKT0E5F.js.map → signedFetch-BH66xky9.js.map} +1 -1
- package/assets/{store-DsmuEIVG.js → store-CyqSuDHi.js} +1 -1
- package/assets/{store-DsmuEIVG.js.map → store-CyqSuDHi.js.map} +1 -1
- package/assets/{url-DvVUBDwX.js → url-D90migVD.js} +1 -1
- package/assets/{url-DvVUBDwX.js.map → url-D90migVD.js.map} +1 -1
- package/assets/{useAdminPermissions-S_8vCKy7.js → useAdminPermissions-CkjK7NYZ.js} +1 -1
- package/assets/{useAdminPermissions-S_8vCKy7.js.map → useAdminPermissions-CkjK7NYZ.js.map} +1 -1
- package/assets/{useAuthIdentity-DNG19Dc1.js → useAuthIdentity-B6QSalIu.js} +1 -1
- package/assets/{useAuthIdentity-DNG19Dc1.js.map → useAuthIdentity-B6QSalIu.js.map} +1 -1
- package/assets/{useCreatorHubDownload-D-adKeVX.js → useCreatorHubDownload-Cqo_jiD_.js} +1 -1
- package/assets/{useCreatorHubDownload-D-adKeVX.js.map → useCreatorHubDownload-Cqo_jiD_.js.map} +1 -1
- package/assets/{useInfiniteBlogPosts-BRPFJd7e.js → useInfiniteBlogPosts-DJkZrrll.js} +1 -1
- package/assets/{useInfiniteBlogPosts-BRPFJd7e.js.map → useInfiniteBlogPosts-DJkZrrll.js.map} +1 -1
- package/assets/{useManaBalances.impl-CTRm_cU2.js → useManaBalances.impl-CnS1IZqg.js} +3 -3
- package/assets/{useManaBalances.impl-CTRm_cU2.js.map → useManaBalances.impl-CnS1IZqg.js.map} +1 -1
- package/assets/{useProfileAvatar-DdsW3Rqc.js → useProfileAvatar-C_W2tZIS.js} +1 -1
- package/assets/{useProfileAvatar-DdsW3Rqc.js.map → useProfileAvatar-C_W2tZIS.js.map} +1 -1
- package/assets/{useSlot-DK1Xlr5t.js → useSlot-8XCS788i.js} +1 -1
- package/assets/{useSlot-DK1Xlr5t.js.map → useSlot-8XCS788i.js.map} +1 -1
- package/assets/{utils-DgwYz4_p.js → utils-CNAAosuZ.js} +1 -1
- package/assets/{utils-DgwYz4_p.js.map → utils-CNAAosuZ.js.map} +1 -1
- package/index.html +15 -15
- package/package.json +3 -3
- package/assets/HomePage-DY2M8d6S.js +0 -1
- package/assets/WearablePreview-hxPLI1eL.js +0 -4
- package/assets/index-DGmH-ysI.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,s as o,x as W,aN as B,an as E,aj as H,a1 as c,U as R}from"./index-DmkVq8v_.js";import{r as i}from"./vendor-router-D7SOoytt.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-crypto-CXsBIwXr.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-DCdewyWN.js";import"./vendor-intl-D2lXWsDp.js";const Z=[{name:"Discord",url:"https://dcl.gg/discord"},{name:"GitHub",url:"https://github.com/decentraland"},{name:"X",url:"https://x.com/decentraland"},{name:"Instagram",url:"https://instagram.com/decentraland_foundation/"},{name:"YouTube",url:"https://youtube.com/@decentraland_foundation"},{name:"TikTok",url:"https://tiktok.com/@decentraland_fdn"},{name:"LinkedIn",url:"https://linkedin.com/company/decentralandorg"}],L=[{labelKey:"component.landing.footer.getting_started.what_is",url:"https://docs.decentraland.org/introduction/about-decentraland"},{labelKey:"component.landing.footer.getting_started.download",url:"/download"},{labelKey:"component.landing.footer.getting_started.system_requirements",url:"https://docs.decentraland.org/in-world/settings-and-performance"},{labelKey:"component.landing.footer.getting_started.faqs",url:"https://docs.decentraland.org/faqs/decentraland-101"},{labelKey:"component.landing.footer.getting_started.contact_support",url:"https://decentraland.org/help/"}],I=[{labelKey:"component.landing.footer.resources.marketplace",url:"https://decentraland.org/marketplace"},{labelKey:"component.landing.footer.resources.creator_hub",url:"https://decentraland.org/create/"},{labelKey:"component.landing.footer.resources.docs",url:"https://docs.decentraland.org"},{labelKey:"component.landing.footer.resources.blog",url:"https://decentraland.org/blog/"},{labelKey:"component.landing.footer.resources.vote",url:"https://decentraland.org/dao"}],z=()=>e.jsx("svg",{viewBox:"0 0 28 22",fill:"currentColor",width:"28",height:"22",children:e.jsx("path",{d:"M23.7 1.84A23.25 23.25 0 0 0 17.96 0c-.25.45-.54 1.05-.74 1.53a21.5 21.5 0 0 0-6.45 0C10.57 1.05 10.27.45 10.02 0A23.2 23.2 0 0 0 4.27 1.85C.62 7.34-.38 12.7.12 18a23.37 23.37 0 0 0 7.13 3.6 17.4 17.4 0 0 0 1.53-2.49 15.17 15.17 0 0 1-2.41-1.16c.2-.15.4-.3.59-.46a16.63 16.63 0 0 0 14.1 0c.19.16.39.31.58.46-.77.45-1.57.84-2.41 1.16.44.87.96 1.7 1.53 2.49a23.3 23.3 0 0 0 7.14-3.61c.58-6.15-1-11.47-4.1-16.15ZM9.35 14.74c-1.4 0-2.54-1.28-2.54-2.85s1.12-2.86 2.54-2.86 2.56 1.29 2.54 2.86c0 1.57-1.12 2.85-2.54 2.85Zm9.38 0c-1.4 0-2.54-1.28-2.54-2.85s1.12-2.86 2.54-2.86 2.56 1.29 2.54 2.86c0 1.57-1.12 2.85-2.54 2.85Z"})}),A=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M12 .3a12 12 0 0 0-3.8 23.38c.6.12.82-.26.82-.58v-2.02c-3.34.73-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.08-.73.08-.73 1.2.09 1.84 1.24 1.84 1.24 1.07 1.83 2.8 1.3 3.49 1 .1-.78.42-1.3.76-1.6-2.67-.31-5.47-1.34-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.13-.3-.54-1.52.12-3.18 0 0 1-.33 3.3 1.23a11.5 11.5 0 0 1 6.02 0c2.28-1.56 3.29-1.23 3.29-1.23.66 1.66.25 2.88.12 3.18a4.65 4.65 0 0 1 1.24 3.22c0 4.61-2.81 5.62-5.48 5.92.43.37.81 1.1.81 2.22v3.29c0 .32.22.7.82.58A12 12 0 0 0 12 .3Z"})}),O=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.45-6.231Zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77Z"})}),G=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069ZM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0Zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324ZM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881Z"})}),U=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.546 12 3.546 12 3.546s-7.505 0-9.377.504A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.504 9.376.504 9.376.504s7.505 0 9.377-.504a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.545 15.568V8.432L15.818 12l-6.273 3.568Z"})}),P=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07Z"})}),V=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286ZM5.337 7.433a2.062 2.062 0 1 1 0-4.123 2.062 2.062 0 0 1 0 4.123ZM6.863 20.452H3.804V9h3.059v11.452ZM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003Z"})}),u=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"20",height:"20",children:e.jsx("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41Z"})}),q=o("footer")({width:"100%"}),X=o("div")(({theme:n})=>({width:"100%",background:"radial-gradient(ellipse at 0% 0%, rgba(121,47,158,0.6) 0%, rgba(74,23,102,0.8) 25%, rgba(51,12,74,0.9) 50%, rgba(27,0,46,1) 75%)",display:"flex",justifyContent:"space-between",alignItems:"stretch",padding:"32px 180px",[n.breakpoints.down("lg")]:{padding:"32px 80px"},[n.breakpoints.down("md")]:{padding:"32px 40px"},[n.breakpoints.down("sm")]:{flexDirection:"column",alignItems:"center",gap:32,padding:"48px 16px",background:"radial-gradient(ellipse at 0% 0%, rgba(109,34,151,1) 0%, rgba(89,26,125,1) 12%, rgba(69,18,99,1) 25%, rgba(48,9,72,1) 50%, rgba(28,1,46,1) 75%)"}})),Y=o("div")(({theme:n})=>({display:"flex",flexDirection:"column",gap:40,padding:"40px 0",maxWidth:450,[n.breakpoints.down("sm")]:{padding:0,width:"100%",alignItems:"center",maxWidth:"100%"}})),$=o("img")(({theme:n})=>({height:48,width:"auto",[n.breakpoints.down("sm")]:{height:40,maxWidth:322}})),J=o("div")(({theme:n})=>({display:"flex",flexDirection:"column",gap:12,[n.breakpoints.down("sm")]:{width:"100%",alignItems:"center"}})),Q=o("p")(({theme:n})=>({fontFamily:"Inter, sans-serif",fontWeight:500,fontSize:20,lineHeight:1.6,color:"#fcfcfc",margin:0,[n.breakpoints.down("sm")]:{textAlign:"center"}}));o("form")(({theme:n})=>({display:"flex",gap:8,height:46,width:"100%",maxWidth:450,[n.breakpoints.down("sm")]:{height:40,maxWidth:"100%"}}));o("input")({flex:1,height:"100%",padding:"0 16px",borderRadius:6,border:"1px solid white",backgroundColor:"#fcfcfc",fontFamily:"Inter, sans-serif",fontSize:16,color:"#1b002e",outline:"none",boxSizing:"border-box","&::placeholder":{color:"#cfcdd4"}});o("button")({height:"100%",padding:"0 22px",borderRadius:6,border:"none",backgroundColor:"#ff2d55",color:"white",fontFamily:"Inter, sans-serif",fontWeight:700,fontSize:15,letterSpacing:.46,textTransform:"uppercase",cursor:"pointer",whiteSpace:"nowrap",flexShrink:0,boxSizing:"border-box","&:hover":{backgroundColor:"#e0264b"}});const S=o("div")(({theme:n})=>({display:"flex",flexDirection:"column",gap:16,"&.desktop-only":{[n.breakpoints.down("sm")]:{display:"none"}},"&.mobile-only":{display:"none",[n.breakpoints.down("sm")]:{display:"flex",width:"100%",paddingTop:12}}})),h=o("p")({fontFamily:"Inter, sans-serif",fontWeight:400,fontSize:16,lineHeight:1.5,color:"#cfcdd4",margin:0,textTransform:"uppercase"}),ee=o("div")({display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",color:"white","& a":{color:"inherit",display:"flex",transition:"opacity 0.2s","&:hover":{opacity:.7}}}),ne=o("div")(({theme:n})=>({display:"flex",gap:180,padding:"40px 0",[n.breakpoints.down("lg")]:{gap:80},[n.breakpoints.down("md")]:{gap:48},[n.breakpoints.down("sm")]:{display:"none"}})),_=o("div")({display:"flex",flexDirection:"column",gap:16}),D=o("a")({fontFamily:"Inter, sans-serif",fontWeight:600,fontSize:16,lineHeight:1.5,color:"white",textDecoration:"none",whiteSpace:"nowrap","&:hover":{textDecoration:"underline"}}),te=o("div")(({theme:n})=>({display:"none",[n.breakpoints.down("sm")]:{display:"flex",flexDirection:"column",width:"100%"}})),oe=o("div")({display:"flex",alignItems:"center",gap:5,padding:"12px 0",borderBottom:"0.5px solid rgba(255, 255, 255, 0.1)",fontFamily:"Inter, sans-serif",fontWeight:400,fontSize:14,lineHeight:1.75,color:"#cfcdd4",textTransform:"uppercase"}),M=o("button")({display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",padding:"24px 16px 24px 0",border:"none",borderBottom:"0.5px solid rgba(255, 255, 255, 0.1)",background:"none",cursor:"pointer",fontFamily:"Inter, sans-serif",fontWeight:600,fontSize:16,lineHeight:1.75,color:"white",textAlign:"left"}),b=o("span")(({open:n})=>({display:"flex",transition:"transform 0.3s ease",transform:n?"rotate(180deg)":"rotate(0deg)",color:"white"})),F=o("div")(({open:n})=>({display:"flex",flexDirection:"column",gap:16,overflow:"hidden",maxHeight:n?400:0,opacity:n?1:0,padding:n?"16px 0 8px":"0",transition:"max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease"})),K=o("a")({fontFamily:"Inter, sans-serif",fontWeight:400,fontSize:15,lineHeight:1.5,color:"#fcfcfc",textDecoration:"none",paddingLeft:8,"&:hover":{textDecoration:"underline"}}),re=o("div")(({theme:n})=>({width:"100%",backgroundColor:"#161518",boxShadow:"inset 0px 1px 0px 0px #43404a",display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 24px",[n.breakpoints.down("sm")]:{flexDirection:"column",alignItems:"flex-start",gap:16}})),ie=o("div")(({theme:n})=>({display:"flex",alignItems:"center",gap:16,[n.breakpoints.down("sm")]:{flexDirection:"column",alignItems:"flex-start",gap:16}})),ae=o("div")(({theme:n})=>({[n.breakpoints.down("sm")]:{display:"none"}})),d=o("a")({fontFamily:"Inter, sans-serif",fontWeight:400,fontSize:14,lineHeight:1.43,color:"#a09ba8",textDecoration:"none",whiteSpace:"nowrap","&:hover":{color:"#cfcdd4"}}),se=o("span")({fontFamily:"Inter, sans-serif",fontWeight:400,fontSize:15,lineHeight:"24px",color:"#a09ba8",whiteSpace:"nowrap"}),le=o("div")({position:"relative"}),ce=o("button")({display:"flex",alignItems:"center",gap:8,background:"none",border:"none",cursor:"pointer",padding:0,fontFamily:"Inter, sans-serif",fontWeight:600,fontSize:15,lineHeight:"24px",color:"white"}),de=o("div")({position:"absolute",bottom:"100%",left:0,marginBottom:8,backgroundColor:"#242129",borderRadius:8,border:"1px solid #43404a",padding:"4px 0",minWidth:140,zIndex:10,"& button":{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"8px 16px",background:"none",border:"none",cursor:"pointer",fontFamily:"Inter, sans-serif",fontSize:14,color:"#cfcdd4",whiteSpace:"nowrap","&:hover":{backgroundColor:"rgba(255, 255, 255, 0.08)"},"&.active":{color:"white",fontWeight:600}}}),pe=o("div")(({theme:n})=>({display:"none",[n.breakpoints.down("sm")]:{display:"flex",gap:142,"& > div":{display:"flex",flexDirection:"column",gap:16}}})),ge=o("div")(({theme:n})=>({display:"flex",alignItems:"center",gap:16,[n.breakpoints.down("sm")]:{display:"none"}})),he="https://embeds.beehiiv.com/ff89783d-748b-4ba3-8700-4759f6f62831?slim=true",fe={Discord:z,GitHub:A,X:O,Instagram:G,YouTube:U,TikTok:P,LinkedIn:V},xe=[{label:"Privacy Policy",url:"/privacy"},{label:"Terms of Use",url:"/terms"},{label:"Content Policy",url:"/content"},{label:"Code of Ethics",url:"/ethics"}],s=n=>`https://cdn.jsdelivr.net/gh/twitter/twemoji@latest/assets/svg/${n}.svg`,w=[{code:"en",label:"English",flag:s("1f1ec-1f1e7")},{code:"es",label:"Español",flag:s("1f1ea-1f1f8")},{code:"fr",label:"Français",flag:s("1f1eb-1f1f7")},{code:"zh",label:"中文",flag:s("1f1e8-1f1f3")},{code:"ko",label:"한국어",flag:s("1f1f0-1f1f7")},{code:"ja",label:"日本語",flag:s("1f1ef-1f1f5")}],N=({onTrack:n})=>e.jsx(ee,{children:Z.map(r=>{const f=fe[r.name];return e.jsx("a",{href:r.url,target:"_blank",rel:"noopener noreferrer","aria-label":r.name,onClick:()=>n?.(r.name),children:e.jsx(f,{})},r.name)})}),me=i.memo(()=>{const n=W(),{locale:r,setLocale:f}=B(),{isInitialized:y,track:j}=E(),[p,T]=i.useState(null),[g,x]=i.useState(!1),m=i.useRef(null),v=w.find(t=>t.code===r)||w[0],a=i.useCallback((t,l)=>{y&&j(H.CLICK,{place:t,event:"click",...l})},[y,j]),k=i.useCallback(t=>a(c.LANDING_FOOTER_SOCIAL,{platform:t}),[a]),C=i.useCallback(t=>{T(l=>l===t?null:t)},[]);return i.useEffect(()=>{if(!g)return;const t=l=>{m.current&&!m.current.contains(l.target)&&x(!1)};return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[g]),e.jsxs(q,{children:[e.jsxs(X,{children:[e.jsxs(Y,{children:[e.jsx($,{src:R("/dcl_name.svg"),alt:"Decentraland"}),e.jsxs(J,{children:[e.jsx(Q,{children:n("component.landing.footer.newsletter.title")}),e.jsx("iframe",{src:he,"data-test-id":"beehiiv-embed",height:"65",frameBorder:"0",scrolling:"no",style:{width:"100%",maxWidth:450,border:"none",borderRadius:6},title:"Newsletter signup"})]}),e.jsxs(S,{className:"desktop-only",children:[e.jsx(h,{children:n("component.landing.footer.connect")}),e.jsx(N,{onTrack:k})]})]}),e.jsxs(ne,{children:[e.jsxs(_,{children:[e.jsx(h,{children:n("component.landing.footer.getting_started.title")}),L.map(t=>e.jsx(D,{href:t.url,target:t.url.startsWith("http")?"_blank":void 0,rel:"noopener noreferrer",onClick:()=>a(c.LANDING_FOOTER_LINK,{link:n(t.labelKey)}),children:n(t.labelKey)},t.labelKey))]}),e.jsxs(_,{children:[e.jsx(h,{children:n("component.landing.footer.resources.title")}),I.map(t=>e.jsx(D,{href:t.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>a(c.LANDING_FOOTER_LINK,{link:n(t.labelKey)}),children:n(t.labelKey)},t.labelKey))]})]}),e.jsxs(te,{children:[e.jsx(oe,{children:n("component.landing.footer.menu")}),e.jsxs(M,{onClick:()=>C("getting-started"),children:[n("component.landing.footer.getting_started.title"),e.jsx(b,{open:p==="getting-started",children:e.jsx(u,{})})]}),e.jsx(F,{open:p==="getting-started",children:L.map(t=>e.jsx(K,{href:t.url,target:t.url.startsWith("http")?"_blank":void 0,rel:"noopener noreferrer",onClick:()=>a(c.LANDING_FOOTER_LINK,{link:n(t.labelKey)}),children:n(t.labelKey)},t.labelKey))}),e.jsxs(M,{onClick:()=>C("resources"),children:[n("component.landing.footer.resources.title"),e.jsx(b,{open:p==="resources",children:e.jsx(u,{})})]}),e.jsx(F,{open:p==="resources",children:I.map(t=>e.jsx(K,{href:t.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>a(c.LANDING_FOOTER_LINK,{link:n(t.labelKey)}),children:n(t.labelKey)},t.labelKey))})]}),e.jsxs(S,{className:"mobile-only",children:[e.jsx(h,{children:n("component.landing.footer.connect")}),e.jsx(N,{onTrack:k})]})]}),e.jsxs(re,{children:[e.jsxs(ie,{children:[e.jsxs(le,{ref:m,children:[e.jsxs(ce,{onClick:()=>x(t=>!t),children:[e.jsx("img",{src:v.flag,alt:"",width:16,height:16,style:{borderRadius:2}}),v.label,e.jsx(b,{open:g,style:{display:"inline-flex"},children:e.jsx(u,{})})]}),g&&e.jsx(de,{children:w.map(t=>e.jsxs("button",{className:t.code===r?"active":"",onClick:()=>{f(t.code),x(!1)},children:[e.jsx("img",{src:t.flag,alt:"",width:16,height:16,style:{borderRadius:2}}),t.label]},t.code))})]}),e.jsx(ge,{children:xe.map(t=>e.jsx(d,{href:t.url,children:t.label},t.label))}),e.jsxs(pe,{children:[e.jsxs("div",{children:[e.jsx(d,{href:"/privacy",children:"Privacy Policy"}),e.jsx(d,{href:"/terms",children:"Terms of Use"})]}),e.jsxs("div",{children:[e.jsx(d,{href:"/content",children:"Content Policy"}),e.jsx(d,{href:"/ethics",children:"Code of Ethics"})]})]})]}),e.jsx(ae,{children:e.jsxs(se,{children:["© ",new Date().getFullYear()," Decentraland"]})})]})]})});me.displayName="LandingFooter";export{me as LandingFooter};
|
|
1
|
+
import{j as e,s as o,x as W,aN as B,an as E,aj as H,a1 as c,U as R}from"./index-D9krZGYy.js";import{r as i}from"./vendor-router-D7SOoytt.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-crypto-CXsBIwXr.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-DCdewyWN.js";import"./vendor-intl-D2lXWsDp.js";const Z=[{name:"Discord",url:"https://dcl.gg/discord"},{name:"GitHub",url:"https://github.com/decentraland"},{name:"X",url:"https://x.com/decentraland"},{name:"Instagram",url:"https://instagram.com/decentraland_foundation/"},{name:"YouTube",url:"https://youtube.com/@decentraland_foundation"},{name:"TikTok",url:"https://tiktok.com/@decentraland_fdn"},{name:"LinkedIn",url:"https://linkedin.com/company/decentralandorg"}],L=[{labelKey:"component.landing.footer.getting_started.what_is",url:"https://docs.decentraland.org/introduction/about-decentraland"},{labelKey:"component.landing.footer.getting_started.download",url:"/download"},{labelKey:"component.landing.footer.getting_started.system_requirements",url:"https://docs.decentraland.org/in-world/settings-and-performance"},{labelKey:"component.landing.footer.getting_started.faqs",url:"https://docs.decentraland.org/faqs/decentraland-101"},{labelKey:"component.landing.footer.getting_started.contact_support",url:"https://decentraland.org/help/"}],I=[{labelKey:"component.landing.footer.resources.marketplace",url:"https://decentraland.org/marketplace"},{labelKey:"component.landing.footer.resources.creator_hub",url:"https://decentraland.org/create/"},{labelKey:"component.landing.footer.resources.docs",url:"https://docs.decentraland.org"},{labelKey:"component.landing.footer.resources.blog",url:"https://decentraland.org/blog/"},{labelKey:"component.landing.footer.resources.vote",url:"https://decentraland.org/dao"}],z=()=>e.jsx("svg",{viewBox:"0 0 28 22",fill:"currentColor",width:"28",height:"22",children:e.jsx("path",{d:"M23.7 1.84A23.25 23.25 0 0 0 17.96 0c-.25.45-.54 1.05-.74 1.53a21.5 21.5 0 0 0-6.45 0C10.57 1.05 10.27.45 10.02 0A23.2 23.2 0 0 0 4.27 1.85C.62 7.34-.38 12.7.12 18a23.37 23.37 0 0 0 7.13 3.6 17.4 17.4 0 0 0 1.53-2.49 15.17 15.17 0 0 1-2.41-1.16c.2-.15.4-.3.59-.46a16.63 16.63 0 0 0 14.1 0c.19.16.39.31.58.46-.77.45-1.57.84-2.41 1.16.44.87.96 1.7 1.53 2.49a23.3 23.3 0 0 0 7.14-3.61c.58-6.15-1-11.47-4.1-16.15ZM9.35 14.74c-1.4 0-2.54-1.28-2.54-2.85s1.12-2.86 2.54-2.86 2.56 1.29 2.54 2.86c0 1.57-1.12 2.85-2.54 2.85Zm9.38 0c-1.4 0-2.54-1.28-2.54-2.85s1.12-2.86 2.54-2.86 2.56 1.29 2.54 2.86c0 1.57-1.12 2.85-2.54 2.85Z"})}),A=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M12 .3a12 12 0 0 0-3.8 23.38c.6.12.82-.26.82-.58v-2.02c-3.34.73-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.08-.73.08-.73 1.2.09 1.84 1.24 1.84 1.24 1.07 1.83 2.8 1.3 3.49 1 .1-.78.42-1.3.76-1.6-2.67-.31-5.47-1.34-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.13-.3-.54-1.52.12-3.18 0 0 1-.33 3.3 1.23a11.5 11.5 0 0 1 6.02 0c2.28-1.56 3.29-1.23 3.29-1.23.66 1.66.25 2.88.12 3.18a4.65 4.65 0 0 1 1.24 3.22c0 4.61-2.81 5.62-5.48 5.92.43.37.81 1.1.81 2.22v3.29c0 .32.22.7.82.58A12 12 0 0 0 12 .3Z"})}),O=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.45-6.231Zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77Z"})}),G=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069ZM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0Zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324ZM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881Z"})}),U=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.546 12 3.546 12 3.546s-7.505 0-9.377.504A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.504 9.376.504 9.376.504s7.505 0 9.377-.504a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.545 15.568V8.432L15.818 12l-6.273 3.568Z"})}),P=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07Z"})}),V=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"24",height:"24",children:e.jsx("path",{d:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286ZM5.337 7.433a2.062 2.062 0 1 1 0-4.123 2.062 2.062 0 0 1 0 4.123ZM6.863 20.452H3.804V9h3.059v11.452ZM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003Z"})}),u=()=>e.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"20",height:"20",children:e.jsx("path",{d:"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41Z"})}),q=o("footer")({width:"100%"}),X=o("div")(({theme:n})=>({width:"100%",background:"radial-gradient(ellipse at 0% 0%, rgba(121,47,158,0.6) 0%, rgba(74,23,102,0.8) 25%, rgba(51,12,74,0.9) 50%, rgba(27,0,46,1) 75%)",display:"flex",justifyContent:"space-between",alignItems:"stretch",padding:"32px 180px",[n.breakpoints.down("lg")]:{padding:"32px 80px"},[n.breakpoints.down("md")]:{padding:"32px 40px"},[n.breakpoints.down("sm")]:{flexDirection:"column",alignItems:"center",gap:32,padding:"48px 16px",background:"radial-gradient(ellipse at 0% 0%, rgba(109,34,151,1) 0%, rgba(89,26,125,1) 12%, rgba(69,18,99,1) 25%, rgba(48,9,72,1) 50%, rgba(28,1,46,1) 75%)"}})),Y=o("div")(({theme:n})=>({display:"flex",flexDirection:"column",gap:40,padding:"40px 0",maxWidth:450,[n.breakpoints.down("sm")]:{padding:0,width:"100%",alignItems:"center",maxWidth:"100%"}})),$=o("img")(({theme:n})=>({height:48,width:"auto",[n.breakpoints.down("sm")]:{height:40,maxWidth:322}})),J=o("div")(({theme:n})=>({display:"flex",flexDirection:"column",gap:12,[n.breakpoints.down("sm")]:{width:"100%",alignItems:"center"}})),Q=o("p")(({theme:n})=>({fontFamily:"Inter, sans-serif",fontWeight:500,fontSize:20,lineHeight:1.6,color:"#fcfcfc",margin:0,[n.breakpoints.down("sm")]:{textAlign:"center"}}));o("form")(({theme:n})=>({display:"flex",gap:8,height:46,width:"100%",maxWidth:450,[n.breakpoints.down("sm")]:{height:40,maxWidth:"100%"}}));o("input")({flex:1,height:"100%",padding:"0 16px",borderRadius:6,border:"1px solid white",backgroundColor:"#fcfcfc",fontFamily:"Inter, sans-serif",fontSize:16,color:"#1b002e",outline:"none",boxSizing:"border-box","&::placeholder":{color:"#cfcdd4"}});o("button")({height:"100%",padding:"0 22px",borderRadius:6,border:"none",backgroundColor:"#ff2d55",color:"white",fontFamily:"Inter, sans-serif",fontWeight:700,fontSize:15,letterSpacing:.46,textTransform:"uppercase",cursor:"pointer",whiteSpace:"nowrap",flexShrink:0,boxSizing:"border-box","&:hover":{backgroundColor:"#e0264b"}});const S=o("div")(({theme:n})=>({display:"flex",flexDirection:"column",gap:16,"&.desktop-only":{[n.breakpoints.down("sm")]:{display:"none"}},"&.mobile-only":{display:"none",[n.breakpoints.down("sm")]:{display:"flex",width:"100%",paddingTop:12}}})),h=o("p")({fontFamily:"Inter, sans-serif",fontWeight:400,fontSize:16,lineHeight:1.5,color:"#cfcdd4",margin:0,textTransform:"uppercase"}),ee=o("div")({display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",color:"white","& a":{color:"inherit",display:"flex",transition:"opacity 0.2s","&:hover":{opacity:.7}}}),ne=o("div")(({theme:n})=>({display:"flex",gap:180,padding:"40px 0",[n.breakpoints.down("lg")]:{gap:80},[n.breakpoints.down("md")]:{gap:48},[n.breakpoints.down("sm")]:{display:"none"}})),_=o("div")({display:"flex",flexDirection:"column",gap:16}),D=o("a")({fontFamily:"Inter, sans-serif",fontWeight:600,fontSize:16,lineHeight:1.5,color:"white",textDecoration:"none",whiteSpace:"nowrap","&:hover":{textDecoration:"underline"}}),te=o("div")(({theme:n})=>({display:"none",[n.breakpoints.down("sm")]:{display:"flex",flexDirection:"column",width:"100%"}})),oe=o("div")({display:"flex",alignItems:"center",gap:5,padding:"12px 0",borderBottom:"0.5px solid rgba(255, 255, 255, 0.1)",fontFamily:"Inter, sans-serif",fontWeight:400,fontSize:14,lineHeight:1.75,color:"#cfcdd4",textTransform:"uppercase"}),M=o("button")({display:"flex",justifyContent:"space-between",alignItems:"center",width:"100%",padding:"24px 16px 24px 0",border:"none",borderBottom:"0.5px solid rgba(255, 255, 255, 0.1)",background:"none",cursor:"pointer",fontFamily:"Inter, sans-serif",fontWeight:600,fontSize:16,lineHeight:1.75,color:"white",textAlign:"left"}),b=o("span")(({open:n})=>({display:"flex",transition:"transform 0.3s ease",transform:n?"rotate(180deg)":"rotate(0deg)",color:"white"})),F=o("div")(({open:n})=>({display:"flex",flexDirection:"column",gap:16,overflow:"hidden",maxHeight:n?400:0,opacity:n?1:0,padding:n?"16px 0 8px":"0",transition:"max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease"})),K=o("a")({fontFamily:"Inter, sans-serif",fontWeight:400,fontSize:15,lineHeight:1.5,color:"#fcfcfc",textDecoration:"none",paddingLeft:8,"&:hover":{textDecoration:"underline"}}),re=o("div")(({theme:n})=>({width:"100%",backgroundColor:"#161518",boxShadow:"inset 0px 1px 0px 0px #43404a",display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px 24px",[n.breakpoints.down("sm")]:{flexDirection:"column",alignItems:"flex-start",gap:16}})),ie=o("div")(({theme:n})=>({display:"flex",alignItems:"center",gap:16,[n.breakpoints.down("sm")]:{flexDirection:"column",alignItems:"flex-start",gap:16}})),ae=o("div")(({theme:n})=>({[n.breakpoints.down("sm")]:{display:"none"}})),d=o("a")({fontFamily:"Inter, sans-serif",fontWeight:400,fontSize:14,lineHeight:1.43,color:"#a09ba8",textDecoration:"none",whiteSpace:"nowrap","&:hover":{color:"#cfcdd4"}}),se=o("span")({fontFamily:"Inter, sans-serif",fontWeight:400,fontSize:15,lineHeight:"24px",color:"#a09ba8",whiteSpace:"nowrap"}),le=o("div")({position:"relative"}),ce=o("button")({display:"flex",alignItems:"center",gap:8,background:"none",border:"none",cursor:"pointer",padding:0,fontFamily:"Inter, sans-serif",fontWeight:600,fontSize:15,lineHeight:"24px",color:"white"}),de=o("div")({position:"absolute",bottom:"100%",left:0,marginBottom:8,backgroundColor:"#242129",borderRadius:8,border:"1px solid #43404a",padding:"4px 0",minWidth:140,zIndex:10,"& button":{display:"flex",alignItems:"center",gap:8,width:"100%",padding:"8px 16px",background:"none",border:"none",cursor:"pointer",fontFamily:"Inter, sans-serif",fontSize:14,color:"#cfcdd4",whiteSpace:"nowrap","&:hover":{backgroundColor:"rgba(255, 255, 255, 0.08)"},"&.active":{color:"white",fontWeight:600}}}),pe=o("div")(({theme:n})=>({display:"none",[n.breakpoints.down("sm")]:{display:"flex",gap:142,"& > div":{display:"flex",flexDirection:"column",gap:16}}})),ge=o("div")(({theme:n})=>({display:"flex",alignItems:"center",gap:16,[n.breakpoints.down("sm")]:{display:"none"}})),he="https://embeds.beehiiv.com/ff89783d-748b-4ba3-8700-4759f6f62831?slim=true",fe={Discord:z,GitHub:A,X:O,Instagram:G,YouTube:U,TikTok:P,LinkedIn:V},xe=[{label:"Privacy Policy",url:"/privacy"},{label:"Terms of Use",url:"/terms"},{label:"Content Policy",url:"/content"},{label:"Code of Ethics",url:"/ethics"}],s=n=>`https://cdn.jsdelivr.net/gh/twitter/twemoji@latest/assets/svg/${n}.svg`,w=[{code:"en",label:"English",flag:s("1f1ec-1f1e7")},{code:"es",label:"Español",flag:s("1f1ea-1f1f8")},{code:"fr",label:"Français",flag:s("1f1eb-1f1f7")},{code:"zh",label:"中文",flag:s("1f1e8-1f1f3")},{code:"ko",label:"한국어",flag:s("1f1f0-1f1f7")},{code:"ja",label:"日本語",flag:s("1f1ef-1f1f5")}],N=({onTrack:n})=>e.jsx(ee,{children:Z.map(r=>{const f=fe[r.name];return e.jsx("a",{href:r.url,target:"_blank",rel:"noopener noreferrer","aria-label":r.name,onClick:()=>n?.(r.name),children:e.jsx(f,{})},r.name)})}),me=i.memo(()=>{const n=W(),{locale:r,setLocale:f}=B(),{isInitialized:y,track:j}=E(),[p,T]=i.useState(null),[g,x]=i.useState(!1),m=i.useRef(null),v=w.find(t=>t.code===r)||w[0],a=i.useCallback((t,l)=>{y&&j(H.CLICK,{place:t,event:"click",...l})},[y,j]),k=i.useCallback(t=>a(c.LANDING_FOOTER_SOCIAL,{platform:t}),[a]),C=i.useCallback(t=>{T(l=>l===t?null:t)},[]);return i.useEffect(()=>{if(!g)return;const t=l=>{m.current&&!m.current.contains(l.target)&&x(!1)};return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[g]),e.jsxs(q,{children:[e.jsxs(X,{children:[e.jsxs(Y,{children:[e.jsx($,{src:R("/dcl_name.svg"),alt:"Decentraland"}),e.jsxs(J,{children:[e.jsx(Q,{children:n("component.landing.footer.newsletter.title")}),e.jsx("iframe",{src:he,"data-test-id":"beehiiv-embed",height:"65",frameBorder:"0",scrolling:"no",style:{width:"100%",maxWidth:450,border:"none",borderRadius:6},title:"Newsletter signup"})]}),e.jsxs(S,{className:"desktop-only",children:[e.jsx(h,{children:n("component.landing.footer.connect")}),e.jsx(N,{onTrack:k})]})]}),e.jsxs(ne,{children:[e.jsxs(_,{children:[e.jsx(h,{children:n("component.landing.footer.getting_started.title")}),L.map(t=>e.jsx(D,{href:t.url,target:t.url.startsWith("http")?"_blank":void 0,rel:"noopener noreferrer",onClick:()=>a(c.LANDING_FOOTER_LINK,{link:n(t.labelKey)}),children:n(t.labelKey)},t.labelKey))]}),e.jsxs(_,{children:[e.jsx(h,{children:n("component.landing.footer.resources.title")}),I.map(t=>e.jsx(D,{href:t.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>a(c.LANDING_FOOTER_LINK,{link:n(t.labelKey)}),children:n(t.labelKey)},t.labelKey))]})]}),e.jsxs(te,{children:[e.jsx(oe,{children:n("component.landing.footer.menu")}),e.jsxs(M,{onClick:()=>C("getting-started"),children:[n("component.landing.footer.getting_started.title"),e.jsx(b,{open:p==="getting-started",children:e.jsx(u,{})})]}),e.jsx(F,{open:p==="getting-started",children:L.map(t=>e.jsx(K,{href:t.url,target:t.url.startsWith("http")?"_blank":void 0,rel:"noopener noreferrer",onClick:()=>a(c.LANDING_FOOTER_LINK,{link:n(t.labelKey)}),children:n(t.labelKey)},t.labelKey))}),e.jsxs(M,{onClick:()=>C("resources"),children:[n("component.landing.footer.resources.title"),e.jsx(b,{open:p==="resources",children:e.jsx(u,{})})]}),e.jsx(F,{open:p==="resources",children:I.map(t=>e.jsx(K,{href:t.url,target:"_blank",rel:"noopener noreferrer",onClick:()=>a(c.LANDING_FOOTER_LINK,{link:n(t.labelKey)}),children:n(t.labelKey)},t.labelKey))})]}),e.jsxs(S,{className:"mobile-only",children:[e.jsx(h,{children:n("component.landing.footer.connect")}),e.jsx(N,{onTrack:k})]})]}),e.jsxs(re,{children:[e.jsxs(ie,{children:[e.jsxs(le,{ref:m,children:[e.jsxs(ce,{onClick:()=>x(t=>!t),children:[e.jsx("img",{src:v.flag,alt:"",width:16,height:16,style:{borderRadius:2}}),v.label,e.jsx(b,{open:g,style:{display:"inline-flex"},children:e.jsx(u,{})})]}),g&&e.jsx(de,{children:w.map(t=>e.jsxs("button",{className:t.code===r?"active":"",onClick:()=>{f(t.code),x(!1)},children:[e.jsx("img",{src:t.flag,alt:"",width:16,height:16,style:{borderRadius:2}}),t.label]},t.code))})]}),e.jsx(ge,{children:xe.map(t=>e.jsx(d,{href:t.url,children:t.label},t.label))}),e.jsxs(pe,{children:[e.jsxs("div",{children:[e.jsx(d,{href:"/privacy",children:"Privacy Policy"}),e.jsx(d,{href:"/terms",children:"Terms of Use"})]}),e.jsxs("div",{children:[e.jsx(d,{href:"/content",children:"Content Policy"}),e.jsx(d,{href:"/ethics",children:"Code of Ethics"})]})]})]}),e.jsx(ae,{children:e.jsxs(se,{children:["© ",new Date().getFullYear()," Decentraland"]})})]})]})});me.displayName="LandingFooter";export{me as LandingFooter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-Bi8qoRd-.js","sources":["../../src/components/LandingFooter/footerConfig.ts","../../src/components/LandingFooter/SocialIcons.tsx","../../src/components/LandingFooter/LandingFooter.styled.ts","../../src/components/LandingFooter/LandingFooter.tsx"],"sourcesContent":["const socialLinks = [\n { name: 'Discord', url: 'https://dcl.gg/discord' },\n { name: 'GitHub', url: 'https://github.com/decentraland' },\n { name: 'X', url: 'https://x.com/decentraland' },\n { name: 'Instagram', url: 'https://instagram.com/decentraland_foundation/' },\n { name: 'YouTube', url: 'https://youtube.com/@decentraland_foundation' },\n { name: 'TikTok', url: 'https://tiktok.com/@decentraland_fdn' },\n { name: 'LinkedIn', url: 'https://linkedin.com/company/decentralandorg' }\n] as const\n\nconst gettingStartedLinks = [\n { labelKey: 'component.landing.footer.getting_started.what_is', url: 'https://docs.decentraland.org/introduction/about-decentraland' },\n { labelKey: 'component.landing.footer.getting_started.download', url: '/download' },\n {\n labelKey: 'component.landing.footer.getting_started.system_requirements',\n url: 'https://docs.decentraland.org/in-world/settings-and-performance'\n },\n { labelKey: 'component.landing.footer.getting_started.faqs', url: 'https://docs.decentraland.org/faqs/decentraland-101' },\n { labelKey: 'component.landing.footer.getting_started.contact_support', url: 'https://decentraland.org/help/' }\n] as const\n\nconst resourceLinks = [\n { labelKey: 'component.landing.footer.resources.marketplace', url: 'https://decentraland.org/marketplace' },\n { labelKey: 'component.landing.footer.resources.creator_hub', url: 'https://decentraland.org/create/' },\n { labelKey: 'component.landing.footer.resources.docs', url: 'https://docs.decentraland.org' },\n { labelKey: 'component.landing.footer.resources.blog', url: 'https://decentraland.org/blog/' },\n { labelKey: 'component.landing.footer.resources.vote', url: 'https://decentraland.org/dao' }\n] as const\n\nexport { gettingStartedLinks, resourceLinks, socialLinks }\n","/** Inline SVG social icons — no MUI dependency, tiny footprint. */\n\nconst Discord = () => (\n <svg viewBox=\"0 0 28 22\" fill=\"currentColor\" width=\"28\" height=\"22\">\n <path d=\"M23.7 1.84A23.25 23.25 0 0 0 17.96 0c-.25.45-.54 1.05-.74 1.53a21.5 21.5 0 0 0-6.45 0C10.57 1.05 10.27.45 10.02 0A23.2 23.2 0 0 0 4.27 1.85C.62 7.34-.38 12.7.12 18a23.37 23.37 0 0 0 7.13 3.6 17.4 17.4 0 0 0 1.53-2.49 15.17 15.17 0 0 1-2.41-1.16c.2-.15.4-.3.59-.46a16.63 16.63 0 0 0 14.1 0c.19.16.39.31.58.46-.77.45-1.57.84-2.41 1.16.44.87.96 1.7 1.53 2.49a23.3 23.3 0 0 0 7.14-3.61c.58-6.15-1-11.47-4.1-16.15ZM9.35 14.74c-1.4 0-2.54-1.28-2.54-2.85s1.12-2.86 2.54-2.86 2.56 1.29 2.54 2.86c0 1.57-1.12 2.85-2.54 2.85Zm9.38 0c-1.4 0-2.54-1.28-2.54-2.85s1.12-2.86 2.54-2.86 2.56 1.29 2.54 2.86c0 1.57-1.12 2.85-2.54 2.85Z\" />\n </svg>\n)\n\nconst GitHub = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M12 .3a12 12 0 0 0-3.8 23.38c.6.12.82-.26.82-.58v-2.02c-3.34.73-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.08-.73.08-.73 1.2.09 1.84 1.24 1.84 1.24 1.07 1.83 2.8 1.3 3.49 1 .1-.78.42-1.3.76-1.6-2.67-.31-5.47-1.34-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.13-.3-.54-1.52.12-3.18 0 0 1-.33 3.3 1.23a11.5 11.5 0 0 1 6.02 0c2.28-1.56 3.29-1.23 3.29-1.23.66 1.66.25 2.88.12 3.18a4.65 4.65 0 0 1 1.24 3.22c0 4.61-2.81 5.62-5.48 5.92.43.37.81 1.1.81 2.22v3.29c0 .32.22.7.82.58A12 12 0 0 0 12 .3Z\" />\n </svg>\n)\n\nconst XTwitter = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.45-6.231Zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77Z\" />\n </svg>\n)\n\nconst Instagram = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069ZM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0Zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324ZM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881Z\" />\n </svg>\n)\n\nconst YouTube = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.546 12 3.546 12 3.546s-7.505 0-9.377.504A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.504 9.376.504 9.376.504s7.505 0 9.377-.504a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.545 15.568V8.432L15.818 12l-6.273 3.568Z\" />\n </svg>\n)\n\nconst TikTok = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07Z\" />\n </svg>\n)\n\nconst LinkedIn = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286ZM5.337 7.433a2.062 2.062 0 1 1 0-4.123 2.062 2.062 0 0 1 0 4.123ZM6.863 20.452H3.804V9h3.059v11.452ZM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003Z\" />\n </svg>\n)\n\nconst ChevronDown = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\">\n <path d=\"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41Z\" />\n </svg>\n)\n\nexport { ChevronDown, Discord, GitHub, Instagram, LinkedIn, TikTok, XTwitter, YouTube }\n","import { styled } from 'decentraland-ui2'\n\n// ── Main footer (purple gradient) ─────────────────────────────────────\nconst FooterRoot = styled('footer')({\n width: '100%'\n})\n\nconst FooterMain = styled('div')(({ theme }) => ({\n width: '100%',\n background:\n 'radial-gradient(ellipse at 0% 0%, rgba(121,47,158,0.6) 0%, rgba(74,23,102,0.8) 25%, rgba(51,12,74,0.9) 50%, rgba(27,0,46,1) 75%)',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'stretch',\n padding: '32px 180px',\n [theme.breakpoints.down('lg')]: {\n padding: '32px 80px'\n },\n [theme.breakpoints.down('md')]: {\n padding: '32px 40px'\n },\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'center',\n gap: 32,\n padding: '48px 16px',\n background:\n 'radial-gradient(ellipse at 0% 0%, rgba(109,34,151,1) 0%, rgba(89,26,125,1) 12%, rgba(69,18,99,1) 25%, rgba(48,9,72,1) 50%, rgba(28,1,46,1) 75%)'\n }\n}))\n\n// ── Left column ───────────────────────────────────────────────────────\nconst LeftColumn = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: 40,\n padding: '40px 0',\n maxWidth: 450,\n [theme.breakpoints.down('sm')]: {\n padding: 0,\n width: '100%',\n alignItems: 'center',\n maxWidth: '100%'\n }\n}))\n\nconst Wordmark = styled('img')(({ theme }) => ({\n height: 48,\n width: 'auto',\n [theme.breakpoints.down('sm')]: {\n height: 40,\n maxWidth: 322\n }\n}))\n\nconst NewsletterSection = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: 12,\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n alignItems: 'center'\n }\n}))\n\nconst NewsletterTitle = styled('p')(({ theme }) => ({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 500,\n fontSize: 20,\n lineHeight: 1.6,\n color: '#fcfcfc',\n margin: 0,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n}))\n\nconst EmailRow = styled('form')(({ theme }) => ({\n display: 'flex',\n gap: 8,\n height: 46,\n width: '100%',\n maxWidth: 450,\n [theme.breakpoints.down('sm')]: {\n height: 40,\n maxWidth: '100%'\n }\n}))\n\nconst EmailInput = styled('input')({\n flex: 1,\n height: '100%',\n padding: '0 16px',\n borderRadius: 6,\n border: '1px solid white',\n backgroundColor: '#fcfcfc',\n fontFamily: 'Inter, sans-serif',\n fontSize: 16,\n color: '#1b002e',\n outline: 'none',\n boxSizing: 'border-box',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&::placeholder': {\n color: '#cfcdd4'\n }\n})\n\nconst SubscribeButton = styled('button')({\n height: '100%',\n padding: '0 22px',\n borderRadius: 6,\n border: 'none',\n backgroundColor: '#ff2d55',\n color: 'white',\n fontFamily: 'Inter, sans-serif',\n fontWeight: 700,\n fontSize: 15,\n letterSpacing: 0.46,\n textTransform: 'uppercase' as const,\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n flexShrink: 0,\n boxSizing: 'border-box',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n backgroundColor: '#e0264b'\n }\n})\n\n// ── Connect / Social ──────────────────────────────────────────────────\nconst ConnectSection = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: 16,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&.desktop-only': {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&.mobile-only': {\n display: 'none',\n [theme.breakpoints.down('sm')]: {\n display: 'flex',\n width: '100%',\n paddingTop: 12\n }\n }\n}))\n\nconst SectionLabel = styled('p')({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 400,\n fontSize: 16,\n lineHeight: 1.5,\n color: '#cfcdd4',\n margin: 0,\n textTransform: 'uppercase' as const\n})\n\nconst SocialRow = styled('div')({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n color: 'white',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& a': {\n color: 'inherit',\n display: 'flex',\n transition: 'opacity 0.2s',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n opacity: 0.7\n }\n }\n})\n\n// ── Right column (link columns) ──────────────────────────────────────\nconst RightColumn = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: 180,\n padding: '40px 0',\n [theme.breakpoints.down('lg')]: {\n gap: 80\n },\n [theme.breakpoints.down('md')]: {\n gap: 48\n },\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n}))\n\nconst LinkColumn = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n gap: 16\n})\n\nconst FooterLink = styled('a')({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 600,\n fontSize: 16,\n lineHeight: 1.5,\n color: 'white',\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n textDecoration: 'underline'\n }\n})\n\n// ── Mobile collapsible menu ──────────────────────────────────────────\nconst MobileMenu = styled('div')(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.down('sm')]: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%'\n }\n}))\n\nconst MobileMenuLabel = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: 5,\n padding: '12px 0',\n borderBottom: '0.5px solid rgba(255, 255, 255, 0.1)',\n fontFamily: 'Inter, sans-serif',\n fontWeight: 400,\n fontSize: 14,\n lineHeight: 1.75,\n color: '#cfcdd4',\n textTransform: 'uppercase' as const\n})\n\nconst MobileMenuDropdown = styled('button')({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n padding: '24px 16px 24px 0',\n border: 'none',\n borderBottom: '0.5px solid rgba(255, 255, 255, 0.1)',\n background: 'none',\n cursor: 'pointer',\n fontFamily: 'Inter, sans-serif',\n fontWeight: 600,\n fontSize: 16,\n lineHeight: 1.75,\n color: 'white',\n textAlign: 'left'\n})\n\nconst DropdownChevron = styled('span')<{ open?: boolean }>(({ open }) => ({\n display: 'flex',\n transition: 'transform 0.3s ease',\n transform: open ? 'rotate(180deg)' : 'rotate(0deg)',\n color: 'white'\n}))\n\nconst DropdownContent = styled('div')<{ open?: boolean }>(({ open }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: 16,\n overflow: 'hidden',\n maxHeight: open ? 400 : 0,\n opacity: open ? 1 : 0,\n padding: open ? '16px 0 8px' : '0',\n transition: 'max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease'\n}))\n\nconst MobileFooterLink = styled('a')({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 400,\n fontSize: 15,\n lineHeight: 1.5,\n color: '#fcfcfc',\n textDecoration: 'none',\n paddingLeft: 8,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n textDecoration: 'underline'\n }\n})\n\n// ── Bottom bar (legal links) ─────────────────────────────────────────\nconst BottomBar = styled('div')(({ theme }) => ({\n width: '100%',\n backgroundColor: '#161518',\n boxShadow: 'inset 0px 1px 0px 0px #43404a',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '16px 24px',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: 16\n }\n}))\n\nconst BottomBarLeft = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: 16,\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: 16\n }\n}))\n\nconst BottomBarRight = styled('div')(({ theme }) => ({\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n}))\n\nconst LegalLink = styled('a')({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 400,\n fontSize: 14,\n lineHeight: 1.43,\n color: '#a09ba8',\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n color: '#cfcdd4'\n }\n})\n\nconst CopyrightText = styled('span')({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 400,\n fontSize: 15,\n lineHeight: '24px',\n color: '#a09ba8',\n whiteSpace: 'nowrap'\n})\n\nconst LanguageWrapper = styled('div')({\n position: 'relative'\n})\n\nconst LanguageButton = styled('button')({\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n padding: 0,\n fontFamily: 'Inter, sans-serif',\n fontWeight: 600,\n fontSize: 15,\n lineHeight: '24px',\n color: 'white'\n})\n\nconst LanguageMenu = styled('div')({\n position: 'absolute',\n bottom: '100%',\n left: 0,\n marginBottom: 8,\n backgroundColor: '#242129',\n borderRadius: 8,\n border: '1px solid #43404a',\n padding: '4px 0',\n minWidth: 140,\n zIndex: 10,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& button': {\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n width: '100%',\n padding: '8px 16px',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontFamily: 'Inter, sans-serif',\n fontSize: 14,\n color: '#cfcdd4',\n whiteSpace: 'nowrap',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.08)'\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&.active': {\n color: 'white',\n fontWeight: 600\n }\n }\n})\n\nconst MobileLegalGrid = styled('div')(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.down('sm')]: {\n display: 'flex',\n gap: 142,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n gap: 16\n }\n }\n}))\n\nconst DesktopLegalLinks = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: 16,\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n}))\n\nexport {\n BottomBar,\n BottomBarLeft,\n BottomBarRight,\n ConnectSection,\n CopyrightText,\n DesktopLegalLinks,\n DropdownChevron,\n DropdownContent,\n EmailInput,\n EmailRow,\n FooterLink,\n FooterMain,\n FooterRoot,\n LanguageButton,\n LanguageMenu,\n LanguageWrapper,\n LeftColumn,\n LegalLink,\n LinkColumn,\n MobileFooterLink,\n MobileLegalGrid,\n MobileMenu,\n MobileMenuDropdown,\n MobileMenuLabel,\n NewsletterSection,\n NewsletterTitle,\n RightColumn,\n SectionLabel,\n SocialRow,\n SubscribeButton,\n Wordmark\n}\n","import { memo, useCallback, useEffect, useRef, useState } from 'react'\nimport { useAnalytics } from '@dcl/hooks'\nimport { useFormatMessage } from '../../hooks/adapters/useFormatMessage'\nimport { type SupportedLocale, useLocale } from '../../intl/LocaleContext'\nimport { SectionViewedTrack, SegmentEvent } from '../../modules/segment'\nimport { assetUrl } from '../../utils/assetUrl'\nimport { gettingStartedLinks, resourceLinks, socialLinks } from './footerConfig'\nimport { ChevronDown, Discord, GitHub, Instagram, LinkedIn, TikTok, XTwitter, YouTube } from './SocialIcons'\nimport {\n BottomBar,\n BottomBarLeft,\n BottomBarRight,\n ConnectSection,\n CopyrightText,\n DesktopLegalLinks,\n DropdownChevron,\n DropdownContent,\n FooterLink,\n FooterMain,\n FooterRoot,\n LanguageButton,\n LanguageMenu,\n LanguageWrapper,\n LeftColumn,\n LegalLink,\n LinkColumn,\n MobileFooterLink,\n MobileLegalGrid,\n MobileMenu,\n MobileMenuDropdown,\n MobileMenuLabel,\n NewsletterSection,\n NewsletterTitle,\n RightColumn,\n SectionLabel,\n SocialRow,\n Wordmark\n} from './LandingFooter.styled'\n\nconst BEEHIIV_EMBED_URL = 'https://embeds.beehiiv.com/ff89783d-748b-4ba3-8700-4759f6f62831?slim=true'\n\nconst socialIconMap: Record<string, React.FC> = {\n Discord,\n GitHub,\n X: XTwitter,\n Instagram,\n YouTube,\n TikTok,\n LinkedIn\n}\n\nconst legalLinks = [\n { label: 'Privacy Policy', url: '/privacy' },\n { label: 'Terms of Use', url: '/terms' },\n { label: 'Content Policy', url: '/content' },\n { label: 'Code of Ethics', url: '/ethics' }\n]\n\n// Country code → Twemoji CDN URL for cross-platform flag rendering (Windows lacks flag emojis)\nconst flagUrl = (code: string) => `https://cdn.jsdelivr.net/gh/twitter/twemoji@latest/assets/svg/${code}.svg`\n\nconst LANGUAGES: { code: SupportedLocale; label: string; flag: string }[] = [\n { code: 'en', label: 'English', flag: flagUrl('1f1ec-1f1e7') },\n { code: 'es', label: 'Español', flag: flagUrl('1f1ea-1f1f8') },\n { code: 'fr', label: 'Français', flag: flagUrl('1f1eb-1f1f7') },\n { code: 'zh', label: '中文', flag: flagUrl('1f1e8-1f1f3') },\n { code: 'ko', label: '한국어', flag: flagUrl('1f1f0-1f1f7') },\n { code: 'ja', label: '日本語', flag: flagUrl('1f1ef-1f1f5') }\n]\n\nconst SocialIconsRow = ({ onTrack }: { onTrack?: (platform: string) => void }) => (\n <SocialRow>\n {socialLinks.map(link => {\n const Icon = socialIconMap[link.name]\n return (\n <a\n key={link.name}\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={link.name}\n onClick={() => onTrack?.(link.name)}\n >\n <Icon />\n </a>\n )\n })}\n </SocialRow>\n)\n\nconst LandingFooter = memo(() => {\n const l = useFormatMessage()\n const { locale, setLocale } = useLocale()\n const { isInitialized, track } = useAnalytics()\n const [openSection, setOpenSection] = useState<string | null>(null)\n const [langOpen, setLangOpen] = useState(false)\n const langRef = useRef<HTMLDivElement>(null)\n\n const currentLang = LANGUAGES.find(lang => lang.code === locale) || LANGUAGES[0]\n\n const trackFooter = useCallback(\n (place: string, extra?: Record<string, string>) => {\n if (!isInitialized) return\n track(SegmentEvent.CLICK, { place, event: 'click', ...extra })\n },\n [isInitialized, track]\n )\n\n const handleSocialClick = useCallback(\n (platform: string) => trackFooter(SectionViewedTrack.LANDING_FOOTER_SOCIAL, { platform }),\n [trackFooter]\n )\n\n const toggleSection = useCallback((key: string) => {\n setOpenSection(prev => (prev === key ? null : key))\n }, [])\n\n // Close language menu on outside click\n useEffect(() => {\n if (!langOpen) return\n const handleClick = (e: MouseEvent) => {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false)\n }\n }\n document.addEventListener('mousedown', handleClick)\n return () => document.removeEventListener('mousedown', handleClick)\n }, [langOpen])\n\n return (\n <FooterRoot>\n {/* ── Main footer (purple) ─────────────────────────────────────── */}\n <FooterMain>\n <LeftColumn>\n <Wordmark src={assetUrl('/dcl_name.svg')} alt=\"Decentraland\" />\n\n <NewsletterSection>\n <NewsletterTitle>{l('component.landing.footer.newsletter.title')}</NewsletterTitle>\n <iframe\n src={BEEHIIV_EMBED_URL}\n data-test-id=\"beehiiv-embed\"\n height=\"65\"\n frameBorder=\"0\"\n scrolling=\"no\"\n style={{ width: '100%', maxWidth: 450, border: 'none', borderRadius: 6 }}\n title=\"Newsletter signup\"\n />\n </NewsletterSection>\n\n <ConnectSection className=\"desktop-only\">\n <SectionLabel>{l('component.landing.footer.connect')}</SectionLabel>\n <SocialIconsRow onTrack={handleSocialClick} />\n </ConnectSection>\n </LeftColumn>\n\n <RightColumn>\n <LinkColumn>\n <SectionLabel>{l('component.landing.footer.getting_started.title')}</SectionLabel>\n {gettingStartedLinks.map(link => (\n <FooterLink\n key={link.labelKey}\n href={link.url}\n target={link.url.startsWith('http') ? '_blank' : undefined}\n rel=\"noopener noreferrer\"\n onClick={() => trackFooter(SectionViewedTrack.LANDING_FOOTER_LINK, { link: l(link.labelKey) })}\n >\n {l(link.labelKey)}\n </FooterLink>\n ))}\n </LinkColumn>\n <LinkColumn>\n <SectionLabel>{l('component.landing.footer.resources.title')}</SectionLabel>\n {resourceLinks.map(link => (\n <FooterLink\n key={link.labelKey}\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={() => trackFooter(SectionViewedTrack.LANDING_FOOTER_LINK, { link: l(link.labelKey) })}\n >\n {l(link.labelKey)}\n </FooterLink>\n ))}\n </LinkColumn>\n </RightColumn>\n\n <MobileMenu>\n <MobileMenuLabel>{l('component.landing.footer.menu')}</MobileMenuLabel>\n\n <MobileMenuDropdown onClick={() => toggleSection('getting-started')}>\n {l('component.landing.footer.getting_started.title')}\n <DropdownChevron open={openSection === 'getting-started'}>\n <ChevronDown />\n </DropdownChevron>\n </MobileMenuDropdown>\n <DropdownContent open={openSection === 'getting-started'}>\n {gettingStartedLinks.map(link => (\n <MobileFooterLink\n key={link.labelKey}\n href={link.url}\n target={link.url.startsWith('http') ? '_blank' : undefined}\n rel=\"noopener noreferrer\"\n onClick={() => trackFooter(SectionViewedTrack.LANDING_FOOTER_LINK, { link: l(link.labelKey) })}\n >\n {l(link.labelKey)}\n </MobileFooterLink>\n ))}\n </DropdownContent>\n\n <MobileMenuDropdown onClick={() => toggleSection('resources')}>\n {l('component.landing.footer.resources.title')}\n <DropdownChevron open={openSection === 'resources'}>\n <ChevronDown />\n </DropdownChevron>\n </MobileMenuDropdown>\n <DropdownContent open={openSection === 'resources'}>\n {resourceLinks.map(link => (\n <MobileFooterLink\n key={link.labelKey}\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={() => trackFooter(SectionViewedTrack.LANDING_FOOTER_LINK, { link: l(link.labelKey) })}\n >\n {l(link.labelKey)}\n </MobileFooterLink>\n ))}\n </DropdownContent>\n </MobileMenu>\n\n <ConnectSection className=\"mobile-only\">\n <SectionLabel>{l('component.landing.footer.connect')}</SectionLabel>\n <SocialIconsRow onTrack={handleSocialClick} />\n </ConnectSection>\n </FooterMain>\n\n {/* ── Bottom bar (legal links) ─────────────────────────────────── */}\n <BottomBar>\n <BottomBarLeft>\n <LanguageWrapper ref={langRef}>\n <LanguageButton onClick={() => setLangOpen(o => !o)}>\n <img src={currentLang.flag} alt=\"\" width={16} height={16} style={{ borderRadius: 2 }} />\n {currentLang.label}\n <DropdownChevron open={langOpen} style={{ display: 'inline-flex' }}>\n <ChevronDown />\n </DropdownChevron>\n </LanguageButton>\n {langOpen && (\n <LanguageMenu>\n {LANGUAGES.map(lang => (\n <button\n key={lang.code}\n className={lang.code === locale ? 'active' : ''}\n onClick={() => {\n setLocale(lang.code)\n setLangOpen(false)\n }}\n >\n <img src={lang.flag} alt=\"\" width={16} height={16} style={{ borderRadius: 2 }} />\n {lang.label}\n </button>\n ))}\n </LanguageMenu>\n )}\n </LanguageWrapper>\n\n <DesktopLegalLinks>\n {legalLinks.map(link => (\n <LegalLink key={link.label} href={link.url}>\n {link.label}\n </LegalLink>\n ))}\n </DesktopLegalLinks>\n\n <MobileLegalGrid>\n <div>\n <LegalLink href=\"/privacy\">Privacy Policy</LegalLink>\n <LegalLink href=\"/terms\">Terms of Use</LegalLink>\n </div>\n <div>\n <LegalLink href=\"/content\">Content Policy</LegalLink>\n <LegalLink href=\"/ethics\">Code of Ethics</LegalLink>\n </div>\n </MobileLegalGrid>\n </BottomBarLeft>\n\n <BottomBarRight>\n <CopyrightText>© {new Date().getFullYear()} Decentraland</CopyrightText>\n </BottomBarRight>\n </BottomBar>\n </FooterRoot>\n )\n})\n\nLandingFooter.displayName = 'LandingFooter'\n\nexport { LandingFooter }\n"],"names":["socialLinks","gettingStartedLinks","resourceLinks","Discord","jsx","GitHub","XTwitter","Instagram","YouTube","TikTok","LinkedIn","ChevronDown","FooterRoot","styled","FooterMain","theme","LeftColumn","Wordmark","NewsletterSection","NewsletterTitle","ConnectSection","SectionLabel","SocialRow","RightColumn","LinkColumn","FooterLink","MobileMenu","MobileMenuLabel","MobileMenuDropdown","DropdownChevron","open","DropdownContent","MobileFooterLink","BottomBar","BottomBarLeft","BottomBarRight","LegalLink","CopyrightText","LanguageWrapper","LanguageButton","LanguageMenu","MobileLegalGrid","DesktopLegalLinks","BEEHIIV_EMBED_URL","socialIconMap","legalLinks","flagUrl","code","LANGUAGES","SocialIconsRow","onTrack","link","Icon","LandingFooter","memo","l","useFormatMessage","locale","setLocale","useLocale","isInitialized","track","useAnalytics","openSection","setOpenSection","useState","langOpen","setLangOpen","langRef","useRef","currentLang","lang","trackFooter","useCallback","place","extra","SegmentEvent","handleSocialClick","platform","SectionViewedTrack","toggleSection","key","prev","useEffect","handleClick","e","jsxs","assetUrl","o"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-DErVyQiP.js","sources":["../../src/components/LandingFooter/footerConfig.ts","../../src/components/LandingFooter/SocialIcons.tsx","../../src/components/LandingFooter/LandingFooter.styled.ts","../../src/components/LandingFooter/LandingFooter.tsx"],"sourcesContent":["const socialLinks = [\n { name: 'Discord', url: 'https://dcl.gg/discord' },\n { name: 'GitHub', url: 'https://github.com/decentraland' },\n { name: 'X', url: 'https://x.com/decentraland' },\n { name: 'Instagram', url: 'https://instagram.com/decentraland_foundation/' },\n { name: 'YouTube', url: 'https://youtube.com/@decentraland_foundation' },\n { name: 'TikTok', url: 'https://tiktok.com/@decentraland_fdn' },\n { name: 'LinkedIn', url: 'https://linkedin.com/company/decentralandorg' }\n] as const\n\nconst gettingStartedLinks = [\n { labelKey: 'component.landing.footer.getting_started.what_is', url: 'https://docs.decentraland.org/introduction/about-decentraland' },\n { labelKey: 'component.landing.footer.getting_started.download', url: '/download' },\n {\n labelKey: 'component.landing.footer.getting_started.system_requirements',\n url: 'https://docs.decentraland.org/in-world/settings-and-performance'\n },\n { labelKey: 'component.landing.footer.getting_started.faqs', url: 'https://docs.decentraland.org/faqs/decentraland-101' },\n { labelKey: 'component.landing.footer.getting_started.contact_support', url: 'https://decentraland.org/help/' }\n] as const\n\nconst resourceLinks = [\n { labelKey: 'component.landing.footer.resources.marketplace', url: 'https://decentraland.org/marketplace' },\n { labelKey: 'component.landing.footer.resources.creator_hub', url: 'https://decentraland.org/create/' },\n { labelKey: 'component.landing.footer.resources.docs', url: 'https://docs.decentraland.org' },\n { labelKey: 'component.landing.footer.resources.blog', url: 'https://decentraland.org/blog/' },\n { labelKey: 'component.landing.footer.resources.vote', url: 'https://decentraland.org/dao' }\n] as const\n\nexport { gettingStartedLinks, resourceLinks, socialLinks }\n","/** Inline SVG social icons — no MUI dependency, tiny footprint. */\n\nconst Discord = () => (\n <svg viewBox=\"0 0 28 22\" fill=\"currentColor\" width=\"28\" height=\"22\">\n <path d=\"M23.7 1.84A23.25 23.25 0 0 0 17.96 0c-.25.45-.54 1.05-.74 1.53a21.5 21.5 0 0 0-6.45 0C10.57 1.05 10.27.45 10.02 0A23.2 23.2 0 0 0 4.27 1.85C.62 7.34-.38 12.7.12 18a23.37 23.37 0 0 0 7.13 3.6 17.4 17.4 0 0 0 1.53-2.49 15.17 15.17 0 0 1-2.41-1.16c.2-.15.4-.3.59-.46a16.63 16.63 0 0 0 14.1 0c.19.16.39.31.58.46-.77.45-1.57.84-2.41 1.16.44.87.96 1.7 1.53 2.49a23.3 23.3 0 0 0 7.14-3.61c.58-6.15-1-11.47-4.1-16.15ZM9.35 14.74c-1.4 0-2.54-1.28-2.54-2.85s1.12-2.86 2.54-2.86 2.56 1.29 2.54 2.86c0 1.57-1.12 2.85-2.54 2.85Zm9.38 0c-1.4 0-2.54-1.28-2.54-2.85s1.12-2.86 2.54-2.86 2.56 1.29 2.54 2.86c0 1.57-1.12 2.85-2.54 2.85Z\" />\n </svg>\n)\n\nconst GitHub = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M12 .3a12 12 0 0 0-3.8 23.38c.6.12.82-.26.82-.58v-2.02c-3.34.73-4.04-1.61-4.04-1.61-.55-1.39-1.34-1.76-1.34-1.76-1.08-.74.08-.73.08-.73 1.2.09 1.84 1.24 1.84 1.24 1.07 1.83 2.8 1.3 3.49 1 .1-.78.42-1.3.76-1.6-2.67-.31-5.47-1.34-5.47-5.93 0-1.31.47-2.38 1.24-3.22-.13-.3-.54-1.52.12-3.18 0 0 1-.33 3.3 1.23a11.5 11.5 0 0 1 6.02 0c2.28-1.56 3.29-1.23 3.29-1.23.66 1.66.25 2.88.12 3.18a4.65 4.65 0 0 1 1.24 3.22c0 4.61-2.81 5.62-5.48 5.92.43.37.81 1.1.81 2.22v3.29c0 .32.22.7.82.58A12 12 0 0 0 12 .3Z\" />\n </svg>\n)\n\nconst XTwitter = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.45-6.231Zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77Z\" />\n </svg>\n)\n\nconst Instagram = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069ZM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0Zm0 5.838a6.162 6.162 0 1 0 0 12.324 6.162 6.162 0 0 0 0-12.324ZM12 16a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm6.406-11.845a1.44 1.44 0 1 0 0 2.881 1.44 1.44 0 0 0 0-2.881Z\" />\n </svg>\n)\n\nconst YouTube = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.546 12 3.546 12 3.546s-7.505 0-9.377.504A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.504 9.376.504 9.376.504s7.505 0 9.377-.504a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814ZM9.545 15.568V8.432L15.818 12l-6.273 3.568Z\" />\n </svg>\n)\n\nconst TikTok = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07Z\" />\n </svg>\n)\n\nconst LinkedIn = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"24\" height=\"24\">\n <path d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286ZM5.337 7.433a2.062 2.062 0 1 1 0-4.123 2.062 2.062 0 0 1 0 4.123ZM6.863 20.452H3.804V9h3.059v11.452ZM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003Z\" />\n </svg>\n)\n\nconst ChevronDown = () => (\n <svg viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"20\" height=\"20\">\n <path d=\"M7.41 8.59 12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41Z\" />\n </svg>\n)\n\nexport { ChevronDown, Discord, GitHub, Instagram, LinkedIn, TikTok, XTwitter, YouTube }\n","import { styled } from 'decentraland-ui2'\n\n// ── Main footer (purple gradient) ─────────────────────────────────────\nconst FooterRoot = styled('footer')({\n width: '100%'\n})\n\nconst FooterMain = styled('div')(({ theme }) => ({\n width: '100%',\n background:\n 'radial-gradient(ellipse at 0% 0%, rgba(121,47,158,0.6) 0%, rgba(74,23,102,0.8) 25%, rgba(51,12,74,0.9) 50%, rgba(27,0,46,1) 75%)',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'stretch',\n padding: '32px 180px',\n [theme.breakpoints.down('lg')]: {\n padding: '32px 80px'\n },\n [theme.breakpoints.down('md')]: {\n padding: '32px 40px'\n },\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'center',\n gap: 32,\n padding: '48px 16px',\n background:\n 'radial-gradient(ellipse at 0% 0%, rgba(109,34,151,1) 0%, rgba(89,26,125,1) 12%, rgba(69,18,99,1) 25%, rgba(48,9,72,1) 50%, rgba(28,1,46,1) 75%)'\n }\n}))\n\n// ── Left column ───────────────────────────────────────────────────────\nconst LeftColumn = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: 40,\n padding: '40px 0',\n maxWidth: 450,\n [theme.breakpoints.down('sm')]: {\n padding: 0,\n width: '100%',\n alignItems: 'center',\n maxWidth: '100%'\n }\n}))\n\nconst Wordmark = styled('img')(({ theme }) => ({\n height: 48,\n width: 'auto',\n [theme.breakpoints.down('sm')]: {\n height: 40,\n maxWidth: 322\n }\n}))\n\nconst NewsletterSection = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: 12,\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n alignItems: 'center'\n }\n}))\n\nconst NewsletterTitle = styled('p')(({ theme }) => ({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 500,\n fontSize: 20,\n lineHeight: 1.6,\n color: '#fcfcfc',\n margin: 0,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center'\n }\n}))\n\nconst EmailRow = styled('form')(({ theme }) => ({\n display: 'flex',\n gap: 8,\n height: 46,\n width: '100%',\n maxWidth: 450,\n [theme.breakpoints.down('sm')]: {\n height: 40,\n maxWidth: '100%'\n }\n}))\n\nconst EmailInput = styled('input')({\n flex: 1,\n height: '100%',\n padding: '0 16px',\n borderRadius: 6,\n border: '1px solid white',\n backgroundColor: '#fcfcfc',\n fontFamily: 'Inter, sans-serif',\n fontSize: 16,\n color: '#1b002e',\n outline: 'none',\n boxSizing: 'border-box',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&::placeholder': {\n color: '#cfcdd4'\n }\n})\n\nconst SubscribeButton = styled('button')({\n height: '100%',\n padding: '0 22px',\n borderRadius: 6,\n border: 'none',\n backgroundColor: '#ff2d55',\n color: 'white',\n fontFamily: 'Inter, sans-serif',\n fontWeight: 700,\n fontSize: 15,\n letterSpacing: 0.46,\n textTransform: 'uppercase' as const,\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n flexShrink: 0,\n boxSizing: 'border-box',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n backgroundColor: '#e0264b'\n }\n})\n\n// ── Connect / Social ──────────────────────────────────────────────────\nconst ConnectSection = styled('div')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: 16,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&.desktop-only': {\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&.mobile-only': {\n display: 'none',\n [theme.breakpoints.down('sm')]: {\n display: 'flex',\n width: '100%',\n paddingTop: 12\n }\n }\n}))\n\nconst SectionLabel = styled('p')({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 400,\n fontSize: 16,\n lineHeight: 1.5,\n color: '#cfcdd4',\n margin: 0,\n textTransform: 'uppercase' as const\n})\n\nconst SocialRow = styled('div')({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n color: 'white',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& a': {\n color: 'inherit',\n display: 'flex',\n transition: 'opacity 0.2s',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n opacity: 0.7\n }\n }\n})\n\n// ── Right column (link columns) ──────────────────────────────────────\nconst RightColumn = styled('div')(({ theme }) => ({\n display: 'flex',\n gap: 180,\n padding: '40px 0',\n [theme.breakpoints.down('lg')]: {\n gap: 80\n },\n [theme.breakpoints.down('md')]: {\n gap: 48\n },\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n}))\n\nconst LinkColumn = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n gap: 16\n})\n\nconst FooterLink = styled('a')({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 600,\n fontSize: 16,\n lineHeight: 1.5,\n color: 'white',\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n textDecoration: 'underline'\n }\n})\n\n// ── Mobile collapsible menu ──────────────────────────────────────────\nconst MobileMenu = styled('div')(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.down('sm')]: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%'\n }\n}))\n\nconst MobileMenuLabel = styled('div')({\n display: 'flex',\n alignItems: 'center',\n gap: 5,\n padding: '12px 0',\n borderBottom: '0.5px solid rgba(255, 255, 255, 0.1)',\n fontFamily: 'Inter, sans-serif',\n fontWeight: 400,\n fontSize: 14,\n lineHeight: 1.75,\n color: '#cfcdd4',\n textTransform: 'uppercase' as const\n})\n\nconst MobileMenuDropdown = styled('button')({\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n padding: '24px 16px 24px 0',\n border: 'none',\n borderBottom: '0.5px solid rgba(255, 255, 255, 0.1)',\n background: 'none',\n cursor: 'pointer',\n fontFamily: 'Inter, sans-serif',\n fontWeight: 600,\n fontSize: 16,\n lineHeight: 1.75,\n color: 'white',\n textAlign: 'left'\n})\n\nconst DropdownChevron = styled('span')<{ open?: boolean }>(({ open }) => ({\n display: 'flex',\n transition: 'transform 0.3s ease',\n transform: open ? 'rotate(180deg)' : 'rotate(0deg)',\n color: 'white'\n}))\n\nconst DropdownContent = styled('div')<{ open?: boolean }>(({ open }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: 16,\n overflow: 'hidden',\n maxHeight: open ? 400 : 0,\n opacity: open ? 1 : 0,\n padding: open ? '16px 0 8px' : '0',\n transition: 'max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease'\n}))\n\nconst MobileFooterLink = styled('a')({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 400,\n fontSize: 15,\n lineHeight: 1.5,\n color: '#fcfcfc',\n textDecoration: 'none',\n paddingLeft: 8,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n textDecoration: 'underline'\n }\n})\n\n// ── Bottom bar (legal links) ─────────────────────────────────────────\nconst BottomBar = styled('div')(({ theme }) => ({\n width: '100%',\n backgroundColor: '#161518',\n boxShadow: 'inset 0px 1px 0px 0px #43404a',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '16px 24px',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: 16\n }\n}))\n\nconst BottomBarLeft = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: 16,\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: 16\n }\n}))\n\nconst BottomBarRight = styled('div')(({ theme }) => ({\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n}))\n\nconst LegalLink = styled('a')({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 400,\n fontSize: 14,\n lineHeight: 1.43,\n color: '#a09ba8',\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n color: '#cfcdd4'\n }\n})\n\nconst CopyrightText = styled('span')({\n fontFamily: 'Inter, sans-serif',\n fontWeight: 400,\n fontSize: 15,\n lineHeight: '24px',\n color: '#a09ba8',\n whiteSpace: 'nowrap'\n})\n\nconst LanguageWrapper = styled('div')({\n position: 'relative'\n})\n\nconst LanguageButton = styled('button')({\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n padding: 0,\n fontFamily: 'Inter, sans-serif',\n fontWeight: 600,\n fontSize: 15,\n lineHeight: '24px',\n color: 'white'\n})\n\nconst LanguageMenu = styled('div')({\n position: 'absolute',\n bottom: '100%',\n left: 0,\n marginBottom: 8,\n backgroundColor: '#242129',\n borderRadius: 8,\n border: '1px solid #43404a',\n padding: '4px 0',\n minWidth: 140,\n zIndex: 10,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& button': {\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n width: '100%',\n padding: '8px 16px',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontFamily: 'Inter, sans-serif',\n fontSize: 14,\n color: '#cfcdd4',\n whiteSpace: 'nowrap',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.08)'\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&.active': {\n color: 'white',\n fontWeight: 600\n }\n }\n})\n\nconst MobileLegalGrid = styled('div')(({ theme }) => ({\n display: 'none',\n [theme.breakpoints.down('sm')]: {\n display: 'flex',\n gap: 142,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& > div': {\n display: 'flex',\n flexDirection: 'column',\n gap: 16\n }\n }\n}))\n\nconst DesktopLegalLinks = styled('div')(({ theme }) => ({\n display: 'flex',\n alignItems: 'center',\n gap: 16,\n [theme.breakpoints.down('sm')]: {\n display: 'none'\n }\n}))\n\nexport {\n BottomBar,\n BottomBarLeft,\n BottomBarRight,\n ConnectSection,\n CopyrightText,\n DesktopLegalLinks,\n DropdownChevron,\n DropdownContent,\n EmailInput,\n EmailRow,\n FooterLink,\n FooterMain,\n FooterRoot,\n LanguageButton,\n LanguageMenu,\n LanguageWrapper,\n LeftColumn,\n LegalLink,\n LinkColumn,\n MobileFooterLink,\n MobileLegalGrid,\n MobileMenu,\n MobileMenuDropdown,\n MobileMenuLabel,\n NewsletterSection,\n NewsletterTitle,\n RightColumn,\n SectionLabel,\n SocialRow,\n SubscribeButton,\n Wordmark\n}\n","import { memo, useCallback, useEffect, useRef, useState } from 'react'\nimport { useAnalytics } from '@dcl/hooks'\nimport { useFormatMessage } from '../../hooks/adapters/useFormatMessage'\nimport { type SupportedLocale, useLocale } from '../../intl/LocaleContext'\nimport { SectionViewedTrack, SegmentEvent } from '../../modules/segment'\nimport { assetUrl } from '../../utils/assetUrl'\nimport { gettingStartedLinks, resourceLinks, socialLinks } from './footerConfig'\nimport { ChevronDown, Discord, GitHub, Instagram, LinkedIn, TikTok, XTwitter, YouTube } from './SocialIcons'\nimport {\n BottomBar,\n BottomBarLeft,\n BottomBarRight,\n ConnectSection,\n CopyrightText,\n DesktopLegalLinks,\n DropdownChevron,\n DropdownContent,\n FooterLink,\n FooterMain,\n FooterRoot,\n LanguageButton,\n LanguageMenu,\n LanguageWrapper,\n LeftColumn,\n LegalLink,\n LinkColumn,\n MobileFooterLink,\n MobileLegalGrid,\n MobileMenu,\n MobileMenuDropdown,\n MobileMenuLabel,\n NewsletterSection,\n NewsletterTitle,\n RightColumn,\n SectionLabel,\n SocialRow,\n Wordmark\n} from './LandingFooter.styled'\n\nconst BEEHIIV_EMBED_URL = 'https://embeds.beehiiv.com/ff89783d-748b-4ba3-8700-4759f6f62831?slim=true'\n\nconst socialIconMap: Record<string, React.FC> = {\n Discord,\n GitHub,\n X: XTwitter,\n Instagram,\n YouTube,\n TikTok,\n LinkedIn\n}\n\nconst legalLinks = [\n { label: 'Privacy Policy', url: '/privacy' },\n { label: 'Terms of Use', url: '/terms' },\n { label: 'Content Policy', url: '/content' },\n { label: 'Code of Ethics', url: '/ethics' }\n]\n\n// Country code → Twemoji CDN URL for cross-platform flag rendering (Windows lacks flag emojis)\nconst flagUrl = (code: string) => `https://cdn.jsdelivr.net/gh/twitter/twemoji@latest/assets/svg/${code}.svg`\n\nconst LANGUAGES: { code: SupportedLocale; label: string; flag: string }[] = [\n { code: 'en', label: 'English', flag: flagUrl('1f1ec-1f1e7') },\n { code: 'es', label: 'Español', flag: flagUrl('1f1ea-1f1f8') },\n { code: 'fr', label: 'Français', flag: flagUrl('1f1eb-1f1f7') },\n { code: 'zh', label: '中文', flag: flagUrl('1f1e8-1f1f3') },\n { code: 'ko', label: '한국어', flag: flagUrl('1f1f0-1f1f7') },\n { code: 'ja', label: '日本語', flag: flagUrl('1f1ef-1f1f5') }\n]\n\nconst SocialIconsRow = ({ onTrack }: { onTrack?: (platform: string) => void }) => (\n <SocialRow>\n {socialLinks.map(link => {\n const Icon = socialIconMap[link.name]\n return (\n <a\n key={link.name}\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={link.name}\n onClick={() => onTrack?.(link.name)}\n >\n <Icon />\n </a>\n )\n })}\n </SocialRow>\n)\n\nconst LandingFooter = memo(() => {\n const l = useFormatMessage()\n const { locale, setLocale } = useLocale()\n const { isInitialized, track } = useAnalytics()\n const [openSection, setOpenSection] = useState<string | null>(null)\n const [langOpen, setLangOpen] = useState(false)\n const langRef = useRef<HTMLDivElement>(null)\n\n const currentLang = LANGUAGES.find(lang => lang.code === locale) || LANGUAGES[0]\n\n const trackFooter = useCallback(\n (place: string, extra?: Record<string, string>) => {\n if (!isInitialized) return\n track(SegmentEvent.CLICK, { place, event: 'click', ...extra })\n },\n [isInitialized, track]\n )\n\n const handleSocialClick = useCallback(\n (platform: string) => trackFooter(SectionViewedTrack.LANDING_FOOTER_SOCIAL, { platform }),\n [trackFooter]\n )\n\n const toggleSection = useCallback((key: string) => {\n setOpenSection(prev => (prev === key ? null : key))\n }, [])\n\n // Close language menu on outside click\n useEffect(() => {\n if (!langOpen) return\n const handleClick = (e: MouseEvent) => {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false)\n }\n }\n document.addEventListener('mousedown', handleClick)\n return () => document.removeEventListener('mousedown', handleClick)\n }, [langOpen])\n\n return (\n <FooterRoot>\n {/* ── Main footer (purple) ─────────────────────────────────────── */}\n <FooterMain>\n <LeftColumn>\n <Wordmark src={assetUrl('/dcl_name.svg')} alt=\"Decentraland\" />\n\n <NewsletterSection>\n <NewsletterTitle>{l('component.landing.footer.newsletter.title')}</NewsletterTitle>\n <iframe\n src={BEEHIIV_EMBED_URL}\n data-test-id=\"beehiiv-embed\"\n height=\"65\"\n frameBorder=\"0\"\n scrolling=\"no\"\n style={{ width: '100%', maxWidth: 450, border: 'none', borderRadius: 6 }}\n title=\"Newsletter signup\"\n />\n </NewsletterSection>\n\n <ConnectSection className=\"desktop-only\">\n <SectionLabel>{l('component.landing.footer.connect')}</SectionLabel>\n <SocialIconsRow onTrack={handleSocialClick} />\n </ConnectSection>\n </LeftColumn>\n\n <RightColumn>\n <LinkColumn>\n <SectionLabel>{l('component.landing.footer.getting_started.title')}</SectionLabel>\n {gettingStartedLinks.map(link => (\n <FooterLink\n key={link.labelKey}\n href={link.url}\n target={link.url.startsWith('http') ? '_blank' : undefined}\n rel=\"noopener noreferrer\"\n onClick={() => trackFooter(SectionViewedTrack.LANDING_FOOTER_LINK, { link: l(link.labelKey) })}\n >\n {l(link.labelKey)}\n </FooterLink>\n ))}\n </LinkColumn>\n <LinkColumn>\n <SectionLabel>{l('component.landing.footer.resources.title')}</SectionLabel>\n {resourceLinks.map(link => (\n <FooterLink\n key={link.labelKey}\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={() => trackFooter(SectionViewedTrack.LANDING_FOOTER_LINK, { link: l(link.labelKey) })}\n >\n {l(link.labelKey)}\n </FooterLink>\n ))}\n </LinkColumn>\n </RightColumn>\n\n <MobileMenu>\n <MobileMenuLabel>{l('component.landing.footer.menu')}</MobileMenuLabel>\n\n <MobileMenuDropdown onClick={() => toggleSection('getting-started')}>\n {l('component.landing.footer.getting_started.title')}\n <DropdownChevron open={openSection === 'getting-started'}>\n <ChevronDown />\n </DropdownChevron>\n </MobileMenuDropdown>\n <DropdownContent open={openSection === 'getting-started'}>\n {gettingStartedLinks.map(link => (\n <MobileFooterLink\n key={link.labelKey}\n href={link.url}\n target={link.url.startsWith('http') ? '_blank' : undefined}\n rel=\"noopener noreferrer\"\n onClick={() => trackFooter(SectionViewedTrack.LANDING_FOOTER_LINK, { link: l(link.labelKey) })}\n >\n {l(link.labelKey)}\n </MobileFooterLink>\n ))}\n </DropdownContent>\n\n <MobileMenuDropdown onClick={() => toggleSection('resources')}>\n {l('component.landing.footer.resources.title')}\n <DropdownChevron open={openSection === 'resources'}>\n <ChevronDown />\n </DropdownChevron>\n </MobileMenuDropdown>\n <DropdownContent open={openSection === 'resources'}>\n {resourceLinks.map(link => (\n <MobileFooterLink\n key={link.labelKey}\n href={link.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={() => trackFooter(SectionViewedTrack.LANDING_FOOTER_LINK, { link: l(link.labelKey) })}\n >\n {l(link.labelKey)}\n </MobileFooterLink>\n ))}\n </DropdownContent>\n </MobileMenu>\n\n <ConnectSection className=\"mobile-only\">\n <SectionLabel>{l('component.landing.footer.connect')}</SectionLabel>\n <SocialIconsRow onTrack={handleSocialClick} />\n </ConnectSection>\n </FooterMain>\n\n {/* ── Bottom bar (legal links) ─────────────────────────────────── */}\n <BottomBar>\n <BottomBarLeft>\n <LanguageWrapper ref={langRef}>\n <LanguageButton onClick={() => setLangOpen(o => !o)}>\n <img src={currentLang.flag} alt=\"\" width={16} height={16} style={{ borderRadius: 2 }} />\n {currentLang.label}\n <DropdownChevron open={langOpen} style={{ display: 'inline-flex' }}>\n <ChevronDown />\n </DropdownChevron>\n </LanguageButton>\n {langOpen && (\n <LanguageMenu>\n {LANGUAGES.map(lang => (\n <button\n key={lang.code}\n className={lang.code === locale ? 'active' : ''}\n onClick={() => {\n setLocale(lang.code)\n setLangOpen(false)\n }}\n >\n <img src={lang.flag} alt=\"\" width={16} height={16} style={{ borderRadius: 2 }} />\n {lang.label}\n </button>\n ))}\n </LanguageMenu>\n )}\n </LanguageWrapper>\n\n <DesktopLegalLinks>\n {legalLinks.map(link => (\n <LegalLink key={link.label} href={link.url}>\n {link.label}\n </LegalLink>\n ))}\n </DesktopLegalLinks>\n\n <MobileLegalGrid>\n <div>\n <LegalLink href=\"/privacy\">Privacy Policy</LegalLink>\n <LegalLink href=\"/terms\">Terms of Use</LegalLink>\n </div>\n <div>\n <LegalLink href=\"/content\">Content Policy</LegalLink>\n <LegalLink href=\"/ethics\">Code of Ethics</LegalLink>\n </div>\n </MobileLegalGrid>\n </BottomBarLeft>\n\n <BottomBarRight>\n <CopyrightText>© {new Date().getFullYear()} Decentraland</CopyrightText>\n </BottomBarRight>\n </BottomBar>\n </FooterRoot>\n )\n})\n\nLandingFooter.displayName = 'LandingFooter'\n\nexport { LandingFooter }\n"],"names":["socialLinks","gettingStartedLinks","resourceLinks","Discord","jsx","GitHub","XTwitter","Instagram","YouTube","TikTok","LinkedIn","ChevronDown","FooterRoot","styled","FooterMain","theme","LeftColumn","Wordmark","NewsletterSection","NewsletterTitle","ConnectSection","SectionLabel","SocialRow","RightColumn","LinkColumn","FooterLink","MobileMenu","MobileMenuLabel","MobileMenuDropdown","DropdownChevron","open","DropdownContent","MobileFooterLink","BottomBar","BottomBarLeft","BottomBarRight","LegalLink","CopyrightText","LanguageWrapper","LanguageButton","LanguageMenu","MobileLegalGrid","DesktopLegalLinks","BEEHIIV_EMBED_URL","socialIconMap","legalLinks","flagUrl","code","LANGUAGES","SocialIconsRow","onTrack","link","Icon","LandingFooter","memo","l","useFormatMessage","locale","setLocale","useLocale","isInitialized","track","useAnalytics","openSection","setOpenSection","useState","langOpen","setLangOpen","langRef","useRef","currentLang","lang","trackFooter","useCallback","place","extra","SegmentEvent","handleSocialClick","platform","SectionViewedTrack","toggleSection","key","prev","useEffect","handleClick","e","jsxs","assetUrl","o"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e,w as r,a as o,x as s,j as i}from"./index-
|
|
1
|
+
import{s as e,w as r,a as o,x as s,j as i}from"./index-D9krZGYy.js";import{r as d}from"./vendor-router-D7SOoytt.js";import{A as l}from"./AnimatedSection-CpvtnDxq.js";import{w as m}from"./index-DytFFz4y.js";import"./vendor-crypto-CXsBIwXr.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-DCdewyWN.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";import"./useCreatorHubDownload-Cqo_jiD_.js";import"./file-Cr_gl9BS.js";import"./url-D90migVD.js";import"./index-XmZQan5Q.js";import"./useLatestGithubRelease-DRfAJTYG.js";import"./CTAButton-CFiXuCIG.js";import"./CircularProgress-D1x03AKQ.js";import"./Video-CKs5_Z0w.js";const p=e("section")(({theme:t})=>({display:"flex",flexDirection:"column",gap:"1em",width:"100%",paddingBottom:100,[t.breakpoints.down("sm")]:{paddingBottom:40,paddingLeft:t.spacing(4),paddingRight:t.spacing(4),overflow:"hidden"}})),g=e(r)(({theme:t})=>({textAlign:"center",fontSize:48,fontWeight:600,color:"#fcfcfc",marginTop:0,marginBottom:32,maxWidth:"80vw",marginLeft:"auto",marginRight:"auto","& span":{background:"linear-gradient(244deg, #ff2d55 -11.67%, #ffbc5b 88.23%)",backgroundClip:"text",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},[t.breakpoints.down("sm")]:{fontSize:32,fontWeight:700,lineHeight:"40px",letterSpacing:"-0.64px"}})),c=e(o)(({theme:t})=>({display:"flex",flexDirection:"row",justifyContent:"center",[t.breakpoints.down("sm")]:{flexDirection:"column",gap:20}})),a={join:"linear-gradient(206deg, #c640cd 2.47%, #691fa9 98.81%)",create:"radial-gradient(2917.83% 156.44% at 16.06% 114.57%, #ff4f57 13.42%, #ffa25a 100%)",benefit:"linear-gradient(208deg, #ff2d55 13.94%, #c640cd 80.96%)"},h=e(o,{shouldForwardProp:t=>t!=="cardId"})(({theme:t,cardId:n})=>({opacity:1,maxWidth:450,flexShrink:0,borderRadius:24,marginRight:24,flex:1,background:a[n]||a.join,"&:last-child":{marginRight:0},[t.breakpoints.down("sm")]:{width:"100%",maxWidth:"100%",marginRight:0}})),f=e(o)(({theme:t})=>({justifyContent:"space-between",alignItems:"center",height:"100%",display:"flex",flexDirection:"column",padding:"24px 24px 32px",position:"relative",borderRadius:20,overflow:"hidden",flex:1,transition:"transform 0.3s ease-in-out","@media (hover: hover)":{"&:hover":{transform:"scale(1.05)"}},[t.breakpoints.down("sm")]:{padding:"26px 24px",justifyContent:"flex-start"}})),x=e(o)(({theme:t})=>({borderRadius:16,width:"100%",marginBottom:24,display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden","& img":{flex:"1 1 auto",minHeight:0,objectFit:"contain",maxWidth:"100%"},[t.breakpoints.down("sm")]:{height:138,minHeight:138,marginBottom:16,"& img":{maxWidth:"none",minHeight:"100%",minWidth:"100%"}}})),y=e(o)({alignSelf:"flex-start",flex:1,display:"flex",flexDirection:"column",justifyContent:"flex-start"}),u=e(r)(({theme:t})=>({fontSize:24,lineHeight:"30px",fontWeight:600,marginBottom:8,paddingLeft:10,paddingRight:10,[t.breakpoints.down("sm")]:{fontWeight:700,fontSize:20,lineHeight:"28px"}})),w=e(r)(({theme:t})=>({fontSize:18,lineHeight:"24px",fontWeight:400,marginTop:0,paddingLeft:10,paddingRight:10,[t.breakpoints.down("sm")]:{color:"#fff"}})),_=d.memo(()=>{const t=s();return i.jsx(l,{children:i.jsxs(p,{children:[i.jsxs(g,{children:[i.jsx("span",{children:t("component.creators_landing.why.title_highlight")})," ",t("component.creators_landing.why.title")]}),i.jsx(c,{children:m.map(n=>i.jsx(h,{cardId:n.id,children:i.jsxs(f,{children:[i.jsx(x,{children:i.jsx("img",{src:n.image,alt:n.title})}),i.jsxs(y,{children:[i.jsx(u,{children:n.title}),i.jsx(w,{children:n.description})]})]})},n.id))})]})})});export{_ as CreatorsWhy};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-DOEJnoYg.js","sources":["../../src/components/Create/Why/Why.styled.ts","../../src/components/Create/Why/Why.tsx"],"sourcesContent":["import { Box, Typography, styled } from 'decentraland-ui2'\n\nconst WhySection = styled('section')(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n gap: '1em',\n width: '100%',\n paddingBottom: 100,\n [theme.breakpoints.down('sm')]: {\n paddingBottom: 40,\n paddingLeft: theme.spacing(4),\n paddingRight: theme.spacing(4),\n overflow: 'hidden'\n }\n}))\n\nconst WhyTitle = styled(Typography)(({ theme }) => ({\n textAlign: 'center',\n fontSize: 48,\n fontWeight: 600,\n color: '#fcfcfc',\n marginTop: 0,\n marginBottom: 32,\n maxWidth: '80vw',\n marginLeft: 'auto',\n marginRight: 'auto',\n ['& span']: {\n background: 'linear-gradient(244deg, #ff2d55 -11.67%, #ffbc5b 88.23%)',\n backgroundClip: 'text',\n ['WebkitBackgroundClip' as string]: 'text',\n ['WebkitTextFillColor' as string]: 'transparent'\n },\n [theme.breakpoints.down('sm')]: {\n fontSize: 32,\n fontWeight: 700,\n lineHeight: '40px',\n letterSpacing: '-0.64px'\n }\n}))\n\nconst WhyGrid = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n [theme.breakpoints.down('sm')]: {\n flexDirection: 'column',\n gap: 20\n }\n}))\n\nconst cardGradients: Record<string, string> = {\n join: 'linear-gradient(206deg, #c640cd 2.47%, #691fa9 98.81%)',\n create: 'radial-gradient(2917.83% 156.44% at 16.06% 114.57%, #ff4f57 13.42%, #ffa25a 100%)',\n benefit: 'linear-gradient(208deg, #ff2d55 13.94%, #c640cd 80.96%)'\n}\n\nconst WhyCard = styled(Box, {\n shouldForwardProp: prop => prop !== 'cardId'\n})<{ cardId: string }>(({ theme, cardId }) => ({\n opacity: 1,\n maxWidth: 450,\n flexShrink: 0,\n borderRadius: 24,\n marginRight: 24,\n flex: 1,\n background: cardGradients[cardId] || cardGradients.join,\n ['&:last-child']: {\n marginRight: 0\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n maxWidth: '100%',\n marginRight: 0\n }\n}))\n\nconst WhyCardInner = styled(Box)(({ theme }) => ({\n justifyContent: 'space-between',\n alignItems: 'center',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n padding: '24px 24px 32px',\n position: 'relative',\n borderRadius: 20,\n overflow: 'hidden',\n flex: 1,\n transition: 'transform 0.3s ease-in-out',\n ['@media (hover: hover)']: {\n ['&:hover']: {\n transform: 'scale(1.05)'\n }\n },\n [theme.breakpoints.down('sm')]: {\n padding: '26px 24px',\n justifyContent: 'flex-start'\n }\n}))\n\nconst WhyCardImageContainer = styled(Box)(({ theme }) => ({\n borderRadius: 16,\n width: '100%',\n marginBottom: 24,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n ['& img']: {\n flex: '1 1 auto',\n minHeight: 0,\n objectFit: 'contain',\n maxWidth: '100%'\n },\n [theme.breakpoints.down('sm')]: {\n height: 138,\n minHeight: 138,\n marginBottom: 16,\n ['& img']: {\n maxWidth: 'none',\n minHeight: '100%',\n minWidth: '100%'\n }\n }\n}))\n\nconst WhyCardText = styled(Box)({\n alignSelf: 'flex-start',\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n})\n\nconst WhyCardTitle = styled(Typography)(({ theme }) => ({\n fontSize: 24,\n lineHeight: '30px',\n fontWeight: 600,\n marginBottom: 8,\n paddingLeft: 10,\n paddingRight: 10,\n [theme.breakpoints.down('sm')]: {\n fontWeight: 700,\n fontSize: 20,\n lineHeight: '28px'\n }\n}))\n\nconst WhyCardDescription = styled(Typography)(({ theme }) => ({\n fontSize: 18,\n lineHeight: '24px',\n fontWeight: 400,\n marginTop: 0,\n paddingLeft: 10,\n paddingRight: 10,\n [theme.breakpoints.down('sm')]: {\n color: '#fff'\n }\n}))\n\nexport { WhyCard, WhyCardDescription, WhyCardImageContainer, WhyCardInner, WhyCardText, WhyCardTitle, WhyGrid, WhySection, WhyTitle }\n","import { memo } from 'react'\nimport { useFormatMessage } from '../../../hooks/adapters/useFormatMessage'\nimport { AnimatedSection } from '../AnimatedSection'\nimport { whyCards } from '../data'\nimport {\n WhyCard,\n WhyCardDescription,\n WhyCardImageContainer,\n WhyCardInner,\n WhyCardText,\n WhyCardTitle,\n WhyGrid,\n WhySection,\n WhyTitle\n} from './Why.styled'\n\nconst CreatorsWhy = memo(() => {\n const l = useFormatMessage()\n return (\n <AnimatedSection>\n <WhySection>\n <WhyTitle>\n <span>{l('component.creators_landing.why.title_highlight')}</span> {l('component.creators_landing.why.title')}\n </WhyTitle>\n <WhyGrid>\n {whyCards.map(card => (\n <WhyCard key={card.id} cardId={card.id}>\n <WhyCardInner>\n <WhyCardImageContainer>\n <img src={card.image} alt={card.title} />\n </WhyCardImageContainer>\n <WhyCardText>\n <WhyCardTitle>{card.title}</WhyCardTitle>\n <WhyCardDescription>{card.description}</WhyCardDescription>\n </WhyCardText>\n </WhyCardInner>\n </WhyCard>\n ))}\n </WhyGrid>\n </WhySection>\n </AnimatedSection>\n )\n})\n\nexport { CreatorsWhy }\n"],"names":["WhySection","styled","theme","WhyTitle","Typography","WhyGrid","Box","cardGradients","WhyCard","prop","cardId","WhyCardInner","WhyCardImageContainer","WhyCardText","WhyCardTitle","WhyCardDescription","CreatorsWhy","memo","l","useFormatMessage","jsx","AnimatedSection","jsxs","whyCards","card"],"mappings":"0oBAEA,MAAMA,EAAaC,EAAO,SAAS,EAAE,CAAC,CAAE,MAAAC,MAAa,CACnD,QAAS,OACT,cAAe,SACf,IAAK,MACL,MAAO,OACP,cAAe,IACf,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,cAAe,GACf,YAAaA,EAAM,QAAQ,CAAC,EAC5B,aAAcA,EAAM,QAAQ,CAAC,EAC7B,SAAU,QAAA,CAEd,EAAE,EAEIC,EAAWF,EAAOG,CAAU,EAAE,CAAC,CAAE,MAAAF,MAAa,CAClD,UAAW,SACX,SAAU,GACV,WAAY,IACZ,MAAO,UACP,UAAW,EACX,aAAc,GACd,SAAU,OACV,WAAY,OACZ,YAAa,OACZ,SAAW,CACV,WAAY,2DACZ,eAAgB,OACf,qBAAmC,OACnC,oBAAkC,aAAA,EAErC,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,SAAU,GACV,WAAY,IACZ,WAAY,OACZ,cAAe,SAAA,CAEnB,EAAE,EAEIG,EAAUJ,EAAOK,CAAG,EAAE,CAAC,CAAE,MAAAJ,MAAa,CAC1C,QAAS,OACT,cAAe,MACf,eAAgB,SAChB,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,cAAe,SACf,IAAK,EAAA,CAET,EAAE,EAEIK,EAAwC,CAC5C,KAAM,yDACN,OAAQ,oFACR,QAAS,yDACX,EAEMC,EAAUP,EAAOK,EAAK,CAC1B,qBAA2BG,IAAS,QACtC,CAAC,EAAsB,CAAC,CAAE,MAAAP,EAAO,OAAAQ,MAAc,CAC7C,QAAS,EACT,SAAU,IACV,WAAY,EACZ,aAAc,GACd,YAAa,GACb,KAAM,EACN,WAAYH,EAAcG,CAAM,GAAKH,EAAc,KAClD,eAAiB,CAChB,YAAa,CAAA,EAEf,CAACL,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,MAAO,OACP,SAAU,OACV,YAAa,CAAA,CAEjB,EAAE,EAEIS,EAAeV,EAAOK,CAAG,EAAE,CAAC,CAAE,MAAAJ,MAAa,CAC/C,eAAgB,gBAChB,WAAY,SACZ,OAAQ,OACR,QAAS,OACT,cAAe,SACf,QAAS,iBACT,SAAU,WACV,aAAc,GACd,SAAU,SACV,KAAM,EACN,WAAY,6BACX,wBAA0B,CACxB,UAAY,CACX,UAAW,aAAA,CACb,EAEF,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,QAAS,YACT,eAAgB,YAAA,CAEpB,EAAE,EAEIU,EAAwBX,EAAOK,CAAG,EAAE,CAAC,CAAE,MAAAJ,MAAa,CACxD,aAAc,GACd,MAAO,OACP,aAAc,GACd,QAAS,OACT,WAAY,SACZ,eAAgB,SAChB,SAAU,SACT,QAAU,CACT,KAAM,WACN,UAAW,EACX,UAAW,UACX,SAAU,MAAA,EAEZ,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,OAAQ,IACR,UAAW,IACX,aAAc,GACb,QAAU,CACT,SAAU,OACV,UAAW,OACX,SAAU,MAAA,CACZ,CAEJ,EAAE,EAEIW,EAAcZ,EAAOK,CAAG,EAAE,CAC9B,UAAW,aACX,KAAM,EACN,QAAS,OACT,cAAe,SACf,eAAgB,YAClB,CAAC,EAEKQ,EAAeb,EAAOG,CAAU,EAAE,CAAC,CAAE,MAAAF,MAAa,CACtD,SAAU,GACV,WAAY,OACZ,WAAY,IACZ,aAAc,EACd,YAAa,GACb,aAAc,GACd,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,WAAY,IACZ,SAAU,GACV,WAAY,MAAA,CAEhB,EAAE,EAEIa,EAAqBd,EAAOG,CAAU,EAAE,CAAC,CAAE,MAAAF,MAAa,CAC5D,SAAU,GACV,WAAY,OACZ,WAAY,IACZ,UAAW,EACX,YAAa,GACb,aAAc,GACd,CAACA,EAAM,YAAY,KAAK,IAAI,CAAC,EAAG,CAC9B,MAAO,MAAA,CAEX,EAAE,EC7IIc,EAAcC,EAAAA,KAAK,IAAM,CAC7B,MAAMC,EAAIC,EAAA,EACV,OACEC,EAAAA,IAACC,EAAA,CACC,SAAAC,EAAAA,KAACtB,EAAA,CACC,SAAA,CAAAsB,OAACnB,EAAA,CACC,SAAA,CAAAiB,EAAAA,IAAC,OAAA,CAAM,SAAAF,EAAE,gDAAgD,CAAA,CAAE,EAAO,IAAEA,EAAE,sCAAsC,CAAA,EAC9G,EACAE,EAAAA,IAACf,EAAA,CACE,SAAAkB,EAAS,IAAIC,GACZJ,EAAAA,IAACZ,EAAA,CAAsB,OAAQgB,EAAK,GAClC,SAAAF,OAACX,EAAA,CACC,SAAA,CAAAS,EAAAA,IAACR,EAAA,CACC,eAAC,MAAA,CAAI,IAAKY,EAAK,MAAO,IAAKA,EAAK,KAAA,CAAO,CAAA,CACzC,SACCX,EAAA,CACC,SAAA,CAAAO,EAAAA,IAACN,EAAA,CAAc,WAAK,KAAA,CAAM,EAC1BM,EAAAA,IAACL,EAAA,CAAoB,SAAAS,EAAK,WAAA,CAAY,CAAA,CAAA,CACxC,CAAA,CAAA,CACF,CAAA,EATYA,EAAK,EAUnB,CACD,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CACF,CAEJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{y as $,an as Y,O as r,v as q,t as Q,aj as S,j as a,L as G,w as J,a1 as X}from"./index-D9krZGYy.js";import{r as o,a as Z}from"./vendor-router-D7SOoytt.js";import"./vendor-ua-D7qqAxdq.js";import{LandingFooter as ee}from"./index-DErVyQiP.js";import{u as te,a as se,g as oe,A as j,c as ae}from"./downloadWithIdentity-COI7bkOD.js";import{t as ne}from"./file-Cr_gl9BS.js";import{F as m,a as re}from"./url-D90migVD.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-DUmT7uWX.js";import"./vendor-crypto-CXsBIwXr.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-DCdewyWN.js";import"./vendor-intl-D2lXWsDp.js";import"./useAuthIdentity-B6QSalIu.js";import"./index-XmZQan5Q.js";import"./CardContent-BmJC2B1l.js";import"./Paper-CaFKxPzv.js";import"./CardMedia-BvzeWU4S.js";const ge="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24803483354.commit-bb6520e/assets/macos_launcher-tAnkzoV6.webp",me="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24803483354.commit-bb6520e/assets/macos_launching_decentraland-D20EhlLN.webp",fe="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24803483354.commit-bb6520e/assets/macos_recent_download-BanUqEgV.webp",De="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24803483354.commit-bb6520e/assets/windows_downloads_folder-BjMDtSd-.webp",Se="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24803483354.commit-bb6520e/assets/windows_launching_decentraland-Bg5TsdCP.webp",he="https://cdn.decentraland.org/@dcl/landing-site/0.5.1-24803483354.commit-bb6520e/assets/windows_setup-Dzomx64Q.webp",Oe=new Set(["amd64","arm64"]),h="downloadSuccess:autoDownloadKey",ye="downloadSuccess:triggered",xe=o.memo(()=>{const[O]=Z(),{intl:y}=$(),{isInitialized:x,track:A}=Y(),i=te(),l=se(),[_,p]=o.useState(!1),[W,f]=o.useState(null),[T,w]=o.useState(!1),D=o.useRef(!1),b=o.useRef(i),I=o.useRef(l),u=o.useRef(x),g=o.useRef(A);b.current=i,I.current=l,u.current=x,g.current=A;const v=O.get("os")||"",n={windows:r.WINDOWS,macos:r.MACOS}[v.toLowerCase()]??r.MACOS,L=n===r.WINDOWS?"amd64":"arm64",C=O.get("arch")||L,c=Oe.has(C)?C:L,U=n===r.WINDOWS?q:Q,M=n===r.WINDOWS?m[n]?.amd64:m[n]?.[c],e=o.useCallback((t,s)=>y.formatMessage({id:t},s),[y]),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=`${ye}:${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:b.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,{[j]:I.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:{[j]: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=_||!W&&!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:U,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,{})})});xe.displayName="DownloadSuccess";export{xe as DownloadSuccess};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-DGmH-ysI.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-Dg4AWVL8.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 +1 @@
|
|
|
1
|
-
import{j as e}from"./index-
|
|
1
|
+
import{j as e}from"./index-D9krZGYy.js";import{r as t}from"./vendor-router-D7SOoytt.js";import{L as s,P as r,S as i,a,B as n}from"./LegalPageLayout-DINPtlgk.js";import"./vendor-crypto-CXsBIwXr.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-DCdewyWN.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";const o=[{id:"general-provisions",label:"1. General Provisions"},{id:"how-it-works",label:"2. How It Works"},{id:"rewards-structure",label:"3. Rewards Structure"},{id:"reward-distribution",label:"4. Reward Distribution and Delivery"},{id:"program-abuse",label:"5. Program Abuse and Disqualification"},{id:"email-notifications",label:"6. Email Notifications"},{id:"changes-and-termination",label:"7. Changes and Termination"},{id:"miscellaneous",label:"8. Miscellaneous"}],l=t.memo(()=>e.jsxs(s,{title:"Referral",activeSlug:"/referral-terms",tableOfContents:o,children:[e.jsx(r,{children:"Referral Program – Terms and Conditions"}),e.jsxs(i,{id:"general-provisions",children:[e.jsx(a,{children:"1. General Provisions"}),e.jsx(r,{children:'1.1. This Referral Program ("Program") is open to all registered users of Decentraland platform who are in good standing and comply with our general Terms of Service.'}),e.jsx(r,{children:"1.2. Participation in the Program constitutes acceptance of these Terms and Conditions, as well as the Decentraland Terms of Use, Privacy Policy, and Content Policy."}),e.jsx(r,{children:"1.3. The Decentraland Foundation reserves the right to modify, suspend, or terminate the Program at its discretion."})]}),e.jsxs(i,{id:"how-it-works",children:[e.jsx(a,{children:"2. How It Works"}),e.jsx(r,{children:'2.1. To refer a new user, share your unique referral link. A referred user ("Referee") will be considered valid if the following conditions are met:'}),e.jsxs(n,{children:[e.jsx("li",{children:"The Referee successfully creates an account on our platform using a referral link."}),e.jsx("li",{children:"The Referee downloads and installs Decentraland's desktop client."}),e.jsx("li",{children:"The Referee jumps into Genesis City via the desktop client three (3) different days."})]}),e.jsx(r,{children:"2.2. Only referrals meeting those criteria will count towards your reward tally."}),e.jsx(r,{children:'2.3. Every successful referral should count and be displayed in a counter under the "Referral Rewards" section.'})]}),e.jsxs(i,{id:"rewards-structure",children:[e.jsx(a,{children:"3. Rewards Structure"}),e.jsx(r,{children:'Rewards are granted based on the number of valid referrals you accumulate in the "Referral Rewards" section. Each reward tier is cumulative and unlocks sequentially:'}),e.jsxs(n,{children:[e.jsx("li",{children:"5 Friends Joined: EPIC Bottoms Wearable + Starter Community Recruiter Badge"}),e.jsx("li",{children:"10 Friends Joined: EPIC Jacket Wearable + Bronze Community Recruiter Badge"}),e.jsx("li",{children:"20 Friends Joined: LEGENDARY Handwear Wearable"}),e.jsx("li",{children:"25 Friends Joined: LEGENDARY Emote + Silver Community Recruiter Badge"}),e.jsx("li",{children:"30 Friends Joined: EXOTIC Shoes Wearable"}),e.jsx("li",{children:"50 Friends Joined: EXOTIC Hair Wearable + Gold Community Recruiter Badge"}),e.jsx("li",{children:'60 Friends Joined: MYTHIC "Companion-style" Wearable'}),e.jsx("li",{children:"75 Friends Joined: MYTHIC Looping Emote+ Platinum Community Recruiter Badge"}),e.jsx("li",{children:"100 Friends Joined: IRL Swag Pack + Digital Twin Wearable + Diamond Community Recruiter Badge"})]})]}),e.jsxs(i,{id:"reward-distribution",children:[e.jsx(a,{children:"4. Reward Distribution and Delivery"}),e.jsx(r,{children:"4.1. Digital rewards (Wearables, Emotes, badges, and Credits) will be automatically credited to your account within 3 business days of reaching a reward tier."}),e.jsx(r,{children:"4.2. IRL rewards require contact through the designated email or the email address you share for such purpose."}),e.jsx(r,{children:"4.3. We commit to delivering the Rewards in accordance with the rarity levels of the Wearables as stated in the Program. However, we do not guarantee the delivery of a specific Wearable within a given rarity category, as each Wearable is subject to availability and are traded on the Marketplace."})]}),e.jsxs(i,{id:"program-abuse",children:[e.jsx(a,{children:"5. Program Abuse and Disqualification"}),e.jsx(r,{children:"We reserve the right to disqualify participants who attempt to game, abuse, or manipulate the referral system, including but not limited to creating fake accounts, using bots, or violating the platform's Terms of Service."})]}),e.jsxs(i,{id:"email-notifications",children:[e.jsx(a,{children:"6. Email Notifications"}),e.jsx(r,{children:'6.1. By participating in the Program, you consent to receive email notifications related to "Referral Program."'}),e.jsx(r,{children:"6.2. The Decentraland Foundation may add additional email notification categories in the future."})]}),e.jsxs(i,{id:"changes-and-termination",children:[e.jsx(a,{children:"7. Changes and Termination"}),e.jsx(r,{children:"We reserve the right to modify or terminate this Program at any time without prior notice. Any changes will be effective immediately upon posting an updated version of these Terms and Conditions."})]}),e.jsxs(i,{id:"miscellaneous",children:[e.jsx(a,{children:"8. Miscellaneous"}),e.jsx(r,{children:"7.1. The Decentraland Foundation is not responsible for any technical malfunctions, errors, or issues that may affect participation in the Program."}),e.jsx(r,{children:"7.2. Any disputes regarding the Program shall be resolved at the sole discretion of the Decentraland Foundation."}),e.jsxs(r,{children:["7.3. For any questions regarding the Referral Program, please contact our support team via the platform or at"," ",e.jsx("a",{href:"mailto:support@decentraland.org",children:"support@decentraland.org"}),"."]}),e.jsx(r,{children:"Updated August 18, 2025"})]})]}));l.displayName="ReferralTerms";export{l as ReferralTerms};
|