@dcl/landing-site 0.5.1-24686484792.commit-e56f2bf → 0.5.1-24692282370.commit-1a6e5c1
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-BbbuCmrW.js → AnimatedBackground-DVpktqVp.js} +2 -2
- package/assets/{AnimatedBackground-BbbuCmrW.js.map → AnimatedBackground-DVpktqVp.js.map} +1 -1
- package/assets/{AnimatedSection-CcAt5h6R.js → AnimatedSection-BLhE6NJp.js} +1 -1
- package/assets/{AnimatedSection-CcAt5h6R.js.map → AnimatedSection-BLhE6NJp.js.map} +1 -1
- package/assets/{ArrowBackIosNew-lqzUFZQL.js → ArrowBackIosNew-CCkNG9yi.js} +1 -1
- package/assets/{ArrowBackIosNew-lqzUFZQL.js.map → ArrowBackIosNew-CCkNG9yi.js.map} +1 -1
- package/assets/{AuthorPage-4inFQH2X.js → AuthorPage-D8_PRDI7.js} +1 -1
- package/assets/{AuthorPage-4inFQH2X.js.map → AuthorPage-D8_PRDI7.js.map} +1 -1
- package/assets/{Badges-DPcq_7dC.js → Badges-CoaVGqwO.js} +1 -1
- package/assets/{Badges-DPcq_7dC.js.map → Badges-CoaVGqwO.js.map} +1 -1
- package/assets/{BlogLayout-Bl9FID_L.js → BlogLayout-D9XGGawk.js} +1 -1
- package/assets/{BlogLayout-Bl9FID_L.js.map → BlogLayout-D9XGGawk.js.map} +1 -1
- package/assets/{BlogPage-4c8ZFzdw.js → BlogPage-CXKxWbag.js} +1 -1
- package/assets/{BlogPage-4c8ZFzdw.js.map → BlogPage-CXKxWbag.js.map} +1 -1
- package/assets/{CTAButton-D8_9d6Wu.js → CTAButton-BurlKFHL.js} +1 -1
- package/assets/{CTAButton-D8_9d6Wu.js.map → CTAButton-BurlKFHL.js.map} +1 -1
- package/assets/{CardContent-BQ0iSa2p.js → CardContent-BiDO6--E.js} +1 -1
- package/assets/{CardContent-BQ0iSa2p.js.map → CardContent-BiDO6--E.js.map} +1 -1
- package/assets/{CardMedia-B6PneSTk.js → CardMedia-P7V4G8Ao.js} +1 -1
- package/assets/{CardMedia-B6PneSTk.js.map → CardMedia-P7V4G8Ao.js.map} +1 -1
- package/assets/{Carousel-DJd7E-wq.js → Carousel-BR4vMJGd.js} +1 -1
- package/assets/{Carousel-DJd7E-wq.js.map → Carousel-BR4vMJGd.js.map} +1 -1
- package/assets/{CategoryPage-DNQI3nXz.js → CategoryPage-BPCoXot3.js} +1 -1
- package/assets/{CategoryPage-DNQI3nXz.js.map → CategoryPage-BPCoXot3.js.map} +1 -1
- package/assets/{CircleAndArrow-DIeWRbH9.js → CircleAndArrow-BuEJmlbN.js} +1 -1
- package/assets/{CircleAndArrow-DIeWRbH9.js.map → CircleAndArrow-BuEJmlbN.js.map} +1 -1
- package/assets/{CircularProgress-AsNM1BvH.js → CircularProgress-pomnkuJx.js} +1 -1
- package/assets/{CircularProgress-AsNM1BvH.js.map → CircularProgress-pomnkuJx.js.map} +1 -1
- package/assets/{ContentCopy-CDhBZqHF.js → ContentCopy-Dmqt7VDt.js} +1 -1
- package/assets/{ContentCopy-CDhBZqHF.js.map → ContentCopy-Dmqt7VDt.js.map} +1 -1
- package/assets/{CreateEventPage-NcQUT47j.js → CreateEventPage-Yf9dwFyI.js} +1 -1
- package/assets/CreateEventPage-Yf9dwFyI.js.map +1 -0
- package/assets/{CreatorHubDownload-y9x_B8ll.js → CreatorHubDownload-BmRXscv9.js} +1 -1
- package/assets/{CreatorHubDownload-y9x_B8ll.js.map → CreatorHubDownload-BmRXscv9.js.map} +1 -1
- package/assets/{CreatorHubDownloadSuccess-BP7MSbSp.js → CreatorHubDownloadSuccess-DUNF3ob1.js} +1 -1
- package/assets/{CreatorHubDownloadSuccess-BP7MSbSp.js.map → CreatorHubDownloadSuccess-DUNF3ob1.js.map} +1 -1
- package/assets/{DappsShell-HNAsXcn5.js → DappsShell-C8t4K0gM.js} +1 -1
- package/assets/{DappsShell-HNAsXcn5.js.map → DappsShell-C8t4K0gM.js.map} +1 -1
- package/assets/{DownloadSuccessLayout-COBp7A1N.js → DownloadSuccessLayout-BtszP84v.js} +1 -1
- package/assets/{DownloadSuccessLayout-COBp7A1N.js.map → DownloadSuccessLayout-BtszP84v.js.map} +1 -1
- package/assets/{Grow-eKASrvPe.js → Grow-BOVsEgO5.js} +1 -1
- package/assets/{Grow-eKASrvPe.js.map → Grow-BOVsEgO5.js.map} +1 -1
- package/assets/HomePage-Cuim8IQO.js +3 -0
- package/assets/HomePage-Cuim8IQO.js.map +1 -0
- package/assets/{InviteFaqs-BkOvxqyN.js → InviteFaqs-Dednx3YH.js} +1 -1
- package/assets/{InviteFaqs-BkOvxqyN.js.map → InviteFaqs-Dednx3YH.js.map} +1 -1
- package/assets/{InvitePage-D5lELZNP.js → InvitePage-Dh4saTGB.js} +2 -2
- package/assets/{InvitePage-D5lELZNP.js.map → InvitePage-Dh4saTGB.js.map} +1 -1
- package/assets/{JumpInIcon-bPOWl5ae.js → JumpInIcon-DubYMzvy.js} +1 -1
- package/assets/{JumpInIcon-bPOWl5ae.js.map → JumpInIcon-DubYMzvy.js.map} +1 -1
- package/assets/{LegalPageLayout-DeH35WpT.js → LegalPageLayout-hVF919wE.js} +1 -1
- package/assets/{LegalPageLayout-DeH35WpT.js.map → LegalPageLayout-hVF919wE.js.map} +1 -1
- package/assets/{Link-C3GGl2C6.js → Link-CUGXIwgr.js} +1 -1
- package/assets/{Link-C3GGl2C6.js.map → Link-CUGXIwgr.js.map} +1 -1
- package/assets/{MenuItem-B0piwgTa.js → MenuItem-DuGK0OxB.js} +1 -1
- package/assets/{MenuItem-B0piwgTa.js.map → MenuItem-DuGK0OxB.js.map} +1 -1
- package/assets/{Paper-BfSYUoim.js → Paper-eMTGRWtM.js} +1 -1
- package/assets/{Paper-BfSYUoim.js.map → Paper-eMTGRWtM.js.map} +1 -1
- package/assets/{PostCard-Zsk0_WYz.js → PostCard-kjSmPWWO.js} +1 -1
- package/assets/{PostCard-Zsk0_WYz.js.map → PostCard-kjSmPWWO.js.map} +1 -1
- package/assets/{PostPage-FBb63V37.js → PostPage-BlhpX6oD.js} +1 -1
- package/assets/{PostPage-FBb63V37.js.map → PostPage-BlhpX6oD.js.map} +1 -1
- package/assets/{PostPage.styled-B7Xofl3c.js → PostPage.styled-Po3WWoh-.js} +3 -3
- package/assets/{PostPage.styled-B7Xofl3c.js.map → PostPage.styled-Po3WWoh-.js.map} +1 -1
- package/assets/{PreviewPage-Dla6vQZW.js → PreviewPage-n3uTSCXI.js} +1 -1
- package/assets/{PreviewPage-Dla6vQZW.js.map → PreviewPage-n3uTSCXI.js.map} +1 -1
- package/assets/{SEO-CGGKu_zm.js → SEO-DwbA3w8I.js} +1 -1
- package/assets/{SEO-CGGKu_zm.js.map → SEO-DwbA3w8I.js.map} +1 -1
- package/assets/{SearchPage-ByMcz1c8.js → SearchPage-DI4jZ-5r.js} +1 -1
- package/assets/{SearchPage-ByMcz1c8.js.map → SearchPage-DI4jZ-5r.js.map} +1 -1
- package/assets/{SignInRedirect-Bxl1dwag.js → SignInRedirect-B5d-ThV0.js} +1 -1
- package/assets/{SignInRedirect-Bxl1dwag.js.map → SignInRedirect-B5d-ThV0.js.map} +1 -1
- package/assets/{SignInRedirect-BNwfxyGB.js → SignInRedirect-BG6hu62E.js} +1 -1
- package/assets/{SignInRedirect-BNwfxyGB.js.map → SignInRedirect-BG6hu62E.js.map} +1 -1
- package/assets/{Skeleton-BP1Os8gY.js → Skeleton-L6NTNEwq.js} +1 -1
- package/assets/{Skeleton-BP1Os8gY.js.map → Skeleton-L6NTNEwq.js.map} +1 -1
- package/assets/{TwitterEmbed-BbSYYog-.js → TwitterEmbed-NxuXdAtw.js} +1 -1
- package/assets/{TwitterEmbed-BbSYYog-.js.map → TwitterEmbed-NxuXdAtw.js.map} +1 -1
- package/assets/{Video--A0fBGqz.js → Video-DfjlIy5m.js} +1 -1
- package/assets/{Video--A0fBGqz.js.map → Video-DfjlIy5m.js.map} +1 -1
- package/assets/WearablePreview-DMBKL_Ll.js +4 -0
- package/assets/{WearablePreview-KunRQByO.js.map → WearablePreview-DMBKL_Ll.js.map} +1 -1
- package/assets/{auto-track-DJw7KsLA.js → auto-track-CGclljni.js} +1 -1
- package/assets/{auto-track-DJw7KsLA.js.map → auto-track-CGclljni.js.map} +1 -1
- package/assets/{ccip-EHA4QwVS.js → ccip-DAt5iVuT.js} +1 -1
- package/assets/{ccip-EHA4QwVS.js.map → ccip-DAt5iVuT.js.map} +1 -1
- package/assets/{createSvgIcon-CnAtXIjx.js → createSvgIcon-BhhLusxy.js} +1 -1
- package/assets/{createSvgIcon-CnAtXIjx.js.map → createSvgIcon-BhhLusxy.js.map} +1 -1
- package/assets/{download-Csh0UAX4.js → download-CvDMtlSB.js} +2 -2
- package/assets/{download-Csh0UAX4.js.map → download-CvDMtlSB.js.map} +1 -1
- package/assets/{downloadWithIdentity-imzC-1Iy.js → downloadWithIdentity-DCM4BBHV.js} +1 -1
- package/assets/{downloadWithIdentity-imzC-1Iy.js.map → downloadWithIdentity-DCM4BBHV.js.map} +1 -1
- package/assets/{events.client-BypQp_hx.js → events.client-PE8SGazl.js} +1 -1
- package/assets/events.client-PE8SGazl.js.map +1 -0
- package/assets/host_avatar-Gho9W3pF.webp +0 -0
- package/assets/host_scene-BStngEfA.webp +0 -0
- package/assets/{index-CqU_IKja.js → index-4jeILFtC.js} +1 -1
- package/assets/{index-CqU_IKja.js.map → index-4jeILFtC.js.map} +1 -1
- package/assets/{index-BzmWmDt2.js → index-B3vFLEhz.js} +1 -1
- package/assets/{index-BzmWmDt2.js.map → index-B3vFLEhz.js.map} +1 -1
- package/assets/{index-FcfsIuei.js → index-B4891LJN.js} +1 -1
- package/assets/{index-FcfsIuei.js.map → index-B4891LJN.js.map} +1 -1
- package/assets/{index-Hs2OtJ7_.js → index-B9yrTavV.js} +1 -1
- package/assets/{index-Hs2OtJ7_.js.map → index-B9yrTavV.js.map} +1 -1
- package/assets/{index-CJ9b6HdV.js → index-BLHhkq_E.js} +1 -1
- package/assets/{index-CJ9b6HdV.js.map → index-BLHhkq_E.js.map} +1 -1
- package/assets/{index-DV8UooZK.js → index-BMXADetK.js} +1 -1
- package/assets/{index-DV8UooZK.js.map → index-BMXADetK.js.map} +1 -1
- package/assets/{index-iTL2dY0l.js → index-BkJ8YBkm.js} +1 -1
- package/assets/{index-iTL2dY0l.js.map → index-BkJ8YBkm.js.map} +1 -1
- package/assets/{index-DwKCx_Fj.js → index-BlsbAsbV.js} +17 -17
- package/assets/{index-DwKCx_Fj.js.map → index-BlsbAsbV.js.map} +1 -1
- package/assets/{index-DUmIu2EK.js → index-BoINd_2w.js} +29 -29
- package/assets/{index-DUmIu2EK.js.map → index-BoINd_2w.js.map} +1 -1
- package/assets/{index-BtL1Whr6.js → index-C6X9yhDI.js} +1 -1
- package/assets/{index-BtL1Whr6.js.map → index-C6X9yhDI.js.map} +1 -1
- package/assets/{index-KkMZZ6nz.js → index-C6gBuUpB.js} +1 -1
- package/assets/{index-KkMZZ6nz.js.map → index-C6gBuUpB.js.map} +1 -1
- package/assets/{index-CfKiEnnb.js → index-CFdZJosQ.js} +1 -1
- package/assets/{index-CfKiEnnb.js.map → index-CFdZJosQ.js.map} +1 -1
- package/assets/{index-BKY10VNY.js → index-COhuG0UZ.js} +1 -1
- package/assets/{index-BKY10VNY.js.map → index-COhuG0UZ.js.map} +1 -1
- package/assets/{index-BVu5N7d0.js → index-CXg_mAxU.js} +1 -1
- package/assets/{index-BVu5N7d0.js.map → index-CXg_mAxU.js.map} +1 -1
- package/assets/{index-DW87VeBc.js → index-C_GsQ0sm.js} +1 -1
- package/assets/{index-DW87VeBc.js.map → index-C_GsQ0sm.js.map} +1 -1
- package/assets/{index-pguZ7Pr7.js → index-CaK85mwB.js} +2 -2
- package/assets/{index-pguZ7Pr7.js.map → index-CaK85mwB.js.map} +1 -1
- package/assets/{index-B-PLjKpI.js → index-CwtsGcw-.js} +1 -1
- package/assets/{index-B-PLjKpI.js.map → index-CwtsGcw-.js.map} +1 -1
- package/assets/index-D1E7QSbi.js +1 -0
- package/assets/index-D1E7QSbi.js.map +1 -0
- package/assets/{index-CC8b5SLA.js → index-DCRycbXf.js} +1 -1
- package/assets/{index-CC8b5SLA.js.map → index-DCRycbXf.js.map} +1 -1
- package/assets/{index-XwRFjo-F.js → index-DCk4IgWe.js} +3 -3
- package/assets/{index-XwRFjo-F.js.map → index-DCk4IgWe.js.map} +1 -1
- package/assets/{index-CsY_wahP.js → index-DNB0OcQp.js} +1 -1
- package/assets/{index-CsY_wahP.js.map → index-DNB0OcQp.js.map} +1 -1
- package/assets/{index-DJdpP3iF.js → index-DYASHZBv.js} +1 -1
- package/assets/{index-DJdpP3iF.js.map → index-DYASHZBv.js.map} +1 -1
- package/assets/{index-CXMTgMUj.js → index-DgH2pgVp.js} +1 -1
- package/assets/{index-CXMTgMUj.js.map → index-DgH2pgVp.js.map} +1 -1
- package/assets/{index-DIU7xr_7.js → index-DjSZxWiq.js} +1 -1
- package/assets/{index-DIU7xr_7.js.map → index-DjSZxWiq.js.map} +1 -1
- package/assets/{index-fmnLygLZ.js → index-DuA-Kgw5.js} +1 -1
- package/assets/{index-fmnLygLZ.js.map → index-DuA-Kgw5.js.map} +1 -1
- package/assets/{index-Bd63106P.js → index-DvGiXclv.js} +1 -1
- package/assets/{index-Bd63106P.js.map → index-DvGiXclv.js.map} +1 -1
- package/assets/{index-Bfn0rTR9.js → index-IqQ1Xbmj.js} +1 -1
- package/assets/{index-Bfn0rTR9.js.map → index-IqQ1Xbmj.js.map} +1 -1
- package/assets/{index-BO6ciUn8.js → index-Oddt0EKb.js} +1 -1
- package/assets/{index-BO6ciUn8.js.map → index-Oddt0EKb.js.map} +1 -1
- package/assets/{index-Bq7PojkE.js → index-_IheZrQS.js} +1 -1
- package/assets/{index-Bq7PojkE.js.map → index-_IheZrQS.js.map} +1 -1
- package/assets/{index-Dx9lzInm.js → index-behXzsxg.js} +1 -1
- package/assets/{index-Dx9lzInm.js.map → index-behXzsxg.js.map} +1 -1
- package/assets/{index-0VgKmd34.js → index-xHmg3xmQ.js} +1 -1
- package/assets/{index-0VgKmd34.js.map → index-xHmg3xmQ.js.map} +1 -1
- package/assets/{index-BaEE4ZXP.js → index-z5rocGN5.js} +1 -1
- package/assets/{index-BaEE4ZXP.js.map → index-z5rocGN5.js.map} +1 -1
- package/assets/{profile.client-BtZZbgxj.js → profile.client-S1Y6pP0E.js} +1 -1
- package/assets/{profile.client-BtZZbgxj.js.map → profile.client-S1Y6pP0E.js.map} +1 -1
- package/assets/{shared.styled-D8qloAmp.js → shared.styled-BEvUV04u.js} +1 -1
- package/assets/{shared.styled-D8qloAmp.js.map → shared.styled-BEvUV04u.js.map} +1 -1
- package/assets/{store-OyTPwmKI.js → store-BtCGqC_U.js} +1 -1
- package/assets/{store-OyTPwmKI.js.map → store-BtCGqC_U.js.map} +1 -1
- package/assets/{url-BHzlJYXC.js → url-DZWf7pg7.js} +1 -1
- package/assets/{url-BHzlJYXC.js.map → url-DZWf7pg7.js.map} +1 -1
- package/assets/{useAuthIdentity-D2zQ3q5X.js → useAuthIdentity-C7IfvUJD.js} +1 -1
- package/assets/{useAuthIdentity-D2zQ3q5X.js.map → useAuthIdentity-C7IfvUJD.js.map} +1 -1
- package/assets/{useCreatorHubDownload-Dp_zMaiv.js → useCreatorHubDownload-Ci_tHGLN.js} +1 -1
- package/assets/{useCreatorHubDownload-Dp_zMaiv.js.map → useCreatorHubDownload-Ci_tHGLN.js.map} +1 -1
- package/assets/{useInfiniteBlogPosts-B9Mv_Fup.js → useInfiniteBlogPosts-q1OZMXQO.js} +1 -1
- package/assets/{useInfiniteBlogPosts-B9Mv_Fup.js.map → useInfiniteBlogPosts-q1OZMXQO.js.map} +1 -1
- package/assets/{useSlot-DM_UQPu8.js → useSlot-BXUbg59Y.js} +1 -1
- package/assets/{useSlot-DM_UQPu8.js.map → useSlot-BXUbg59Y.js.map} +1 -1
- package/assets/{utils-CJGePSnj.js → utils-BmJLp6Wz.js} +1 -1
- package/assets/{utils-CJGePSnj.js.map → utils-BmJLp6Wz.js.map} +1 -1
- package/index.html +15 -15
- package/package.json +3 -3
- package/assets/CreateEventPage-NcQUT47j.js.map +0 -1
- package/assets/HomePage-CZwkfB5G.js +0 -3
- package/assets/HomePage-CZwkfB5G.js.map +0 -1
- package/assets/WearablePreview-KunRQByO.js +0 -4
- package/assets/events.client-BypQp_hx.js.map +0 -1
- package/assets/index-C1apFG92.js +0 -1
- package/assets/index-C1apFG92.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e}from"./index-DUmIu2EK.js";import{r}from"./vendor-router-D_36sTKu.js";import{L as n,S as i,a as t,P as o}from"./LegalPageLayout-DeH35WpT.js";import"./vendor-crypto-uuuQA3i5.js";import"./vendor-schemas-DJzTSxpO.js";import"./vendor-sentry-BSvWNK4f.js";import"./vendor-ua-D7qqAxdq.js";import"./vendor-intl-D2lXWsDp.js";const a=[{id:"introduction",label:"1. Introduction"},{id:"information-collected",label:"2. Information Collected in the Site and the Tools"},{id:"way-information-used",label:"3. The Way your Personal Information is used"},{id:"what-is-done",label:"4. What Is Done With Your Information"},{id:"your-choice",label:"5. Your Choice"},{id:"cookies",label:"6. Cookies"},{id:"information-not-collected",label:"7. Information Not Collected"},{id:"information-security",label:"8. Information Security"},{id:"privacy-rights",label:"9. Privacy Rights"},{id:"changes-and-updates",label:"10. Changes and Updates"}],s=r.memo(()=>e.jsxs(n,{title:"Privacy Policy",activeSlug:"/privacy",tableOfContents:a,children:[e.jsxs(i,{id:"introduction",children:[e.jsx(t,{children:"1. Introduction"}),e.jsx(o,{children:"1.1 This Privacy Policy details important information regarding the collection, use and disclosure of User information collected on the Site and the Tools. The aim of this Privacy Policy is to help you understand how your personal information is used and your choices regarding said use. By using the Site or the Tools, you agree that the Foundation can collect, use, disclose, and process your information as described in this Privacy Policy. This Privacy Policy only applies to the Site and the Tools, and not to any other websites, products or services you may be able to access or link to via the Site or the Tools. We encourage you to read the privacy policies of any other websites you visit before providing your information to them."}),e.jsx(o,{children:"The Site and the Tools may evolve over time, and this Privacy Policy will change to reflect that evolution. If changes are made, you will be notified by revising the date at the top of this Privacy Policy. In some cases, if significant changes are made, an statement may be placed in the homepage. We encourage you to review this Privacy Policy periodically to stay informed."}),e.jsx(o,{children:"Some third-party providers may place cookies or pixels - small data files stored on your hard drive or in device memory - on your browser or hard drive. Note that this Privacy Policy does not cover the use of cookies or pixels by such third parties. Most web browsers are set to accept cookies and pixels by default, but you can usually set your browser to remove or reject browser cookies or pixels. If you do choose to remove or reject cookies or pixels, however, your ability to use the Site or the Tools might be affected."}),e.jsx(o,{children:"1.2 This Privacy Policy should be read in conjunction with the Terms of Use. By accessing the Tools, you are consenting to the information collection and use practices described in this Privacy Policy."}),e.jsx(o,{children:"1.3 Your use of the DCL Client and any personal information you provide through the Tools remains subject to the terms of this Privacy Policy and the Terms of Use, as each may be updated from time to time."}),e.jsxs(o,{children:["1.4 Any questions, comments or complaints that you might have should be emailed to"," ",e.jsx("a",{href:"mailto:privacy@decentraland.org",children:"privacy@decentraland.org"}),"."]})]}),e.jsxs(i,{id:"information-collected",children:[e.jsx(t,{children:"2. Information Collected in the Site and the Tools"}),e.jsx(o,{children:"The personal information collected from you generally may include:"}),e.jsx(o,{children:"2.1 Network information regarding transactions, including, among other things, the type of device you use, access times, hardware model, operating system and version, and other unique device identifiers."}),e.jsx(o,{children:"2.2. Information about plugins you might be using, included but not limited to those related to the management of cryptocurrency assets and any information provided by them."}),e.jsx(o,{children:"2.3. Your email and Ether address."}),e.jsx(o,{children:"2.4 The DCL Client requires the highest level of browser permissions that could potentially lead to procurement of more personal information. Information on these permissions are used for a limited purpose, and why this is necessary, can be found in paragraph 3 below."}),e.jsx(o,{children:"2.5 Your interactions with the Site are documented via Segment.io and that information is processed by Google."})]}),e.jsxs(i,{id:"way-information-used",children:[e.jsx(t,{children:"3. The Way your Personal Information is used"}),e.jsx(o,{children:"3.1 As with nearly all interactions that take place on the World Wide Web, the servers may receive information by virtue of your interaction with them, including but not limited to IP Addresses."}),e.jsx(o,{children:"3.2 The DCL Client requires full browser permissions that could potentially be used to access additional personal information. Such browser permissions are used for an extremely limited technical purpose for allowing the DCL Client to properly interact with your browser. No additional information is obtained beyond what is necessary to provide the DCL Client. No information received is shared with any third-party except as required for provision of the DCL Client."}),e.jsx(o,{children:"3.3 Segment.io is used for purposes of monitoring web traffic. Any identifying information collected via Segment.io is controlled by Segment.io, Inc."}),e.jsx(o,{children:"3.4 Public blockchains provide transparency into transactions and the Foundation is not responsible for preventing or managing information broadcasted on a blockchain."})]}),e.jsxs(i,{id:"what-is-done",children:[e.jsx(t,{children:"4. What Is Done With Your Information"}),e.jsx(o,{children:"4.1 Your information may be used in the following ways: To analyze trends for how the Site and Tools are being used; To improve the Site and the Tools; To help personalize your experience of the Site and the Tools; and If you provide your contact information, you may receive technical notices, updates, confirmations, security alerts, to provide support to you, to tell you about other products and services that might interest you, or to respond to your comments or questions."}),e.jsx(o,{children:"4.2 Your information may be shared with third parties who need to access it in order to do work related to the Site and the Tools, including doing things like helping make the Site or DCL Client available, or providing analytics services. These third parties only access and use your information as necessary to perform their functions."}),e.jsx(o,{children:"4.3 Aggregations and anonymizations that contain your information may be created in a way that does not directly identify you. Those aggregations and anonymizations may be used or shared for a variety of purposes related to the Site and the DCL Client."}),e.jsx(o,{children:"4.4 Your personal information may be disclosed to agents, businesses, or service providers who process your personal information for providing the Site and the Tools to you. The agreements with these service providers limit the kinds of information they can use or process and ensure they use reasonable efforts to keep your personal information secure."}),e.jsx(o,{children:"4.5 The Foundation also reserves the right to disclose personal information that it believes, in good faith, is appropriate or necessary to enforce the Terms of Use, take precautions against liability or harm, to investigate and respond to third-party claims or allegations, to respond to court orders or official requests, to protect the security or integrity of the Site or the Tools, and to protect the rights, property, or safety of the Foundation, the Decentraland community of users and LAND owners, or others."}),e.jsx(o,{children:"4.6 In the event that the Foundation is involved in a merger, acquisition, sale, bankruptcy, insolvency, reorganization, receivership, assignment for the benefit of creditors, or the application of laws or equitable principles affecting creditors' rights generally, or other change of control, there may be a disclosure of your information to another entity related to such event."})]}),e.jsxs(i,{id:"your-choice",children:[e.jsx(t,{children:"5. Your Choice"}),e.jsx(o,{children:"Your personal information will be processed in accordance with this Privacy Policy, and as part of that you will have limited or no opportunity to otherwise modify how your information is used."})]}),e.jsxs(i,{id:"cookies",children:[e.jsx(t,{children:"6. Cookies"}),e.jsx(o,{children:"The Site and the Tools do not use cookies at this time but they might do so in the future, in which case this Privacy Policy shall be updated accordingly."})]}),e.jsxs(i,{id:"information-not-collected",children:[e.jsx(t,{children:"7. Information Not Collected"}),e.jsx(o,{children:"Any other personally-identifiable information about you shall not be collected, unless you give it to the Foundation directly: by filling out a form, giving written feedback, communicating via third party social media sites, or otherwise communicating via the Site, the Tools or any other means."})]}),e.jsxs(i,{id:"information-security",children:[e.jsx(t,{children:"8. Information Security"}),e.jsx(o,{children:"Whilst neither the Foundation, nor any other organization, can guarantee the security of information processed online, the Foundation has appropriate security measures in place to protect your personal information. For example, the personal information you provide is stored on computer systems with limited access, encryption, or both."})]}),e.jsxs(i,{id:"privacy-rights",children:[e.jsx(t,{children:"9. Privacy Rights"}),e.jsx(o,{children:"9.1 Subject to applicable law, you may have some or all of the following rights in respect of your personal information: (i) to obtain a copy of your personal information together with information about how and on what basis that personal information is processed; (ii) to rectify inaccurate personal information (including the right to have incomplete personal information completed); (iii) to erase your personal information (in limited circumstances, where it is no longer necessary in relation to the purposes for which it was collected or processed); (iv) to restrict processing of your personal information where: a. the accuracy of the personal information is contested; b. the processing is unlawful but you object to the erasure of the personal information; or c. we no longer require the personal information but it is still required for the establishment, exercise or defense of a legal claim; (v) to challenge processing which we have justified on the basis of a legitimate interest (as opposed to your consent, or to perform a contract with you); (vi) to prevent us from sending you direct marketing; (vii) to withdraw your consent to our processing of your personal information (where that processing is based on your consent); (viii) to object to decisions which are based solely on automated processing or profiling; (ix) in addition to the above, you have the right to file a complaint with the supervisory authority."}),e.jsx(o,{children:"9.2. If you reside in California, you may request certain general information regarding our disclosure of personal information to third parties for their direct marketing purposes."}),e.jsxs(o,{children:["9.3. If you wish to investigate the exercising of any of these rights, please write to us at the following address:"," ",e.jsx("a",{href:"mailto:privacy@decentraland.org",children:"privacy@decentraland.org"}),"."]})]}),e.jsxs(i,{id:"changes-and-updates",children:[e.jsx(t,{children:"10. Changes and Updates"}),e.jsx(o,{children:'10.1 This Privacy Policy may be revised periodically and this will be reflected by the "Last update posted" date above. Please revisit this page to stay aware of any changes. Your continued use of the DCL Client constitutes your agreement to this Privacy Policy and any future revisions.'}),e.jsxs(o,{children:["10.2 Contact Information: ",e.jsx("a",{href:"mailto:privacy@decentraland.org",children:"privacy@decentraland.org"}),"."]})]})]}));s.displayName="PrivacyPolicy";export{s as PrivacyPolicy};
|
|
1
|
+
import{j as e}from"./index-BoINd_2w.js";import{r}from"./vendor-router-D_36sTKu.js";import{L as n,S as i,a as t,P as o}from"./LegalPageLayout-hVF919wE.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 a=[{id:"introduction",label:"1. Introduction"},{id:"information-collected",label:"2. Information Collected in the Site and the Tools"},{id:"way-information-used",label:"3. The Way your Personal Information is used"},{id:"what-is-done",label:"4. What Is Done With Your Information"},{id:"your-choice",label:"5. Your Choice"},{id:"cookies",label:"6. Cookies"},{id:"information-not-collected",label:"7. Information Not Collected"},{id:"information-security",label:"8. Information Security"},{id:"privacy-rights",label:"9. Privacy Rights"},{id:"changes-and-updates",label:"10. Changes and Updates"}],s=r.memo(()=>e.jsxs(n,{title:"Privacy Policy",activeSlug:"/privacy",tableOfContents:a,children:[e.jsxs(i,{id:"introduction",children:[e.jsx(t,{children:"1. Introduction"}),e.jsx(o,{children:"1.1 This Privacy Policy details important information regarding the collection, use and disclosure of User information collected on the Site and the Tools. The aim of this Privacy Policy is to help you understand how your personal information is used and your choices regarding said use. By using the Site or the Tools, you agree that the Foundation can collect, use, disclose, and process your information as described in this Privacy Policy. This Privacy Policy only applies to the Site and the Tools, and not to any other websites, products or services you may be able to access or link to via the Site or the Tools. We encourage you to read the privacy policies of any other websites you visit before providing your information to them."}),e.jsx(o,{children:"The Site and the Tools may evolve over time, and this Privacy Policy will change to reflect that evolution. If changes are made, you will be notified by revising the date at the top of this Privacy Policy. In some cases, if significant changes are made, an statement may be placed in the homepage. We encourage you to review this Privacy Policy periodically to stay informed."}),e.jsx(o,{children:"Some third-party providers may place cookies or pixels - small data files stored on your hard drive or in device memory - on your browser or hard drive. Note that this Privacy Policy does not cover the use of cookies or pixels by such third parties. Most web browsers are set to accept cookies and pixels by default, but you can usually set your browser to remove or reject browser cookies or pixels. If you do choose to remove or reject cookies or pixels, however, your ability to use the Site or the Tools might be affected."}),e.jsx(o,{children:"1.2 This Privacy Policy should be read in conjunction with the Terms of Use. By accessing the Tools, you are consenting to the information collection and use practices described in this Privacy Policy."}),e.jsx(o,{children:"1.3 Your use of the DCL Client and any personal information you provide through the Tools remains subject to the terms of this Privacy Policy and the Terms of Use, as each may be updated from time to time."}),e.jsxs(o,{children:["1.4 Any questions, comments or complaints that you might have should be emailed to"," ",e.jsx("a",{href:"mailto:privacy@decentraland.org",children:"privacy@decentraland.org"}),"."]})]}),e.jsxs(i,{id:"information-collected",children:[e.jsx(t,{children:"2. Information Collected in the Site and the Tools"}),e.jsx(o,{children:"The personal information collected from you generally may include:"}),e.jsx(o,{children:"2.1 Network information regarding transactions, including, among other things, the type of device you use, access times, hardware model, operating system and version, and other unique device identifiers."}),e.jsx(o,{children:"2.2. Information about plugins you might be using, included but not limited to those related to the management of cryptocurrency assets and any information provided by them."}),e.jsx(o,{children:"2.3. Your email and Ether address."}),e.jsx(o,{children:"2.4 The DCL Client requires the highest level of browser permissions that could potentially lead to procurement of more personal information. Information on these permissions are used for a limited purpose, and why this is necessary, can be found in paragraph 3 below."}),e.jsx(o,{children:"2.5 Your interactions with the Site are documented via Segment.io and that information is processed by Google."})]}),e.jsxs(i,{id:"way-information-used",children:[e.jsx(t,{children:"3. The Way your Personal Information is used"}),e.jsx(o,{children:"3.1 As with nearly all interactions that take place on the World Wide Web, the servers may receive information by virtue of your interaction with them, including but not limited to IP Addresses."}),e.jsx(o,{children:"3.2 The DCL Client requires full browser permissions that could potentially be used to access additional personal information. Such browser permissions are used for an extremely limited technical purpose for allowing the DCL Client to properly interact with your browser. No additional information is obtained beyond what is necessary to provide the DCL Client. No information received is shared with any third-party except as required for provision of the DCL Client."}),e.jsx(o,{children:"3.3 Segment.io is used for purposes of monitoring web traffic. Any identifying information collected via Segment.io is controlled by Segment.io, Inc."}),e.jsx(o,{children:"3.4 Public blockchains provide transparency into transactions and the Foundation is not responsible for preventing or managing information broadcasted on a blockchain."})]}),e.jsxs(i,{id:"what-is-done",children:[e.jsx(t,{children:"4. What Is Done With Your Information"}),e.jsx(o,{children:"4.1 Your information may be used in the following ways: To analyze trends for how the Site and Tools are being used; To improve the Site and the Tools; To help personalize your experience of the Site and the Tools; and If you provide your contact information, you may receive technical notices, updates, confirmations, security alerts, to provide support to you, to tell you about other products and services that might interest you, or to respond to your comments or questions."}),e.jsx(o,{children:"4.2 Your information may be shared with third parties who need to access it in order to do work related to the Site and the Tools, including doing things like helping make the Site or DCL Client available, or providing analytics services. These third parties only access and use your information as necessary to perform their functions."}),e.jsx(o,{children:"4.3 Aggregations and anonymizations that contain your information may be created in a way that does not directly identify you. Those aggregations and anonymizations may be used or shared for a variety of purposes related to the Site and the DCL Client."}),e.jsx(o,{children:"4.4 Your personal information may be disclosed to agents, businesses, or service providers who process your personal information for providing the Site and the Tools to you. The agreements with these service providers limit the kinds of information they can use or process and ensure they use reasonable efforts to keep your personal information secure."}),e.jsx(o,{children:"4.5 The Foundation also reserves the right to disclose personal information that it believes, in good faith, is appropriate or necessary to enforce the Terms of Use, take precautions against liability or harm, to investigate and respond to third-party claims or allegations, to respond to court orders or official requests, to protect the security or integrity of the Site or the Tools, and to protect the rights, property, or safety of the Foundation, the Decentraland community of users and LAND owners, or others."}),e.jsx(o,{children:"4.6 In the event that the Foundation is involved in a merger, acquisition, sale, bankruptcy, insolvency, reorganization, receivership, assignment for the benefit of creditors, or the application of laws or equitable principles affecting creditors' rights generally, or other change of control, there may be a disclosure of your information to another entity related to such event."})]}),e.jsxs(i,{id:"your-choice",children:[e.jsx(t,{children:"5. Your Choice"}),e.jsx(o,{children:"Your personal information will be processed in accordance with this Privacy Policy, and as part of that you will have limited or no opportunity to otherwise modify how your information is used."})]}),e.jsxs(i,{id:"cookies",children:[e.jsx(t,{children:"6. Cookies"}),e.jsx(o,{children:"The Site and the Tools do not use cookies at this time but they might do so in the future, in which case this Privacy Policy shall be updated accordingly."})]}),e.jsxs(i,{id:"information-not-collected",children:[e.jsx(t,{children:"7. Information Not Collected"}),e.jsx(o,{children:"Any other personally-identifiable information about you shall not be collected, unless you give it to the Foundation directly: by filling out a form, giving written feedback, communicating via third party social media sites, or otherwise communicating via the Site, the Tools or any other means."})]}),e.jsxs(i,{id:"information-security",children:[e.jsx(t,{children:"8. Information Security"}),e.jsx(o,{children:"Whilst neither the Foundation, nor any other organization, can guarantee the security of information processed online, the Foundation has appropriate security measures in place to protect your personal information. For example, the personal information you provide is stored on computer systems with limited access, encryption, or both."})]}),e.jsxs(i,{id:"privacy-rights",children:[e.jsx(t,{children:"9. Privacy Rights"}),e.jsx(o,{children:"9.1 Subject to applicable law, you may have some or all of the following rights in respect of your personal information: (i) to obtain a copy of your personal information together with information about how and on what basis that personal information is processed; (ii) to rectify inaccurate personal information (including the right to have incomplete personal information completed); (iii) to erase your personal information (in limited circumstances, where it is no longer necessary in relation to the purposes for which it was collected or processed); (iv) to restrict processing of your personal information where: a. the accuracy of the personal information is contested; b. the processing is unlawful but you object to the erasure of the personal information; or c. we no longer require the personal information but it is still required for the establishment, exercise or defense of a legal claim; (v) to challenge processing which we have justified on the basis of a legitimate interest (as opposed to your consent, or to perform a contract with you); (vi) to prevent us from sending you direct marketing; (vii) to withdraw your consent to our processing of your personal information (where that processing is based on your consent); (viii) to object to decisions which are based solely on automated processing or profiling; (ix) in addition to the above, you have the right to file a complaint with the supervisory authority."}),e.jsx(o,{children:"9.2. If you reside in California, you may request certain general information regarding our disclosure of personal information to third parties for their direct marketing purposes."}),e.jsxs(o,{children:["9.3. If you wish to investigate the exercising of any of these rights, please write to us at the following address:"," ",e.jsx("a",{href:"mailto:privacy@decentraland.org",children:"privacy@decentraland.org"}),"."]})]}),e.jsxs(i,{id:"changes-and-updates",children:[e.jsx(t,{children:"10. Changes and Updates"}),e.jsx(o,{children:'10.1 This Privacy Policy may be revised periodically and this will be reflected by the "Last update posted" date above. Please revisit this page to stay aware of any changes. Your continued use of the DCL Client constitutes your agreement to this Privacy Policy and any future revisions.'}),e.jsxs(o,{children:["10.2 Contact Information: ",e.jsx("a",{href:"mailto:privacy@decentraland.org",children:"privacy@decentraland.org"}),"."]})]})]}));s.displayName="PrivacyPolicy";export{s as PrivacyPolicy};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-fmnLygLZ.js","sources":["../../src/pages/privacy/PrivacyPolicy.tsx"],"sourcesContent":["import { memo } from 'react'\nimport { LegalPageLayout, Paragraph, Section, SectionTitle } from '../../components/LegalPage'\nimport type { TOCEntry } from '../../components/LegalPage'\n\nconst TABLE_OF_CONTENTS: TOCEntry[] = [\n { id: 'introduction', label: '1. Introduction' },\n { id: 'information-collected', label: '2. Information Collected in the Site and the Tools' },\n { id: 'way-information-used', label: '3. The Way your Personal Information is used' },\n { id: 'what-is-done', label: '4. What Is Done With Your Information' },\n { id: 'your-choice', label: '5. Your Choice' },\n { id: 'cookies', label: '6. Cookies' },\n { id: 'information-not-collected', label: '7. Information Not Collected' },\n { id: 'information-security', label: '8. Information Security' },\n { id: 'privacy-rights', label: '9. Privacy Rights' },\n { id: 'changes-and-updates', label: '10. Changes and Updates' }\n]\n\nconst PrivacyPolicy = memo(() => (\n <LegalPageLayout title=\"Privacy Policy\" activeSlug=\"/privacy\" tableOfContents={TABLE_OF_CONTENTS}>\n <Section id=\"introduction\">\n <SectionTitle>1. Introduction</SectionTitle>\n <Paragraph>\n 1.1 This Privacy Policy details important information regarding the collection, use and disclosure of User information collected on\n the Site and the Tools. The aim of this Privacy Policy is to help you understand how your personal information is used and your\n choices regarding said use. By using the Site or the Tools, you agree that the Foundation can collect, use, disclose, and process\n your information as described in this Privacy Policy. This Privacy Policy only applies to the Site and the Tools, and not to any\n other websites, products or services you may be able to access or link to via the Site or the Tools. We encourage you to read the\n privacy policies of any other websites you visit before providing your information to them.\n </Paragraph>\n <Paragraph>\n The Site and the Tools may evolve over time, and this Privacy Policy will change to reflect that evolution. If changes are made, you\n will be notified by revising the date at the top of this Privacy Policy. In some cases, if significant changes are made, an\n statement may be placed in the homepage. We encourage you to review this Privacy Policy periodically to stay informed.\n </Paragraph>\n <Paragraph>\n Some third-party providers may place cookies or pixels - small data files stored on your hard drive or in device memory - on your\n browser or hard drive. Note that this Privacy Policy does not cover the use of cookies or pixels by such third parties. Most web\n browsers are set to accept cookies and pixels by default, but you can usually set your browser to remove or reject browser cookies\n or pixels. If you do choose to remove or reject cookies or pixels, however, your ability to use the Site or the Tools might be\n affected.\n </Paragraph>\n <Paragraph>\n 1.2 This Privacy Policy should be read in conjunction with the Terms of Use. By accessing the Tools, you are consenting to the\n information collection and use practices described in this Privacy Policy.\n </Paragraph>\n <Paragraph>\n 1.3 Your use of the DCL Client and any personal information you provide through the Tools remains subject to the terms of this\n Privacy Policy and the Terms of Use, as each may be updated from time to time.\n </Paragraph>\n <Paragraph>\n 1.4 Any questions, comments or complaints that you might have should be emailed to{' '}\n <a href=\"mailto:privacy@decentraland.org\">privacy@decentraland.org</a>.\n </Paragraph>\n </Section>\n\n <Section id=\"information-collected\">\n <SectionTitle>2. Information Collected in the Site and the Tools</SectionTitle>\n <Paragraph>The personal information collected from you generally may include:</Paragraph>\n <Paragraph>\n 2.1 Network information regarding transactions, including, among other things, the type of device you use, access times, hardware\n model, operating system and version, and other unique device identifiers.\n </Paragraph>\n <Paragraph>\n 2.2. Information about plugins you might be using, included but not limited to those related to the management of cryptocurrency\n assets and any information provided by them.\n </Paragraph>\n <Paragraph>2.3. Your email and Ether address.</Paragraph>\n <Paragraph>\n 2.4 The DCL Client requires the highest level of browser permissions that could potentially lead to procurement of more personal\n information. Information on these permissions are used for a limited purpose, and why this is necessary, can be found in paragraph 3\n below.\n </Paragraph>\n <Paragraph>2.5 Your interactions with the Site are documented via Segment.io and that information is processed by Google.</Paragraph>\n </Section>\n\n <Section id=\"way-information-used\">\n <SectionTitle>3. The Way your Personal Information is used</SectionTitle>\n <Paragraph>\n 3.1 As with nearly all interactions that take place on the World Wide Web, the servers may receive information by virtue of your\n interaction with them, including but not limited to IP Addresses.\n </Paragraph>\n <Paragraph>\n 3.2 The DCL Client requires full browser permissions that could potentially be used to access additional personal information. Such\n browser permissions are used for an extremely limited technical purpose for allowing the DCL Client to properly interact with your\n browser. No additional information is obtained beyond what is necessary to provide the DCL Client. No information received is shared\n with any third-party except as required for provision of the DCL Client.\n </Paragraph>\n <Paragraph>\n 3.3 Segment.io is used for purposes of monitoring web traffic. Any identifying information collected via Segment.io is controlled by\n Segment.io, Inc.\n </Paragraph>\n <Paragraph>\n 3.4 Public blockchains provide transparency into transactions and the Foundation is not responsible for preventing or managing\n information broadcasted on a blockchain.\n </Paragraph>\n </Section>\n\n <Section id=\"what-is-done\">\n <SectionTitle>4. What Is Done With Your Information</SectionTitle>\n <Paragraph>\n 4.1 Your information may be used in the following ways: To analyze trends for how the Site and Tools are being used; To improve the\n Site and the Tools; To help personalize your experience of the Site and the Tools; and If you provide your contact information, you\n may receive technical notices, updates, confirmations, security alerts, to provide support to you, to tell you about other products\n and services that might interest you, or to respond to your comments or questions.\n </Paragraph>\n <Paragraph>\n 4.2 Your information may be shared with third parties who need to access it in order to do work related to the Site and the Tools,\n including doing things like helping make the Site or DCL Client available, or providing analytics services. These third parties only\n access and use your information as necessary to perform their functions.\n </Paragraph>\n <Paragraph>\n 4.3 Aggregations and anonymizations that contain your information may be created in a way that does not directly identify you. Those\n aggregations and anonymizations may be used or shared for a variety of purposes related to the Site and the DCL Client.\n </Paragraph>\n <Paragraph>\n 4.4 Your personal information may be disclosed to agents, businesses, or service providers who process your personal information for\n providing the Site and the Tools to you. The agreements with these service providers limit the kinds of information they can use or\n process and ensure they use reasonable efforts to keep your personal information secure.\n </Paragraph>\n <Paragraph>\n 4.5 The Foundation also reserves the right to disclose personal information that it believes, in good faith, is appropriate or\n necessary to enforce the Terms of Use, take precautions against liability or harm, to investigate and respond to third-party claims\n or allegations, to respond to court orders or official requests, to protect the security or integrity of the Site or the Tools, and\n to protect the rights, property, or safety of the Foundation, the Decentraland community of users and LAND owners, or others.\n </Paragraph>\n <Paragraph>\n 4.6 In the event that the Foundation is involved in a merger, acquisition, sale, bankruptcy, insolvency, reorganization,\n receivership, assignment for the benefit of creditors, or the application of laws or equitable principles affecting creditors'\n rights generally, or other change of control, there may be a disclosure of your information to another entity related to such event.\n </Paragraph>\n </Section>\n\n <Section id=\"your-choice\">\n <SectionTitle>5. Your Choice</SectionTitle>\n <Paragraph>\n Your personal information will be processed in accordance with this Privacy Policy, and as part of that you will have limited or no\n opportunity to otherwise modify how your information is used.\n </Paragraph>\n </Section>\n\n <Section id=\"cookies\">\n <SectionTitle>6. Cookies</SectionTitle>\n <Paragraph>\n The Site and the Tools do not use cookies at this time but they might do so in the future, in which case this Privacy Policy shall\n be updated accordingly.\n </Paragraph>\n </Section>\n\n <Section id=\"information-not-collected\">\n <SectionTitle>7. Information Not Collected</SectionTitle>\n <Paragraph>\n Any other personally-identifiable information about you shall not be collected, unless you give it to the Foundation directly: by\n filling out a form, giving written feedback, communicating via third party social media sites, or otherwise communicating via the\n Site, the Tools or any other means.\n </Paragraph>\n </Section>\n\n <Section id=\"information-security\">\n <SectionTitle>8. Information Security</SectionTitle>\n <Paragraph>\n Whilst neither the Foundation, nor any other organization, can guarantee the security of information processed online, the\n Foundation has appropriate security measures in place to protect your personal information. For example, the personal information\n you provide is stored on computer systems with limited access, encryption, or both.\n </Paragraph>\n </Section>\n\n <Section id=\"privacy-rights\">\n <SectionTitle>9. Privacy Rights</SectionTitle>\n <Paragraph>\n 9.1 Subject to applicable law, you may have some or all of the following rights in respect of your personal information: (i) to\n obtain a copy of your personal information together with information about how and on what basis that personal information is\n processed; (ii) to rectify inaccurate personal information (including the right to have incomplete personal information completed);\n (iii) to erase your personal information (in limited circumstances, where it is no longer necessary in relation to the purposes for\n which it was collected or processed); (iv) to restrict processing of your personal information where: a. the accuracy of the\n personal information is contested; b. the processing is unlawful but you object to the erasure of the personal information; or c. we\n no longer require the personal information but it is still required for the establishment, exercise or defense of a legal claim; (v)\n to challenge processing which we have justified on the basis of a legitimate interest (as opposed to your consent, or to perform a\n contract with you); (vi) to prevent us from sending you direct marketing; (vii) to withdraw your consent to our processing of your\n personal information (where that processing is based on your consent); (viii) to object to decisions which are based solely on\n automated processing or profiling; (ix) in addition to the above, you have the right to file a complaint with the supervisory\n authority.\n </Paragraph>\n <Paragraph>\n 9.2. If you reside in California, you may request certain general information regarding our disclosure of personal information to\n third parties for their direct marketing purposes.\n </Paragraph>\n <Paragraph>\n 9.3. If you wish to investigate the exercising of any of these rights, please write to us at the following address:{' '}\n <a href=\"mailto:privacy@decentraland.org\">privacy@decentraland.org</a>.\n </Paragraph>\n </Section>\n\n <Section id=\"changes-and-updates\">\n <SectionTitle>10. Changes and Updates</SectionTitle>\n <Paragraph>\n 10.1 This Privacy Policy may be revised periodically and this will be reflected by the "Last update posted" date above.\n Please revisit this page to stay aware of any changes. Your continued use of the DCL Client constitutes your agreement to this\n Privacy Policy and any future revisions.\n </Paragraph>\n <Paragraph>\n 10.2 Contact Information: <a href=\"mailto:privacy@decentraland.org\">privacy@decentraland.org</a>.\n </Paragraph>\n </Section>\n </LegalPageLayout>\n))\n\nPrivacyPolicy.displayName = 'PrivacyPolicy'\n\nexport { PrivacyPolicy }\n"],"names":["TABLE_OF_CONTENTS","PrivacyPolicy","memo","jsxs","LegalPageLayout","Section","jsx","SectionTitle","Paragraph"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-DuA-Kgw5.js","sources":["../../src/pages/privacy/PrivacyPolicy.tsx"],"sourcesContent":["import { memo } from 'react'\nimport { LegalPageLayout, Paragraph, Section, SectionTitle } from '../../components/LegalPage'\nimport type { TOCEntry } from '../../components/LegalPage'\n\nconst TABLE_OF_CONTENTS: TOCEntry[] = [\n { id: 'introduction', label: '1. Introduction' },\n { id: 'information-collected', label: '2. Information Collected in the Site and the Tools' },\n { id: 'way-information-used', label: '3. The Way your Personal Information is used' },\n { id: 'what-is-done', label: '4. What Is Done With Your Information' },\n { id: 'your-choice', label: '5. Your Choice' },\n { id: 'cookies', label: '6. Cookies' },\n { id: 'information-not-collected', label: '7. Information Not Collected' },\n { id: 'information-security', label: '8. Information Security' },\n { id: 'privacy-rights', label: '9. Privacy Rights' },\n { id: 'changes-and-updates', label: '10. Changes and Updates' }\n]\n\nconst PrivacyPolicy = memo(() => (\n <LegalPageLayout title=\"Privacy Policy\" activeSlug=\"/privacy\" tableOfContents={TABLE_OF_CONTENTS}>\n <Section id=\"introduction\">\n <SectionTitle>1. Introduction</SectionTitle>\n <Paragraph>\n 1.1 This Privacy Policy details important information regarding the collection, use and disclosure of User information collected on\n the Site and the Tools. The aim of this Privacy Policy is to help you understand how your personal information is used and your\n choices regarding said use. By using the Site or the Tools, you agree that the Foundation can collect, use, disclose, and process\n your information as described in this Privacy Policy. This Privacy Policy only applies to the Site and the Tools, and not to any\n other websites, products or services you may be able to access or link to via the Site or the Tools. We encourage you to read the\n privacy policies of any other websites you visit before providing your information to them.\n </Paragraph>\n <Paragraph>\n The Site and the Tools may evolve over time, and this Privacy Policy will change to reflect that evolution. If changes are made, you\n will be notified by revising the date at the top of this Privacy Policy. In some cases, if significant changes are made, an\n statement may be placed in the homepage. We encourage you to review this Privacy Policy periodically to stay informed.\n </Paragraph>\n <Paragraph>\n Some third-party providers may place cookies or pixels - small data files stored on your hard drive or in device memory - on your\n browser or hard drive. Note that this Privacy Policy does not cover the use of cookies or pixels by such third parties. Most web\n browsers are set to accept cookies and pixels by default, but you can usually set your browser to remove or reject browser cookies\n or pixels. If you do choose to remove or reject cookies or pixels, however, your ability to use the Site or the Tools might be\n affected.\n </Paragraph>\n <Paragraph>\n 1.2 This Privacy Policy should be read in conjunction with the Terms of Use. By accessing the Tools, you are consenting to the\n information collection and use practices described in this Privacy Policy.\n </Paragraph>\n <Paragraph>\n 1.3 Your use of the DCL Client and any personal information you provide through the Tools remains subject to the terms of this\n Privacy Policy and the Terms of Use, as each may be updated from time to time.\n </Paragraph>\n <Paragraph>\n 1.4 Any questions, comments or complaints that you might have should be emailed to{' '}\n <a href=\"mailto:privacy@decentraland.org\">privacy@decentraland.org</a>.\n </Paragraph>\n </Section>\n\n <Section id=\"information-collected\">\n <SectionTitle>2. Information Collected in the Site and the Tools</SectionTitle>\n <Paragraph>The personal information collected from you generally may include:</Paragraph>\n <Paragraph>\n 2.1 Network information regarding transactions, including, among other things, the type of device you use, access times, hardware\n model, operating system and version, and other unique device identifiers.\n </Paragraph>\n <Paragraph>\n 2.2. Information about plugins you might be using, included but not limited to those related to the management of cryptocurrency\n assets and any information provided by them.\n </Paragraph>\n <Paragraph>2.3. Your email and Ether address.</Paragraph>\n <Paragraph>\n 2.4 The DCL Client requires the highest level of browser permissions that could potentially lead to procurement of more personal\n information. Information on these permissions are used for a limited purpose, and why this is necessary, can be found in paragraph 3\n below.\n </Paragraph>\n <Paragraph>2.5 Your interactions with the Site are documented via Segment.io and that information is processed by Google.</Paragraph>\n </Section>\n\n <Section id=\"way-information-used\">\n <SectionTitle>3. The Way your Personal Information is used</SectionTitle>\n <Paragraph>\n 3.1 As with nearly all interactions that take place on the World Wide Web, the servers may receive information by virtue of your\n interaction with them, including but not limited to IP Addresses.\n </Paragraph>\n <Paragraph>\n 3.2 The DCL Client requires full browser permissions that could potentially be used to access additional personal information. Such\n browser permissions are used for an extremely limited technical purpose for allowing the DCL Client to properly interact with your\n browser. No additional information is obtained beyond what is necessary to provide the DCL Client. No information received is shared\n with any third-party except as required for provision of the DCL Client.\n </Paragraph>\n <Paragraph>\n 3.3 Segment.io is used for purposes of monitoring web traffic. Any identifying information collected via Segment.io is controlled by\n Segment.io, Inc.\n </Paragraph>\n <Paragraph>\n 3.4 Public blockchains provide transparency into transactions and the Foundation is not responsible for preventing or managing\n information broadcasted on a blockchain.\n </Paragraph>\n </Section>\n\n <Section id=\"what-is-done\">\n <SectionTitle>4. What Is Done With Your Information</SectionTitle>\n <Paragraph>\n 4.1 Your information may be used in the following ways: To analyze trends for how the Site and Tools are being used; To improve the\n Site and the Tools; To help personalize your experience of the Site and the Tools; and If you provide your contact information, you\n may receive technical notices, updates, confirmations, security alerts, to provide support to you, to tell you about other products\n and services that might interest you, or to respond to your comments or questions.\n </Paragraph>\n <Paragraph>\n 4.2 Your information may be shared with third parties who need to access it in order to do work related to the Site and the Tools,\n including doing things like helping make the Site or DCL Client available, or providing analytics services. These third parties only\n access and use your information as necessary to perform their functions.\n </Paragraph>\n <Paragraph>\n 4.3 Aggregations and anonymizations that contain your information may be created in a way that does not directly identify you. Those\n aggregations and anonymizations may be used or shared for a variety of purposes related to the Site and the DCL Client.\n </Paragraph>\n <Paragraph>\n 4.4 Your personal information may be disclosed to agents, businesses, or service providers who process your personal information for\n providing the Site and the Tools to you. The agreements with these service providers limit the kinds of information they can use or\n process and ensure they use reasonable efforts to keep your personal information secure.\n </Paragraph>\n <Paragraph>\n 4.5 The Foundation also reserves the right to disclose personal information that it believes, in good faith, is appropriate or\n necessary to enforce the Terms of Use, take precautions against liability or harm, to investigate and respond to third-party claims\n or allegations, to respond to court orders or official requests, to protect the security or integrity of the Site or the Tools, and\n to protect the rights, property, or safety of the Foundation, the Decentraland community of users and LAND owners, or others.\n </Paragraph>\n <Paragraph>\n 4.6 In the event that the Foundation is involved in a merger, acquisition, sale, bankruptcy, insolvency, reorganization,\n receivership, assignment for the benefit of creditors, or the application of laws or equitable principles affecting creditors'\n rights generally, or other change of control, there may be a disclosure of your information to another entity related to such event.\n </Paragraph>\n </Section>\n\n <Section id=\"your-choice\">\n <SectionTitle>5. Your Choice</SectionTitle>\n <Paragraph>\n Your personal information will be processed in accordance with this Privacy Policy, and as part of that you will have limited or no\n opportunity to otherwise modify how your information is used.\n </Paragraph>\n </Section>\n\n <Section id=\"cookies\">\n <SectionTitle>6. Cookies</SectionTitle>\n <Paragraph>\n The Site and the Tools do not use cookies at this time but they might do so in the future, in which case this Privacy Policy shall\n be updated accordingly.\n </Paragraph>\n </Section>\n\n <Section id=\"information-not-collected\">\n <SectionTitle>7. Information Not Collected</SectionTitle>\n <Paragraph>\n Any other personally-identifiable information about you shall not be collected, unless you give it to the Foundation directly: by\n filling out a form, giving written feedback, communicating via third party social media sites, or otherwise communicating via the\n Site, the Tools or any other means.\n </Paragraph>\n </Section>\n\n <Section id=\"information-security\">\n <SectionTitle>8. Information Security</SectionTitle>\n <Paragraph>\n Whilst neither the Foundation, nor any other organization, can guarantee the security of information processed online, the\n Foundation has appropriate security measures in place to protect your personal information. For example, the personal information\n you provide is stored on computer systems with limited access, encryption, or both.\n </Paragraph>\n </Section>\n\n <Section id=\"privacy-rights\">\n <SectionTitle>9. Privacy Rights</SectionTitle>\n <Paragraph>\n 9.1 Subject to applicable law, you may have some or all of the following rights in respect of your personal information: (i) to\n obtain a copy of your personal information together with information about how and on what basis that personal information is\n processed; (ii) to rectify inaccurate personal information (including the right to have incomplete personal information completed);\n (iii) to erase your personal information (in limited circumstances, where it is no longer necessary in relation to the purposes for\n which it was collected or processed); (iv) to restrict processing of your personal information where: a. the accuracy of the\n personal information is contested; b. the processing is unlawful but you object to the erasure of the personal information; or c. we\n no longer require the personal information but it is still required for the establishment, exercise or defense of a legal claim; (v)\n to challenge processing which we have justified on the basis of a legitimate interest (as opposed to your consent, or to perform a\n contract with you); (vi) to prevent us from sending you direct marketing; (vii) to withdraw your consent to our processing of your\n personal information (where that processing is based on your consent); (viii) to object to decisions which are based solely on\n automated processing or profiling; (ix) in addition to the above, you have the right to file a complaint with the supervisory\n authority.\n </Paragraph>\n <Paragraph>\n 9.2. If you reside in California, you may request certain general information regarding our disclosure of personal information to\n third parties for their direct marketing purposes.\n </Paragraph>\n <Paragraph>\n 9.3. If you wish to investigate the exercising of any of these rights, please write to us at the following address:{' '}\n <a href=\"mailto:privacy@decentraland.org\">privacy@decentraland.org</a>.\n </Paragraph>\n </Section>\n\n <Section id=\"changes-and-updates\">\n <SectionTitle>10. Changes and Updates</SectionTitle>\n <Paragraph>\n 10.1 This Privacy Policy may be revised periodically and this will be reflected by the "Last update posted" date above.\n Please revisit this page to stay aware of any changes. Your continued use of the DCL Client constitutes your agreement to this\n Privacy Policy and any future revisions.\n </Paragraph>\n <Paragraph>\n 10.2 Contact Information: <a href=\"mailto:privacy@decentraland.org\">privacy@decentraland.org</a>.\n </Paragraph>\n </Section>\n </LegalPageLayout>\n))\n\nPrivacyPolicy.displayName = 'PrivacyPolicy'\n\nexport { PrivacyPolicy }\n"],"names":["TABLE_OF_CONTENTS","PrivacyPolicy","memo","jsxs","LegalPageLayout","Section","jsx","SectionTitle","Paragraph"],"mappings":"yUAIA,MAAMA,EAAgC,CACpC,CAAE,GAAI,eAAgB,MAAO,iBAAA,EAC7B,CAAE,GAAI,wBAAyB,MAAO,oDAAA,EACtC,CAAE,GAAI,uBAAwB,MAAO,8CAAA,EACrC,CAAE,GAAI,eAAgB,MAAO,uCAAA,EAC7B,CAAE,GAAI,cAAe,MAAO,gBAAA,EAC5B,CAAE,GAAI,UAAW,MAAO,YAAA,EACxB,CAAE,GAAI,4BAA6B,MAAO,8BAAA,EAC1C,CAAE,GAAI,uBAAwB,MAAO,yBAAA,EACrC,CAAE,GAAI,iBAAkB,MAAO,mBAAA,EAC/B,CAAE,GAAI,sBAAuB,MAAO,yBAAA,CACtC,EAEMC,EAAgBC,EAAAA,KAAK,IACzBC,EAAAA,KAACC,EAAA,CAAgB,MAAM,iBAAiB,WAAW,WAAW,gBAAiBJ,EAC7E,SAAA,CAAAG,EAAAA,KAACE,EAAA,CAAQ,GAAG,eACV,SAAA,CAAAC,EAAAA,IAACC,GAAa,SAAA,iBAAA,CAAe,EAC7BD,EAAAA,IAACE,GAAU,SAAA,suBAAA,CAOX,EACAF,EAAAA,IAACE,GAAU,SAAA,yXAAA,CAIX,EACAF,EAAAA,IAACE,GAAU,SAAA,ghBAAA,CAMX,EACAF,EAAAA,IAACE,GAAU,SAAA,2MAAA,CAGX,EACAF,EAAAA,IAACE,GAAU,SAAA,+MAAA,CAGX,SACCA,EAAA,CAAU,SAAA,CAAA,qFAC0E,IACnFF,EAAAA,IAAC,IAAA,CAAE,KAAK,kCAAkC,SAAA,2BAAwB,EAAI,GAAA,CAAA,CACxE,CAAA,EACF,EAEAH,EAAAA,KAACE,EAAA,CAAQ,GAAG,wBACV,SAAA,CAAAC,EAAAA,IAACC,GAAa,SAAA,oDAAA,CAAkD,EAChED,EAAAA,IAACE,GAAU,SAAA,oEAAA,CAAkE,EAC7EF,EAAAA,IAACE,GAAU,SAAA,6MAAA,CAGX,EACAF,EAAAA,IAACE,GAAU,SAAA,+KAAA,CAGX,EACAF,EAAAA,IAACE,GAAU,SAAA,oCAAA,CAAkC,EAC7CF,EAAAA,IAACE,GAAU,SAAA,8QAAA,CAIX,EACAF,EAAAA,IAACE,GAAU,SAAA,gHAAA,CAA8G,CAAA,EAC3H,EAEAL,EAAAA,KAACE,EAAA,CAAQ,GAAG,uBACV,SAAA,CAAAC,EAAAA,IAACC,GAAa,SAAA,8CAAA,CAA4C,EAC1DD,EAAAA,IAACE,GAAU,SAAA,oMAAA,CAGX,EACAF,EAAAA,IAACE,GAAU,SAAA,sdAAA,CAKX,EACAF,EAAAA,IAACE,GAAU,SAAA,uJAAA,CAGX,EACAF,EAAAA,IAACE,GAAU,SAAA,yKAAA,CAGX,CAAA,EACF,EAEAL,EAAAA,KAACE,EAAA,CAAQ,GAAG,eACV,SAAA,CAAAC,EAAAA,IAACC,GAAa,SAAA,uCAAA,CAAqC,EACnDD,EAAAA,IAACE,GAAU,SAAA,geAAA,CAKX,EACAF,EAAAA,IAACE,GAAU,SAAA,kVAAA,CAIX,EACAF,EAAAA,IAACE,GAAU,SAAA,8PAAA,CAGX,EACAF,EAAAA,IAACE,GAAU,SAAA,mWAAA,CAIX,EACAF,EAAAA,IAACE,GAAU,SAAA,sgBAAA,CAKX,EACAF,EAAAA,IAACE,GAAU,SAAA,8XAAA,CAIX,CAAA,EACF,EAEAL,EAAAA,KAACE,EAAA,CAAQ,GAAG,cACV,SAAA,CAAAC,EAAAA,IAACC,GAAa,SAAA,gBAAA,CAAc,EAC5BD,EAAAA,IAACE,GAAU,SAAA,mMAAA,CAGX,CAAA,EACF,EAEAL,EAAAA,KAACE,EAAA,CAAQ,GAAG,UACV,SAAA,CAAAC,EAAAA,IAACC,GAAa,SAAA,YAAA,CAAU,EACxBD,EAAAA,IAACE,GAAU,SAAA,4JAAA,CAGX,CAAA,EACF,EAEAL,EAAAA,KAACE,EAAA,CAAQ,GAAG,4BACV,SAAA,CAAAC,EAAAA,IAACC,GAAa,SAAA,8BAAA,CAA4B,EAC1CD,EAAAA,IAACE,GAAU,SAAA,ySAAA,CAIX,CAAA,EACF,EAEAL,EAAAA,KAACE,EAAA,CAAQ,GAAG,uBACV,SAAA,CAAAC,EAAAA,IAACC,GAAa,SAAA,yBAAA,CAAuB,EACrCD,EAAAA,IAACE,GAAU,SAAA,kVAAA,CAIX,CAAA,EACF,EAEAL,EAAAA,KAACE,EAAA,CAAQ,GAAG,iBACV,SAAA,CAAAC,EAAAA,IAACC,GAAa,SAAA,mBAAA,CAAiB,EAC/BD,EAAAA,IAACE,GAAU,SAAA,45CAAA,CAaX,EACAF,EAAAA,IAACE,GAAU,SAAA,sLAAA,CAGX,SACCA,EAAA,CAAU,SAAA,CAAA,sHAC2G,IACpHF,EAAAA,IAAC,IAAA,CAAE,KAAK,kCAAkC,SAAA,2BAAwB,EAAI,GAAA,CAAA,CACxE,CAAA,EACF,EAEAH,EAAAA,KAACE,EAAA,CAAQ,GAAG,sBACV,SAAA,CAAAC,EAAAA,IAACC,GAAa,SAAA,yBAAA,CAAuB,EACrCD,EAAAA,IAACE,GAAU,SAAA,iSAAA,CAIX,SACCA,EAAA,CAAU,SAAA,CAAA,6BACiBF,EAAAA,IAAC,IAAA,CAAE,KAAK,kCAAkC,SAAA,2BAAwB,EAAI,GAAA,CAAA,CAClG,CAAA,CAAA,CACF,CAAA,EACF,CACD,EAEDL,EAAc,YAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,s as o,w as W,b3 as B,ar as E,ad as H,U as c,P as R}from"./index-DUmIu2EK.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,b3 as B,ar as E,ad as H,U as c,P as R}from"./index-BoINd_2w.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-Bd63106P.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-DvGiXclv.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,4 +1,4 @@
|
|
|
1
|
-
import{s as R,a as K,v as I,w as G,j as w,g as U}from"./index-
|
|
1
|
+
import{s as R,a as K,v as I,w as G,j as w,g as U}from"./index-BoINd_2w.js";import{r as y}from"./vendor-router-D_36sTKu.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";var X=Object.defineProperty,Y=Object.defineProperties,Z=Object.getOwnPropertyDescriptors,j=Object.getOwnPropertySymbols,M=Object.prototype.hasOwnProperty,$=Object.prototype.propertyIsEnumerable,P=(e,t,n)=>t in e?X(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,m=(e,t)=>{for(var n in t||(t={}))M.call(t,n)&&P(e,n,t[n]);if(j)for(var n of j(t))$.call(t,n)&&P(e,n,t[n]);return e},H=(e,t)=>Y(e,Z(t)),Q=(e,t)=>{var n={};for(var r in e)M.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&j)for(var r of j(e))t.indexOf(r)<0&&$.call(e,r)&&(n[r]=e[r]);return n},h=(e,t,n)=>(P(e,typeof t!="symbol"?t+"":t,n),n),C=(e,t,n)=>new Promise((r,i)=>{var s=c=>{try{l(n.next(c))}catch(o){i(o)}},a=c=>{try{l(n.throw(c))}catch(o){i(o)}},l=c=>c.done?r(c.value):Promise.resolve(c.value).then(s,a);l((n=n.apply(e,t)).next())}),ee="hCaptcha-script",S="hCaptchaOnLoad",A="script-error",E="@hCaptcha/loader";function te(e){return Object.entries(e).filter(([,t])=>t||t===!1).map(([t,n])=>`${encodeURIComponent(t)}=${encodeURIComponent(String(n))}`).join("&")}function z(e){let t=e&&e.ownerDocument||document,n=t.defaultView||t.parentWindow||window;return{document:t,window:n}}function W(e){return e||document.head}function ne(e){var t;e.setTag("source",E),e.setTag("url",document.URL),e.setContext("os",{UA:navigator.userAgent}),e.setContext("browser",m({},re())),e.setContext("device",H(m({},ie()),{screen_width_pixels:screen.width,screen_height_pixels:screen.height,language:navigator.language,orientation:((t=screen.orientation)==null?void 0:t.type)||"Unknown",processor_count:navigator.hardwareConcurrency,platform:navigator.platform}))}function re(){var e,t,n,r,i,s;let a=navigator.userAgent,l,c;return a.indexOf("Firefox")!==-1?(l="Firefox",c=(e=a.match(/Firefox\/([\d.]+)/))==null?void 0:e[1]):a.indexOf("Edg")!==-1?(l="Microsoft Edge",c=(t=a.match(/Edg\/([\d.]+)/))==null?void 0:t[1]):a.indexOf("Chrome")!==-1&&a.indexOf("Safari")!==-1?(l="Chrome",c=(n=a.match(/Chrome\/([\d.]+)/))==null?void 0:n[1]):a.indexOf("Safari")!==-1&&a.indexOf("Chrome")===-1?(l="Safari",c=(r=a.match(/Version\/([\d.]+)/))==null?void 0:r[1]):a.indexOf("Opera")!==-1||a.indexOf("OPR")!==-1?(l="Opera",c=(i=a.match(/(Opera|OPR)\/([\d.]+)/))==null?void 0:i[2]):a.indexOf("MSIE")!==-1||a.indexOf("Trident")!==-1?(l="Internet Explorer",c=(s=a.match(/(MSIE |rv:)([\d.]+)/))==null?void 0:s[2]):(l="Unknown",c="Unknown"),{name:l,version:c}}function se(e){return new Promise(t=>setTimeout(t,e))}function ie(){let e=navigator.userAgent,t;e.indexOf("Win")!==-1?t="Windows":e.indexOf("Mac")!==-1?t="Mac":e.indexOf("Linux")!==-1?t="Linux":e.indexOf("Android")!==-1?t="Android":e.indexOf("like Mac")!==-1||e.indexOf("iPhone")!==-1||e.indexOf("iPad")!==-1?t="iOS":t="Unknown";let n;return/Mobile|iPhone|iPod|Android/i.test(e)?n="Mobile":/Tablet|iPad/i.test(e)?n="Tablet":n="Desktop",{model:t,family:t,device:n}}var ae=class N{constructor(t){h(this,"_parent"),h(this,"breadcrumbs",[]),h(this,"context",{}),h(this,"extra",{}),h(this,"tags",{}),h(this,"request"),h(this,"user"),this._parent=t}get parent(){return this._parent}child(){return new N(this)}setRequest(t){return this.request=t,this}removeRequest(){return this.request=void 0,this}addBreadcrumb(t){return typeof t.timestamp>"u"&&(t.timestamp=new Date().toISOString()),this.breadcrumbs.push(t),this}setExtra(t,n){return this.extra[t]=n,this}removeExtra(t){return delete this.extra[t],this}setContext(t,n){return typeof n.type>"u"&&(n.type=t),this.context[t]=n,this}removeContext(t){return delete this.context[t],this}setTags(t){return this.tags=m(m({},this.tags),t),this}setTag(t,n){return this.tags[t]=n,this}removeTag(t){return delete this.tags[t],this}setUser(t){return this.user=t,this}removeUser(){return this.user=void 0,this}toBody(){let t=[],n=this;for(;n;)t.push(n),n=n.parent;return t.reverse().reduce((r,i)=>{var s;return r.breadcrumbs=[...(s=r.breadcrumbs)!=null?s:[],...i.breadcrumbs],r.extra=m(m({},r.extra),i.extra),r.contexts=m(m({},r.contexts),i.context),r.tags=m(m({},r.tags),i.tags),i.user&&(r.user=i.user),i.request&&(r.request=i.request),r},{breadcrumbs:[],extra:{},contexts:{},tags:{},request:void 0,user:void 0})}clear(){this.breadcrumbs=[],this.context={},this.tags={},this.user=void 0}},oe=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,ce=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js))(?::(\d+))?(?::(\d+))?\s*$/i,le=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,he=/^(?:(\w+):)\/\/(?:(\w+)(?::(\w+))?@)([\w.-]+)(?::(\d+))?\/(.+)/,_="?",T="An unknown error occurred",de="0.0.4";function ue(e){for(let t=0;t<e.length;t++)e[t]=Math.floor(Math.random()*256);return e}function u(e){return(e+256).toString(16).substring(1)}function pe(){let e=ue(new Array(16));return e[6]=e[6]&15|64,e[8]=e[8]&63|128,u(e[0])+u(e[1])+u(e[2])+u(e[3])+"-"+u(e[4])+u(e[5])+"-"+u(e[6])+u(e[7])+"-"+u(e[8])+u(e[9])+"-"+u(e[10])+u(e[11])+u(e[12])+u(e[13])+u(e[14])+u(e[15])}var fe=[[oe,"chrome"],[le,"winjs"],[ce,"gecko"]];function me(e){var t,n,r,i;if(!e.stack)return null;let s=[],a=(r=(n=(t=e.stack).split)==null?void 0:n.call(t,`
|
|
2
2
|
`))!=null?r:[];for(let l=0;l<a.length;++l){let c=null,o=null,d=null;for(let[x,g]of fe)if(o=x.exec(a[l]),o){d=g;break}if(!(!o||!d)){if(d==="chrome")c={filename:(i=o[2])!=null&&i.startsWith("address at ")?o[2].substring(11):o[2],function:o[1]||_,lineno:o[3]?+o[3]:null,colno:o[4]?+o[4]:null};else if(d==="winjs")c={filename:o[2],function:o[1]||_,lineno:+o[3],colno:o[4]?+o[4]:null};else if(d==="gecko")l===0&&!o[5]&&e.columnNumber!==void 0&&s.length>0&&(s[0].column=e.columnNumber+1),c={filename:o[3],function:o[1]||_,lineno:o[4]?+o[4]:null,colno:o[5]?+o[5]:null};else continue;!c.function&&c.lineno&&(c.function=_),s.push(c)}}return s.length?s.reverse():null}function ge(e){let t=me(e);return{type:e.name,value:e.message,stacktrace:{frames:t??[]}}}function ye(e){let t=he.exec(e),n=t?t.slice(1):[];if(n.length!==6)throw new Error("Invalid DSN");let r=n[5].split("/"),i=r.slice(0,-1).join("/");return n[0]+"://"+n[3]+(n[4]?":"+n[4]:"")+(i?"/"+i:"")+"/api/"+r.pop()+"/envelope/?sentry_version=7&sentry_key="+n[1]+(n[2]?"&sentry_secret="+n[2]:"")}function xe(e,t,n){var r,i;let s=m({event_id:pe().replaceAll("-",""),platform:"javascript",sdk:{name:"@hcaptcha/sentry",version:de},environment:t,release:n,timestamp:Date.now()/1e3},e.scope.toBody());if(e.type==="exception"){s.message=(i=(r=e.error)==null?void 0:r.message)!=null?i:"Unknown error",s.fingerprint=[s.message];let a=[],l=e.error;for(let c=0;c<5&&l&&(a.push(ge(l)),!(!l.cause||!(l.cause instanceof Error)));c++)l=l.cause;s.exception={values:a.reverse()}}return e.type==="message"&&(s.message=e.message,s.level=e.level),s}function ve(e){if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);if(typeof e=="object"&&e!==null&&!Array.isArray(e)){let n=e,{message:r}=n,i=Q(n,["message"]),s=new Error(typeof r=="string"?r:T);return Object.assign(s,i)}let t=new Error(T);return Object.assign(t,{cause:e})}function be(e,t,n){return C(this,null,function*(){var r,i;try{if(typeof fetch<"u"&&typeof AbortSignal<"u"){let s;if(n){let c=new AbortController;s=c.signal,setTimeout(()=>c.abort(),n)}let a=yield fetch(e,H(m({},t),{signal:s})),l=yield a.text();return{status:a.status,body:l}}return yield new Promise((s,a)=>{var l,c;let o=new XMLHttpRequest;if(o.open((l=t?.method)!=null?l:"GET",e),o.onload=()=>s({status:o.status,body:o.responseText}),o.onerror=()=>a(new Error("XHR Network Error")),t?.headers)for(let[d,x]of Object.entries(t.headers))o.setRequestHeader(d,x);if(n){let d=setTimeout(()=>{o.abort(),a(new Error("Request timed out"))},n);o.onloadend=()=>{clearTimeout(d)}}o.send((c=t?.body)==null?void 0:c.toString())})}catch(s){return{status:0,body:(i=(r=s?.toString)==null?void 0:r.call(s))!=null?i:"Unknown error"}}})}var f,k=(f=class{constructor(e){h(this,"apiURL"),h(this,"dsn"),h(this,"environment"),h(this,"release"),h(this,"sampleRate"),h(this,"debug"),h(this,"_scope"),h(this,"shouldBuffer",!1),h(this,"bufferlimit",20),h(this,"buffer",[]);var t,n,r,i,s;this.environment=e.environment,this.release=e.release,this.sampleRate=(t=e.sampleRate)!=null?t:1,this.debug=(n=e.debug)!=null?n:!1,this._scope=(r=e.scope)!=null?r:new ae,this.apiURL=ye(e.dsn),this.dsn=e.dsn,this.shouldBuffer=(i=e.buffer)!=null?i:!1,this.bufferlimit=(s=e.bufferLimit)!=null?s:20}static init(e){f._instance||(f._instance=new f(e))}static get instance(){if(!f._instance)throw new Error("Sentry has not been initialized");return f._instance}log(...e){this.debug&&console.log(...e)}get scope(){return this._scope}static get scope(){return f.instance.scope}withScope(e){let t=this._scope.child();e(t)}static withScope(e){f.instance.withScope(e)}captureException(e,t){this.captureEvent({type:"exception",level:"error",error:ve(e),scope:t??this._scope})}static captureException(e,t){f.instance.captureException(e,t)}captureMessage(e,t="info",n){this.captureEvent({type:"message",level:t,message:e,scope:n??this._scope})}static captureMessage(e,t="info",n){f.instance.captureMessage(e,t,n)}captureEvent(e){if(Math.random()>=this.sampleRate){this.log("Dropped event due to sample rate");return}if(this.shouldBuffer){if(this.buffer.length>=this.bufferlimit)return;this.buffer.push(e)}else this.sendEvent(e)}sendEvent(e,t=5e3){return C(this,null,function*(){try{this.log("Sending sentry event",e);let n=xe(e,this.environment,this.release),r={event_id:n.event_id,dsn:this.dsn},i={type:"event"},s=JSON.stringify(r)+`
|
|
3
3
|
`+JSON.stringify(i)+`
|
|
4
4
|
`+JSON.stringify(n),a=yield be(this.apiURL,{method:"POST",headers:{"Content-Type":"application/x-sentry-envelope"},body:s},t);this.log("Sentry response",a.status),a.status!==200&&(console.log(a.body),console.error("Failed to send event to Sentry",a))}catch(n){console.error("Failed to send event",n)}})}flush(e=5e3){return C(this,null,function*(){try{this.log("Flushing sentry events",this.buffer.length);let t=this.buffer.splice(0,this.buffer.length).map(n=>this.sendEvent(n,e));yield Promise.all(t),this.log("Flushed all events")}catch(t){console.error("Failed to flush events",t)}})}static flush(e=5e3){return f.instance.flush(e)}static reset(){f._instance=void 0}},h(f,"_instance"),f),Ee="https://d233059272824702afc8c43834c4912d@sentry.hcaptcha.com/6",we="2.3.0",Ce="production";function Re(e=!0){if(!e)return D();k.init({dsn:Ee,release:we,environment:Ce});let t=k.scope;return ne(t),D(t)}function D(e=null){return{addBreadcrumb:t=>{e&&e.addBreadcrumb(t)},captureRequest:t=>{e&&e.setRequest(t)},captureException:t=>{e&&k.captureException(t,e)}}}function _e({scriptLocation:e,query:t,loadAsync:n=!0,crossOrigin:r="anonymous",apihost:i="https://js.hcaptcha.com",cleanup:s=!1,secureApi:a=!1,scriptSource:l=""}={},c){let o=W(e),d=z(o);return new Promise((x,g)=>{let p=d.document.createElement("script");p.id=ee,l?p.src=`${l}?onload=${S}`:a?p.src=`${i}/1/secure-api.js?onload=${S}`:p.src=`${i}/1/api.js?onload=${S}`,p.crossOrigin=r,p.async=n;let v=(b,V)=>{try{!a&&s&&o.removeChild(p),V(b)}catch(J){g(J)}};p.onload=b=>v(b,x),p.onerror=b=>{c&&c(p.src),v(b,g)},p.src+=t!==""?`&${t}`:"",o.appendChild(p)})}var O=[];function Oe(e={cleanup:!1},t){try{t.addBreadcrumb({category:E,message:"hCaptcha loader params",data:e});let n=W(e.scriptLocation),r=z(n),i=O.find(({scope:a})=>a===r.window);if(i)return t.addBreadcrumb({category:E,message:"hCaptcha already loaded"}),i.promise;let s=new Promise((a,l)=>C(this,null,function*(){try{r.window[S]=()=>{t.addBreadcrumb({category:E,message:"hCaptcha script called onload function"}),a(r.window.hcaptcha)};let c=te({custom:e.custom,render:e.render,sentry:e.sentry,assethost:e.assethost,imghost:e.imghost,reportapi:e.reportapi,endpoint:e.endpoint,host:e.host,recaptchacompat:e.recaptchacompat,hl:e.hl,uj:e.uj});yield _e(m({query:c},e),o=>{t.captureRequest({url:o,method:"GET"})}),t.addBreadcrumb({category:E,message:"hCaptcha loaded",data:i})}catch{t.addBreadcrumb({category:E,message:"hCaptcha failed to load"});let o=O.findIndex(d=>d.scope===r.window);o!==-1&&O.splice(o,1),l(new Error(A))}}));return O.push({promise:s,scope:r.window}),s}catch(n){return t.captureException(n),Promise.reject(new Error(A))}}function F(e,t,n=0){return C(this,null,function*(){var r,i;let s=(r=e.maxRetries)!=null?r:2,a=(i=e.retryDelay)!=null?i:1e3,l=n<s?"Retry loading hCaptcha Api":"Exceeded maximum retries";try{return yield Oe(e,t)}catch(c){return t.addBreadcrumb({category:E,message:l}),n>=s?(t.captureException(c),Promise.reject(c)):(t.addBreadcrumb({category:E,message:`Waiting ${a}ms before retry attempt ${n+1}`}),yield se(a),n+=1,F(e,t,n))}})}function Se(){return C(this,arguments,function*(e={}){let t=Re(e.sentry);return yield F(e,t)})}function L(e){let t=e&&e.ownerDocument||document,n=t.defaultView||t.parentWindow||window;return{document:t,window:n}}function q(e){return e||document.head}var je=class extends y.Component{constructor(e){super(e),this._hcaptcha=void 0,this.renderCaptcha=this.renderCaptcha.bind(this),this.resetCaptcha=this.resetCaptcha.bind(this),this.removeCaptcha=this.removeCaptcha.bind(this),this.isReady=this.isReady.bind(this),this._onReady=null,this.loadCaptcha=this.loadCaptcha.bind(this),this.handleOnLoad=this.handleOnLoad.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleExpire=this.handleExpire.bind(this),this.handleError=this.handleError.bind(this),this.handleOpen=this.handleOpen.bind(this),this.handleClose=this.handleClose.bind(this),this.handleChallengeExpired=this.handleChallengeExpired.bind(this),this.ref=y.createRef(),this.apiScriptRequested=!1,this.sentryHub=null,this.captchaId="",this._pendingExecute=null,this.state={isApiReady:!1,isRemoved:!1,elementId:e.id}}componentDidMount(){let e=q(this.props.scriptLocation),t=L(e);if(this._hcaptcha=t.window.hcaptcha||void 0,typeof this._hcaptcha<"u"){this.setState({isApiReady:!0},()=>{this.renderCaptcha()});return}this.loadCaptcha()}componentWillUnmount(){let e=this._hcaptcha,t=this.captchaId;if(this._cancelPendingExecute("react-component-unmounted"),!!this.isReady())try{e.reset(t),e.remove(t)}catch{}finally{this.captchaId="",this._onReady=null}}shouldComponentUpdate(e,t){return!(this.state.isApiReady!==t.isApiReady||this.state.isRemoved!==t.isRemoved)}componentDidUpdate(e){["sitekey","size","theme","tabindex","languageOverride","endpoint"].every(t=>e[t]===this.props[t])||this.removeCaptcha(()=>{this.renderCaptcha()})}loadCaptcha(){if(this.apiScriptRequested)return;let{apihost:e,assethost:t,endpoint:n,host:r,imghost:i,languageOverride:s,reCaptchaCompat:a,reportapi:l,sentry:c,custom:o,loadAsync:d,scriptLocation:x,scriptSource:g,secureApi:p,cleanup:v=!0,userJourneys:b}=this.props;Se({render:"explicit",apihost:e,assethost:t,endpoint:n,hl:s,host:r,imghost:i,recaptchacompat:a===!1?"off":null,reportapi:l,sentry:c,custom:o,loadAsync:d,scriptLocation:x,scriptSource:g,secureApi:p,cleanup:v,uj:b!==void 0?b:!1}).then(this.handleOnLoad,this.handleError).catch(this.handleError),this.apiScriptRequested=!0}renderCaptcha(e){let{onReady:t}=this.props,{isApiReady:n}=this.state,r=this.captchaId;if(!n||r)return;let i=Object.assign({"open-callback":this.handleOpen,"close-callback":this.handleClose,"error-callback":this.handleError,"chalexpired-callback":this.handleChallengeExpired,"expired-callback":this.handleExpire,callback:this.handleSubmit},this.props,{hl:this.props.hl||this.props.languageOverride,languageOverride:void 0}),s=this._hcaptcha.render(this.ref.current,i);this.captchaId=s,this.setState({isRemoved:!1},()=>{e&&e(),t&&t(),this._onReady&&this._onReady(s)})}resetCaptcha(){let e=this._hcaptcha,t=this.captchaId;this.isReady()&&(e.reset(t),this._cancelPendingExecute("hcaptcha-reset"))}removeCaptcha(e){let t=this._hcaptcha,n=this.captchaId;this._cancelPendingExecute("hcaptcha-removed"),this.isReady()&&this.setState({isRemoved:!0},()=>{this.captchaId="",t.remove(n),e&&e()})}handleOnLoad(){this.setState({isApiReady:!0},()=>{let e=q(this.props.scriptLocation),t=L(e);this._hcaptcha=t.window.hcaptcha,this.renderCaptcha(()=>{let{onLoad:n}=this.props;n&&n()})})}handleSubmit(e){let{onVerify:t}=this.props,{isRemoved:n}=this.state,r=this._hcaptcha,i=this.captchaId;if(typeof r>"u"||n)return;let s=r.getResponse(i),a=r.getRespKey(i);t&&t(s,a)}handleExpire(){let{onExpire:e}=this.props,t=this._hcaptcha,n=this.captchaId;this.isReady()&&(t.reset(n),e&&e())}handleError(e){let{onError:t}=this.props,n=this._hcaptcha,r=this.captchaId;this.isReady()&&n.reset(r),t&&t(e)}isReady(){let{isApiReady:e,isRemoved:t}=this.state;return e&&!t}_cancelPendingExecute(e){if(!this._pendingExecute)return;let t=this._pendingExecute;this._pendingExecute=null;let n=new Error(e);t.reject(n)}handleOpen(){!this.isReady()||!this.props.onOpen||this.props.onOpen()}handleClose(){!this.isReady()||!this.props.onClose||this.props.onClose()}handleChallengeExpired(){!this.isReady()||!this.props.onChalExpired||this.props.onChalExpired()}execute(e=null){e=typeof e=="object"?e:null;try{let t=this._hcaptcha,n=this.captchaId;if(e&&e.async&&this._pendingExecute&&this._cancelPendingExecute("hcaptcha-execute-replaced"),!this.isReady())return e&&e.async?new Promise((i,s)=>{this._pendingExecute={resolve:i,reject:s},this._onReady=a=>{if(this._pendingExecute)try{let l=t.execute(a,e);l&&typeof l.then=="function"?l.then(c=>{this._pendingExecute=null,i(c)}).catch(c=>{this._pendingExecute=null,s(c)}):(this._pendingExecute=null,s(new Error("hcaptcha-execute-no-promise")))}catch(l){this._pendingExecute=null,s(l)}}}):(this._onReady=i=>{t.execute(i,e)},null);let r=t.execute(n,e);return e&&e.async&&r&&typeof r.then=="function"?new Promise((i,s)=>{this._pendingExecute={resolve:i,reject:s},r.then(a=>{this._pendingExecute=null,i(a)}).catch(a=>{this._pendingExecute=null,s(a)})}):r}catch(t){return e&&e.async?Promise.reject(t):null}}close(){let e=this._hcaptcha,t=this.captchaId;if(this._cancelPendingExecute("hcaptcha-closed"),!!this.isReady())return e.close(t)}setData(e){let t=this._hcaptcha,n=this.captchaId;this.isReady()&&(e&&typeof e!="object"&&(e=null),t.setData(n,e))}getResponse(){return this._hcaptcha.getResponse(this.captchaId)}getRespKey(){return this._hcaptcha.getRespKey(this.captchaId)}render(){let{elementId:e}=this.state;return y.createElement("div",{ref:this.ref,id:e})}};y.createContext();var Pe=je;const ke=R(K)(({theme:e})=>({display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"100vh",textAlign:"center",padding:e.spacing(2.5)})),Ie=R(I)(({theme:e})=>({fontSize:48,fontWeight:700,lineHeight:"56px",marginBottom:e.spacing(2),[e.breakpoints.down("sm")]:{fontSize:32,lineHeight:"40px"}})),Ae=R(I)(({theme:e})=>({fontSize:18,fontWeight:400,lineHeight:"28px",color:e.palette.text.secondary,maxWidth:500,marginBottom:e.spacing(4),[e.breakpoints.down("sm")]:{fontSize:16,lineHeight:"24px"}})),B=R("a")(({theme:e})=>({display:"inline-flex",alignItems:"center",justifyContent:"center",fontSize:16,fontWeight:600,padding:`${e.spacing(1.5)} ${e.spacing(4)}`,borderRadius:8,textTransform:"none",textDecoration:"none",color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.main,cursor:"pointer","&:hover":{backgroundColor:e.palette.primary.dark},"&[data-loading]":{opacity:.6,pointerEvents:"none"}})),Te=R(I)(({theme:e})=>({fontSize:14,color:e.palette.error.main,marginBottom:e.spacing(2)})),De=U("HCAPTCHA_SITEKEY")??"00c95ced-f512-4498-a5f2-7e0b0950d456",Le=U("DISCORD_CAPTCHA_URL")??"https://discord-lambdas.decentraland.io/captcha",qe=/^[a-zA-Z0-9-]+$/;function Ne(){const e=G(),[t,n]=y.useState(null),[r,i]=y.useState(!1),[s,a]=y.useState(!1),l=y.useRef(null),c=y.useCallback(async x=>{i(!0),a(!1);try{const g=await fetch(Le,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({"captcha-response":x})});if(!g.ok)throw new Error(`HTTP ${g.status}`);const v=(await g.json()).code;if(!v||!qe.test(v))throw new Error("Invalid invite code");n(`https://discord.com/invite/${v}`)}catch{a(!0),l.current?.resetCaptcha()}finally{i(!1)}},[]),o=y.useCallback(()=>{a(!0),l.current?.resetCaptcha()},[]),d=!t&&!r;return w.jsxs(ke,{children:[w.jsx(Ie,{children:e("page.discord.title")}),w.jsx(Ae,{children:e("page.discord.description")}),d&&w.jsx(Pe,{ref:l,sitekey:De,onVerify:c,onError:o,onExpire:o}),s&&w.jsx(Te,{children:e("page.discord.error")}),t&&w.jsx(B,{href:t,target:"_blank",rel:"noopener noreferrer",children:e("page.discord.cta")}),r&&w.jsx(B,{as:"span","data-loading":!0,children:e("page.discord.cta")})]})}export{Ne as DiscordPage};
|