@dcl/shop 1.18.2-36637356847.commit-825c9d5 → 1.18.2-36637388260.commit-7062577
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/{Activity-BOaDB-SB.js → Activity-BWPAS4UU.js} +4 -4
- package/_assets/{AnimatedBackground-DCBZ7BDw.js → AnimatedBackground-G4zt6L3g.js} +2 -2
- package/_assets/{Assets-B8E0h7qR.js → Assets-Cki36jJt.js} +9 -9
- package/_assets/Cart-BHCWXLFp.js +826 -0
- package/_assets/{Collection-D6kIIQ6_.js → Collection-Cgj5YU5b.js} +2 -2
- package/_assets/{CollectionCarousel-Dehf1Thf.js → CollectionCarousel-cU9fE44V.js} +3 -3
- package/_assets/{Confetti-BPJScoAz.js → Confetti-CjOanCOj.js} +4 -4
- package/_assets/{ConstantsUtil-D7hfpXqQ.js → ConstantsUtil-CxrIRg6c.js} +2 -2
- package/_assets/{ContentClient-BcbapA9s.js → ContentClient-Cv8a5s82.js} +2 -2
- package/_assets/{Creator-BBriAgWf.js → Creator-CGnnAe6V.js} +2 -2
- package/_assets/{CreditPackPicker-D69V0CD6.js → CreditPackPicker-CYUT6H0R.js} +2 -2
- package/_assets/{CreditRate-B-k7N3m3.js → CreditRate-DG--2wgq.js} +2 -2
- package/_assets/{DeploymentBuilder-CXecggpJ.js → DeploymentBuilder-DGHxUcBN.js} +2 -2
- package/_assets/{EmotePlaybackBar-DYPCyQ4y.js → EmotePlaybackBar-DCMIz4N3.js} +3 -3
- package/_assets/{ErrorNotice-CKxii-tV.js → ErrorNotice-Bd1f01au.js} +2 -2
- package/_assets/{Event-B8OGa99x.js → Event-Bp330Mt4.js} +2 -2
- package/_assets/{ExchangeController-t2bX9veN.js → ExchangeController-BXQzZPxc.js} +2 -2
- package/_assets/{Faq-LSM4lPCJ.js → Faq-BFIKjL7K.js} +2 -2
- package/_assets/{Filters-DV_qJCwA.js → Filters-D7X_-lAk.js} +2 -2
- package/_assets/{GetCredits-ChO_EQm7.js → GetCredits-DUKi7f6r.js} +2 -2
- package/_assets/{Grow-DJZgG82m.js → Grow-BNc3OxEI.js} +2 -2
- package/_assets/{HelpersUtil-Dj1-XrCJ.js → HelpersUtil-OvAMA6uy.js} +2 -2
- package/_assets/{IssueModal-BDe6sPy3.js → IssueModal-BDZ6BC8p.js} +2 -2
- package/_assets/{ItemDetail-ca62wEjs.js → ItemDetail-BWDV8eA0.js} +2 -2
- package/_assets/{LoadMore-B0Bi3u4a.js → LoadMore-DV_d2UwD.js} +2 -2
- package/_assets/{ManaPricingBanner-CjIkhbPq.js → ManaPricingBanner-DSg-DD_t.js} +2 -2
- package/_assets/{ManaPricingBanner.styles-DVJ01x1X.js → ManaPricingBanner.styles-BLKFmwn_.js} +2 -2
- package/_assets/{MyAssets-DhEBGqnz.js → MyAssets-BO_A3alu.js} +2 -2
- package/_assets/{MyFavorites-BWQ0kvqP.js → MyFavorites-De_aYwxH.js} +2 -2
- package/_assets/{MyStore-BE12t5gb.js → MyStore-CxWNhONl.js} +2 -2
- package/_assets/{NetworkUtil-BH3_oYP8.js → NetworkUtil-BZSm-jkr.js} +2 -2
- package/_assets/{NotFound-CIkoFDZU.js → NotFound-Bzlb-Z6G.js} +2 -2
- package/_assets/{NotificationsBell-DIOthP5u.js → NotificationsBell-B0MRoKUM.js} +2 -2
- package/_assets/{OutfitDetail-D4lmP80k.js → OutfitDetail-18pt1QUG.js} +2 -2
- package/_assets/{OutfitPreview-DmTaYZFo.js → OutfitPreview-Cv3t6kFC.js} +2 -2
- package/_assets/{OutfitStudio-5cnXZS39.js → OutfitStudio-DycSsoI9.js} +2 -2
- package/_assets/{PaymentMethodStep-CAh_5kV3.js → PaymentMethodStep-DmPMXhlz.js} +5 -5
- package/_assets/{SaleCountdown-DjBevuJq.js → SaleCountdown-CbQFzYoT.js} +2 -2
- package/_assets/{Spinner-ULhhBHPm.js → Spinner-BWjwap-G.js} +2 -2
- package/_assets/{StoreSettings-h6jsL1PV.js → StoreSettings-muKQ73z3.js} +3 -3
- package/_assets/{Success-D6Bavntm.js → Success-u2-GF7X_.js} +2 -2
- package/_assets/{SwapController-B1fnL8H3.js → SwapController-BPzYwtAA.js} +2 -2
- package/_assets/{Tooltip-C1GRffaf.js → Tooltip-BEBGqPkx.js} +2 -2
- package/_assets/{TradeService-CA7g8s_N.js → TradeService-JJ5nNXpS.js} +2 -2
- package/_assets/{W3MFrameProviderSingleton-lQPmplQ2.js → W3MFrameProviderSingleton-DXnPGHMS.js} +4 -4
- package/_assets/{WebCryptoP256-2Fvt-3iX.js → WebCryptoP256-uIuxt_Cj.js} +2 -2
- package/_assets/{basic-WGnG5Ctv.js → basic-TyhgZv5N.js} +2 -2
- package/_assets/{biconomy-DAdWCRE2.js → biconomy-BtFaTu70.js} +2 -2
- package/_assets/{browseLayout.styles-CegyKe9B.js → browseLayout.styles-CHHDveY2.js} +2 -2
- package/_assets/{browser-DeveOmzA.js → browser-CE67GlJt.js} +2 -2
- package/_assets/{browser-DDtzznZI.js → browser-SzzkL88j.js} +2 -2
- package/_assets/{browser-ponyfill-jzbj-jA4.js → browser-ponyfill-B7NhZBc6.js} +2 -2
- package/_assets/{buy-DL6aFS_N.js → buy-CcmRcJZ4.js} +2 -2
- package/_assets/{buy-gasless-akN-WrYj.js → buy-gasless-YzdaXjQE.js} +2 -2
- package/_assets/{ccip-Dn4li1J3.js → ccip-BVKcN7Jr.js} +2 -2
- package/_assets/{ccip-DVdHD9LQ.js → ccip-NOIN_H05.js} +2 -2
- package/_assets/{chains-DhvEOFYj.js → chains-BrEv4QDD.js} +2 -2
- package/_assets/collectionPage.styles-DTD4yMSv.js +41 -0
- package/_assets/{common-1xlKyxii.js → common-B2YErlYG.js} +2 -2
- package/_assets/{controller-Cl08Da2J.js → controller-C0Rma1a5.js} +3 -3
- package/_assets/{core-BDZisDBX.js → core-fw1bUzhk.js} +5 -5
- package/_assets/{createSvgIcon-D-NeJHpD.js → createSvgIcon-CfDgfB7_.js} +2 -2
- package/_assets/{crumbs.styles-Dm-SKOog.js → crumbs.styles-D-A76RyM.js} +2 -2
- package/_assets/{custom-DhOMKJIO.js → custom-D-voCK6h.js} +2 -2
- package/_assets/{data-capture-BZFWqywn.js → data-capture-DApNW5q6.js} +2 -2
- package/_assets/{dcl-schemas-OgkR3Xnp.js → dcl-schemas-BdKiENaP.js} +2 -2
- package/_assets/{decimals-DVR7Gv-J.js → decimals-CYB5hUEj.js} +2 -2
- package/_assets/{decimals-yDLHDrDe.js → decimals-uN4lHh8H.js} +2 -2
- package/_assets/{detectExtension-BaFl5dmt.js → detectExtension-B67sPubD.js} +2 -2
- package/_assets/{disposePreview-CON1sitU.js → disposePreview-D9QW9FbO.js} +2 -2
- package/_assets/{email-C8B3uV55.js → email-CdY1D1Xt.js} +2 -2
- package/_assets/{embedded-wallet-dtLreoAu.js → embedded-wallet-Dh2L_oOq.js} +2 -2
- package/_assets/{emotion-styled.browser.esm-DPYok2W8.js → emotion-styled.browser.esm-Bh__b0mj.js} +2 -2
- package/_assets/{engine-8Z0r8sBN.js → engine-BpDMdzm1.js} +2 -2
- package/_assets/{errors-BjM9HeNz.js → errors-C8z3HbKi.js} +2 -2
- package/_assets/{estimate-l1-fee-BoPGIBih.js → estimate-l1-fee-BSBc0Gj8.js} +2 -2
- package/_assets/{eth_estimateGas-BCdsyBNm.js → eth_estimateGas-BjQF_Cs_.js} +2 -2
- package/_assets/{eth_getStorageAt-crNxQf4F.js → eth_getStorageAt-DiJKBoRf.js} +2 -2
- package/_assets/{eth_getTransactionCount-AvgV55ar.js → eth_getTransactionCount-HqayNVHj.js} +2 -2
- package/_assets/{ethereum-DlBOC201.js → ethereum-TgQ46dss.js} +2 -2
- package/_assets/{ethers-DqHzeHuT.js → ethers-kd3kVp8g.js} +2 -2
- package/_assets/{events-VcRW8MP7.js → events-Did78EPF.js} +2 -2
- package/_assets/{execute-vAVWh3cq.js → execute-DzsdsEn5.js} +3 -3
- package/_assets/{extractIPFS-Dq3YHYdL.js → extractIPFS-Er0Wev2H.js} +2 -2
- package/_assets/{features-VnBmyyV1.js → features-1UZKGlrt.js} +2 -2
- package/_assets/{fetchTokenMetadata-BKSOlGrn.js → fetchTokenMetadata-B7VQ8alh.js} +3 -3
- package/_assets/{field.styles-Dl9mum16.js → field.styles-BkJJPv9I.js} +2 -2
- package/_assets/{fortmatic-DLZii_1J.js → fortmatic-9A9-ZgbA.js} +2 -2
- package/_assets/{get-bytecode-X-2IhAtj.js → get-bytecode-nK6XUd7k.js} +2 -2
- package/_assets/{get-ecosystem-wallet-info-f36NBunu.js → get-ecosystem-wallet-info-C-NnCPjb.js} +2 -2
- package/_assets/{getBalance-BftrT0-h.js → getBalance-lGrhpvSf.js} +3 -3
- package/_assets/{getInstalledModules-DPTTTcBw.js → getInstalledModules-CWM6MJvs.js} +2 -2
- package/_assets/{getNFT-DjGsZPMG.js → getNFT-D0TXlqCz.js} +3 -3
- package/_assets/{getNFT-C_cJwHF2.js → getNFT-DzC5f1R1.js} +2 -2
- package/_assets/{grid.styles-BO5hvrUj.js → grid.styles-ONzgF6tx.js} +2 -2
- package/_assets/{hashTypedData-DAgXidRT.js → hashTypedData-BFSLIP6T.js} +2 -2
- package/_assets/{hashTypedData-vZpJz8B-.js → hashTypedData-CS1OE-zF.js} +2 -2
- package/_assets/{import-Yr1lXrln.js → import-DeeZqvj1.js} +2 -2
- package/_assets/{in-app-CkVGPZSJ.js → in-app-2w1VU0mF.js} +2 -2
- package/_assets/{in-app-wallet-calls-Cpl9jNx_.js → in-app-wallet-calls-BtsG4KLo.js} +2 -2
- package/_assets/{index-DObjyPbH.js → index-0jhvWSml.js} +2 -2
- package/_assets/{index-DKTFxU8r.js → index-1EO4YCaM.js} +2 -2
- package/_assets/{index-BXwe5uMy.js → index-AkCwwsxs.js} +2 -2
- package/_assets/{index-CvYhIjIw.js → index-B1Fk54Xy.js} +2 -2
- package/_assets/{index-BU6C8CpN.js → index-B394YkDk.js} +2 -2
- package/_assets/{index-z7I5BqcT.js → index-B6OjSOaU.js} +2 -2
- package/_assets/{index-DQivOzo2.js → index-B7aSiR4q.js} +2 -2
- package/_assets/{index-rHvlGRCv.js → index-B9ls1Whg.js} +2 -2
- package/_assets/{index-Bn7T_CNN.js → index-BCIOF979.js} +2 -2
- package/_assets/{index-Bu0NJDwa.js → index-BDxkDIWS.js} +2 -2
- package/_assets/{index-D8nZ-jDW.js → index-BOHq6INj.js} +2 -2
- package/_assets/{index-D-7yBxzc.js → index-BQRWW3V4.js} +2 -2
- package/_assets/{index-DWhX9gtv.js → index-BTZV7OCM.js} +2 -2
- package/_assets/{index-Bgzd-o7-.js → index-BTlrmz-0.js} +2 -2
- package/_assets/{index-7qIkCapA.js → index-BYq79bRo.js} +2 -2
- package/_assets/{index-B4TtInR3.js → index-Bc_GCFNg.js} +2 -2
- package/_assets/{index-BXOSJuGz.js → index-Bj1Rt5tA.js} +2 -2
- package/_assets/{index-C8wSYeVO.js → index-BjwVryJx.js} +2 -2
- package/_assets/{index-scJRzKFi.js → index-BmGw3adR.js} +4 -4
- package/_assets/{index-DO7AMeoa.js → index-BmZ7HK6t.js} +2 -2
- package/_assets/{index-B2uF3DJM.js → index-BseS0J2l.js} +2 -2
- package/_assets/{index-DwQFPClc.js → index-BvRsZyIm.js} +2 -2
- package/_assets/{index-Bns4uVVf.js → index-Bzys3QM4.js} +3 -3
- package/_assets/{index-FchR7gSb.js → index-C1fnANX5.js} +2 -2
- package/_assets/{index-CE5dloga.js → index-C85G3c1J.js} +2 -2
- package/_assets/{index-DSz4o4Je.js → index-CFR26c1x.js} +2 -2
- package/_assets/{index-BGW18IEb.js → index-CKADy2us.js} +2 -2
- package/_assets/{index-CWsg9Kvt.js → index-CLeFgNsE.js} +2 -2
- package/_assets/{index-sxlMTD1e.js → index-CQKMOxqA.js} +2 -2
- package/_assets/{index-HS7_UPOd.js → index-CRccPpmH.js} +2 -2
- package/_assets/{index-CQy_yJhb.js → index-CVT9k4QD.js} +2 -2
- package/_assets/{index-B_ej9BPC.js → index-CWrVN1S8.js} +4 -4
- package/_assets/{index-D1-jMfxh.js → index-CY6J_TcT.js} +2 -2
- package/_assets/{index-BfD3vhaf.js → index-CoieDRUw.js} +2 -2
- package/_assets/{index-YEbRJWkl.js → index-Cua0sPPT.js} +2 -2
- package/_assets/{index-CYmJbQez.js → index-D0LXjl1o.js} +3 -3
- package/_assets/{index-BZe9O30I.js → index-D7EQyQF6.js} +12 -12
- package/_assets/{index-f9OSlngA.js → index-DBUKOkYg.js} +2 -2
- package/_assets/{index-ztZTfizM.js → index-DGygWgiw.js} +2 -2
- package/_assets/{index-BEPNCFGX.js → index-DKEuDdzi.js} +2 -2
- package/_assets/{index-Dfjp4UIp.js → index-DPV80msS.js} +2 -2
- package/_assets/{index-B3ZXdhup.js → index-DUe1XtDp.js} +2 -2
- package/_assets/{index-DZaOsJFK.js → index-DVVVeN4G.js} +2 -2
- package/_assets/{index-C5Wm4k9d.js → index-DVgQ_ieI.js} +2 -2
- package/_assets/{index-CTkFfEW6.js → index-DW10w3so.js} +2 -2
- package/_assets/{index-CZfjcTrs.js → index-DZYThN4u.js} +2 -2
- package/_assets/{index-CV_jtXEI.js → index-D_vXhkpQ.js} +2 -2
- package/_assets/{index-Cc9ETBk-.js → index-DcHM4SH7.js} +2 -2
- package/_assets/{index-BPBo8wh2.js → index-DfrTIo6g.js} +2 -2
- package/_assets/{index-BvTadfAU.js → index-DhXJfkpA.js} +2 -2
- package/_assets/index-Dj5jt24t.css +1 -0
- package/_assets/{index-w0a4GNJO.js → index-DlIFUVdJ.js} +2 -2
- package/_assets/{index-BY3o0_Rg.js → index-DqAMDuCL.js} +3 -3
- package/_assets/{index-DDMXNW4L.js → index-DrLXR1gh.js} +2 -2
- package/_assets/{index-D72ddkdN.js → index-Dru1VYRp.js} +2 -2
- package/_assets/{index-BqDPSWiR.js → index-DsmmUF9b.js} +2 -2
- package/_assets/{index-DEcoW3Fj.js → index-JyiQf10a.js} +3 -3
- package/_assets/{index-Cfw0sRIj.js → index-LPaePMIe.js} +2 -2
- package/_assets/{index-D7uzT9v-.js → index-PNM5NBdL.js} +2 -2
- package/_assets/{index-CwjUycdS.js → index-RshDWn_k.js} +2 -2
- package/_assets/{index-Bb5cZSRf.js → index-SgWiGjuO.js} +2 -2
- package/_assets/{index-DJNx4cK1.js → index-d91IniVU.js} +2 -2
- package/_assets/{index-L9UD0UUT.js → index-gKuc3EXx.js} +2 -2
- package/_assets/{index-ROlx3Pmh.js → index-itiTXs8c.js} +4 -4
- package/_assets/{index-B_Ew-epk.js → index-nwVYg_ZS.js} +2 -2
- package/_assets/{index-DQiGofV2.js → index-qLXUVl3K.js} +2 -2
- package/_assets/{index-CE9TvnNz.js → index-qmnyNSm8.js} +2 -2
- package/_assets/{index-B8oQm36C.js → index-sRgWyPhW.js} +2 -2
- package/_assets/{index.es-CHzsJBZX.js → index.es-7Nxasp-B.js} +2 -2
- package/_assets/{index.es-BcA_HmLy.js → index.es-BVbz3CpZ.js} +5 -5
- package/_assets/{index.es-CWw1jqy2.js → index.es-ByBCyMc3.js} +2 -2
- package/_assets/{index.es-3yhT-afv.js → index.es-DQHYHIFr.js} +2 -2
- package/_assets/{items-empty-8_aTRszf.js → items-empty-DYwmDVAn.js} +2 -2
- package/_assets/{jump-C1l2pbYY.js → jump-KBvVPlD9.js} +2 -2
- package/_assets/{linkAccount-CSENce9R.js → linkAccount-DxtNq6wu.js} +2 -2
- package/_assets/{loader-logo-Ctl7jE4d.js → loader-logo-Cqmi86kx.js} +2 -2
- package/_assets/{localBatchGatewayRequest-LQwWSW0t.js → localBatchGatewayRequest-Bb786WwO.js} +2 -2
- package/_assets/{modal.styles-DCTumybB.js → modal.styles-CA2s1L9l.js} +2 -2
- package/_assets/{native-DEdJNx2w.js → native-BTsyT2_I.js} +2 -2
- package/_assets/{networks-BTxPNDnS.js → networks-BpDKXpw-.js} +2 -2
- package/_assets/{onramp-BLPNmKGS.js → onramp-5-CzNiMZ.js} +2 -2
- package/_assets/{openzeppelin-Dh3FauvL.js → openzeppelin-BbesWuob.js} +2 -2
- package/_assets/{ownerOf-Dd0qwlc6.js → ownerOf-5NjXlqv4.js} +2 -2
- package/_assets/{parseNft-DEUUZOq-.js → parseNft-BmBn9ttJ.js} +3 -3
- package/_assets/{parseSignature-P8a9Zsvp.js → parseSignature-I3qWwoHJ.js} +4 -4
- package/_assets/{parseSignature-DAsMpuQz.js → parseSignature-jhufQK18.js} +2 -2
- package/_assets/{passkeys-BrR4wD46.js → passkeys--MhQHHJ6.js} +2 -2
- package/_assets/{pay-with-exchange-ftgVAhdm.js → pay-with-exchange-DQsTBU9X.js} +2 -2
- package/_assets/{prepare-contract-call-BLAPB3co.js → prepare-contract-call-Be9Npsq6.js} +2 -2
- package/_assets/{qr-overlay-BFEwwNm_.js → qr-overlay-rYPpUzf9.js} +4 -4
- package/_assets/{react-BUrQZkQz.js → react-BekGWEkZ.js} +2 -2
- package/_assets/{receive-uLX7VZbx.js → receive-DC2Iu_gK.js} +2 -2
- package/_assets/{resolveImplementation-Boph8OZd.js → resolveImplementation-BoLPpLwR.js} +2 -2
- package/_assets/{resume-buy-C7PQctXb.js → resume-buy-CGopq0zP.js} +2 -2
- package/_assets/{resume-name-CMSdNFnn.js → resume-name-Ba6MphAx.js} +2 -2
- package/_assets/{rpc-QRauRlVM.js → rpc-tJTyE1wJ.js} +2 -2
- package/_assets/{sales-empty-RO4M61Bi.js → sales-empty-D19Zxk_n.js} +2 -2
- package/_assets/{search-empty-CSUAho6H.js → search-empty-BssCUEOX.js} +2 -2
- package/_assets/{secp256k1-DoZCtomu.js → secp256k1-DGiZZuEZ.js} +2 -2
- package/_assets/{secp256k1-BCu4fIsA.js → secp256k1-PRHKCWEh.js} +2 -2
- package/_assets/{secp256k1-ByDS1yIu.js → secp256k1-hbPx6NWK.js} +2 -2
- package/_assets/{send-_f-tnJ7l.js → send-Byn4Dmol.js} +2 -2
- package/_assets/{send-batch-transaction-COicQUlJ.js → send-batch-transaction-8LtyKPoy.js} +2 -2
- package/_assets/{send-eip712-transaction-CbLSn4MP.js → send-eip712-transaction-CGzvYUL2.js} +3 -3
- package/_assets/{send-gasless-transaction-DBTdCbHy.js → send-gasless-transaction-sDLEqmdj.js} +3 -3
- package/_assets/{send-transaction-eS3cn1U6.js → send-transaction-xmRbUuPg.js} +3 -3
- package/_assets/{sendMetaTransaction-CIpZZkUk.js → sendMetaTransaction-LSOm03u7.js} +2 -2
- package/_assets/{sendRawTransaction-BJhaPoFM.js → sendRawTransaction-DB13wskp.js} +4 -4
- package/_assets/{sentry-DyLfTiSb.js → sentry-BJsKhDHR.js} +3 -3
- package/_assets/{serializeTransaction-Cg0Mu0rp.js → serializeTransaction-CMbd7j0x.js} +2 -2
- package/_assets/{session-proposal-CTjJUlbV.js → session-proposal-DxIuVNiz.js} +2 -2
- package/_assets/{session-request-BxpWrkMB.js → session-request-D6vkJViD.js} +3 -3
- package/_assets/{sha256-CnPmFRlr.js → sha256-k5IxCoEI.js} +2 -2
- package/_assets/{sha3-DzF74Fsc.js → sha3-CV-yBtw0.js} +2 -2
- package/_assets/signin-empty-ma5vZkR6.js +2 -0
- package/_assets/{signing-CXQFnhbL.js → signing-o3SBNeiE.js} +4 -4
- package/_assets/{skeleton.styles-CSK9oM8z.js → skeleton.styles-BIeK-B7A.js} +2 -2
- package/_assets/{socials-DXrH7mfq.js → socials-Ddpadsfy.js} +2 -2
- package/_assets/{styled-e10E42am.js → styled-2zmMmkeT.js} +2 -2
- package/_assets/{swaps-BVOOQJtb.js → swaps-B0l_mSR1.js} +2 -2
- package/_assets/{thirdweb-CqXTMLMh.js → thirdweb-BfDOkQQ5.js} +4 -4
- package/_assets/{to-serializable-transaction-Rj3zkFd_.js → to-serializable-transaction-CTl0uSb4.js} +3 -3
- package/_assets/{totalSupply-BRxEH93C.js → totalSupply-CxPjsPCg.js} +2 -2
- package/_assets/{trade-encoding-DfPRc5Jc.js → trade-encoding-BraQNr9h.js} +2 -2
- package/_assets/{transaction-CrhlWCWj.js → transaction-CHnIdkAY.js} +2 -2
- package/_assets/{transactionReceipt-GPDArFY8.js → transactionReceipt-BhyuF6JD.js} +2 -2
- package/_assets/{transactions-C_6jqb5f.js → transactions-BAduzPMx.js} +2 -2
- package/_assets/{useInfiniteGrid-CTLLOXuj.js → useInfiniteGrid-BSt4XoRe.js} +2 -2
- package/_assets/{useStore-DRNMRbrq.js → useStore-uJftgkNh.js} +3 -3
- package/_assets/{useTheme-Bz-O5SoV.js → useTheme-CTdb32ky.js} +2 -2
- package/_assets/{utils-Dp9zU4fq.js → utils-BM5DRvHN.js} +2 -2
- package/_assets/{verifyHash-BuQb0nyx.js → verifyHash-Cc1DNn6z.js} +2 -2
- package/_assets/{w3m-modal-BQhVkoUu.js → w3m-modal-BD_H_zDq.js} +2 -2
- package/_assets/{w3m-modal-Cx58A78Q.js → w3m-modal-DhUviUTp.js} +2 -2
- package/_assets/{wait-for-tx-receipt-Cq2bVMbq.js → wait-for-tx-receipt-BNi9RAot.js} +2 -2
- package/_assets/{wallets-BOYud1KV.js → wallets-_XClPpcK.js} +6 -6
- package/_assets/{web-connector-DVSwza9m.js → web-connector-f86d5HKr.js} +4 -4
- package/_assets/{writeContract-QfoBI3jg.js → writeContract-CxIdpvKT.js} +2 -2
- package/_assets/{zora-sepolia-D5dvAbrT.js → zora-sepolia-BbIJIN7c.js} +2 -2
- package/_assets/{zoraTestnet-CliKS5z3.js → zoraTestnet-DPqTmGTC.js} +2 -2
- package/index.html +12 -12
- package/package.json +2 -2
- package/_assets/Cart-DM05_xNx.js +0 -748
- package/_assets/collectionPage.styles-D8fndBEc.js +0 -41
- package/_assets/index-BJvJlfNW.css +0 -1
- package/_assets/signin-empty-RkHxV8yP.js +0 -2
|
@@ -0,0 +1,826 @@
|
|
|
1
|
+
import{j as e,L as Yt,r as T,b as Sa,a as Ma}from"./react-BekGWEkZ.js";import{s as i,a as P,t as a,z as Ae,F as pe,W as Le,C as Me,E as Fe,bl as Ta,A as Aa,I as X,n as Je,B as Wa,aj as H,$ as Tt,x as Ia,y as Ea,w as Pa,bm as za,X as _a,bn as Ba,a0 as qa,bo as Ra,bp as La,bq as Fa,br as Na,bs as At,a2 as Ka,bt as Qa,bu as Ua,bv as Oa,av as Ne,a3 as Ga,D as Ha,bw as Wt,O as V,bx as It,by as Da,bz as Va,l as ie,bA as Xa,bB as Ya,bC as Ja,bD as Ke,bi as Za,bE as ve,bF as Ce,Z as Et,bG as es,h as Pt,j as zt,bH as ts}from"./index-D7EQyQF6.js";import{C as as,b as ss,t as ns,a as is,A as rs,s as _t,r as Bt,i as qt,m as os,c as cs,p as Rt,d as ds}from"./CollectionCarousel-cU9fE44V.js";import{M as ls,S as hs,C as us,H as ps,a as gs,T as fs,X as ms,B as xs,b as bs,c as Lt,d as ys,e as We,f as ws,g as vs,h as Cs,i as Ye,j as ue,L as ks,P as js,k as Ft,l as Nt,W as $s,m as Ss,n as Ms,o as Ts,A as As,p as Ws,q as Is,r as Es,s as Ps,t as zs,u as _s,v as Bs,w as Qe,x as qs,y as Rs}from"./CreditPackPicker-CYUT6H0R.js";import{m as Te}from"./mana-matic-light-Bl5duieC.js";import{q as Ls,s as Fs,g as Ns,t as Ks,u as Qs,A as Us}from"./trade-encoding-BraQNr9h.js";import{p as Kt,g as Os,a as Ue}from"./buy-CcmRcJZ4.js";import{w as Gs,S as Oe,b as Hs,G as Ds}from"./buy-gasless-YzdaXjQE.js";import{l as Vs,u as Xs,M as Ys,R as ke,o as Js,r as Zs,c as en,g as tn,a as an,p as Qt,b as Ge}from"./loader-logo-Cqmi86kx.js";import{i as sn,a as nn}from"./errors-C8z3HbKi.js";import{E as rn}from"./ErrorNotice-Bd1f01au.js";import"./dcl-schemas-BdKiENaP.js";import"./sentry-BJsKhDHR.js";import"./ethers-kd3kVp8g.js";import"./intl-AKLEHPeO.js";import"./sendMetaTransaction-LSOm03u7.js";(function(){try{var n=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},l=new n.Error().stack;l&&(n._sentryDebugIds=n._sentryDebugIds||{},n._sentryDebugIds[l]="6018ec78-bdf0-4f8d-9d1e-259306867f36",n._sentryDebugIdIdentifier="sentry-dbid-6018ec78-bdf0-4f8d-9d1e-259306867f36")}catch{}})();const on=i.div`
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
gap: 12px;
|
|
5
|
+
align-items: stretch;
|
|
6
|
+
width: 100%;
|
|
7
|
+
`,Jt=`
|
|
8
|
+
width: 100%;
|
|
9
|
+
min-height: 56px;
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
gap: 8px;
|
|
14
|
+
flex-wrap: wrap;
|
|
15
|
+
padding: 0 12px;
|
|
16
|
+
border: 0;
|
|
17
|
+
border-radius: 12px;
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
transition:
|
|
20
|
+
background 0.15s ease,
|
|
21
|
+
filter 0.15s ease;
|
|
22
|
+
font-family: ${P.font.sans};
|
|
23
|
+
font-weight: 600;
|
|
24
|
+
font-size: 15px;
|
|
25
|
+
line-height: 24px;
|
|
26
|
+
letter-spacing: 0.46px;
|
|
27
|
+
text-transform: uppercase;
|
|
28
|
+
color: ${P.colors.softWhite};
|
|
29
|
+
|
|
30
|
+
&:focus-visible {
|
|
31
|
+
outline: 2px solid ${P.colors.accent};
|
|
32
|
+
outline-offset: 2px;
|
|
33
|
+
}
|
|
34
|
+
&:disabled {
|
|
35
|
+
opacity: 0.6;
|
|
36
|
+
cursor: default;
|
|
37
|
+
}
|
|
38
|
+
`,Ut=i.button`
|
|
39
|
+
${Jt}
|
|
40
|
+
background: ${P.gradients.buyBtn};
|
|
41
|
+
|
|
42
|
+
&:hover:not(:disabled) {
|
|
43
|
+
filter: brightness(1.08);
|
|
44
|
+
}
|
|
45
|
+
`,He=i.button`
|
|
46
|
+
${Jt}
|
|
47
|
+
background: ${P.colors.text2};
|
|
48
|
+
|
|
49
|
+
&:hover:not(:disabled) {
|
|
50
|
+
background: ${P.colors.gray0};
|
|
51
|
+
}
|
|
52
|
+
`,je=i.span`
|
|
53
|
+
display: inline-flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
gap: 6px;
|
|
56
|
+
text-transform: none;
|
|
57
|
+
letter-spacing: 0;
|
|
58
|
+
|
|
59
|
+
span {
|
|
60
|
+
font-size: 20px;
|
|
61
|
+
font-weight: 600;
|
|
62
|
+
line-height: normal;
|
|
63
|
+
}
|
|
64
|
+
.ico {
|
|
65
|
+
width: 24px;
|
|
66
|
+
height: 24px;
|
|
67
|
+
background: ${P.colors.softWhite};
|
|
68
|
+
}
|
|
69
|
+
`,De=i.span`
|
|
70
|
+
position: relative;
|
|
71
|
+
display: block;
|
|
72
|
+
width: 30px;
|
|
73
|
+
height: 30px;
|
|
74
|
+
flex: none;
|
|
75
|
+
|
|
76
|
+
/* Centred in the slot, not pinned to its top: the slot is taller than the glyph and sits next to a
|
|
77
|
+
vertically centred amount, so a top-pinned mark reads as floating above the number. */
|
|
78
|
+
img {
|
|
79
|
+
position: absolute;
|
|
80
|
+
top: 50%;
|
|
81
|
+
left: 0;
|
|
82
|
+
transform: translateY(-50%);
|
|
83
|
+
width: 24px;
|
|
84
|
+
height: 24px;
|
|
85
|
+
display: block;
|
|
86
|
+
}
|
|
87
|
+
`,cn=i.span`
|
|
88
|
+
font-size: 13px;
|
|
89
|
+
font-weight: 600;
|
|
90
|
+
letter-spacing: 0.02em;
|
|
91
|
+
opacity: 0.85;
|
|
92
|
+
`,dn=i.span`
|
|
93
|
+
font-size: 18px;
|
|
94
|
+
font-weight: 600;
|
|
95
|
+
opacity: 0.7;
|
|
96
|
+
`,ln=i.p`
|
|
97
|
+
margin: -4px 0 0;
|
|
98
|
+
font-family: ${P.font.sans};
|
|
99
|
+
font-weight: 400;
|
|
100
|
+
font-size: 12px;
|
|
101
|
+
line-height: 1.4;
|
|
102
|
+
color: ${P.colors.muted};
|
|
103
|
+
text-align: center;
|
|
104
|
+
`;function Zt({options:n,totalCents:l,onPay:j,busy:$=!1,creditsLabel:z,shortfall:U,showCreditsAmount:O=!0,creditsFallback:G=null}){const M=n.some(r=>r.method==="credits");return e.jsxs(on,{children:[!M&&G?e.jsx(Ut,{type:"button","data-testid":"pay-with-credits-topup",onClick:G.onClick,disabled:$,children:e.jsx("span",{children:G.label})}):null,n.map(r=>r.method==="credits"?e.jsxs(Ut,{type:"button","data-testid":"pay-with-credits",onClick:()=>j("credits"),disabled:$,children:[e.jsx("span",{children:z??a("buyModal.buy")}),O?e.jsxs(je,{children:[e.jsx(Ae,{}),e.jsx("span",{children:pe(r.credits)})]}):null]},"credits"):r.method==="mana"?e.jsxs(He,{type:"button","data-testid":"pay-with-mana",onClick:()=>j("mana"),disabled:$,children:[e.jsx("span",{children:a("buyModal.buyWithMana")}),e.jsxs(je,{children:[e.jsx(De,{children:e.jsx("img",{src:Te,alt:"","aria-hidden":!0})}),e.jsx("span",{children:Le(r.manaWei)})]})]},"mana"):e.jsxs(He,{type:"button","data-testid":"pay-with-combined",onClick:()=>j("combined"),disabled:$,children:[e.jsx("span",{children:a("buyModal.buyWith")}),e.jsxs(je,{children:[e.jsx(Ae,{}),e.jsx("span",{children:pe(r.credits)}),e.jsx(dn,{children:"+"}),e.jsx(De,{children:e.jsx("img",{src:Te,alt:"","aria-hidden":!0})}),e.jsx("span",{children:Le(r.manaWei)}),e.jsx(cn,{children:"MANA"})]})]},"combined")),U?e.jsxs(e.Fragment,{children:[e.jsxs(He,{type:"button","data-testid":"pay-with-mana-disabled",disabled:!0,children:[e.jsx("span",{children:a("buyModal.buyWithMana")}),e.jsxs(je,{children:[e.jsx(De,{children:e.jsx("img",{src:Te,alt:"","aria-hidden":!0})}),e.jsx("span",{children:Le(U.manaWei)})]})]},"mana-short"),e.jsx(ln,{"data-testid":"mana-shortfall-note",children:a("buyModal.notEnoughMana")})]}):null,e.jsx("span",{hidden:!0,"data-testid":"pay-total-cents",children:l})]})}const{colors:re,radius:hn}=P,un=i.div`
|
|
105
|
+
display: flex;
|
|
106
|
+
align-items: center;
|
|
107
|
+
justify-content: center;
|
|
108
|
+
gap: 8px;
|
|
109
|
+
width: 100%;
|
|
110
|
+
`,pn=i.span`
|
|
111
|
+
font-size: 16px;
|
|
112
|
+
line-height: 22px;
|
|
113
|
+
color: ${re.text2};
|
|
114
|
+
text-transform: capitalize;
|
|
115
|
+
white-space: nowrap;
|
|
116
|
+
`,gn=i.div`
|
|
117
|
+
display: flex;
|
|
118
|
+
flex-direction: column;
|
|
119
|
+
gap: 12px;
|
|
120
|
+
/* The list is the modal's elastic region: inside a viewport-capped card it gives up height first, so
|
|
121
|
+
the pack picker, total and Cancel/Buy below it stay on screen without scrolling. The floor is an
|
|
122
|
+
explicit ~one row because a scroll container's automatic minimum size is zero — it would otherwise
|
|
123
|
+
collapse to nothing on a short screen. */
|
|
124
|
+
min-height: 120px;
|
|
125
|
+
max-height: 360px;
|
|
126
|
+
overflow-y: auto;
|
|
127
|
+
width: 100%;
|
|
128
|
+
scrollbar-width: thin;
|
|
129
|
+
scrollbar-color: #a2a2a2 ${re.media};
|
|
130
|
+
|
|
131
|
+
&::-webkit-scrollbar {
|
|
132
|
+
width: 8px;
|
|
133
|
+
}
|
|
134
|
+
&::-webkit-scrollbar-track {
|
|
135
|
+
background: ${re.media};
|
|
136
|
+
border-radius: 10px;
|
|
137
|
+
}
|
|
138
|
+
&::-webkit-scrollbar-thumb {
|
|
139
|
+
background: #a2a2a2;
|
|
140
|
+
border-radius: ${hn.btn};
|
|
141
|
+
}
|
|
142
|
+
`,fn=i.span`
|
|
143
|
+
margin-left: 8px;
|
|
144
|
+
font-size: 13px;
|
|
145
|
+
font-weight: 600;
|
|
146
|
+
color: ${re.muted};
|
|
147
|
+
`,mn=i.div`
|
|
148
|
+
display: flex;
|
|
149
|
+
align-items: center;
|
|
150
|
+
justify-content: space-between;
|
|
151
|
+
gap: 12px;
|
|
152
|
+
padding: 0 0 12px;
|
|
153
|
+
font-size: 14px;
|
|
154
|
+
color: ${re.muted};
|
|
155
|
+
|
|
156
|
+
& strong {
|
|
157
|
+
display: inline-flex;
|
|
158
|
+
align-items: center;
|
|
159
|
+
gap: 6px;
|
|
160
|
+
font-size: 20px;
|
|
161
|
+
font-weight: 700;
|
|
162
|
+
color: ${re.text};
|
|
163
|
+
}
|
|
164
|
+
`,xn=i.p`
|
|
165
|
+
margin: 12px 0 0;
|
|
166
|
+
background: rgba(255, 162, 90, 0.3);
|
|
167
|
+
border-radius: ${P.radius.btn};
|
|
168
|
+
padding: 12px 16px;
|
|
169
|
+
font-family: ${P.font.sans};
|
|
170
|
+
font-size: 14px;
|
|
171
|
+
line-height: 1.334;
|
|
172
|
+
color: ${P.colors.text2};
|
|
173
|
+
`;function bn(n){const{phase:l,balanceCredits:j,onClose:$}=n,z=l==="processing",U=l==="error"?a("cartCheckout.errorTitle"):l==="nofunds"?a("cartCheckout.titleNoFunds"):l==="choose"?a("buyModal.choosePayment"):a("cartCheckout.titleBuy"),O=l==="processing";return e.jsxs(ls,{role:"dialog","aria-modal":"true","aria-label":a("cartCheckout.dialogAria"),children:[e.jsx(hs,{onClick:z?void 0:$,"aria-hidden":!0}),e.jsxs(us,{"data-tall":O||void 0,children:[e.jsxs(ps,{children:[e.jsxs(gs,{children:[e.jsx(fs,{children:U}),!z&&e.jsx(ms,{onClick:$,"aria-label":a("buyModal.close"),children:e.jsx(as,{})})]}),e.jsxs(xs,{children:[e.jsx(bs,{children:l==="nofunds"?a("buyModal.dclBalance"):a("buyModal.myCreditsBalance")}),e.jsx(Lt,{}),e.jsx(ys,{children:pe(j)})]}),n.heldCreditsCount&&(l==="choose"||l==="nofunds")?e.jsx(xn,{"data-testid":"cart-held-notice",children:a("buyModal.heldExplainer",{credits:n.heldCreditsCount,currency:Me.name})}):null]}),l==="choose"&&e.jsxs(We,{children:[e.jsxs(mn,{children:[e.jsx("span",{children:a("cart.purchaseSummary")}),e.jsxs("strong",{children:[e.jsx(Lt,{}),pe(n.totalCredits??0)]})]}),e.jsx(Zt,{options:n.options??[],totalCents:n.totalCents??0,shortfall:n.shortfall,onPay:n.onPay??(()=>{})})]}),l==="processing"&&e.jsx(yn,{stage:n.stage??"reserving",step:n.step??1,total:n.total??1,isSelfCustody:!!n.isSelfCustody,signatures:n.signatures}),l==="nofunds"&&e.jsx(wn,{lines:n.lines??[],shortfallCredits:n.shortfallCredits??0,packs:n.packs??[],selectedPack:n.selectedPack??"",onSelectPack:n.onSelectPack??(()=>{}),onBuyPacks:n.onBuyPacks??(()=>{}),onCancel:$}),l==="error"&&e.jsxs(We,{children:[e.jsxs(ws,{"data-testid":"buy-error",children:[e.jsx(vs,{src:ss,alt:"",width:64,height:80}),e.jsxs(Cs,{children:[e.jsx("b",{children:a("cartCheckout.errorHeadline")})," ",n.heldCredits?e.jsxs(e.Fragment,{children:[n.message?e.jsxs(e.Fragment,{children:[n.message," "]}):null,a("cartCheckout.heldLead",{currency:Me.name}),e.jsx("b",{children:a("cartCheckout.heldBold")}),a("cartCheckout.heldTail",{currency:Me.name})]}):n.message??a("cartCheckout.errorBody")]})]}),n.heldCredits?e.jsx(Ye,{children:e.jsx(ue,{"data-variant":"purple","data-full":!0,onClick:$,children:a("cartCheckout.gotIt")})}):e.jsxs(Ye,{children:[e.jsx(ue,{"data-variant":"outline",onClick:$,children:a("buyModal.cancel")}),e.jsx(ue,{"data-variant":"purple",onClick:n.onRetry??$,children:a("cartCheckout.tryAgain")})]})]})]})]})}function yn({stage:n,step:l,total:j,isSelfCustody:$,signatures:z}){const U=n==="reserving",O=j>0?Math.min(100,Math.round(l/j*100)):0,G=$&&z&&z.total>1,M=n==="awaiting-signature"?$?G?a("cartCheckout.confirmMultiple",{current:z.current,total:z.total}):a("buyModal.confirmToContinue"):a("buyModal.completingTransaction"):n==="settling"?a("buyModal.completingTransaction"):a("cartCheckout.preparing");return e.jsxs(We,{"data-processing":!0,children:[e.jsx(ks,{src:Vs,alt:"",width:61,height:61}),e.jsx(js,{children:M}),U?e.jsxs(un,{children:[e.jsx(Ft,{"aria-hidden":!0,children:e.jsx(Nt,{"data-step":!0,style:{width:`${O}%`}})}),j>1?e.jsxs(pn,{children:[l,"/",j]}):null]}):e.jsx(Ft,{"aria-hidden":!0,children:e.jsx(Nt,{})})]})}function wn({lines:n,shortfallCredits:l,packs:j,selectedPack:$,onSelectPack:z,onBuyPacks:U,onCancel:O}){const G=n.reduce((M,r)=>M+(r.quantity??1),0);return e.jsxs(We,{children:[e.jsxs($s,{"data-testid":"nofunds-warning",children:[e.jsx(Ss,{}),e.jsxs(Ms,{children:[e.jsx("b",{children:a("buyModal.insufficientFunds")})," ",a("buyModal.warningNeedToBuy")," ",e.jsx("b",{children:a("buyModal.warningCreditsAmount",{count:Math.max(0,l)})})," ",a("buyModal.warningToPurchase",{count:G}),Fe()?null:e.jsxs(e.Fragment,{children:[e.jsx("br",{}),e.jsx(Ts,{href:Ta("/credits"),target:"_blank",rel:"noopener noreferrer",children:a("buyModal.warningLearnMore")})]})]})]}),e.jsx(gn,{children:n.map(M=>{const r=M.quantity??1;return e.jsxs(As,{children:[e.jsx(Ws,{children:M.item.thumbnail?e.jsx("img",{src:M.item.thumbnail,alt:""}):null}),e.jsxs(Is,{children:[e.jsxs("div",{children:[e.jsxs(Es,{title:M.item.name,children:[M.item.name||a("buyModal.itemFallback"),r>1?e.jsx(fn,{children:a("cartCheckout.qty",{count:r})}):null]}),M.item.creator?e.jsx(Ps,{address:M.item.creator}):null]}),e.jsxs(zs,{children:[e.jsx(_s,{}),e.jsx("span",{children:pe(M.priceCredits*r)})]})]})]},M.item.id)})}),Fe()?null:e.jsx(e.Fragment,{children:e.jsx(Bs,{packs:j,selectedId:$||void 0,onSelect:z})}),e.jsxs(Ye,{children:[e.jsx(ue,{"data-variant":"outline",onClick:O,children:a("buyModal.cancel")}),Fe()?null:e.jsx(ue,{"data-variant":"gradient",onClick:U,children:a("buyModal.buy")})]})]})}const{colors:d,gradients:vn,radius:oe}=P,ea=1080,Cn=880,ta=`@media (max-width: ${ea}px)`,W=`@media (max-width: ${Cn}px)`,kn=`@media (min-width: ${ea+1}px) and (max-width: 1180px)`,Ot=i.div`
|
|
174
|
+
max-width: 1510px;
|
|
175
|
+
margin: 0 auto;
|
|
176
|
+
/* Grows into the page's leftover height and passes it down to Upsell, so a short cart leaves its slack
|
|
177
|
+
BELOW the cross-sell rail rather than inside the band. Needs .page[data-route="/cart"] to be a flex
|
|
178
|
+
column. */
|
|
179
|
+
width: 100%;
|
|
180
|
+
flex: 1 0 auto;
|
|
181
|
+
display: flex;
|
|
182
|
+
flex-direction: column;
|
|
183
|
+
|
|
184
|
+
${W} {
|
|
185
|
+
padding-bottom: 188px; /* room for the fixed summary bar */
|
|
186
|
+
}
|
|
187
|
+
`,Gt=i.button`
|
|
188
|
+
display: inline-flex;
|
|
189
|
+
align-items: center;
|
|
190
|
+
gap: 6px;
|
|
191
|
+
margin: 0 0 16px;
|
|
192
|
+
padding: 0;
|
|
193
|
+
border: 0;
|
|
194
|
+
background: none;
|
|
195
|
+
/* Gray 5, not Gray 4: this row leads the band, above the cards and with nothing but the wash behind it,
|
|
196
|
+
where Gray 4 drops under AA. */
|
|
197
|
+
color: ${d.gray5};
|
|
198
|
+
font-size: 14px;
|
|
199
|
+
font-weight: 600;
|
|
200
|
+
letter-spacing: 0.02em;
|
|
201
|
+
text-transform: uppercase;
|
|
202
|
+
cursor: pointer;
|
|
203
|
+
transition: color 0.15s ease;
|
|
204
|
+
|
|
205
|
+
&:hover {
|
|
206
|
+
color: ${d.softWhite};
|
|
207
|
+
}
|
|
208
|
+
& .ico {
|
|
209
|
+
width: 18px;
|
|
210
|
+
height: 18px;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
${W} {
|
|
214
|
+
display: none;
|
|
215
|
+
}
|
|
216
|
+
`,jn=i.div`
|
|
217
|
+
display: grid;
|
|
218
|
+
grid-template-columns: minmax(0, 1fr) 615px;
|
|
219
|
+
gap: 24px;
|
|
220
|
+
align-items: start;
|
|
221
|
+
|
|
222
|
+
${ta} {
|
|
223
|
+
grid-template-columns: 1fr;
|
|
224
|
+
}
|
|
225
|
+
`,Ht=i.div`
|
|
226
|
+
position: relative;
|
|
227
|
+
/* The band's own breathing room, above the breadcrumb and under the panels, which is what sets how big
|
|
228
|
+
the section reads. Deliberately generous rather than hugging the cards: the zone is the checkout, and
|
|
229
|
+
at the old 48px it read as a strip squeezed between the sub-nav and the cross-sell rail.
|
|
230
|
+
|
|
231
|
+
No min-height floor: Figma's 733px was sized for an opaque band that had to reach the cross-sell, and
|
|
232
|
+
keeping it here only pushed the rail below down behind a stretch of empty wash. The band tracks its
|
|
233
|
+
content, and this padding is what surrounds it. */
|
|
234
|
+
padding-top: 58px;
|
|
235
|
+
padding-bottom: 107px;
|
|
236
|
+
|
|
237
|
+
/* The wash that gives the cards a floor instead of leaving them on the bare field.
|
|
238
|
+
|
|
239
|
+
Every surface on this page is ONE step of this same token, never two: translucent fills stack, and
|
|
240
|
+
the previous pass had a 40% panel over a 40% band compositing to 64%, with the item card on top of
|
|
241
|
+
both reaching 78% — which is what read as heavy. At one step each, a panel on the band lands at 36%
|
|
242
|
+
and the item card adds nothing (see Card). Depth comes from borders and spacing, not from piling up
|
|
243
|
+
black. */
|
|
244
|
+
&::before {
|
|
245
|
+
content: '';
|
|
246
|
+
position: absolute;
|
|
247
|
+
top: -28px;
|
|
248
|
+
bottom: 0;
|
|
249
|
+
left: 50%;
|
|
250
|
+
width: 100vw;
|
|
251
|
+
transform: translateX(-50%);
|
|
252
|
+
background: ${d.overlayLight};
|
|
253
|
+
z-index: 0;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/* The light ink is set here so descendants inherit it; the cards below carry the contrast. */
|
|
257
|
+
color: ${d.softWhite};
|
|
258
|
+
& > * {
|
|
259
|
+
position: relative;
|
|
260
|
+
z-index: 1;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
${W} {
|
|
264
|
+
/* The fixed summary bar already reserves room at the bottom on mobile (see Checkout), and a tall band
|
|
265
|
+
on a short viewport costs more than it gives. */
|
|
266
|
+
padding-top: 24px;
|
|
267
|
+
padding-bottom: 32px;
|
|
268
|
+
|
|
269
|
+
&::before {
|
|
270
|
+
top: -16px; /* .page's mobile padding */
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
`,$n=i.div`
|
|
274
|
+
min-width: 0;
|
|
275
|
+
display: flex;
|
|
276
|
+
flex-direction: column;
|
|
277
|
+
`,Sn=i.div`
|
|
278
|
+
display: flex;
|
|
279
|
+
align-items: center;
|
|
280
|
+
justify-content: space-between;
|
|
281
|
+
gap: 12px;
|
|
282
|
+
/* Pulled out to the card's edges, then the padding is put back on the row itself, so the row reads as
|
|
283
|
+
the card's own header strip rather than as content indented inside it. No rule under it: the gap
|
|
284
|
+
below already separates the header from the list, and the line only added weight. */
|
|
285
|
+
margin: -24px -24px 16px;
|
|
286
|
+
padding: 12px 12px 12px 24px;
|
|
287
|
+
|
|
288
|
+
${W} {
|
|
289
|
+
gap: 8px;
|
|
290
|
+
margin: -16px -16px 12px;
|
|
291
|
+
padding: 8px 16px;
|
|
292
|
+
}
|
|
293
|
+
`,Mn=i.section`
|
|
294
|
+
min-width: 0;
|
|
295
|
+
background: ${d.overlayLight};
|
|
296
|
+
border-radius: 16px;
|
|
297
|
+
padding: 24px;
|
|
298
|
+
|
|
299
|
+
${W} {
|
|
300
|
+
padding: 16px;
|
|
301
|
+
}
|
|
302
|
+
`,Tn=i.div`
|
|
303
|
+
display: flex;
|
|
304
|
+
flex-direction: column;
|
|
305
|
+
align-items: center;
|
|
306
|
+
`,An=i.button`
|
|
307
|
+
display: none;
|
|
308
|
+
|
|
309
|
+
${W} {
|
|
310
|
+
display: inline-flex;
|
|
311
|
+
align-items: center;
|
|
312
|
+
flex-shrink: 0;
|
|
313
|
+
border: 0;
|
|
314
|
+
background: none;
|
|
315
|
+
padding: 0;
|
|
316
|
+
color: ${d.softWhite};
|
|
317
|
+
cursor: pointer;
|
|
318
|
+
|
|
319
|
+
& .ico {
|
|
320
|
+
width: 20px;
|
|
321
|
+
height: 20px;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
`,Wn=i.h1`
|
|
325
|
+
margin: 0;
|
|
326
|
+
font-size: 14px;
|
|
327
|
+
font-weight: 600;
|
|
328
|
+
line-height: 1.57;
|
|
329
|
+
color: ${d.softWhite};
|
|
330
|
+
|
|
331
|
+
${W} {
|
|
332
|
+
flex: 1;
|
|
333
|
+
min-width: 0;
|
|
334
|
+
font-size: 16px;
|
|
335
|
+
}
|
|
336
|
+
`,In=i.button`
|
|
337
|
+
display: inline-flex;
|
|
338
|
+
align-items: center;
|
|
339
|
+
justify-content: center;
|
|
340
|
+
gap: 8px;
|
|
341
|
+
height: 40px;
|
|
342
|
+
padding: 0 12px;
|
|
343
|
+
border: 2px solid ${d.softWhite};
|
|
344
|
+
border-radius: ${oe.btn};
|
|
345
|
+
background: none;
|
|
346
|
+
color: ${d.softWhite};
|
|
347
|
+
font-size: 13px;
|
|
348
|
+
font-weight: 600;
|
|
349
|
+
line-height: 24px;
|
|
350
|
+
letter-spacing: 0.46px;
|
|
351
|
+
text-transform: uppercase;
|
|
352
|
+
white-space: nowrap;
|
|
353
|
+
cursor: pointer;
|
|
354
|
+
transition:
|
|
355
|
+
background 0.15s ease,
|
|
356
|
+
filter 0.15s ease;
|
|
357
|
+
|
|
358
|
+
/* Mixed from currentColor so the wash cannot drift from the border colour. */
|
|
359
|
+
&:hover:not(:disabled) {
|
|
360
|
+
background: color-mix(in srgb, currentColor 6%, transparent);
|
|
361
|
+
}
|
|
362
|
+
&:active:not(:disabled) {
|
|
363
|
+
filter: brightness(0.97);
|
|
364
|
+
}
|
|
365
|
+
&:disabled {
|
|
366
|
+
opacity: 0.55;
|
|
367
|
+
cursor: default;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
/* Mobile keeps the full 40px button and thins the outline to 1px (1182:236892) rather than shrinking
|
|
371
|
+
the type, which had it reading smaller than the row title beside it. */
|
|
372
|
+
${W} {
|
|
373
|
+
border-width: 1px;
|
|
374
|
+
}
|
|
375
|
+
`,En=i.div`
|
|
376
|
+
display: flex;
|
|
377
|
+
flex-direction: column;
|
|
378
|
+
gap: 24px;
|
|
379
|
+
`,Pn=i.div`
|
|
380
|
+
position: relative;
|
|
381
|
+
display: flex;
|
|
382
|
+
align-items: stretch;
|
|
383
|
+
gap: 12px;
|
|
384
|
+
/* No fill: the line is drawn by its border alone, over whatever the panel behind it is. A third
|
|
385
|
+
translucent layer here is what pushed this card to 78% black in the previous pass (see Top), and it
|
|
386
|
+
buys nothing — the white design separated these lines with a border too, the card being white on a
|
|
387
|
+
white panel. */
|
|
388
|
+
border: 1px solid ${d.cardLine};
|
|
389
|
+
border-radius: ${oe.card};
|
|
390
|
+
overflow: hidden;
|
|
391
|
+
|
|
392
|
+
&[data-unavailable] [data-thumb] {
|
|
393
|
+
opacity: 0.5;
|
|
394
|
+
}
|
|
395
|
+
&[data-unavailable] [data-check] {
|
|
396
|
+
display: none;
|
|
397
|
+
}
|
|
398
|
+
&[data-unavailable] [data-desc] {
|
|
399
|
+
opacity: 0.7;
|
|
400
|
+
}
|
|
401
|
+
`,zn=i.div`
|
|
402
|
+
position: relative;
|
|
403
|
+
flex-shrink: 0;
|
|
404
|
+
/* The thumb is what sets the row's height — nothing else in the line is taller — so this is where a
|
|
405
|
+
cart line is made to feel less cramped. A quarter above Figma's 137.5x137, which read small against
|
|
406
|
+
a row this wide, and small is what a buyer sees of an item they are about to pay for. */
|
|
407
|
+
width: 172px;
|
|
408
|
+
height: 171px;
|
|
409
|
+
background: ${d.media};
|
|
410
|
+
border-radius: ${oe.card};
|
|
411
|
+
display: grid;
|
|
412
|
+
place-items: center;
|
|
413
|
+
overflow: hidden;
|
|
414
|
+
|
|
415
|
+
& img {
|
|
416
|
+
width: 83%;
|
|
417
|
+
height: 83%;
|
|
418
|
+
object-fit: contain;
|
|
419
|
+
filter: drop-shadow(0.56px 2.25px 2.8px rgba(0, 0, 0, 0.1));
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/* Just above the single-column breakpoint the summary is still a fixed 615px, so the cart column is only
|
|
423
|
+
~334px and a 172px thumb left the name and the price nothing — the price clipped outright. Step the
|
|
424
|
+
thumb down over that range. BELOW the breakpoint there is no problem: the grid is one column there and
|
|
425
|
+
the row gets the full width. Measured with the longest real price (11K, quantity 2): clipping is gone
|
|
426
|
+
from 1120px up, and at 1181px the full-size thumb fits again with room to spare. */
|
|
427
|
+
${kn} {
|
|
428
|
+
width: 120px;
|
|
429
|
+
height: 120px;
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
${W} {
|
|
433
|
+
width: 120px;
|
|
434
|
+
height: 120px;
|
|
435
|
+
}
|
|
436
|
+
`,_n=i(Yt)`
|
|
437
|
+
position: absolute;
|
|
438
|
+
inset: 0;
|
|
439
|
+
display: grid;
|
|
440
|
+
place-items: center;
|
|
441
|
+
`,Bn=i.span`
|
|
442
|
+
position: absolute;
|
|
443
|
+
top: 7.5px;
|
|
444
|
+
left: 7.5px;
|
|
445
|
+
width: 20px;
|
|
446
|
+
height: 20px;
|
|
447
|
+
border-radius: 50%;
|
|
448
|
+
background: #34ce77;
|
|
449
|
+
display: grid;
|
|
450
|
+
place-items: center;
|
|
451
|
+
`,qn=i.div`
|
|
452
|
+
flex: 1;
|
|
453
|
+
min-width: 0;
|
|
454
|
+
display: flex;
|
|
455
|
+
flex-direction: column;
|
|
456
|
+
justify-content: space-between;
|
|
457
|
+
gap: 8px;
|
|
458
|
+
padding: 16px 8px;
|
|
459
|
+
|
|
460
|
+
${W} {
|
|
461
|
+
padding: 12px 4px 12px 0;
|
|
462
|
+
}
|
|
463
|
+
`,Rn=i.div`
|
|
464
|
+
display: flex;
|
|
465
|
+
flex-direction: column;
|
|
466
|
+
gap: 4px;
|
|
467
|
+
min-width: 0;
|
|
468
|
+
padding-right: 64px; /* clear the top-right favourite + remove group */
|
|
469
|
+
`,aa=Je`
|
|
470
|
+
display: block;
|
|
471
|
+
font-size: 16px;
|
|
472
|
+
font-weight: 600;
|
|
473
|
+
line-height: 1.2;
|
|
474
|
+
color: ${d.softWhite};
|
|
475
|
+
text-decoration: none;
|
|
476
|
+
overflow: hidden;
|
|
477
|
+
text-overflow: ellipsis;
|
|
478
|
+
white-space: nowrap;
|
|
479
|
+
|
|
480
|
+
/* Underline, not a colour change: the ink here is already softWhite, so the old hover colour matched
|
|
481
|
+
the resting one and the link announced nothing on hover. */
|
|
482
|
+
a&:hover {
|
|
483
|
+
text-decoration: underline;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
${W} {
|
|
487
|
+
white-space: normal;
|
|
488
|
+
display: -webkit-box;
|
|
489
|
+
-webkit-line-clamp: 2;
|
|
490
|
+
line-clamp: 2;
|
|
491
|
+
-webkit-box-orient: vertical;
|
|
492
|
+
}
|
|
493
|
+
`,Ln=i.div`
|
|
494
|
+
${aa};
|
|
495
|
+
`,Fn=i(Yt)`
|
|
496
|
+
${aa};
|
|
497
|
+
`,Nn=i(Aa)`
|
|
498
|
+
font-size: 10px;
|
|
499
|
+
line-height: 1.43;
|
|
500
|
+
color: ${d.gray4};
|
|
501
|
+
|
|
502
|
+
& [data-avatar] {
|
|
503
|
+
display: none;
|
|
504
|
+
}
|
|
505
|
+
/* The shared badge switches this to its dark ink on hover (badge.styles), which was drawn for a white
|
|
506
|
+
card and lands around 1.1:1 here — the name disappears under the cursor. */
|
|
507
|
+
&[data-link]:hover [data-testid='creator-name'] {
|
|
508
|
+
color: ${d.softWhite};
|
|
509
|
+
}
|
|
510
|
+
& [data-testid='creator-name'] {
|
|
511
|
+
font-size: 10px;
|
|
512
|
+
line-height: 1.43;
|
|
513
|
+
}
|
|
514
|
+
`,Kn=i.div`
|
|
515
|
+
display: flex;
|
|
516
|
+
align-items: center;
|
|
517
|
+
justify-content: space-between;
|
|
518
|
+
gap: 12px;
|
|
519
|
+
padding-right: 8px;
|
|
520
|
+
`,Qn=i.div`
|
|
521
|
+
display: inline-flex;
|
|
522
|
+
align-items: center;
|
|
523
|
+
gap: 8px;
|
|
524
|
+
padding: 6px;
|
|
525
|
+
border: 0.5px solid ${d.cardLine};
|
|
526
|
+
border-radius: ${oe.pill};
|
|
527
|
+
`,Dt=i.button`
|
|
528
|
+
display: grid;
|
|
529
|
+
place-items: center;
|
|
530
|
+
width: 16px;
|
|
531
|
+
height: 16px;
|
|
532
|
+
padding: 0;
|
|
533
|
+
border: 0;
|
|
534
|
+
background: none;
|
|
535
|
+
color: ${d.softWhite};
|
|
536
|
+
cursor: pointer;
|
|
537
|
+
|
|
538
|
+
&:disabled {
|
|
539
|
+
color: ${d.gray4};
|
|
540
|
+
cursor: default;
|
|
541
|
+
}
|
|
542
|
+
`,Un=i.span`
|
|
543
|
+
min-width: 12px;
|
|
544
|
+
font-size: 14px;
|
|
545
|
+
font-weight: 500;
|
|
546
|
+
line-height: 1.2;
|
|
547
|
+
color: ${d.softWhite};
|
|
548
|
+
text-align: center;
|
|
549
|
+
`,On=i.div`
|
|
550
|
+
display: inline-flex;
|
|
551
|
+
align-items: center;
|
|
552
|
+
gap: 4px;
|
|
553
|
+
/* Always right-aligned: with a stepper present space-between handles it; for secondary/unique lines
|
|
554
|
+
(no stepper) the auto margin keeps the lone price on the right instead of falling to the left. */
|
|
555
|
+
margin-left: auto;
|
|
556
|
+
font-size: 24px;
|
|
557
|
+
font-weight: 600;
|
|
558
|
+
color: ${d.softWhite};
|
|
559
|
+
|
|
560
|
+
${W} {
|
|
561
|
+
font-size: 20px;
|
|
562
|
+
}
|
|
563
|
+
`,Gn=i(Ae)`
|
|
564
|
+
width: 24px;
|
|
565
|
+
height: 24px;
|
|
566
|
+
background: ${d.softWhite};
|
|
567
|
+
|
|
568
|
+
${W} {
|
|
569
|
+
width: 20px;
|
|
570
|
+
height: 20px;
|
|
571
|
+
}
|
|
572
|
+
`,Hn=i.span`
|
|
573
|
+
margin-left: 6px;
|
|
574
|
+
font-size: 14px;
|
|
575
|
+
font-weight: 500;
|
|
576
|
+
color: ${d.gray4};
|
|
577
|
+
text-decoration: line-through;
|
|
578
|
+
`,Dn=i.div`
|
|
579
|
+
position: absolute;
|
|
580
|
+
top: 9px;
|
|
581
|
+
right: 7px;
|
|
582
|
+
display: flex;
|
|
583
|
+
align-items: flex-start;
|
|
584
|
+
gap: 12px;
|
|
585
|
+
`,Vn=i.span`
|
|
586
|
+
display: inline-flex;
|
|
587
|
+
align-items: center;
|
|
588
|
+
gap: 4px;
|
|
589
|
+
font-size: 12px;
|
|
590
|
+
font-weight: 600;
|
|
591
|
+
line-height: 1;
|
|
592
|
+
text-transform: uppercase;
|
|
593
|
+
color: ${d.softWhite};
|
|
594
|
+
`,Xn=i(X)`
|
|
595
|
+
color: #f48221;
|
|
596
|
+
`,Yn=i.span`
|
|
597
|
+
align-self: flex-start;
|
|
598
|
+
display: inline-flex;
|
|
599
|
+
align-items: center;
|
|
600
|
+
gap: 4px;
|
|
601
|
+
padding: 2px 4px;
|
|
602
|
+
border-radius: ${oe.chip};
|
|
603
|
+
background: ${d.glass};
|
|
604
|
+
font-size: 10px;
|
|
605
|
+
font-weight: 400;
|
|
606
|
+
line-height: 14px;
|
|
607
|
+
color: ${d.softWhite};
|
|
608
|
+
`,Jn=i(X)`
|
|
609
|
+
width: 11.31px;
|
|
610
|
+
height: 10.94px;
|
|
611
|
+
background: ${d.softWhite};
|
|
612
|
+
`,sa=Je`
|
|
613
|
+
display: grid;
|
|
614
|
+
place-items: center;
|
|
615
|
+
width: 24px;
|
|
616
|
+
height: 24px;
|
|
617
|
+
padding: 0;
|
|
618
|
+
border: 0;
|
|
619
|
+
background: none;
|
|
620
|
+
color: ${d.gray4};
|
|
621
|
+
cursor: pointer;
|
|
622
|
+
transition: color 0.12s ease;
|
|
623
|
+
|
|
624
|
+
&:disabled {
|
|
625
|
+
opacity: 0.5;
|
|
626
|
+
cursor: default;
|
|
627
|
+
}
|
|
628
|
+
`,Zn=i.button`
|
|
629
|
+
${sa};
|
|
630
|
+
|
|
631
|
+
&:hover:not(:disabled) {
|
|
632
|
+
color: ${d.softWhite};
|
|
633
|
+
}
|
|
634
|
+
&[data-on] {
|
|
635
|
+
color: ${d.dclRed};
|
|
636
|
+
}
|
|
637
|
+
`,ei=i.button`
|
|
638
|
+
${sa};
|
|
639
|
+
|
|
640
|
+
&:hover:not(:disabled) {
|
|
641
|
+
color: ${d.dclRed};
|
|
642
|
+
}
|
|
643
|
+
`,ti=i.div`
|
|
644
|
+
display: flex;
|
|
645
|
+
gap: 20px;
|
|
646
|
+
margin-top: 16px;
|
|
647
|
+
|
|
648
|
+
& .link {
|
|
649
|
+
font-size: 13px;
|
|
650
|
+
color: ${d.gray4};
|
|
651
|
+
font-weight: 600;
|
|
652
|
+
}
|
|
653
|
+
& .link:hover:not(:disabled) {
|
|
654
|
+
color: ${d.softWhite};
|
|
655
|
+
}
|
|
656
|
+
`,ai=i.aside`
|
|
657
|
+
position: sticky;
|
|
658
|
+
top: 172px;
|
|
659
|
+
display: flex;
|
|
660
|
+
flex-direction: column;
|
|
661
|
+
background: ${d.overlayLight};
|
|
662
|
+
box-shadow: 0 1px 3px rgba(22, 21, 24, 0.06);
|
|
663
|
+
border-radius: 16px;
|
|
664
|
+
padding: 32px;
|
|
665
|
+
|
|
666
|
+
/* PaymentCtas renders both here and inside the checkout modal, whose shell is still white, so its
|
|
667
|
+
defaults were picked against white and only break on this card. Overridden in the summary's scope
|
|
668
|
+
rather than in the component, so the modal keeps what works there.
|
|
669
|
+
|
|
670
|
+
The focus ring is the blocking one: accent (#691fa9) against this card measures 1.2:1, and 1.65:1 on
|
|
671
|
+
the mobile bar, where WCAG 1.4.11 asks 3:1 of a focus indicator — on the page's main action, for the
|
|
672
|
+
one kind of user who depends on it. The shortfall note is the same muted-ink problem already fixed
|
|
673
|
+
for Msg. */
|
|
674
|
+
button:focus-visible {
|
|
675
|
+
outline-color: ${d.softWhite};
|
|
676
|
+
}
|
|
677
|
+
[data-testid='mana-shortfall-note'] {
|
|
678
|
+
color: ${d.gray4};
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
${ta} {
|
|
682
|
+
position: static;
|
|
683
|
+
}
|
|
684
|
+
${W} {
|
|
685
|
+
position: fixed;
|
|
686
|
+
left: 0;
|
|
687
|
+
right: 0;
|
|
688
|
+
top: auto;
|
|
689
|
+
bottom: 0;
|
|
690
|
+
z-index: 30;
|
|
691
|
+
border: 0;
|
|
692
|
+
/* Square and hard-edged against the page (1182:236910): it is a bar docked to the bottom, not a sheet
|
|
693
|
+
lifted off it. */
|
|
694
|
+
border-radius: 0;
|
|
695
|
+
/* Back to the compact padding: the desktop card's roomier one would make the docked bar taller than
|
|
696
|
+
the space Checkout reserves for it, and the bar would cover the last cart line. */
|
|
697
|
+
padding: 16px;
|
|
698
|
+
/* Opaque, unlike the desktop card. This one is docked to the viewport and the whole cart scrolls
|
|
699
|
+
underneath it, so a translucent fill showed the list through the total and the CTA — over one of
|
|
700
|
+
the light item thumbnails, softWhite measured 1.72:1. The token is the field's bottom stop with
|
|
701
|
+
this same wash composited in, so the bar matches where it sits. */
|
|
702
|
+
background: ${d.fieldBottomWashed};
|
|
703
|
+
box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.25);
|
|
704
|
+
}
|
|
705
|
+
`,si=i.h2`
|
|
706
|
+
margin: 0 0 32px;
|
|
707
|
+
padding-bottom: 20px;
|
|
708
|
+
border-bottom: 1px solid ${d.cardLine};
|
|
709
|
+
font-size: 24px;
|
|
710
|
+
font-weight: 600;
|
|
711
|
+
color: ${d.softWhite};
|
|
712
|
+
|
|
713
|
+
${W} {
|
|
714
|
+
margin-bottom: 12px;
|
|
715
|
+
padding-bottom: 8px;
|
|
716
|
+
font-size: 16px;
|
|
717
|
+
line-height: 1.6;
|
|
718
|
+
}
|
|
719
|
+
`,ni=i.div`
|
|
720
|
+
display: flex;
|
|
721
|
+
flex-direction: column;
|
|
722
|
+
gap: 28px;
|
|
723
|
+
|
|
724
|
+
/* Same reason as Summary's padding: the mobile bar is docked and its height is budgeted for. */
|
|
725
|
+
${W} {
|
|
726
|
+
gap: 12px;
|
|
727
|
+
}
|
|
728
|
+
`,ii=i.div`
|
|
729
|
+
display: flex;
|
|
730
|
+
align-items: flex-start;
|
|
731
|
+
justify-content: space-between;
|
|
732
|
+
gap: 12px;
|
|
733
|
+
`,ri=i.span`
|
|
734
|
+
font-size: 14px;
|
|
735
|
+
font-weight: 600;
|
|
736
|
+
line-height: 1.57;
|
|
737
|
+
color: ${d.gray4};
|
|
738
|
+
`,oi=i.span`
|
|
739
|
+
display: inline-flex;
|
|
740
|
+
align-items: center;
|
|
741
|
+
gap: 8px;
|
|
742
|
+
font-size: 24px;
|
|
743
|
+
font-weight: 700;
|
|
744
|
+
color: ${d.softWhite};
|
|
745
|
+
`,ci=i.span`
|
|
746
|
+
display: flex;
|
|
747
|
+
flex-direction: column;
|
|
748
|
+
align-items: flex-end;
|
|
749
|
+
justify-content: center;
|
|
750
|
+
gap: 4px;
|
|
751
|
+
`;i.span`
|
|
752
|
+
font-size: 12px;
|
|
753
|
+
font-weight: 400;
|
|
754
|
+
line-height: 1;
|
|
755
|
+
color: ${d.gray4};
|
|
756
|
+
`;const di=i(Ae)`
|
|
757
|
+
width: 30px;
|
|
758
|
+
height: 30px;
|
|
759
|
+
background: ${d.softWhite};
|
|
760
|
+
-webkit-mask-size: 24px 24px;
|
|
761
|
+
mask-size: 24px 24px;
|
|
762
|
+
-webkit-mask-position: left center;
|
|
763
|
+
mask-position: left center;
|
|
764
|
+
`;i.button`
|
|
765
|
+
width: 100%;
|
|
766
|
+
height: 56px;
|
|
767
|
+
border: 0;
|
|
768
|
+
border-radius: ${oe.btn};
|
|
769
|
+
background: ${vn.buyBtn};
|
|
770
|
+
color: ${d.softWhite};
|
|
771
|
+
font-size: 15px;
|
|
772
|
+
font-weight: 600;
|
|
773
|
+
letter-spacing: 0.046em;
|
|
774
|
+
text-transform: uppercase;
|
|
775
|
+
cursor: pointer;
|
|
776
|
+
transition: background-image 0.15s ease;
|
|
777
|
+
|
|
778
|
+
/* Primary hover/pressed is the solid Primary red (Figma 738:53252 / 738:53262) — the gradient is
|
|
779
|
+
the RESTING fill only. Painted as a flat GRADIENT, not a background-color: the shorthand can't
|
|
780
|
+
interpolate background-image, so gradient -> colour dropped the image midway while the colour was
|
|
781
|
+
still half transparent and the button visibly blinked. Same property both ends = a clean swap. */
|
|
782
|
+
&:hover:not(:disabled),
|
|
783
|
+
&:active:not(:disabled) {
|
|
784
|
+
background-image: linear-gradient(${d.dclRed}, ${d.dclRed});
|
|
785
|
+
}
|
|
786
|
+
&:disabled {
|
|
787
|
+
opacity: 0.6;
|
|
788
|
+
cursor: default;
|
|
789
|
+
}
|
|
790
|
+
`;const na=Je`
|
|
791
|
+
margin: 0;
|
|
792
|
+
font-size: 13px;
|
|
793
|
+
|
|
794
|
+
/* These carry the global .muted class, whose ink was chosen against white — on the summary's card it
|
|
795
|
+
measures 4.10:1, under AA. Matching the two-class specificity overrides it without !important. */
|
|
796
|
+
&.muted {
|
|
797
|
+
color: ${d.gray4};
|
|
798
|
+
}
|
|
799
|
+
`,$e=i.p`
|
|
800
|
+
${na};
|
|
801
|
+
`,li=i(rn)`
|
|
802
|
+
${na};
|
|
803
|
+
|
|
804
|
+
/* The shared notice was drawn against a white card: near-black message ink and the flat error red for
|
|
805
|
+
the icon. On this translucent purple they measure 1.56:1 and 2.78:1 — the message is effectively
|
|
806
|
+
invisible. It is the checkout failure sitting beside the CTA, announced with role="alert", so it has
|
|
807
|
+
to survive the move off white. The icon keeps a red so the notice still reads as an error. */
|
|
808
|
+
.error-notice__msg {
|
|
809
|
+
color: ${d.softWhite};
|
|
810
|
+
}
|
|
811
|
+
.error-notice__ico {
|
|
812
|
+
color: ${d.saleTag};
|
|
813
|
+
}
|
|
814
|
+
`,Vt=i.div`
|
|
815
|
+
position: relative;
|
|
816
|
+
flex: 1 0 auto;
|
|
817
|
+
/* The padding is the whole gap from the top of the section to the heading; the shared carousel's own
|
|
818
|
+
top margin is zeroed below so the two don't stack. It is the only gap now — the 48px margin that used
|
|
819
|
+
to sit on top of it was clearing the old opaque band's edge, which no longer needs clearing. */
|
|
820
|
+
padding: 32px 0 24px;
|
|
821
|
+
|
|
822
|
+
& section {
|
|
823
|
+
margin-top: 0;
|
|
824
|
+
}
|
|
825
|
+
`;function Ve(n){if(sn(n))return a("errors.rejected");const l=(n.message??"").toLowerCase();return l.includes("insufficient")?a("cart.error.insufficient",{currency:Me.name}):l.includes("no active listing")||l.includes("your own listing")?a("cart.error.listingChanged"):a("marketCheckout.error.generic")}const hi=12e4;function ui(n){const l=[];return n.unavailable.length&&l.push(a("cart.drop.unavailable",{count:n.unavailable.length})),n.own.length&&l.push(a("cart.drop.own",{count:n.own.length})),a("cart.drop.removed",{items:l.join(` ${a("cart.drop.and")} `)})}const Xe=n=>n.reduce((l,j)=>l+j.priceCredits*j.quantity,0),Se=n=>n.flatMap(l=>Array.from({length:l.quantity},()=>({...l,quantity:1}))),Xt=8;function Ai(){var $t,St,Mt;Wa({title:a("nav.cart"),noindex:!0});const n=H(t=>t.items),l=H(t=>t.remove),j=H(t=>t.increment),$=H(t=>t.decrement),z=H(t=>t.clear),U=H(t=>t.restore),O=H(t=>t.setFittingOpen),G=Tt(t=>t.items),M=Tt(t=>t.toggle),{session:r,signIn:Ze}=Ia(),ia=Ea(),ge=Xs().packs.slice(0,Ys);T.useEffect(()=>(document.body.classList.add("shop-cart-bg"),()=>document.body.classList.remove("shop-cart-bg")),[]);const ra=n.some(t=>t.category!=="emote"),{data:Ie}=Pa({queryKey:["upsell-listings"],queryFn:()=>ts({first:40}),staleTime:6e4}),{data:k}=za(r),y=_a(),Y=Sa(),{state:_}=Ma(),[oa,ce]=T.useState(null),[et,fe]=T.useState(null),[ca,q]=T.useState(!1),[R,D]=T.useState(null),tt=T.useRef(0),[h,S]=T.useState(null),{data:me}=Ba(r),{data:de}=qa(!0),[Ee,at]=T.useState(""),le=T.useRef(null),st=Ra(n),nt=t=>Wt(st[t.id]),Pe=n.filter(nt),it=n.length>0&&Pe.length===0,da=Pe.reduce((t,s)=>t+s.priceCredits*s.quantity,0),la=n.reduce((t,s)=>t+s.quantity,0),ha=Pe.reduce((t,s)=>t+s.quantity,0),rt=R?R.liveTotalCredits:da,ua=new Set(n.map(t=>t.id)),ot=((Ie==null?void 0:Ie.items)??[]).filter(t=>!ua.has(t.id)).slice(0,12),ct=T.useMemo(()=>n.map(t=>t.contractAddress&&t.itemId?`${t.contractAddress.toLowerCase()}-${t.itemId}`:null).filter(t=>t!==null),[n]),te=La(Xt,{exclude:ct}),dt=Fa({enabled:te.enabled,hasSignal:te.hasSignal,isLoading:te.isLoading,isError:te.isError,personalized:($t=te.result)==null?void 0:$t.personalized,rowCount:Na(((St=te.result)==null?void 0:St.data)??[]).length}),pa=new Map(R==null?void 0:R.buyable.map(t=>[t.item.id,t])),xe=(k==null?void 0:k.credits)??0,ze=rt*10,ga=de?At(ze,de):0n,_e=Qe({priceCents:ze,priceManaWei:ga,balanceCents:(k==null?void 0:k.balanceCents)??0,manaBalanceWei:me??0n}),fa=t=>t.flatMap(s=>{const o=Ge(s);return o.kind==="store"?[o.mint]:[]}),ma=t=>t.flatMap(s=>s.acquisition==="trade"?[s.trade]:[]),xa=t=>Object.fromEntries(t.flatMap(s=>s.acquisition==="trade"&&s.coupon?[[s.trade.id,s.coupon]]:[])),ba=Da,ya=t=>Ya(t.contractAddress,String(t.itemId));function be(t){t(),D(null),fe(null),ce(null)}function wa(){S(null),q(!1)}function lt(t){const s=Xe(t),o=Math.max(0,s-xe),c=ge.find(u=>u.credits>=o)??ge[ge.length-1];at(c.id),V("Shop Buy Credits Prompted",{from:"cart_checkout",credits_needed:s,credits_balance:xe,shortfall:o}),S({phase:"nofunds",lines:t.map(u=>({item:u.item,priceCredits:u.priceCredits,quantity:u.quantity})),shortfall:o}),q(!1)}async function Be(t){if(!r||t.length===0)return;const s=Se(t),o=s.map(x=>({...x.item,priceCredits:x.priceCredits})),c=t.map(x=>({...x.item,priceCredits:x.priceCredits,quantity:x.quantity})),u=[];let w="authorize";const f=new Set,A=new Set,F=new Set,L=[];let v=!1;S({phase:"processing",stage:"reserving",step:1,total:s.length});try{const x=[],E=tn(s,Kt);let N=0;for(const p of E){S({phase:"processing",stage:"reserving",step:N+1,total:s.length});try{const{credit:m,maxCreditedValue:b}=await Ja(r.identity,p.units.map(an));p.units.forEach((Q,ne)=>{u.push({salt:m.id,itemId:Q.item.id}),x.push({...p.drafts[ne],credits:[m],maxCreditedValue:b})}),N+=p.units.length}catch(m){if(nn(m)){if(u.length){try{await Ke(r.identity,[...new Set(u.map(b=>b.salt))])}catch(b){ie(b,{flow:"cart_checkout",step:"release"})}y.invalidateQueries({queryKey:["usd-balance"]})}lt(t);return}throw m}}u.length&&y.invalidateQueries({queryKey:["usd-balance"]}),w="submit";const K=Os(x).length,ee=p=>K>1?{current:p,total:K}:void 0,B=(p,m)=>S({phase:"processing",stage:p,step:s.length,total:s.length,signatures:ee(m)}),C=p=>p<K?B("awaiting-signature",p+1):B("settling",K);B("awaiting-signature",1);let g=[];const I=new Map,ae=async p=>{const m=await Promise.allSettled(p.map(b=>Gs(b)));return m.forEach((b,Q)=>{const ne=I.get(p[Q])??[];b.status==="fulfilled"?(ne.forEach(Re=>A.add(Re)),L.push(p[Q])):b.reason instanceof Oe||ne.forEach(Re=>F.add(Re))}),m.flatMap(b=>b.status==="rejected"?[b.reason]:[])};if(Ls())try{let p=0;g=await Hs({purchases:x,buyer:r.address,signer:r.signer,identity:r.identity,onSigned:()=>B("settling",Math.min(p+1,K)),onBroadcast:({txHash:b,salts:Q})=>{p+=1,I.set(b,Q),Q.forEach(ne=>f.add(ne))},onGroupSettling:({settled:b})=>B("settling",b)});const m=await ae(g);if(m.length&&!m.some(b=>b instanceof Oe))throw m[0];v=!0}catch(p){if(p instanceof Oe)throw await ae([...I.keys()]),p;if(!(p instanceof Ds)||!Za(r.providerType))throw p;g=await Ue({purchases:x,buyer:r.address,signer:r.signer,onSigned:C,onBroadcast:({salts:m})=>m.forEach(b=>f.add(b)),onSettled:({txHash:m,salts:b})=>{b.forEach(Q=>A.add(Q)),L.push(m)},onReverted:({salts:m})=>m.forEach(b=>F.add(b))})}else g=await Ue({purchases:x,buyer:r.address,signer:r.signer,onSigned:C,onBroadcast:({salts:p})=>p.forEach(m=>f.add(m)),onSettled:({txHash:p,salts:m})=>{m.forEach(b=>A.add(b)),L.push(p)},onReverted:({salts:p})=>p.forEach(m=>F.add(m))});t.forEach(p=>l(p.item.id)),D(null),V("Shop Completed Purchase",{...ve(o),payment_type:"credits",no_crypto_step:v,transaction_hash:g[0]??null}),Bt(o.map(p=>p.coupon)),qt(y);const we=le.current;le.current=null,S(null),q(!1);const se={items:c,txHash:g[0]??void 0,txHashes:g,settled:!0,...we?{creditsAdded:we}:{}};Y("/success",{state:se,replace:!0})}catch(x){Ce(x)||ie(x,{flow:"cart_checkout",step:w,cart_size:t.length});const E=new Set([...f].filter(g=>!F.has(g))),{toRelease:N,boughtItemIds:K}=Qt({reservations:u,spent:E,settled:A}),ee=[...E].some(g=>!A.has(g)),B=o.filter(g=>K.includes(g.id)),C=o.filter(g=>!K.includes(g.id));if(V(Ce(x)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:w,error_code:Et(x),value_usd:It(C.reduce((g,I)=>g+I.priceCredits,0)),cart_size:s.length,partial:B.length>0}),N.length)try{await Ke(r.identity,N)}catch(g){ie(g,{flow:"cart_checkout",step:"release"})}if(y.invalidateQueries({queryKey:["usd-balance"]}),B.length>0){K.forEach(g=>l(g)),D(null),Bt(B.map(g=>g.coupon)),qt(y),V("Shop Completed Purchase",{...ve(B),payment_type:"credits",no_crypto_step:v,transaction_hash:L[0]??null,partial:!0}),S({phase:"error",message:a("cart.error.partiallyBought"),heldCredits:ee}),q(!1);return}S({phase:"error",message:ee?void 0:Ve(x),heldCredits:ee})}}function ht(t,s){y.invalidateQueries({queryKey:["usd-balance"]}),y.invalidateQueries({queryKey:["detail-trade"]}),y.invalidateQueries({queryKey:["shop-item"]}),y.invalidateQueries({queryKey:["owned-token"]}),y.invalidateQueries({queryKey:["public-token"]}),y.invalidateQueries({queryKey:["item-resales"]}),y.invalidateQueries({queryKey:["shop-items"]}),y.invalidateQueries({queryKey:["catalog-items"]}),y.invalidateQueries({queryKey:["my-assets"]}),y.invalidateQueries({queryKey:["purchases"]}),y.invalidateQueries({queryKey:["owned-item-count"]}),y.invalidateQueries({queryKey:["overview-listings"]}),y.invalidateQueries({queryKey:["upsell-listings"]});const o=le.current;le.current=null,S(null),q(!1);const c={items:t,txHash:s[0]??void 0,txHashes:s,settled:!0,...o?{creditsAdded:o}:{}};Y("/success",{state:c,replace:!0})}function ut(t,s){Ce(t)||ie(t,{flow:s,step:"submit"}),V(Ce(t)?"Shop Purchase Cancelled":"Shop Purchase Failed",{step:"submit",error_code:Et(t)}),S({phase:"error",message:Ve(t)}),q(!1)}async function va(t,s,o){const c=Pt(zt.MANAToken,s),u=Pt(zt.CreditsManager,s);await Qs({auth:{kind:Us.Allowance,contractAddress:c.address,spenderAddress:u.address,chainId:s},signer:t,requiredWei:o})}async function pt(){if(de)return de;try{return await y.fetchQuery(Xa())}catch{return}}async function Ca(t){const s=Se(t).reduce((w,f)=>w+f.usdCents,0),c=(me??0n)>0n?await pt():de,u=c?At(s,c):0n;return{totalCents:s,manaWei:u}}async function gt(t,s){const o=Xe(t),{totalCents:c,manaWei:u}=await Ca(t),w=Qe({priceCents:c,priceManaWei:u,balanceCents:(k==null?void 0:k.balanceCents)??0,manaBalanceWei:me??0n});if(s&&w.options.some(f=>f.method===s)){if(s==="credits"){Be(t);return}const f=bt(w,s);await mt(ft(s,t),f,()=>s==="mana"?void yt(t,f):void wt(t,c,u));return}if(w.options.some(f=>f.method==="mana"||f.method==="combined")){S({phase:"choose",lines:t,totalCents:c,manaWei:u}),q(!1);return}if(k!=null&&k.credits<o){lt(t);return}Be(t)}function qe(t){return Qe({priceCents:t.totalCents,priceManaWei:t.manaWei,balanceCents:(k==null?void 0:k.balanceCents)??0,manaBalanceWei:me??0n})}const[he,ye]=T.useState(null);function ft(t,s){const o=new Map;for(const c of s){const u=os(t,Ge(c));o.set(`${u.chainId}:${u.spender.toLowerCase()}`,u)}return[...o.values()]}async function mt(t,s,o){const c=[];for(const{spender:u,chainId:w}of t){const f=Fs(w,u),A=r?await Ns(f,r.address,s).catch(()=>!0):!0;Ks(r==null?void 0:r.providerType,A)&&c.push(f)}if(c.length===0){o();return}q(!1),xt(c,0,o)}function xt(t,s,o){ye({auth:t[s],index:s+1,total:t.length,run:()=>s+1<t.length?xt(t,s+1,o):o()})}function bt(t,s){var o;return((o=t.options.find(c=>c.method===s))==null?void 0:o.manaWei)??0n}function ka(t){if((h==null?void 0:h.phase)!=="choose")return;const{lines:s,totalCents:o,manaWei:c}=h;if(t==="credits"){Be(s);return}const u=bt(qe(h),t);mt(ft(t,s),u,()=>t==="mana"?void yt(s,u):void wt(s,o,c))}async function yt(t,s){if(!r||t.length===0)return;const o=Se(t),c=o.map(f=>({...f.item,priceCredits:f.priceCredits})),u=t.map(f=>({...f.item,priceCredits:f.priceCredits,quantity:f.quantity})),w=()=>S({phase:"processing",stage:"settling",step:o.length,total:o.length});S({phase:"processing",stage:"awaiting-signature",step:o.length,total:o.length});try{const f=await cs({trades:ma(o),coupons:xa(o),mints:fa(o),buyer:r.address,signer:r.signer,onSigned:w,manaWei:s});t.forEach(A=>l(A.item.id)),D(null),V("Shop Completed Purchase",{...ve(c),payment_type:"mana",transaction_hash:f[0]??null}),y.invalidateQueries({queryKey:["mana-balance"]}),ht(u,f)}catch(f){ut(f,"buy_cart_mana")}}async function wt(t,s,o){if(!r||t.length===0)return;const c=Se(t),u=c.map(v=>({...v.item,priceCredits:v.priceCredits})),w=t.map(v=>({...v.item,priceCredits:v.priceCredits,quantity:v.quantity})),f=qs(c.map(v=>v.usdCents),(k==null?void 0:k.balanceCents)??0),A=[],F=new Set,L=new Set;S({phase:"processing",stage:"reserving",step:1,total:c.length});try{const v=c.map(Ge),x=[],E=new Map,N=new Map;for(let C=0;C<c.length;C++){const g=c[C],I=v[C],ae=f[C],we=Rs(Math.max(0,g.usdCents-ae),s,o);let se;if(ae<=0)se=Rt(I,[],"0");else{S({phase:"processing",stage:"reserving",step:C+1,total:c.length});const m=g.item,{credit:b,maxCreditedValue:Q}=await es(r.identity,ae,I.kind==="trade"?I.trade.id:void 0,m.contractAddress&&m.itemId!=null?{contractAddress:m.contractAddress,itemId:String(m.itemId)}:void 0);A.push({salt:b.id,itemId:m.id}),se=Rt(I,[b],Q)}const p=Kt(se);E.set(p,(E.get(p)??0n)+we),N.has(p)||N.set(p,x.length),x.push(se)}A.length&&y.invalidateQueries({queryKey:["usd-balance"]});for(const[C,g]of E){const I=N.get(C);I==null||g<=0n||(x[I]={...x[I],maxCreditedValue:(BigInt(x[I].maxCreditedValue)+g).toString()})}const K=[...E.values()].reduce((C,g)=>C+g,0n);await va(r.signer,ds(v[0]),K);const ee=()=>S({phase:"processing",stage:"settling",step:c.length,total:c.length});S({phase:"processing",stage:"awaiting-signature",step:c.length,total:c.length});const B=await Ue({purchases:x,buyer:r.address,signer:r.signer,onSigned:ee,onBroadcast:({salts:C})=>C.forEach(g=>F.add(g)),onReverted:({salts:C})=>C.forEach(g=>L.add(g))});t.forEach(C=>l(C.item.id)),D(null),V("Shop Completed Purchase",{...ve(u),payment_type:"credits_and_mana",transaction_hash:B[0]??null}),y.invalidateQueries({queryKey:["mana-balance"]}),ht(w,B)}catch(v){const{toRelease:x}=Qt({reservations:A,spent:new Set([...F].filter(E=>!L.has(E))),settled:new Set});x.length&&Ke(r.identity,x).catch(()=>{}),A.length&&y.invalidateQueries({queryKey:["usd-balance"]}),ut(v,"buy_cart_combined")}}async function J(t){if(!r){_t({type:"cart-checkout"}),Ze();return}const s=H.getState().items.filter(nt);if(s.length===0)return;ce(null),fe(null),q(!0);const o=s.reduce((c,u)=>c+u.priceCredits*u.quantity,0);V("Shop Started Checkout",{checkout_source:"cart",cart_size:s.length,cart_value_credits:o,cart_value_usd:It(o),has_sufficient_credits:xe>=o});try{const c=await Zs(s,r.address,ba,await pt(),ya,Va),u=[...c.unavailable,...c.own];if(u.length&&(u.forEach(w=>l(w.id)),fe(ui(c))),c.buyable.length===0){ce(a("cart.error.noneAvailable")),D(null);return}if(c.orderChanged){D(c),tt.current=Date.now();return}await gt(c.buyable,t)}catch(c){ie(c,{flow:"cart_checkout",step:"review",cart_size:s.length}),ce(Ve(c))}finally{q(!1)}}async function vt(){if(R){if(!r){_t({type:"cart-checkout"}),Ze();return}if(Date.now()-tt.current>hi){D(null),fe(null),await J();return}ce(null),gt(R.buyable)}}async function ja(){if(Ee){try{sessionStorage.setItem(ke,JSON.stringify(H.getState().items))}catch{}q(!0);try{const t=await en(Ee,r?{address:r.address,identity:r.identity}:void 0);if(t.url){window.location.href=t.url;return}if(!t.orderId)throw new Error("Checkout returned neither a redirect url nor an order id");Y(`/credits?order=${encodeURIComponent(t.orderId)}`)}catch(t){try{sessionStorage.removeItem(ke)}catch{}ie(t,{flow:"cart_buy_credits"}),S({phase:"error",message:a("buyModal.error.creditsCheckout")})}finally{q(!1)}}}const Ct=T.useRef(!1);T.useEffect(()=>{if(!r||Ct.current||!ns("cart-checkout"))return;Ct.current=!0;const t=setTimeout(()=>void J(),0);return()=>clearTimeout(t)},[r]);const kt=T.useRef(!1);T.useEffect(()=>{if(!(_!=null&&_.resumeCheckout)||kt.current)return;kt.current=!0,le.current=_.creditsAdded??null;try{const s=sessionStorage.getItem(ke);if(s){sessionStorage.removeItem(ke);const o=JSON.parse(s);Array.isArray(o)&&o.length&&U(o)}}catch{}y.invalidateQueries({queryKey:["usd-balance"]});const t=setTimeout(()=>void J(),0);return()=>clearTimeout(t)},[_==null?void 0:_.resumeCheckout]);const jt=T.useRef(!1);T.useEffect(()=>{if(!(_!=null&&_.startCheckout)||jt.current)return;jt.current=!0,Y(".",{replace:!0,state:null});const t=setTimeout(()=>void J(),0);return()=>clearTimeout(t)},[_==null?void 0:_.startCheckout]);const Z=ca||(h==null?void 0:h.phase)==="processing";if(n.length===0&&!h)return e.jsx(Ot,{children:e.jsxs(Ht,{children:[e.jsxs(Gt,{onClick:()=>Y(-1),type:"button",children:[e.jsx(X,{name:"arrow-left"}),a("nav.cart")]}),e.jsx(Tn,{children:e.jsx(Ka,{testId:"cart-empty",icon:Qa,title:a("cart.empty.title"),body:a("cart.empty.body"),cta:{label:a("cart.empty.cta"),to:"/items"}})})]})});const $a=Js(ge,(h==null?void 0:h.phase)==="nofunds"?h.shortfall:0).packs;return e.jsxs(Ot,{children:[e.jsxs(Ht,{children:[e.jsxs(Gt,{onClick:()=>Y(-1),type:"button",children:[e.jsx(X,{name:"arrow-left"}),a("nav.cart")]}),e.jsxs(jn,{children:[e.jsx($n,{children:e.jsxs(Mn,{children:[e.jsxs(Sn,{children:[e.jsx(An,{onClick:()=>Y(-1),type:"button","aria-label":a("cart.goBack"),children:e.jsx(X,{name:"arrow-left"})}),e.jsx(Wn,{children:a("cart.panelTitle",{count:la})}),ra?e.jsxs(In,{onClick:()=>O(!0),disabled:Z,children:[e.jsx(X,{name:"fitting-room"}),a("cart.fittingRoom")]}):null]}),e.jsx(En,{children:n.map(t=>{const s=pa.get(t.id),o=s?s.priceCredits:t.priceCredits,c=!!s&&s.priceCredits!==t.priceCredits,u=!t.tokenId,w=t.quantity,f=typeof t.available=="number"&&w>=t.available,A=o*w,F=Ua(t),L=!!F&&!!G[F],v=Oa(t),x=st[t.id],E=!Wt(x),N=x==="sold-out"?a("cart.availability.soldOut"):a("cart.availability.unavailable");return e.jsxs(Pn,{"data-unavailable":E||void 0,children:[e.jsxs(zn,{"data-thumb":!0,children:[v?e.jsx(_n,{to:v,state:{item:t,tradeId:t.tradeId},"aria-label":t.name,children:t.thumbnail?e.jsx("img",{src:t.thumbnail,alt:t.name}):null}):t.thumbnail?e.jsx("img",{src:t.thumbnail,alt:t.name}):null,e.jsx(Bn,{"data-check":!0,"aria-hidden":!0,children:e.jsx("svg",{viewBox:"0 0 20 20",width:"12",height:"12",children:e.jsx("path",{d:"M5 10.5l3 3 7-7.5",fill:"none",stroke:"#fff",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),e.jsxs(qn,{children:[e.jsxs(Rn,{"data-desc":!0,children:[v?e.jsx(Fn,{to:v,state:{item:t,tradeId:t.tradeId},title:t.name,children:t.name}):e.jsx(Ln,{title:t.name,children:t.name}),t.creator?e.jsx(Nn,{address:t.creator,linkToProfile:!0}):null,ia&&u?e.jsxs(Yn,{"data-testid":"cart-creator-tag",children:[e.jsx(Jn,{name:"buy-from-creator"}),a("cart.creatorTag")]}):null]}),e.jsx(Kn,{children:E?e.jsxs(Vn,{children:[e.jsx(Xn,{name:"warning-fill",size:24}),N]}):e.jsxs(e.Fragment,{children:[u?e.jsxs(Qn,{children:[e.jsx(Dt,{onClick:()=>be(()=>$(t.id)),disabled:Z||w<=1,"aria-label":a("cart.decreaseQuantity",{name:t.name}),children:e.jsx("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,focusable:"false",children:e.jsx("path",{d:"M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})}),e.jsx(Un,{children:w}),e.jsx(Dt,{onClick:()=>be(()=>j(t.id)),disabled:Z||f,"aria-label":a("cart.increaseQuantity"),children:e.jsx("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":!0,focusable:"false",children:e.jsx("path",{d:"M8 3.5v9M3.5 8h9",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})})})]}):null,e.jsxs(On,{children:[e.jsx(Gn,{})," ",e.jsx(Ne,{credits:A}),c?e.jsx(Hn,{children:e.jsx(Ne,{credits:t.priceCredits*w})}):null]})]})})]}),e.jsxs(Dn,{children:[F?e.jsx(Zn,{"data-on":L||void 0,onClick:()=>M(t),"aria-label":L?a("cart.removeFromFavorites",{name:t.name}):a("cart.addToFavorites",{name:t.name}),title:L?a("assetCard.removeFromFavorites"):a("assetCard.addToFavorites"),children:e.jsx(X,{name:L?"heart-solid":"heart"})}):null,e.jsx(ei,{onClick:()=>be(()=>l(t.id)),disabled:Z,"aria-label":a("cart.remove",{name:t.name}),title:a("cart.removeTitle"),children:e.jsx(X,{name:"trash",size:24})})]})]},t.id)})}),e.jsx(ti,{children:e.jsx("button",{className:"link",onClick:()=>be(z),disabled:Z,children:a("cart.clearCart")})})]})}),e.jsxs(ai,{children:[e.jsx(si,{children:a("cart.purchaseSummary")}),e.jsxs(ni,{children:[e.jsxs(ii,{children:[e.jsx(ri,{children:a("cart.totalItems",{count:ha})}),e.jsx(ci,{children:e.jsxs(oi,{children:[e.jsx(di,{})," ",e.jsx(Ne,{credits:rt})]})})]}),e.jsx(Zt,{options:_e.options,totalCents:ze,shortfall:_e.manaShortfall,showCreditsAmount:!1,creditsLabel:R?a("marketCheckout.confirmPurchase"):_e.options.length>1?a("cart.buyWithCredits"):a("cart.checkout"),busy:Z||it,onPay:t=>void(R?vt():J(t)),creditsFallback:{label:Z?a("cart.working"):R?a("marketCheckout.confirmPurchase"):a("cart.checkout"),onClick:()=>void(R?vt():J())}}),it?e.jsx($e,{className:"muted",children:a("cart.allUnavailable")}):null,r?null:e.jsx($e,{className:"muted",children:a("cart.signInHint")}),R?e.jsx($e,{className:"muted",children:a("cart.priceChanged")}):null,et?e.jsx($e,{className:"muted",children:et}):null,e.jsx(li,{message:oa})]})]})]})]}),dt===null&&e.jsx(Vt,{"data-testid":"cart-personal-upsell",children:e.jsx(Ga,{exclude:ct,title:a("cart.suggestedTitle"),surface:"cart",first:Xt})}),dt!==null&&ot.length>0?e.jsx(Vt,{children:e.jsx(is,{title:a("cart.youMightAlsoLike"),items:ot})}):null,he&&r?e.jsx(rs,{auth:he.auth,signer:r.signer,step:{index:he.index,total:he.total},title:a("authorizeStep.manaTitle"),name:a("authorizeStep.manaName"),reason:a("authorizeStep.manaReason"),icon:e.jsx("img",{src:Te,width:24,height:24,alt:"","aria-hidden":!0}),onAuthorized:()=>{const{run:t}=he;ye(null),t()},onCancel:()=>ye(null),onClose:()=>ye(null)}):null,h?e.jsx(bn,{phase:h.phase,balanceCredits:xe,heldCreditsCount:((Mt=k==null?void 0:k.held)==null?void 0:Mt.credits)??null,onClose:wa,stage:h.phase==="processing"?h.stage:void 0,step:h.phase==="processing"?h.step:void 0,total:h.phase==="processing"?h.total:void 0,isSelfCustody:Ha(r==null?void 0:r.providerType),signatures:h.phase==="processing"?h.signatures:void 0,options:h.phase==="choose"?qe(h).options:void 0,shortfall:h.phase==="choose"?qe(h).manaShortfall:void 0,onPay:ka,totalCents:h.phase==="choose"?h.totalCents:void 0,totalManaWei:h.phase==="choose"?h.manaWei:void 0,totalCredits:h.phase==="choose"?Xe(h.lines):void 0,lines:h.phase==="nofunds"?h.lines:void 0,shortfallCredits:h.phase==="nofunds"?h.shortfall:void 0,packs:$a,selectedPack:Ee,onSelectPack:at,onBuyPacks:()=>void ja(),message:h.phase==="error"?h.message:void 0,heldCredits:h.phase==="error"&&!!h.heldCredits,onRetry:()=>void J()}):null]})}export{Ai as Cart};
|
|
826
|
+
//# sourceMappingURL=Cart-BHCWXLFp.js.map
|