@dcl/landing-site 0.5.1-24671743849.commit-e464803 → 0.5.1-24676306976.commit-32f8f97
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/{AnimatedBackground-B-L76Zza.js → AnimatedBackground-dcjrq3Hb.js} +2 -2
- package/assets/{AnimatedBackground-B-L76Zza.js.map → AnimatedBackground-dcjrq3Hb.js.map} +1 -1
- package/assets/{AnimatedSection-C7y4e9MO.js → AnimatedSection-DcOoZ95V.js} +1 -1
- package/assets/{AnimatedSection-C7y4e9MO.js.map → AnimatedSection-DcOoZ95V.js.map} +1 -1
- package/assets/{ArrowBackIosNew-m07XLZJ3.js → ArrowBackIosNew-Dn-9PDt-.js} +1 -1
- package/assets/{ArrowBackIosNew-m07XLZJ3.js.map → ArrowBackIosNew-Dn-9PDt-.js.map} +1 -1
- package/assets/{AuthorPage-HEjEdZnQ.js → AuthorPage-f97GOPMA.js} +1 -1
- package/assets/{AuthorPage-HEjEdZnQ.js.map → AuthorPage-f97GOPMA.js.map} +1 -1
- package/assets/{Badges-C3LP2L14.js → Badges-BpJgPUyV.js} +1 -1
- package/assets/{Badges-C3LP2L14.js.map → Badges-BpJgPUyV.js.map} +1 -1
- package/assets/{BlogLayout-DOXQWe4b.js → BlogLayout-fQyF80O7.js} +1 -1
- package/assets/{BlogLayout-DOXQWe4b.js.map → BlogLayout-fQyF80O7.js.map} +1 -1
- package/assets/{BlogPage-BYou2PX1.js → BlogPage-D-7bU7Ll.js} +1 -1
- package/assets/{BlogPage-BYou2PX1.js.map → BlogPage-D-7bU7Ll.js.map} +1 -1
- package/assets/{CTAButton-DIvER7jP.js → CTAButton-BrHntZLo.js} +1 -1
- package/assets/{CTAButton-DIvER7jP.js.map → CTAButton-BrHntZLo.js.map} +1 -1
- package/assets/{CardContent-CTD4H4a5.js → CardContent-BIfXh0wk.js} +1 -1
- package/assets/{CardContent-CTD4H4a5.js.map → CardContent-BIfXh0wk.js.map} +1 -1
- package/assets/{CardMedia-DkSJQ0Yc.js → CardMedia-BH9g0LEk.js} +1 -1
- package/assets/{CardMedia-DkSJQ0Yc.js.map → CardMedia-BH9g0LEk.js.map} +1 -1
- package/assets/{Carousel-Bz36sWAV.js → Carousel-DvX_HfdZ.js} +1 -1
- package/assets/{Carousel-Bz36sWAV.js.map → Carousel-DvX_HfdZ.js.map} +1 -1
- package/assets/{CategoryPage-5N-S_EtG.js → CategoryPage-CH1WRgbC.js} +1 -1
- package/assets/{CategoryPage-5N-S_EtG.js.map → CategoryPage-CH1WRgbC.js.map} +1 -1
- package/assets/{CircleAndArrow-DDOq4aRv.js → CircleAndArrow-5tP5OYot.js} +1 -1
- package/assets/{CircleAndArrow-DDOq4aRv.js.map → CircleAndArrow-5tP5OYot.js.map} +1 -1
- package/assets/{CircularProgress-DMJbftwB.js → CircularProgress-Bi5r1ZmM.js} +1 -1
- package/assets/{CircularProgress-DMJbftwB.js.map → CircularProgress-Bi5r1ZmM.js.map} +1 -1
- package/assets/{ContentCopy-Die7TKLF.js → ContentCopy-oX-8qyhW.js} +1 -1
- package/assets/{ContentCopy-Die7TKLF.js.map → ContentCopy-oX-8qyhW.js.map} +1 -1
- package/assets/{CreateEventPage-DB5tddNm.js → CreateEventPage-nDxfw2qB.js} +1 -1
- package/assets/{CreateEventPage-DB5tddNm.js.map → CreateEventPage-nDxfw2qB.js.map} +1 -1
- package/assets/{CreatorHubDownload-DVIZjVQI.js → CreatorHubDownload-LwI4JZRK.js} +1 -1
- package/assets/{CreatorHubDownload-DVIZjVQI.js.map → CreatorHubDownload-LwI4JZRK.js.map} +1 -1
- package/assets/{CreatorHubDownloadSuccess-D0krvgHC.js → CreatorHubDownloadSuccess-mbihmO3P.js} +1 -1
- package/assets/{CreatorHubDownloadSuccess-D0krvgHC.js.map → CreatorHubDownloadSuccess-mbihmO3P.js.map} +1 -1
- package/assets/{DappsShell-DXZfdOqe.js → DappsShell-D7P6uq6M.js} +1 -1
- package/assets/{DappsShell-DXZfdOqe.js.map → DappsShell-D7P6uq6M.js.map} +1 -1
- package/assets/{DownloadSuccessLayout-B5KxILAh.js → DownloadSuccessLayout-BzbsrQCo.js} +1 -1
- package/assets/{DownloadSuccessLayout-B5KxILAh.js.map → DownloadSuccessLayout-BzbsrQCo.js.map} +1 -1
- package/assets/{Grow-BbhVo4-Q.js → Grow-DI7E9jMT.js} +1 -1
- package/assets/{Grow-BbhVo4-Q.js.map → Grow-DI7E9jMT.js.map} +1 -1
- package/assets/{HomePage-CSW35au2.js → HomePage-CIPkOlhD.js} +2 -2
- package/assets/{HomePage-CSW35au2.js.map → HomePage-CIPkOlhD.js.map} +1 -1
- package/assets/{InviteFaqs-BZEDqRWz.js → InviteFaqs-BX1-mTcI.js} +1 -1
- package/assets/{InviteFaqs-BZEDqRWz.js.map → InviteFaqs-BX1-mTcI.js.map} +1 -1
- package/assets/{InvitePage-CNSVnM5F.js → InvitePage-DzjBtcFR.js} +2 -2
- package/assets/{InvitePage-CNSVnM5F.js.map → InvitePage-DzjBtcFR.js.map} +1 -1
- package/assets/{JumpInIcon-DsVzhXWI.js → JumpInIcon-XhbTBoY-.js} +1 -1
- package/assets/{JumpInIcon-DsVzhXWI.js.map → JumpInIcon-XhbTBoY-.js.map} +1 -1
- package/assets/{LegalPageLayout-BGd6IPpz.js → LegalPageLayout-PNgx2stH.js} +1 -1
- package/assets/{LegalPageLayout-BGd6IPpz.js.map → LegalPageLayout-PNgx2stH.js.map} +1 -1
- package/assets/{Link-C-K90yR0.js → Link-BXRsbP2-.js} +1 -1
- package/assets/{Link-C-K90yR0.js.map → Link-BXRsbP2-.js.map} +1 -1
- package/assets/{MenuItem-DJBLDqfL.js → MenuItem-Clk60JBW.js} +1 -1
- package/assets/{MenuItem-DJBLDqfL.js.map → MenuItem-Clk60JBW.js.map} +1 -1
- package/assets/{Paper-BcsxEQWA.js → Paper-ECb0Xsu2.js} +1 -1
- package/assets/{Paper-BcsxEQWA.js.map → Paper-ECb0Xsu2.js.map} +1 -1
- package/assets/{PostCard-CalYnkvr.js → PostCard-f81875cD.js} +1 -1
- package/assets/{PostCard-CalYnkvr.js.map → PostCard-f81875cD.js.map} +1 -1
- package/assets/{PostPage-DYDVBmyR.js → PostPage-Cs4pLVTx.js} +1 -1
- package/assets/{PostPage-DYDVBmyR.js.map → PostPage-Cs4pLVTx.js.map} +1 -1
- package/assets/{PostPage.styled-B-fdiFDU.js → PostPage.styled-VLSekVON.js} +3 -3
- package/assets/{PostPage.styled-B-fdiFDU.js.map → PostPage.styled-VLSekVON.js.map} +1 -1
- package/assets/{PreviewPage-BE7HyZTt.js → PreviewPage-cynFTjak.js} +1 -1
- package/assets/{PreviewPage-BE7HyZTt.js.map → PreviewPage-cynFTjak.js.map} +1 -1
- package/assets/{SEO-P8y8JbS9.js → SEO-YDqyOXs4.js} +1 -1
- package/assets/{SEO-P8y8JbS9.js.map → SEO-YDqyOXs4.js.map} +1 -1
- package/assets/{SearchPage-BraoruXd.js → SearchPage-DVmJu_R7.js} +1 -1
- package/assets/{SearchPage-BraoruXd.js.map → SearchPage-DVmJu_R7.js.map} +1 -1
- package/assets/{SignInRedirect-COcA7WhX.js → SignInRedirect-CBRz5buy.js} +1 -1
- package/assets/{SignInRedirect-COcA7WhX.js.map → SignInRedirect-CBRz5buy.js.map} +1 -1
- package/assets/{SignInRedirect-CS5Xkoa_.js → SignInRedirect-D4M7f1v0.js} +1 -1
- package/assets/{SignInRedirect-CS5Xkoa_.js.map → SignInRedirect-D4M7f1v0.js.map} +1 -1
- package/assets/{Skeleton-o93N4ZZz.js → Skeleton-DqCnSDlA.js} +1 -1
- package/assets/{Skeleton-o93N4ZZz.js.map → Skeleton-DqCnSDlA.js.map} +1 -1
- package/assets/{TwitterEmbed-C3w4WnFA.js → TwitterEmbed-CeWfRgEL.js} +1 -1
- package/assets/{TwitterEmbed-C3w4WnFA.js.map → TwitterEmbed-CeWfRgEL.js.map} +1 -1
- package/assets/{Video-DF4ljNzn.js → Video-CuR4cgxQ.js} +1 -1
- package/assets/{Video-DF4ljNzn.js.map → Video-CuR4cgxQ.js.map} +1 -1
- package/assets/{WearablePreview-5JNPj6PX.js → WearablePreview-BeBKKCQq.js} +1 -1
- package/assets/{WearablePreview-5JNPj6PX.js.map → WearablePreview-BeBKKCQq.js.map} +1 -1
- package/assets/{auto-track-UkqTRxye.js → auto-track-BrVpOTAy.js} +1 -1
- package/assets/{auto-track-UkqTRxye.js.map → auto-track-BrVpOTAy.js.map} +1 -1
- package/assets/{ccip-cqtPy8Xz.js → ccip-bYpzfsa2.js} +1 -1
- package/assets/{ccip-cqtPy8Xz.js.map → ccip-bYpzfsa2.js.map} +1 -1
- package/assets/{createSvgIcon-DH_tCoWL.js → createSvgIcon-MBeMKPZF.js} +1 -1
- package/assets/{createSvgIcon-DH_tCoWL.js.map → createSvgIcon-MBeMKPZF.js.map} +1 -1
- package/assets/{download-DQLaB97z.js → download-rD4GIwoM.js} +2 -2
- package/assets/{download-DQLaB97z.js.map → download-rD4GIwoM.js.map} +1 -1
- package/assets/{downloadWithIdentity-dAd_6Xjv.js → downloadWithIdentity-BJa06ukv.js} +1 -1
- package/assets/{downloadWithIdentity-dAd_6Xjv.js.map → downloadWithIdentity-BJa06ukv.js.map} +1 -1
- package/assets/{events.client-DDwZtrCh.js → events.client-BFY0iJFt.js} +1 -1
- package/assets/{events.client-DDwZtrCh.js.map → events.client-BFY0iJFt.js.map} +1 -1
- package/assets/{index-bKbknVRg.js → index-45xDJN7P.js} +1 -1
- package/assets/{index-bKbknVRg.js.map → index-45xDJN7P.js.map} +1 -1
- package/assets/{index-D1lz72ps.js → index-B0nEp5pe.js} +1 -1
- package/assets/{index-D1lz72ps.js.map → index-B0nEp5pe.js.map} +1 -1
- package/assets/{index-DsiqoitH.js → index-B87wYcCv.js} +1 -1
- package/assets/{index-DsiqoitH.js.map → index-B87wYcCv.js.map} +1 -1
- package/assets/{index-BpUUMJJL.js → index-B8Zt542v.js} +2 -2
- package/assets/{index-BpUUMJJL.js.map → index-B8Zt542v.js.map} +1 -1
- package/assets/{index-ppzLK-bi.js → index-BMdtB9Qi.js} +1 -1
- package/assets/{index-ppzLK-bi.js.map → index-BMdtB9Qi.js.map} +1 -1
- package/assets/index-BRS077OT.js +1 -0
- package/assets/{index-DqPgEQko.js.map → index-BRS077OT.js.map} +1 -1
- package/assets/{index-BxxIREHz.js → index-B_5wi7CL.js} +4 -4
- package/assets/{index-BxxIREHz.js.map → index-B_5wi7CL.js.map} +1 -1
- package/assets/{index-CYTF85t8.js → index-Bh2xF13d.js} +1 -1
- package/assets/{index-CYTF85t8.js.map → index-Bh2xF13d.js.map} +1 -1
- package/assets/{index-CM-Dg90Z.js → index-Bi70CJ5H.js} +1 -1
- package/assets/{index-CM-Dg90Z.js.map → index-Bi70CJ5H.js.map} +1 -1
- package/assets/{index-ezM_J58e.js → index-BmfSApNy.js} +1 -1
- package/assets/{index-ezM_J58e.js.map → index-BmfSApNy.js.map} +1 -1
- package/assets/{index-C2gGmY4r.js → index-BrHnK0XL.js} +1 -1
- package/assets/{index-C2gGmY4r.js.map → index-BrHnK0XL.js.map} +1 -1
- package/assets/{index-B4ReIH01.js → index-C59PJ30r.js} +1 -1
- package/assets/{index-B4ReIH01.js.map → index-C59PJ30r.js.map} +1 -1
- package/assets/{index-qFakdhOO.js → index-C8J0j1MA.js} +1 -1
- package/assets/{index-qFakdhOO.js.map → index-C8J0j1MA.js.map} +1 -1
- package/assets/{index-DRcrw7Py.js → index-CVkIGuJf.js} +1 -1
- package/assets/{index-DRcrw7Py.js.map → index-CVkIGuJf.js.map} +1 -1
- package/assets/{index-DaRevScO.js → index-Cjx-6-Fc.js} +37 -37
- package/assets/index-Cjx-6-Fc.js.map +1 -0
- package/assets/{index-CZS6DsWa.js → index-CucSFK-C.js} +1 -1
- package/assets/{index-CZS6DsWa.js.map → index-CucSFK-C.js.map} +1 -1
- package/assets/{index-71royYUE.js → index-CvqSSkkA.js} +1 -1
- package/assets/{index-71royYUE.js.map → index-CvqSSkkA.js.map} +1 -1
- package/assets/{index-Dfjt7DKD.js → index-D-pfpn_u.js} +1 -1
- package/assets/{index-Dfjt7DKD.js.map → index-D-pfpn_u.js.map} +1 -1
- package/assets/{index-BsykSOSe.js → index-D66EdcHn.js} +1 -1
- package/assets/{index-BsykSOSe.js.map → index-D66EdcHn.js.map} +1 -1
- package/assets/{index-Bi1_667A.js → index-D8eIOYu-.js} +1 -1
- package/assets/{index-Bi1_667A.js.map → index-D8eIOYu-.js.map} +1 -1
- package/assets/{index-D7GZzk0M.js → index-DA6agk-w.js} +1 -1
- package/assets/{index-D7GZzk0M.js.map → index-DA6agk-w.js.map} +1 -1
- package/assets/{index-C_C2-CZT.js → index-DKVTiJAQ.js} +1 -1
- package/assets/{index-C_C2-CZT.js.map → index-DKVTiJAQ.js.map} +1 -1
- package/assets/{index-DNCSZ9Ly.js → index-DO6Sw93x.js} +1 -1
- package/assets/{index-DNCSZ9Ly.js.map → index-DO6Sw93x.js.map} +1 -1
- package/assets/{index-BqghIvCc.js → index-DTGLVE4U.js} +3 -3
- package/assets/{index-BqghIvCc.js.map → index-DTGLVE4U.js.map} +1 -1
- package/assets/{index-n-p43kD4.js → index-DlTsCRKG.js} +1 -1
- package/assets/{index-n-p43kD4.js.map → index-DlTsCRKG.js.map} +1 -1
- package/assets/{index-Oqf5zL8M.js → index-DvZ_ojLV.js} +1 -1
- package/assets/{index-Oqf5zL8M.js.map → index-DvZ_ojLV.js.map} +1 -1
- package/assets/{index-LYkhcWuH.js → index-DzuMEVEG.js} +1 -1
- package/assets/{index-LYkhcWuH.js.map → index-DzuMEVEG.js.map} +1 -1
- package/assets/{index-BQaEVpup.js → index-Ehyw5K2U.js} +1 -1
- package/assets/{index-BQaEVpup.js.map → index-Ehyw5K2U.js.map} +1 -1
- package/assets/{index-wq0aztJv.js → index-HwZ6yI5O.js} +1 -1
- package/assets/{index-wq0aztJv.js.map → index-HwZ6yI5O.js.map} +1 -1
- package/assets/{index-Bo0hqmw3.js → index-JMsb3O6_.js} +1 -1
- package/assets/{index-Bo0hqmw3.js.map → index-JMsb3O6_.js.map} +1 -1
- package/assets/{index-pvI36Hvg.js → index-LdEjKMJm.js} +1 -1
- package/assets/{index-pvI36Hvg.js.map → index-LdEjKMJm.js.map} +1 -1
- package/assets/{index-mXhpN3cS.js → index-ixBvnV4g.js} +1 -1
- package/assets/{index-mXhpN3cS.js.map → index-ixBvnV4g.js.map} +1 -1
- package/assets/{profile.client-CCf--pbP.js → profile.client-BWiq_PR5.js} +1 -1
- package/assets/{profile.client-CCf--pbP.js.map → profile.client-BWiq_PR5.js.map} +1 -1
- package/assets/{shared.styled-Csb0ydX4.js → shared.styled-0h-n1b2G.js} +1 -1
- package/assets/{shared.styled-Csb0ydX4.js.map → shared.styled-0h-n1b2G.js.map} +1 -1
- package/assets/{store-CbX2mp3S.js → store-CvBDcx_Y.js} +1 -1
- package/assets/{store-CbX2mp3S.js.map → store-CvBDcx_Y.js.map} +1 -1
- package/assets/{url-DMbF6Zco.js → url-N3MWyY77.js} +1 -1
- package/assets/{url-DMbF6Zco.js.map → url-N3MWyY77.js.map} +1 -1
- package/assets/{useAuthIdentity-CIDWXFI8.js → useAuthIdentity-BqEUIFS1.js} +1 -1
- package/assets/{useAuthIdentity-CIDWXFI8.js.map → useAuthIdentity-BqEUIFS1.js.map} +1 -1
- package/assets/{useCreatorHubDownload-CQ5sircD.js → useCreatorHubDownload-DKX_IEAb.js} +1 -1
- package/assets/{useCreatorHubDownload-CQ5sircD.js.map → useCreatorHubDownload-DKX_IEAb.js.map} +1 -1
- package/assets/{useInfiniteBlogPosts-DspRbflz.js → useInfiniteBlogPosts-NFRpaD6I.js} +1 -1
- package/assets/{useInfiniteBlogPosts-DspRbflz.js.map → useInfiniteBlogPosts-NFRpaD6I.js.map} +1 -1
- package/assets/{useSlot-BerGUD87.js → useSlot-BHWpNc8A.js} +1 -1
- package/assets/{useSlot-BerGUD87.js.map → useSlot-BHWpNc8A.js.map} +1 -1
- package/assets/{utils-CYqFUJMv.js → utils-BrNrgyfy.js} +1 -1
- package/assets/{utils-CYqFUJMv.js.map → utils-BrNrgyfy.js.map} +1 -1
- package/index.html +15 -15
- package/package.json +3 -3
- package/assets/index-DaRevScO.js.map +0 -1
- package/assets/index-DqPgEQko.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as t,a as g,v as G,z as H,w as z,M as B,N,p as T,Z as R,$ as U,a0 as $,q as D,t as y,O as i,j as o,P as s,V as F,a1 as V,a2 as b,a3 as X,a4 as C,a5 as q,a6 as k,a7 as K,U as Q,a8 as Y,a9 as Z,aa as _}from"./index-
|
|
1
|
+
import{s as t,a as g,v as G,z as H,w as z,M as B,N,p as T,Z as R,$ as U,a0 as $,q as D,t as y,O as i,j as o,P as s,V as F,a1 as V,a2 as b,a3 as X,a4 as C,a5 as q,a6 as k,a7 as K,U as Q,a8 as Y,a9 as Z,aa as _}from"./index-Cjx-6-Fc.js";import{r as p}from"./vendor-router-D_36sTKu.js";import{A as J}from"./AnimatedBackground-dcjrq3Hb.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";const oo=t(g)(({theme:e})=>({position:"relative",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"flex-start",width:"100%",height:800,overflow:"hidden",[e.breakpoints.down("sm")]:{height:480}})),eo=t("img")(({theme:e})=>({position:"absolute",top:"calc(35% - 20px)",left:"50%",transform:"translateX(-50%)",width:"auto",pointerEvents:"none",[e.breakpoints.down("sm")]:{position:"absolute",top:"auto",bottom:-50,left:"50%",transform:"translateX(-50%)",width:"auto",height:"65%",minWidth:"auto",maxWidth:"none"}})),no=t(g)(({theme:e})=>({position:"relative",zIndex:1,display:"flex",flexDirection:"column",alignItems:"center",gap:e.spacing(3),padding:e.spacing(10,8),[e.breakpoints.down("sm")]:{width:"100%",maxWidth:393,padding:e.spacing(6,2),gap:e.spacing(2)}})),to=t(G)(({theme:e})=>({color:H.white,fontWeight:600,fontSize:48,textAlign:"center",letterSpacing:-.5,[e.breakpoints.down("sm")]:{fontSize:32}})),ao=t(g)({display:"flex",alignItems:"center",gap:16,flexWrap:"wrap",justifyContent:"center",position:"relative",zIndex:1}),so=t("span")({display:"flex",alignItems:"center",gap:12,color:"#fff",fontSize:16,fontWeight:400,lineHeight:1.5,whiteSpace:"nowrap",minWidth:210}),lo=t("span")({width:1,height:20,backgroundColor:"rgba(255, 255, 255, 0.3)"}),io=t("span")(({theme:e})=>({display:"flex",gap:8,alignItems:"center","& a":{display:"flex",lineHeight:0},[e.breakpoints.down("sm")]:{"& a":{pointerEvents:"none",color:"inherit",textDecoration:"none"}}})),r=t("img")({width:24,height:24,filter:"brightness(0) invert(1)"});t("img")({width:32,height:32,filter:"brightness(0) invert(1)"});let v=null;const ro=p.memo(()=>{const e=z(),h=B(),{isDownloadModalOpen:O,closeDownloadModal:S,downloadModalProps:A,totalDownloads:I}=N(),[,n]=T(),[m,w]=R(async()=>U.get().getTotalDownloads(),[]),d=!w.loading&&w.loaded&&m?m:null;d&&(v=_(d));const f=$(d),M=f?_(f):v??"+400K",l=n?.os.name,u=!!n?.mobile,W=u&&l==="Android",[x,c]=p.useState(null),E=()=>W?o.jsx(b,{href:X,target:"_blank",rel:"noopener noreferrer",children:o.jsx(C,{src:q,alt:"Get it on Google Play"})}):o.jsx(b,{href:k.appStore,target:"_blank",rel:"noopener noreferrer",children:o.jsx(C,{src:s("/download-on-the-app-store.svg"),alt:"Download on the App Store"})}),L=p.useCallback(a=>{h(a),n&&(window.location.href=`/download_success?os=${n.os.name}`)},[h,n]),j=n?{[i.WINDOWS]:y,[i.MACOS]:D}[n.os.name]:null,P=()=>o.jsxs(o.Fragment,{children:[o.jsxs("div",{style:{display:"flex",gap:24,justifyContent:"center"},children:[o.jsxs(K,{href:n?`/download_success?os=${n.os.name}`:"/download","data-place":Q.LANDING_HERO,"data-event":"click",onClick:L,children:[e("page.download.download_for_short"),j?o.jsx("img",{src:j,alt:n?.os.name??"",width:32,height:32,style:{filter:"brightness(0) invert(1)"}}):o.jsx("span",{style:{display:"block",width:32,height:32,flexShrink:0}})]}),o.jsxs(Y,{href:k.epic,target:"_blank",rel:"noopener noreferrer",children:[e("page.download.download_on"),o.jsx("img",{src:s("/epic_icon.svg"),alt:"Epic Games",width:32,height:32,style:{filter:"brightness(0)"}})]})]}),o.jsxs(ao,{children:[o.jsxs(so,{children:[o.jsx(Z,{})," ",e("page.download.total_downloads",{downloads:M})]}),o.jsx(lo,{}),o.jsxs(io,{children:[l===i.MACOS&&o.jsx("a",{href:"/download_success?os=Windows",children:o.jsx(r,{src:y,alt:"Windows"})}),l===i.WINDOWS&&o.jsx("a",{href:"/download_success?os=macOS",children:o.jsx(r,{src:D,alt:"macOS"})}),!l&&o.jsx("span",{style:{display:"inline-block",width:24,height:24}}),o.jsx("a",{href:"#",onClick:a=>{a.preventDefault(),c("ios")},children:o.jsx(r,{src:s("/ios-logo.svg"),alt:"iOS"})}),o.jsx("a",{href:"#",onClick:a=>{a.preventDefault(),c("android")},children:o.jsx(r,{src:s("/google_play_icon.svg"),alt:"Android"})})]})]})]});return o.jsxs(oo,{children:[o.jsx(J,{variant:"absolute"}),o.jsxs(no,{children:[o.jsx(to,{variant:"h2",children:e("page.home.come_hang_out.title")}),u?E():P()]}),o.jsx(eo,{src:s("/come_hang_out_background.webp"),alt:"","aria-hidden":!0,width:1920,height:840,loading:"lazy"}),o.jsx(F,{open:O,onClose:S,...A}),x&&o.jsx(V,{open:!0,onClose:()=>c(null),os:x,i18n:{totalDownloads:`Total Downloads: ${I}`}})]})});ro.displayName="ComeHangOut";export{ro as ComeHangOut};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-CZS6DsWa.js","sources":["../../src/components/Home/ComeHangOut/ComeHangOut.styled.ts","../../src/components/Home/ComeHangOut/ComeHangOut.tsx"],"sourcesContent":["import { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst ComeHangOutContainer = styled(Box)(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n width: '100%',\n height: 800,\n overflow: 'hidden',\n [theme.breakpoints.down('sm')]: {\n height: 480\n }\n}))\n\nconst AvatarsImage = styled('img')(({ theme }) => ({\n position: 'absolute',\n top: 'calc(35% - 20px)',\n left: '50%',\n transform: 'translateX(-50%)',\n width: 'auto',\n pointerEvents: 'none',\n [theme.breakpoints.down('sm')]: {\n position: 'absolute',\n top: 'auto',\n bottom: -50,\n left: '50%',\n transform: 'translateX(-50%)',\n width: 'auto',\n height: '65%',\n minWidth: 'auto',\n maxWidth: 'none'\n }\n}))\n\nconst Content = styled(Box)(({ theme }) => ({\n position: 'relative',\n zIndex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(3),\n padding: theme.spacing(10, 8),\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n maxWidth: 393,\n padding: theme.spacing(6, 2),\n gap: theme.spacing(2)\n }\n}))\n\nconst Title = styled(Typography)(({ theme }) => ({\n color: dclColors.neutral.white,\n fontWeight: 600,\n fontSize: 48,\n textAlign: 'center',\n letterSpacing: -0.5,\n [theme.breakpoints.down('sm')]: {\n fontSize: 32\n }\n}))\n\nconst DownloadInfo = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n gap: 16,\n flexWrap: 'wrap',\n justifyContent: 'center',\n position: 'relative',\n zIndex: 1\n})\n\nconst DownloadCounts = styled('span')({\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n color: '#fff',\n fontSize: 16,\n fontWeight: 400,\n lineHeight: 1.5,\n whiteSpace: 'nowrap',\n minWidth: 210\n})\n\nconst DownloadSeparator = styled('span')({\n width: 1,\n height: 20,\n backgroundColor: 'rgba(255, 255, 255, 0.3)'\n})\n\nconst PlatformIcons = styled('span')(({ theme }) => ({\n display: 'flex',\n gap: 8,\n alignItems: 'center',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& a': {\n display: 'flex',\n lineHeight: 0\n },\n [theme.breakpoints.down('sm')]: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& a': {\n pointerEvents: 'none',\n color: 'inherit',\n textDecoration: 'none'\n }\n }\n}))\n\nconst PlatformIcon = styled('img')({\n width: 24,\n height: 24,\n filter: 'brightness(0) invert(1)'\n})\n\nconst OsIcon = styled('img')({\n width: 32,\n height: 32,\n filter: 'brightness(0) invert(1)'\n})\n\nexport {\n AvatarsImage,\n ComeHangOutContainer,\n Content,\n DownloadCounts,\n DownloadInfo,\n DownloadSeparator,\n OsIcon,\n PlatformIcon,\n PlatformIcons,\n Title\n}\nexport { HangOutButton } from '../shared/HangOutButton.styled'\nexport {\n ComingSoonIcon,\n ComingSoonRow,\n ComingSoonText,\n GooglePlayButton,\n GooglePlayImage,\n MobileSubtitle,\n SendLinkButton\n} from '../shared/MobileCTA.styled'\n","import { memo, useCallback, useState } from 'react'\nimport { useAdvancedUserAgentData, useAsyncMemo } from '@dcl/hooks'\nimport { AnimatedBackground, DownloadModal, DownloadQRModal } from 'decentraland-ui2'\nimport { useFormatMessage } from '../../../hooks/adapters/useFormatMessage'\nimport { useTrackClick } from '../../../hooks/adapters/useTrackLinkContext'\nimport { useAnimatedCounter } from '../../../hooks/useAnimatedCounter'\nimport { useHangOutAction } from '../../../hooks/useHangOutAction'\nimport appleLogo from '../../../images/apple-logo.svg'\nimport microsoftLogo from '../../../images/microsoft-logo.svg'\nimport { DOWNLOAD_URLS } from '../../../modules/downloadConstants'\nimport { ExplorerDownloads } from '../../../modules/explorerDownloads'\nimport { formatToShorthand } from '../../../modules/number'\nimport { SectionViewedTrack } from '../../../modules/segment'\nimport { OperativeSystem } from '../../../types/download.types'\nimport { assetUrl } from '../../../utils/assetUrl'\nimport { VerifiedIcon } from '../../Icon/VerifiedIcon'\nimport { DownloadButton, EpicButton } from '../Hero/Hero.styled'\nimport { GOOGLE_PLAY_MOBILE_URL, googlePlayBadge } from '../shared/googlePlay'\nimport {\n AvatarsImage,\n ComeHangOutContainer,\n Content,\n DownloadCounts,\n DownloadInfo,\n DownloadSeparator,\n GooglePlayButton,\n GooglePlayImage,\n PlatformIcon,\n PlatformIcons,\n Title\n} from './ComeHangOut.styled'\n\nlet cachedDownloadCounts: string | null = null\n\nconst ComeHangOut = memo(() => {\n const l = useFormatMessage()\n const onClickHandle = useTrackClick()\n const { isDownloadModalOpen, closeDownloadModal, downloadModalProps, totalDownloads } = useHangOutAction()\n const [, userAgentData] = useAdvancedUserAgentData()\n const [rawDownloads, rawDownloadsStatus] = useAsyncMemo(async () => ExplorerDownloads.get().getTotalDownloads(), [])\n\n const targetDownloads = !rawDownloadsStatus.loading && rawDownloadsStatus.loaded && rawDownloads ? rawDownloads : null\n if (targetDownloads) cachedDownloadCounts = formatToShorthand(targetDownloads)\n const animatedDownloads = useAnimatedCounter(targetDownloads)\n const downloadCountsFormatted = animatedDownloads ? formatToShorthand(animatedDownloads) : cachedDownloadCounts ?? '+400K'\n\n const currentOs = userAgentData?.os.name\n const isMobile = !!userAgentData?.mobile\n const isMobileAndroid = isMobile && currentOs === 'Android'\n\n // Mobile download modal for platform icon clicks\n const [mobileModalOs, setMobileModalOs] = useState<'ios' | 'android' | null>(null)\n\n const renderMobileContent = () => {\n if (isMobileAndroid) {\n return (\n <GooglePlayButton href={GOOGLE_PLAY_MOBILE_URL} target=\"_blank\" rel=\"noopener noreferrer\">\n <GooglePlayImage src={googlePlayBadge} alt=\"Get it on Google Play\" />\n </GooglePlayButton>\n )\n }\n\n return (\n <GooglePlayButton href={DOWNLOAD_URLS.appStore} target=\"_blank\" rel=\"noopener noreferrer\">\n <GooglePlayImage src={assetUrl('/download-on-the-app-store.svg')} alt=\"Download on the App Store\" />\n </GooglePlayButton>\n )\n }\n\n const handleDownloadClick = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n onClickHandle(e)\n if (userAgentData) {\n window.location.href = `/download_success?os=${userAgentData.os.name}`\n }\n },\n [onClickHandle, userAgentData]\n )\n\n const osImage = userAgentData\n ? { [OperativeSystem.WINDOWS]: microsoftLogo, [OperativeSystem.MACOS]: appleLogo }[userAgentData.os.name]\n : null\n\n const renderDesktopContent = () => (\n <>\n <div style={{ display: 'flex', gap: 24, justifyContent: 'center' }}>\n <DownloadButton\n href={userAgentData ? `/download_success?os=${userAgentData.os.name}` : '/download'}\n data-place={SectionViewedTrack.LANDING_HERO}\n data-event=\"click\"\n onClick={handleDownloadClick}\n >\n {l('page.download.download_for_short')}\n {osImage ? (\n <img src={osImage} alt={userAgentData?.os.name ?? ''} width={32} height={32} style={{ filter: 'brightness(0) invert(1)' }} />\n ) : (\n <span style={{ display: 'block', width: 32, height: 32, flexShrink: 0 }} />\n )}\n </DownloadButton>\n <EpicButton href={DOWNLOAD_URLS.epic} target=\"_blank\" rel=\"noopener noreferrer\">\n {l('page.download.download_on')}\n <img src={assetUrl('/epic_icon.svg')} alt=\"Epic Games\" width={32} height={32} style={{ filter: 'brightness(0)' }} />\n </EpicButton>\n </div>\n <DownloadInfo>\n <DownloadCounts>\n <VerifiedIcon /> {l('page.download.total_downloads', { downloads: downloadCountsFormatted })}\n </DownloadCounts>\n <DownloadSeparator />\n <PlatformIcons>\n {currentOs === OperativeSystem.MACOS && (\n <a href=\"/download_success?os=Windows\">\n <PlatformIcon src={microsoftLogo} alt=\"Windows\" />\n </a>\n )}\n {currentOs === OperativeSystem.WINDOWS && (\n <a href=\"/download_success?os=macOS\">\n <PlatformIcon src={appleLogo} alt=\"macOS\" />\n </a>\n )}\n {!currentOs && <span style={{ display: 'inline-block', width: 24, height: 24 }} />}\n <a\n href=\"#\"\n onClick={e => {\n e.preventDefault()\n setMobileModalOs('ios')\n }}\n >\n <PlatformIcon src={assetUrl('/ios-logo.svg')} alt=\"iOS\" />\n </a>\n <a\n href=\"#\"\n onClick={e => {\n e.preventDefault()\n setMobileModalOs('android')\n }}\n >\n <PlatformIcon src={assetUrl('/google_play_icon.svg')} alt=\"Android\" />\n </a>\n </PlatformIcons>\n </DownloadInfo>\n </>\n )\n\n return (\n <ComeHangOutContainer>\n <AnimatedBackground variant=\"absolute\" />\n <Content>\n <Title variant=\"h2\">{l('page.home.come_hang_out.title')}</Title>\n {isMobile ? renderMobileContent() : renderDesktopContent()}\n </Content>\n <AvatarsImage src={assetUrl('/come_hang_out_background.webp')} alt=\"\" aria-hidden width={1920} height={840} loading=\"lazy\" />\n <DownloadModal open={isDownloadModalOpen} onClose={closeDownloadModal} {...downloadModalProps} />\n {mobileModalOs && (\n <DownloadQRModal\n open\n onClose={() => setMobileModalOs(null)}\n os={mobileModalOs}\n i18n={{ totalDownloads: `Total Downloads: ${totalDownloads}` }}\n />\n )}\n </ComeHangOutContainer>\n )\n})\n\nComeHangOut.displayName = 'ComeHangOut'\n\nexport { ComeHangOut }\n"],"names":["ComeHangOutContainer","styled","Box","theme","AvatarsImage","Content","Title","Typography","dclColors.neutral","DownloadInfo","DownloadCounts","DownloadSeparator","PlatformIcons","PlatformIcon","cachedDownloadCounts","ComeHangOut","memo","l","useFormatMessage","onClickHandle","useTrackClick","isDownloadModalOpen","closeDownloadModal","downloadModalProps","totalDownloads","useHangOutAction","userAgentData","useAdvancedUserAgentData","rawDownloads","rawDownloadsStatus","useAsyncMemo","ExplorerDownloads","targetDownloads","formatToShorthand","animatedDownloads","useAnimatedCounter","downloadCountsFormatted","currentOs","isMobile","isMobileAndroid","mobileModalOs","setMobileModalOs","useState","renderMobileContent","jsx","GooglePlayButton","GOOGLE_PLAY_MOBILE_URL","GooglePlayImage","googlePlayBadge","DOWNLOAD_URLS","assetUrl","handleDownloadClick","useCallback","e","osImage","OperativeSystem","microsoftLogo","appleLogo","renderDesktopContent","jsxs","Fragment","DownloadButton","SectionViewedTrack","EpicButton","VerifiedIcon","AnimatedBackground","DownloadModal","DownloadQRModal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-CucSFK-C.js","sources":["../../src/components/Home/ComeHangOut/ComeHangOut.styled.ts","../../src/components/Home/ComeHangOut/ComeHangOut.tsx"],"sourcesContent":["import { Box, Typography, dclColors, styled } from 'decentraland-ui2'\n\nconst ComeHangOutContainer = styled(Box)(({ theme }) => ({\n position: 'relative',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'flex-start',\n width: '100%',\n height: 800,\n overflow: 'hidden',\n [theme.breakpoints.down('sm')]: {\n height: 480\n }\n}))\n\nconst AvatarsImage = styled('img')(({ theme }) => ({\n position: 'absolute',\n top: 'calc(35% - 20px)',\n left: '50%',\n transform: 'translateX(-50%)',\n width: 'auto',\n pointerEvents: 'none',\n [theme.breakpoints.down('sm')]: {\n position: 'absolute',\n top: 'auto',\n bottom: -50,\n left: '50%',\n transform: 'translateX(-50%)',\n width: 'auto',\n height: '65%',\n minWidth: 'auto',\n maxWidth: 'none'\n }\n}))\n\nconst Content = styled(Box)(({ theme }) => ({\n position: 'relative',\n zIndex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: theme.spacing(3),\n padding: theme.spacing(10, 8),\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n maxWidth: 393,\n padding: theme.spacing(6, 2),\n gap: theme.spacing(2)\n }\n}))\n\nconst Title = styled(Typography)(({ theme }) => ({\n color: dclColors.neutral.white,\n fontWeight: 600,\n fontSize: 48,\n textAlign: 'center',\n letterSpacing: -0.5,\n [theme.breakpoints.down('sm')]: {\n fontSize: 32\n }\n}))\n\nconst DownloadInfo = styled(Box)({\n display: 'flex',\n alignItems: 'center',\n gap: 16,\n flexWrap: 'wrap',\n justifyContent: 'center',\n position: 'relative',\n zIndex: 1\n})\n\nconst DownloadCounts = styled('span')({\n display: 'flex',\n alignItems: 'center',\n gap: 12,\n color: '#fff',\n fontSize: 16,\n fontWeight: 400,\n lineHeight: 1.5,\n whiteSpace: 'nowrap',\n minWidth: 210\n})\n\nconst DownloadSeparator = styled('span')({\n width: 1,\n height: 20,\n backgroundColor: 'rgba(255, 255, 255, 0.3)'\n})\n\nconst PlatformIcons = styled('span')(({ theme }) => ({\n display: 'flex',\n gap: 8,\n alignItems: 'center',\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& a': {\n display: 'flex',\n lineHeight: 0\n },\n [theme.breakpoints.down('sm')]: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '& a': {\n pointerEvents: 'none',\n color: 'inherit',\n textDecoration: 'none'\n }\n }\n}))\n\nconst PlatformIcon = styled('img')({\n width: 24,\n height: 24,\n filter: 'brightness(0) invert(1)'\n})\n\nconst OsIcon = styled('img')({\n width: 32,\n height: 32,\n filter: 'brightness(0) invert(1)'\n})\n\nexport {\n AvatarsImage,\n ComeHangOutContainer,\n Content,\n DownloadCounts,\n DownloadInfo,\n DownloadSeparator,\n OsIcon,\n PlatformIcon,\n PlatformIcons,\n Title\n}\nexport { HangOutButton } from '../shared/HangOutButton.styled'\nexport {\n ComingSoonIcon,\n ComingSoonRow,\n ComingSoonText,\n GooglePlayButton,\n GooglePlayImage,\n MobileSubtitle,\n SendLinkButton\n} from '../shared/MobileCTA.styled'\n","import { memo, useCallback, useState } from 'react'\nimport { useAdvancedUserAgentData, useAsyncMemo } from '@dcl/hooks'\nimport { AnimatedBackground, DownloadModal, DownloadQRModal } from 'decentraland-ui2'\nimport { useFormatMessage } from '../../../hooks/adapters/useFormatMessage'\nimport { useTrackClick } from '../../../hooks/adapters/useTrackLinkContext'\nimport { useAnimatedCounter } from '../../../hooks/useAnimatedCounter'\nimport { useHangOutAction } from '../../../hooks/useHangOutAction'\nimport appleLogo from '../../../images/apple-logo.svg'\nimport microsoftLogo from '../../../images/microsoft-logo.svg'\nimport { DOWNLOAD_URLS } from '../../../modules/downloadConstants'\nimport { ExplorerDownloads } from '../../../modules/explorerDownloads'\nimport { formatToShorthand } from '../../../modules/number'\nimport { SectionViewedTrack } from '../../../modules/segment'\nimport { OperativeSystem } from '../../../types/download.types'\nimport { assetUrl } from '../../../utils/assetUrl'\nimport { VerifiedIcon } from '../../Icon/VerifiedIcon'\nimport { DownloadButton, EpicButton } from '../Hero/Hero.styled'\nimport { GOOGLE_PLAY_MOBILE_URL, googlePlayBadge } from '../shared/googlePlay'\nimport {\n AvatarsImage,\n ComeHangOutContainer,\n Content,\n DownloadCounts,\n DownloadInfo,\n DownloadSeparator,\n GooglePlayButton,\n GooglePlayImage,\n PlatformIcon,\n PlatformIcons,\n Title\n} from './ComeHangOut.styled'\n\nlet cachedDownloadCounts: string | null = null\n\nconst ComeHangOut = memo(() => {\n const l = useFormatMessage()\n const onClickHandle = useTrackClick()\n const { isDownloadModalOpen, closeDownloadModal, downloadModalProps, totalDownloads } = useHangOutAction()\n const [, userAgentData] = useAdvancedUserAgentData()\n const [rawDownloads, rawDownloadsStatus] = useAsyncMemo(async () => ExplorerDownloads.get().getTotalDownloads(), [])\n\n const targetDownloads = !rawDownloadsStatus.loading && rawDownloadsStatus.loaded && rawDownloads ? rawDownloads : null\n if (targetDownloads) cachedDownloadCounts = formatToShorthand(targetDownloads)\n const animatedDownloads = useAnimatedCounter(targetDownloads)\n const downloadCountsFormatted = animatedDownloads ? formatToShorthand(animatedDownloads) : cachedDownloadCounts ?? '+400K'\n\n const currentOs = userAgentData?.os.name\n const isMobile = !!userAgentData?.mobile\n const isMobileAndroid = isMobile && currentOs === 'Android'\n\n // Mobile download modal for platform icon clicks\n const [mobileModalOs, setMobileModalOs] = useState<'ios' | 'android' | null>(null)\n\n const renderMobileContent = () => {\n if (isMobileAndroid) {\n return (\n <GooglePlayButton href={GOOGLE_PLAY_MOBILE_URL} target=\"_blank\" rel=\"noopener noreferrer\">\n <GooglePlayImage src={googlePlayBadge} alt=\"Get it on Google Play\" />\n </GooglePlayButton>\n )\n }\n\n return (\n <GooglePlayButton href={DOWNLOAD_URLS.appStore} target=\"_blank\" rel=\"noopener noreferrer\">\n <GooglePlayImage src={assetUrl('/download-on-the-app-store.svg')} alt=\"Download on the App Store\" />\n </GooglePlayButton>\n )\n }\n\n const handleDownloadClick = useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n onClickHandle(e)\n if (userAgentData) {\n window.location.href = `/download_success?os=${userAgentData.os.name}`\n }\n },\n [onClickHandle, userAgentData]\n )\n\n const osImage = userAgentData\n ? { [OperativeSystem.WINDOWS]: microsoftLogo, [OperativeSystem.MACOS]: appleLogo }[userAgentData.os.name]\n : null\n\n const renderDesktopContent = () => (\n <>\n <div style={{ display: 'flex', gap: 24, justifyContent: 'center' }}>\n <DownloadButton\n href={userAgentData ? `/download_success?os=${userAgentData.os.name}` : '/download'}\n data-place={SectionViewedTrack.LANDING_HERO}\n data-event=\"click\"\n onClick={handleDownloadClick}\n >\n {l('page.download.download_for_short')}\n {osImage ? (\n <img src={osImage} alt={userAgentData?.os.name ?? ''} width={32} height={32} style={{ filter: 'brightness(0) invert(1)' }} />\n ) : (\n <span style={{ display: 'block', width: 32, height: 32, flexShrink: 0 }} />\n )}\n </DownloadButton>\n <EpicButton href={DOWNLOAD_URLS.epic} target=\"_blank\" rel=\"noopener noreferrer\">\n {l('page.download.download_on')}\n <img src={assetUrl('/epic_icon.svg')} alt=\"Epic Games\" width={32} height={32} style={{ filter: 'brightness(0)' }} />\n </EpicButton>\n </div>\n <DownloadInfo>\n <DownloadCounts>\n <VerifiedIcon /> {l('page.download.total_downloads', { downloads: downloadCountsFormatted })}\n </DownloadCounts>\n <DownloadSeparator />\n <PlatformIcons>\n {currentOs === OperativeSystem.MACOS && (\n <a href=\"/download_success?os=Windows\">\n <PlatformIcon src={microsoftLogo} alt=\"Windows\" />\n </a>\n )}\n {currentOs === OperativeSystem.WINDOWS && (\n <a href=\"/download_success?os=macOS\">\n <PlatformIcon src={appleLogo} alt=\"macOS\" />\n </a>\n )}\n {!currentOs && <span style={{ display: 'inline-block', width: 24, height: 24 }} />}\n <a\n href=\"#\"\n onClick={e => {\n e.preventDefault()\n setMobileModalOs('ios')\n }}\n >\n <PlatformIcon src={assetUrl('/ios-logo.svg')} alt=\"iOS\" />\n </a>\n <a\n href=\"#\"\n onClick={e => {\n e.preventDefault()\n setMobileModalOs('android')\n }}\n >\n <PlatformIcon src={assetUrl('/google_play_icon.svg')} alt=\"Android\" />\n </a>\n </PlatformIcons>\n </DownloadInfo>\n </>\n )\n\n return (\n <ComeHangOutContainer>\n <AnimatedBackground variant=\"absolute\" />\n <Content>\n <Title variant=\"h2\">{l('page.home.come_hang_out.title')}</Title>\n {isMobile ? renderMobileContent() : renderDesktopContent()}\n </Content>\n <AvatarsImage src={assetUrl('/come_hang_out_background.webp')} alt=\"\" aria-hidden width={1920} height={840} loading=\"lazy\" />\n <DownloadModal open={isDownloadModalOpen} onClose={closeDownloadModal} {...downloadModalProps} />\n {mobileModalOs && (\n <DownloadQRModal\n open\n onClose={() => setMobileModalOs(null)}\n os={mobileModalOs}\n i18n={{ totalDownloads: `Total Downloads: ${totalDownloads}` }}\n />\n )}\n </ComeHangOutContainer>\n )\n})\n\nComeHangOut.displayName = 'ComeHangOut'\n\nexport { ComeHangOut }\n"],"names":["ComeHangOutContainer","styled","Box","theme","AvatarsImage","Content","Title","Typography","dclColors.neutral","DownloadInfo","DownloadCounts","DownloadSeparator","PlatformIcons","PlatformIcon","cachedDownloadCounts","ComeHangOut","memo","l","useFormatMessage","onClickHandle","useTrackClick","isDownloadModalOpen","closeDownloadModal","downloadModalProps","totalDownloads","useHangOutAction","userAgentData","useAdvancedUserAgentData","rawDownloads","rawDownloadsStatus","useAsyncMemo","ExplorerDownloads","targetDownloads","formatToShorthand","animatedDownloads","useAnimatedCounter","downloadCountsFormatted","currentOs","isMobile","isMobileAndroid","mobileModalOs","setMobileModalOs","useState","renderMobileContent","jsx","GooglePlayButton","GOOGLE_PLAY_MOBILE_URL","GooglePlayImage","googlePlayBadge","DOWNLOAD_URLS","assetUrl","handleDownloadClick","useCallback","e","osImage","OperativeSystem","microsoftLogo","appleLogo","renderDesktopContent","jsxs","Fragment","DownloadButton","SectionViewedTrack","EpicButton","VerifiedIcon","AnimatedBackground","DownloadModal","DownloadQRModal"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,s as o,w as W,b1 as B,ar as E,ad as H,U as c,P as R}from"./index-DaRevScO.js";import{r as i}from"./vendor-router-D_36sTKu.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.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"})}),P=()=>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"})}),U=()=>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("xs")]:{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("xs")]:{padding:0,width:"100%",alignItems:"center",maxWidth:"100%"}})),$=o("img")(({theme:n})=>({height:48,width:"auto",[n.breakpoints.down("xs")]:{height:40,maxWidth:322}})),J=o("div")(({theme:n})=>({display:"flex",flexDirection:"column",gap:12,[n.breakpoints.down("xs")]:{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("xs")]:{textAlign:"center"}}));o("form")(({theme:n})=>({display:"flex",gap:8,height:46,width:"100%",maxWidth:450,[n.breakpoints.down("xs")]:{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("xs")]:{display:"none"}},"&.mobile-only":{display:"none",[n.breakpoints.down("xs")]:{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("xs")]:{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("xs")]:{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("xs")]:{flexDirection:"column",alignItems:"flex-start",gap:16}})),ie=o("div")(({theme:n})=>({display:"flex",alignItems:"center",gap:16,[n.breakpoints.down("xs")]:{flexDirection:"column",alignItems:"flex-start",gap:16}})),ae=o("div")(({theme:n})=>({[n.breakpoints.down("xs")]:{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("xs")]:{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("xs")]:{display:"none"}})),he="https://embeds.beehiiv.com/ff89783d-748b-4ba3-8700-4759f6f62831?slim=true",fe={Discord:z,GitHub:A,X:O,Instagram:G,YouTube:P,TikTok:U,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")}],T=({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,N]=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=>{N(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(T,{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(T,{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,w as W,b1 as B,ar as E,ad as H,U as c,P as R}from"./index-Cjx-6-Fc.js";import{r as i}from"./vendor-router-D_36sTKu.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.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"})}),P=()=>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"})}),U=()=>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("xs")]:{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("xs")]:{padding:0,width:"100%",alignItems:"center",maxWidth:"100%"}})),$=o("img")(({theme:n})=>({height:48,width:"auto",[n.breakpoints.down("xs")]:{height:40,maxWidth:322}})),J=o("div")(({theme:n})=>({display:"flex",flexDirection:"column",gap:12,[n.breakpoints.down("xs")]:{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("xs")]:{textAlign:"center"}}));o("form")(({theme:n})=>({display:"flex",gap:8,height:46,width:"100%",maxWidth:450,[n.breakpoints.down("xs")]:{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("xs")]:{display:"none"}},"&.mobile-only":{display:"none",[n.breakpoints.down("xs")]:{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("xs")]:{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("xs")]:{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("xs")]:{flexDirection:"column",alignItems:"flex-start",gap:16}})),ie=o("div")(({theme:n})=>({display:"flex",alignItems:"center",gap:16,[n.breakpoints.down("xs")]:{flexDirection:"column",alignItems:"flex-start",gap:16}})),ae=o("div")(({theme:n})=>({[n.breakpoints.down("xs")]:{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("xs")]:{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("xs")]:{display:"none"}})),he="https://embeds.beehiiv.com/ff89783d-748b-4ba3-8700-4759f6f62831?slim=true",fe={Discord:z,GitHub:A,X:O,Instagram:G,YouTube:P,TikTok:U,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")}],T=({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,N]=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=>{N(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(T,{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(T,{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-71royYUE.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('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\n display: 'none'\n }\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&.mobile-only': {\n display: 'none',\n [theme.breakpoints.down('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: 16\n }\n}))\n\nconst BottomBarRight = styled('div')(({ theme }) => ({\n [theme.breakpoints.down('xs')]: {\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('xs')]: {\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('xs')]: {\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-CvqSSkkA.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('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\n display: 'none'\n }\n },\n // eslint-disable-next-line @typescript-eslint/naming-convention\n '&.mobile-only': {\n display: 'none',\n [theme.breakpoints.down('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\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('xs')]: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: 16\n }\n}))\n\nconst BottomBarRight = styled('div')(({ theme }) => ({\n [theme.breakpoints.down('xs')]: {\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('xs')]: {\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('xs')]: {\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{j as e}from"./index-
|
|
1
|
+
import{j as e}from"./index-Cjx-6-Fc.js";import{r as t}from"./vendor-router-D_36sTKu.js";import{L as s,P as r,S as i,a,B as n}from"./LegalPageLayout-PNgx2stH.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";const 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};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-D-pfpn_u.js","sources":["../../src/pages/referral-terms/ReferralTerms.tsx"],"sourcesContent":["import { memo } from 'react'\nimport { BulletList, LegalPageLayout, Paragraph, Section, SectionTitle } from '../../components/LegalPage'\nimport type { TOCEntry } from '../../components/LegalPage'\n\nconst TABLE_OF_CONTENTS: TOCEntry[] = [\n { id: 'general-provisions', label: '1. General Provisions' },\n { id: 'how-it-works', label: '2. How It Works' },\n { id: 'rewards-structure', label: '3. Rewards Structure' },\n { id: 'reward-distribution', label: '4. Reward Distribution and Delivery' },\n { id: 'program-abuse', label: '5. Program Abuse and Disqualification' },\n { id: 'email-notifications', label: '6. Email Notifications' },\n { id: 'changes-and-termination', label: '7. Changes and Termination' },\n { id: 'miscellaneous', label: '8. Miscellaneous' }\n]\n\nconst ReferralTerms = memo(() => (\n <LegalPageLayout title=\"Referral\" activeSlug=\"/referral-terms\" tableOfContents={TABLE_OF_CONTENTS}>\n <Paragraph>Referral Program – Terms and Conditions</Paragraph>\n\n <Section id=\"general-provisions\">\n <SectionTitle>1. General Provisions</SectionTitle>\n <Paragraph>\n 1.1. This Referral Program ("Program") is open to all registered users of Decentraland platform who are in good standing\n and comply with our general Terms of Service.\n </Paragraph>\n <Paragraph>\n 1.2. Participation in the Program constitutes acceptance of these Terms and Conditions, as well as the Decentraland Terms of Use,\n Privacy Policy, and Content Policy.\n </Paragraph>\n <Paragraph>\n 1.3. The Decentraland Foundation reserves the right to modify, suspend, or terminate the Program at its discretion.\n </Paragraph>\n </Section>\n\n <Section id=\"how-it-works\">\n <SectionTitle>2. How It Works</SectionTitle>\n <Paragraph>\n 2.1. To refer a new user, share your unique referral link. A referred user ("Referee") will be considered valid if the\n following conditions are met:\n </Paragraph>\n <BulletList>\n <li>The Referee successfully creates an account on our platform using a referral link.</li>\n <li>The Referee downloads and installs Decentraland's desktop client.</li>\n <li>The Referee jumps into Genesis City via the desktop client three (3) different days.</li>\n </BulletList>\n <Paragraph>2.2. Only referrals meeting those criteria will count towards your reward tally.</Paragraph>\n <Paragraph>\n 2.3. Every successful referral should count and be displayed in a counter under the "Referral Rewards" section.\n </Paragraph>\n </Section>\n\n <Section id=\"rewards-structure\">\n <SectionTitle>3. Rewards Structure</SectionTitle>\n <Paragraph>\n Rewards are granted based on the number of valid referrals you accumulate in the "Referral Rewards" section. Each reward\n tier is cumulative and unlocks sequentially:\n </Paragraph>\n <BulletList>\n <li>5 Friends Joined: EPIC Bottoms Wearable + Starter Community Recruiter Badge</li>\n <li>10 Friends Joined: EPIC Jacket Wearable + Bronze Community Recruiter Badge</li>\n <li>20 Friends Joined: LEGENDARY Handwear Wearable</li>\n <li>25 Friends Joined: LEGENDARY Emote + Silver Community Recruiter Badge</li>\n <li>30 Friends Joined: EXOTIC Shoes Wearable</li>\n <li>50 Friends Joined: EXOTIC Hair Wearable + Gold Community Recruiter Badge</li>\n <li>60 Friends Joined: MYTHIC "Companion-style" Wearable</li>\n <li>75 Friends Joined: MYTHIC Looping Emote+ Platinum Community Recruiter Badge</li>\n <li>100 Friends Joined: IRL Swag Pack + Digital Twin Wearable + Diamond Community Recruiter Badge</li>\n </BulletList>\n </Section>\n\n <Section id=\"reward-distribution\">\n <SectionTitle>4. Reward Distribution and Delivery</SectionTitle>\n <Paragraph>\n 4.1. Digital rewards (Wearables, Emotes, badges, and Credits) will be automatically credited to your account within 3 business days\n of reaching a reward tier.\n </Paragraph>\n <Paragraph>4.2. IRL rewards require contact through the designated email or the email address you share for such purpose.</Paragraph>\n <Paragraph>\n 4.3. We commit to delivering the Rewards in accordance with the rarity levels of the Wearables as stated in the Program. However, we\n do not guarantee the delivery of a specific Wearable within a given rarity category, as each Wearable is subject to availability and\n are traded on the Marketplace.\n </Paragraph>\n </Section>\n\n <Section id=\"program-abuse\">\n <SectionTitle>5. Program Abuse and Disqualification</SectionTitle>\n <Paragraph>\n We reserve the right to disqualify participants who attempt to game, abuse, or manipulate the referral system, including but not\n limited to creating fake accounts, using bots, or violating the platform's Terms of Service.\n </Paragraph>\n </Section>\n\n <Section id=\"email-notifications\">\n <SectionTitle>6. Email Notifications</SectionTitle>\n <Paragraph>\n 6.1. By participating in the Program, you consent to receive email notifications related to "Referral Program."\n </Paragraph>\n <Paragraph>6.2. The Decentraland Foundation may add additional email notification categories in the future.</Paragraph>\n </Section>\n\n <Section id=\"changes-and-termination\">\n <SectionTitle>7. Changes and Termination</SectionTitle>\n <Paragraph>\n We reserve the right to modify or terminate this Program at any time without prior notice. Any changes will be effective immediately\n upon posting an updated version of these Terms and Conditions.\n </Paragraph>\n </Section>\n\n <Section id=\"miscellaneous\">\n <SectionTitle>8. Miscellaneous</SectionTitle>\n <Paragraph>\n 7.1. The Decentraland Foundation is not responsible for any technical malfunctions, errors, or issues that may affect participation\n in the Program.\n </Paragraph>\n <Paragraph>\n 7.2. Any disputes regarding the Program shall be resolved at the sole discretion of the Decentraland Foundation.\n </Paragraph>\n <Paragraph>\n 7.3. For any questions regarding the Referral Program, please contact our support team via the platform or at{' '}\n <a href=\"mailto:support@decentraland.org\">support@decentraland.org</a>.\n </Paragraph>\n <Paragraph>Updated August 18, 2025</Paragraph>\n </Section>\n </LegalPageLayout>\n))\n\nReferralTerms.displayName = 'ReferralTerms'\n\nexport { ReferralTerms }\n"],"names":["TABLE_OF_CONTENTS","ReferralTerms","memo","jsxs","LegalPageLayout","jsx","Paragraph","Section","SectionTitle","BulletList"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as k,b as O}from"./index-
|
|
1
|
+
import{a as k,b as O}from"./index-B8Zt542v.js";import"./index-Cjx-6-Fc.js";import"./vendor-router-D_36sTKu.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";function j(a,e){return Object.keys(e).reduce(function(i,t){if(t.startsWith(a)){var r=t.substr(a.length);i[r]=e[t]}return i},{})}function U(a,e){var i=document.createElement("a");i.href=e;var t=i.search.slice(1),r=t.split("&").reduce(function(v,P){var p=P.split("="),b=p[0],S=p[1];return v[b]=k(S),v},{}),s=[],m=r.ajs_uid,f=r.ajs_event,c=r.ajs_aid,n=O(a.options.useQueryString)?a.options.useQueryString:{},u=n.aid,l=u===void 0?/.+/:u,o=n.uid,A=o===void 0?/.+/:o;if(c){var _=Array.isArray(r.ajs_aid)?r.ajs_aid[0]:r.ajs_aid;l.test(_)&&a.setAnonymousId(_)}if(m){var d=Array.isArray(r.ajs_uid)?r.ajs_uid[0]:r.ajs_uid;if(A.test(d)){var h=j("ajs_trait_",r);s.push(a.identify(d,h))}}if(f){var y=Array.isArray(r.ajs_event)?r.ajs_event[0]:r.ajs_event,g=j("ajs_prop_",r);s.push(a.track(y,g))}return Promise.all(s)}export{U as queryString};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-D66EdcHn.js","sources":["../../node_modules/@segment/analytics-next/dist/pkg/core/query-string/pickPrefix.js","../../node_modules/@segment/analytics-next/dist/pkg/core/query-string/index.js"],"sourcesContent":["/**\n * Returns an object containing only the properties prefixed by the input\n * string.\n * Ex: prefix('ajs_traits_', { ajs_traits_address: '123 St' })\n * will return { address: '123 St' }\n **/\nexport function pickPrefix(prefix, object) {\n return Object.keys(object).reduce(function (acc, key) {\n if (key.startsWith(prefix)) {\n var field = key.substr(prefix.length);\n acc[field] = object[key];\n }\n return acc;\n }, {});\n}\n//# sourceMappingURL=pickPrefix.js.map","import { pickPrefix } from './pickPrefix';\nimport { gracefulDecodeURIComponent } from './gracefulDecodeURIComponent';\nimport { isPlainObject } from '@segment/analytics-core';\nexport function queryString(analytics, query) {\n var a = document.createElement('a');\n a.href = query;\n var parsed = a.search.slice(1);\n var params = parsed.split('&').reduce(function (acc, str) {\n var _a = str.split('='), k = _a[0], v = _a[1];\n acc[k] = gracefulDecodeURIComponent(v);\n return acc;\n }, {});\n var calls = [];\n var ajs_uid = params.ajs_uid, ajs_event = params.ajs_event, ajs_aid = params.ajs_aid;\n var _a = isPlainObject(analytics.options.useQueryString)\n ? analytics.options.useQueryString\n : {}, _b = _a.aid, aidPattern = _b === void 0 ? /.+/ : _b, _c = _a.uid, uidPattern = _c === void 0 ? /.+/ : _c;\n if (ajs_aid) {\n var anonId = Array.isArray(params.ajs_aid)\n ? params.ajs_aid[0]\n : params.ajs_aid;\n if (aidPattern.test(anonId)) {\n analytics.setAnonymousId(anonId);\n }\n }\n if (ajs_uid) {\n var uid = Array.isArray(params.ajs_uid)\n ? params.ajs_uid[0]\n : params.ajs_uid;\n if (uidPattern.test(uid)) {\n var traits = pickPrefix('ajs_trait_', params);\n calls.push(analytics.identify(uid, traits));\n }\n }\n if (ajs_event) {\n var event_1 = Array.isArray(params.ajs_event)\n ? params.ajs_event[0]\n : params.ajs_event;\n var props = pickPrefix('ajs_prop_', params);\n calls.push(analytics.track(event_1, props));\n }\n return Promise.all(calls);\n}\n//# sourceMappingURL=index.js.map"],"names":["pickPrefix","prefix","object","acc","key","field","queryString","analytics","query","a","parsed","params","str","_a","k","v","gracefulDecodeURIComponent","calls","ajs_uid","ajs_event","ajs_aid","isPlainObject","_b","aidPattern","_c","uidPattern","anonId","uid","traits","event_1","props"],"mappings":"8RAMO,SAASA,EAAWC,EAAQC,EAAQ,CACvC,OAAO,OAAO,KAAKA,CAAM,EAAE,OAAO,SAAUC,EAAKC,EAAK,CAClD,GAAIA,EAAI,WAAWH,CAAM,EAAG,CACxB,IAAII,EAAQD,EAAI,OAAOH,EAAO,MAAM,EACpCE,EAAIE,CAAK,EAAIH,EAAOE,CAAG,CAC3B,CACA,OAAOD,CACX,EAAG,CAAA,CAAE,CACT,CCXO,SAASG,EAAYC,EAAWC,EAAO,CAC1C,IAAIC,EAAI,SAAS,cAAc,GAAG,EAClCA,EAAE,KAAOD,EACT,IAAIE,EAASD,EAAE,OAAO,MAAM,CAAC,EACzBE,EAASD,EAAO,MAAM,GAAG,EAAE,OAAO,SAAUP,EAAKS,EAAK,CACtD,IAAIC,EAAKD,EAAI,MAAM,GAAG,EAAGE,EAAID,EAAG,CAAC,EAAGE,EAAIF,EAAG,CAAC,EAC5C,OAAAV,EAAIW,CAAC,EAAIE,EAA2BD,CAAC,EAC9BZ,CACX,EAAG,CAAA,CAAE,EACDc,EAAQ,CAAA,EACRC,EAAUP,EAAO,QAASQ,EAAYR,EAAO,UAAWS,EAAUT,EAAO,QACzEE,EAAKQ,EAAcd,EAAU,QAAQ,cAAc,EACjDA,EAAU,QAAQ,eAClB,CAAA,EAAIe,EAAKT,EAAG,IAAKU,EAAaD,IAAO,OAAS,KAAOA,EAAIE,EAAKX,EAAG,IAAKY,EAAaD,IAAO,OAAS,KAAOA,EAChH,GAAIJ,EAAS,CACT,IAAIM,EAAS,MAAM,QAAQf,EAAO,OAAO,EACnCA,EAAO,QAAQ,CAAC,EAChBA,EAAO,QACTY,EAAW,KAAKG,CAAM,GACtBnB,EAAU,eAAemB,CAAM,CAEvC,CACA,GAAIR,EAAS,CACT,IAAIS,EAAM,MAAM,QAAQhB,EAAO,OAAO,EAChCA,EAAO,QAAQ,CAAC,EAChBA,EAAO,QACb,GAAIc,EAAW,KAAKE,CAAG,EAAG,CACtB,IAAIC,EAAS5B,EAAW,aAAcW,CAAM,EAC5CM,EAAM,KAAKV,EAAU,SAASoB,EAAKC,CAAM,CAAC,CAC9C,CACJ,CACA,GAAIT,EAAW,CACX,IAAIU,EAAU,MAAM,QAAQlB,EAAO,SAAS,EACtCA,EAAO,UAAU,CAAC,EAClBA,EAAO,UACTmB,EAAQ9B,EAAW,YAAaW,CAAM,EAC1CM,EAAM,KAAKV,EAAU,MAAMsB,EAASC,CAAK,CAAC,CAC9C,CACA,OAAO,QAAQ,IAAIb,CAAK,CAC5B","x_google_ignoreList":[0,1]}
|