@shopify/cli-hydrogen 4.0.0-alpha.9 → 4.0.0
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/dist/commands/hydrogen/build.d.ts +20 -0
- package/dist/commands/hydrogen/build.js +36 -33
- package/dist/commands/hydrogen/check.d.ts +18 -0
- package/dist/commands/hydrogen/check.js +35 -0
- package/dist/commands/hydrogen/dev.d.ts +14 -0
- package/dist/commands/hydrogen/dev.js +56 -60
- package/dist/commands/hydrogen/generate/route.d.ts +34 -0
- package/dist/commands/hydrogen/generate/route.js +165 -0
- package/dist/commands/hydrogen/generate/route.test.d.ts +1 -0
- package/dist/commands/hydrogen/generate/route.test.js +126 -0
- package/dist/commands/hydrogen/generate/routes.d.ts +16 -0
- package/dist/commands/hydrogen/generate/routes.js +22 -0
- package/dist/commands/hydrogen/init.d.ts +22 -0
- package/dist/commands/hydrogen/init.js +169 -25
- package/dist/commands/hydrogen/preview.d.ts +17 -0
- package/dist/commands/hydrogen/preview.js +2 -2
- package/dist/create-app.d.ts +1 -0
- package/dist/create-app.js +4 -0
- package/dist/{templates/demo-store/app/routes/($lang) → generator-templates/routes}/[robots.txt].tsx +2 -1
- package/dist/{templates/demo-store/app/routes/($lang) → generator-templates/routes}/[sitemap.xml].tsx +8 -6
- package/dist/generator-templates/routes/account/login.tsx +74 -0
- package/dist/generator-templates/routes/account/register.tsx +74 -0
- package/dist/generator-templates/routes/cart.tsx +43 -0
- package/dist/generator-templates/routes/collections/$collectionHandle.tsx +65 -0
- package/dist/{templates/demo-store/app → generator-templates}/routes/graphiql.tsx +0 -0
- package/dist/{templates/hello-world/app → generator-templates}/routes/index.tsx +0 -0
- package/dist/generator-templates/routes/pages/$pageHandle.tsx +74 -0
- package/dist/{templates/demo-store/app/routes/($lang) → generator-templates/routes}/policies/$policyHandle.tsx +9 -38
- package/dist/generator-templates/routes/policies/index.tsx +65 -0
- package/dist/generator-templates/routes/products/$productHandle.tsx +57 -0
- package/dist/hooks/init.d.ts +5 -0
- package/dist/utils/check-lockfile.d.ts +3 -0
- package/dist/utils/check-lockfile.js +78 -0
- package/dist/utils/check-version.d.ts +3 -0
- package/dist/utils/check-version.js +50 -0
- package/dist/utils/config.d.ts +18 -0
- package/dist/utils/config.js +116 -43
- package/dist/utils/flags.d.ts +10 -0
- package/dist/utils/flags.js +15 -3
- package/dist/utils/flags.test.d.ts +1 -0
- package/dist/utils/flags.test.js +18 -0
- package/dist/utils/log.d.ts +5 -0
- package/dist/utils/mini-oxygen.d.ts +11 -0
- package/dist/utils/mini-oxygen.js +7 -4
- package/dist/utils/missing-routes.d.ts +6 -0
- package/dist/utils/missing-routes.js +71 -0
- package/dist/utils/template-downloader.d.ts +11 -0
- package/dist/utils/template-downloader.js +66 -0
- package/dist/utils/transpile-ts.d.ts +16 -0
- package/dist/utils/transpile-ts.js +161 -0
- package/dist/utils/virtual-routes.d.ts +7 -0
- package/dist/utils/virtual-routes.js +47 -0
- package/dist/utils/virtual-routes.test.d.ts +1 -0
- package/dist/utils/virtual-routes.test.js +46 -0
- package/dist/virtual-routes/assets/dummy.d.ts +1 -0
- package/dist/virtual-routes/assets/dummy.js +1 -0
- package/dist/virtual-routes/assets/dummy.ts +1 -0
- package/dist/{templates/demo-store/dist/client → virtual-routes/assets}/favicon.svg +0 -0
- package/dist/virtual-routes/assets/styles.css +207 -0
- package/dist/virtual-routes/components/HydrogenLogoBaseBW.jsx +7 -0
- package/dist/virtual-routes/components/HydrogenLogoBaseColor.jsx +13 -0
- package/dist/virtual-routes/components/IconBanner.jsx +47 -0
- package/dist/virtual-routes/components/IconDiscord.jsx +4 -0
- package/dist/virtual-routes/components/IconError.jsx +20 -0
- package/dist/virtual-routes/components/IconGithub.jsx +4 -0
- package/dist/virtual-routes/components/IconTwitter.jsx +4 -0
- package/dist/virtual-routes/components/Layout.jsx +6 -0
- package/dist/virtual-routes/routes/graphiql.jsx +5 -0
- package/dist/virtual-routes/routes/index.jsx +140 -0
- package/dist/virtual-routes/virtual-root.jsx +38 -0
- package/oclif.manifest.json +1 -131
- package/package.json +36 -7
- package/dist/templates/demo-store/.cache/content-v2/sha512/02/76/13bbea15bb42b81a204b0dc5f14726e0bfa8d012a7b284f887cc2e3c92195d6b07a78f199f990b311ca5fafa9079563503cdd81808cd9b7e496d86c72732 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/08/56/c9a478b8c5c2fbfb6eed219f0861db568eceecbb45155124491ca25125ca421aac7e1b10d29151e5294a776ae10e02e01dc2da3561da793d111c4f908502 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/0f/d5/950a1e0708f440217f567601ee2bfed73c56ada7491058d1ebb769f9a348484d29d4c3897d848d5f9123b0cfb8be69de4ebddc9d964a368e779e2927be5b +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/10/31/47b4061a63eaedea6368416dff9248ab2e51a4bea4004882a27c1437490c8150a4709438d28bbd8fd71a7516c9af612204f6116b0604e18902b5c6f69453 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/13/f6/b7f804d45a961ca1e392429e75ad80f23ba46cbba0e960c6a70f8de81f3f3763af59651474176798d1a1a4bd2a5109b1d441f6d1c8ba070b678b38378adf +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/28/7c/c71b0c6367bdf7307a8061fe1c4568c9f1e9603d835b6fc917fe8042535a867c37154e35376a01ad6bdb3c2d6f29b88b41902fd6f20b1227e02081682d01 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/29/62/a788055902cff8e9403b901ebd715b56541b0ee4dc9f13cb739cd906ae89ae1fa7199831d613ab21c3ee5d84c5456608dc8707d9199ae3d8ba5e9fd7ce95 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/2b/b2/d5a8e11c89553d08b26b4a7ba8b901de31c0b182f745f8c5d1c5aba44bf46d0d69e3d8042f5917728d0b69d5eba102e3de332f8141aef67a12d215a66843 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/34/dd/ec66f7075936ba94dd741485089904914960fd50a4886c31783c27c27ca08852be43dea712e8aaea6f5197b83ccf1949c8a24c27ff61f5280377917d722e +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/46/04/af285aee74d96b28b24f75d7911de65e6c7bb26475ab5219fe5308028fda55060cf45650dfa09c0731ec73ece453c1e24e0c38715e8d4c5c80fd6365a1f4 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/4e/ea/2fe739931285fa2839b54fe6c91470491475eac2d960e35ef0c6750313c08fbf2b2d784c0bb71c5fb2ef6c4a27f2202a4c29199b53bf7fd43c5721f90ecf +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/51/ab/e165384df6374c7b2d0ebebc8642ecb0e0c14f7c5b57970ec5d2e17f7d1643e0b01eda69e5ffbefde85ecba6d613bcc5175c5564e36bfb73d966c8ea4153 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/54/b2/a99146d18769ec698b6c61e4c3e63689a24110cca7c671d926fc1320f5a2ac5cdbf143db9074dcfb383359307c50ccbe2512f2d9ee992eb53f2ed98997af +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/57/7e/37b69b357be4c488e5fca37c009c908201ac2107ddaa589143bcb108e9c5f7e4ca91a36f068b3f88bb0da655d7832bd040dcbef25d807faf0804a7f93c9a +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/6d/d8/5ad2b238dcc09122c8977b26e2a2eb94e12b1cda5181a020ec77d9364ea2efdc2ddddaf2ba766ced871d8cc33e5862fb4ae0c6591080b7523e5e779dceb5 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/72/e4/3df1f2ae672aa3148b6afde9bd16b5371250464c301be7a4ca40e459768db712d39fb7039ce9710264f726b531b7dd346e43fe260b53789206a05f665393 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/73/40/c822831f11f08a9ceea944d0145b072ba6164a3e2e75f98fda5437cda6dfddf9ca9450445c1f3236228d6259ac95e4cde9bb6e5996490ed00b7b13b06121 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/73/ad/c5cb88faf344aa1be4c7f263610bbf4e5b4b4122a277e9f8adb20bdaabf46a65f647d902bf885172c5e17f16d63c69d9f0213938ad0648099d627bcdc7a3 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/79/6a/c7905d20904ce592cd04dabc941dcfb9ae88a2936f564c6ca21dba66c7b89f44c697504d1fef3427d5121f3ce0abfc72225a25a5985cc2f823c50cb1a4e0 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/7e/bd/739d3492efb96a9a5952538eee6f83dd7123c59a4b48538a5a554b8684ba84a1e65dd626b5aa9c6dc74c96734c46e3303ab93e6a5fcc56ecb4150c036aea +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/88/76/d18fdfbb05293909609d42368642fc6da4bd138c5864ec2f721212b52e595b84ae46f48021ed3e6240edf443f78bdea557d56d700e3da848459ea3077a80 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/88/d0/847cc94057b70b5352a6f097d172883a789eedabfe597475672bec5495d323bc41e185cd5a6477aa691befeb69bd6f19f77b4735ebd8f230d39491bdabae +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/93/6b/e60098157f6bff8ba570cab2ffd97a14983109006f7fa87e4432728366f96dfb19e957d28754daa45f1b6cb2421d26ab59bbd5ce5a448d6102e8e662403d +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/bc/1c/74650cdfe58d3295c52501b3572b71ca4d0bcebe895291b39d63fc57d60b1924315d5b6292c825bec288196d39acf45d63688726fd77e85d99ce18e52f28 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/bc/33/6e26ece5ac53d9eac9ac8a192ef39faf2a587a5808253c659fb1d371c477fc8074d428c8d1929b0d85dd1fec66fc79ea6b9fcb01507e2efec75fb7fbc2cc +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/cb/63/324e426b4c93a3fa8db83dab506b9abbe2d7628897dfd1369642f19d66f140c090e1c3834728d5082f8cffe846f7c54d112e11f5d934d629ed996d177a1f +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/d6/bd/656ddf1b02384b21b4fb55c615f28bba616f85c0992a8555bfbc3b0cf0692e2b3f20a534b4c3baef86e7c9ccf36b8d3a9239747b3d8422ff4dbe7dd2d0a6 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/da/84/b6d27e02f9b109d7cff3095b08e2e2ed1802c8b6829c98f6e297d1c404059f8bacfdc278afd07e2f81cbc487318396a3775037b678ab6aff9a5231c94c0d +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/e8/ae/9b467e1d23913d4584d9417875b3cdc25f6dfed8b228f3a0c818129010b778aae1af1eb200b015ab428e79afe0ef1061262392fbdb96ed7da95efbe7f758 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/f4/ba/e578b89fa1a4a0549fa2e68e0ba078fa8c9207c376189d1550a7ae0e54c4c0548d0a29a0cef532ca613e25832b9343e74f6a8bc7338fcc28d51e6e3d7898 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/fb/75/9195d7f913bc6ae5a345003e0863e0c38c00e744334e2ae61feba1a3099be8207599085a8264590dbd0fd9e1fff1d58037183d106cdbc750c7ad6f979d88 +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/fd/ef/df6382410602f345da5bb420585629c22c350bc028c87eb6da71e611f381c5ccba09b435b9b5fb31d7c8beb5b8abfa87abdb874b189a3211efe61840fbac +0 -1
- package/dist/templates/demo-store/.cache/content-v2/sha512/fd/f3/986b7ee5ea5ad1d89af5c08de69d43c025b54381092e0a19fd7e7a1e0352552aa85c056315ce5e11a46ec75a252b1a44e2083abb73cd6df8407dfdb0ac48 +0 -1
- package/dist/templates/demo-store/.cache/index-v5/05/44/bebd201ef5e9e9a7c41bd789ff110691a32c7f7fbbbdd630f33d96667cd1 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/26/b5/113aeb17f9f4ef406a1f8b143895199ca545fd0cc1e7972435a092910963 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/2c/09/e60b5cd818510e0cbec908aae3b74175e35e446f4383e87c21489433a11e +0 -2
- package/dist/templates/demo-store/.cache/index-v5/38/21/c3fb7841590b85142018ba88a01045ef1249ac34211342579f0129eae294 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/3a/98/8858fe7de4bf85d37c71adc322cc95335b498bef9a4ae41db324bf5696cc +0 -2
- package/dist/templates/demo-store/.cache/index-v5/3e/40/7021422a7cae2c05484b491fb5b85edd82b325e598ac9e5c6afb858049da +0 -2
- package/dist/templates/demo-store/.cache/index-v5/47/2f/8e9ec62247eca3464d07de774855bb30a56145adc6525b907490e0c1bda0 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/5e/83/14bed234cd143eaf4043de721fcf4250a5adc7008e76d663365e8a322c88 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/5f/87/f79366b4aab5423acdda7930c6c989c49dd1c6607885df3afaa5e6873c9f +0 -2
- package/dist/templates/demo-store/.cache/index-v5/6e/9e/dc622ea9b5c66089a08f3e8b7a0e62a29e85bab337da0a3b28d6126185ec +0 -2
- package/dist/templates/demo-store/.cache/index-v5/71/4c/401eb7f3b2db5e56857a3ddd90e61181e636a5d01cc569ff8671ddf7f14b +0 -2
- package/dist/templates/demo-store/.cache/index-v5/78/84/46021cf9ede94313b5bc2cbf2355909ae811d4879a7747f9e2341f6b5bfb +0 -2
- package/dist/templates/demo-store/.cache/index-v5/79/2e/b0dd8fcd37a11ecb71cfd33184651560cabda672e55e0b244fc6f825190c +0 -2
- package/dist/templates/demo-store/.cache/index-v5/7b/e1/807e64f6a84e568bf9163283e9d49b77b24ff24bd8eed751d9fd94ea404a +0 -2
- package/dist/templates/demo-store/.cache/index-v5/85/07/e0c4be5b8442583f11be2d0b6f09171d22721437456b745eb2c977294995 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/87/4d/89bc172664efe0dc7f86d8e67559073b2900ae079bd42ae9e3c015d38ab0 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/8c/0d/a633a8771437b330d83eef0fdd99a81c41356b2bdc81f80ec9277f92b060 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/a3/fc/e2e503290d165b9b0e20c6880bc23ff8ec39a440482418b5103c36be66b9 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/a5/bc/d87ab9468457cb872d6c360f8acecd05e0f88b7239b50754f120706fabd4 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/a5/c0/8e6e4f498a17b6198e54f204247ba544e6404b282d4ce3065d85fa69a8a4 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/af/65/89b0c9eb41779c1658ace443604fea125c524bc95cfc71c9b6300da2dc81 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/b2/75/51549baf010c977c70017db497fd9bd20e1efa9b658a6d52761c559f9c0b +0 -2
- package/dist/templates/demo-store/.cache/index-v5/b3/75/d3e7a4a5df68530007409daf1d2e66ab789c8b658d1819d7e5fd183f5f57 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/bb/db/9dc2cbdcdc6ff352f9a34463a02e198aa2123a4c2e4ef37fea8b8ccae413 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/d0/c4/d960260ece228d28f70e317741b3f3f3df05c53956d870235837ae2b73b4 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/d3/ca/ff5860148f0bedafb91dab72b54462de81a32a21210324c45a051b197b48 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/d4/55/296e80e87e2652f4cf1aebd5419fe73ef16c94ab20cd0400166d44ea1746 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/da/7a/4b6977be684885e550a0d8fd21c955d0195371ffc3a9535a5a7b950a5ac9 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/dd/aa/599a1cd855476ba058c63ae75a9c006ca11f7fbc2efc00b361d7f1b95cb4 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/df/d2/bcfa3853e61309abab85dbd561dbc632ad0ea79b24f1b77c95f861eead5f +0 -2
- package/dist/templates/demo-store/.cache/index-v5/df/f5/cc3a1197c607eac768ab1b1cdb7b53a7f87b67c23c92da957d45a5bd0bda +0 -2
- package/dist/templates/demo-store/.cache/index-v5/e4/bd/743967c269ef70a14ba6b5dd223d26759eae9295d79f165c66f514b7d8d3 +0 -2
- package/dist/templates/demo-store/.cache/index-v5/e5/d3/0de6bfbb93ef9271b53f0ded9696291312b19ff087c2826d679ee2c74c01 +0 -2
- package/dist/templates/demo-store/.editorconfig +0 -8
- package/dist/templates/demo-store/.eslintignore +0 -4
- package/dist/templates/demo-store/.eslintrc.js +0 -16
- package/dist/templates/demo-store/.graphqlrc.yml +0 -1
- package/dist/templates/demo-store/.prettierignore +0 -2
- package/dist/templates/demo-store/_env +0 -6
- package/dist/templates/demo-store/_gitignore +0 -13
- package/dist/templates/demo-store/app/components/AccountAddressBook.tsx +0 -97
- package/dist/templates/demo-store/app/components/AccountDetails.tsx +0 -41
- package/dist/templates/demo-store/app/components/AddToCartButton.tsx +0 -42
- package/dist/templates/demo-store/app/components/Breadcrumbs.tsx +0 -36
- package/dist/templates/demo-store/app/components/Button.tsx +0 -56
- package/dist/templates/demo-store/app/components/Cart.tsx +0 -431
- package/dist/templates/demo-store/app/components/CartLoading.tsx +0 -50
- package/dist/templates/demo-store/app/components/CountrySelector.tsx +0 -180
- package/dist/templates/demo-store/app/components/Drawer.tsx +0 -115
- package/dist/templates/demo-store/app/components/FeaturedCollections.tsx +0 -54
- package/dist/templates/demo-store/app/components/FeaturedProducts.tsx +0 -116
- package/dist/templates/demo-store/app/components/FeaturedSection.tsx +0 -39
- package/dist/templates/demo-store/app/components/GenericError.tsx +0 -58
- package/dist/templates/demo-store/app/components/Grid.tsx +0 -44
- package/dist/templates/demo-store/app/components/Hero.tsx +0 -129
- package/dist/templates/demo-store/app/components/Icon.tsx +0 -253
- package/dist/templates/demo-store/app/components/Input.tsx +0 -24
- package/dist/templates/demo-store/app/components/Layout.tsx +0 -492
- package/dist/templates/demo-store/app/components/Link.tsx +0 -46
- package/dist/templates/demo-store/app/components/Modal.tsx +0 -46
- package/dist/templates/demo-store/app/components/NotFound.tsx +0 -22
- package/dist/templates/demo-store/app/components/OrderCard.tsx +0 -82
- package/dist/templates/demo-store/app/components/Pagination.tsx +0 -277
- package/dist/templates/demo-store/app/components/ProductCard.tsx +0 -140
- package/dist/templates/demo-store/app/components/ProductGallery.tsx +0 -114
- package/dist/templates/demo-store/app/components/ProductGrid.tsx +0 -93
- package/dist/templates/demo-store/app/components/ProductSwimlane.tsx +0 -30
- package/dist/templates/demo-store/app/components/Skeleton.tsx +0 -24
- package/dist/templates/demo-store/app/components/SortFilter.tsx +0 -414
- package/dist/templates/demo-store/app/components/Text.tsx +0 -192
- package/dist/templates/demo-store/app/components/index.ts +0 -28
- package/dist/templates/demo-store/app/data/countries.ts +0 -194
- package/dist/templates/demo-store/app/data/index.ts +0 -1027
- package/dist/templates/demo-store/app/entry.client.tsx +0 -4
- package/dist/templates/demo-store/app/entry.server.tsx +0 -26
- package/dist/templates/demo-store/app/hooks/useCartFetchers.tsx +0 -14
- package/dist/templates/demo-store/app/hooks/useIsHydrated.tsx +0 -12
- package/dist/templates/demo-store/app/lib/const.ts +0 -10
- package/dist/templates/demo-store/app/lib/placeholders.ts +0 -244
- package/dist/templates/demo-store/app/lib/seo/common.tsx +0 -367
- package/dist/templates/demo-store/app/lib/seo/debugger.tsx +0 -175
- package/dist/templates/demo-store/app/lib/seo/image.tsx +0 -32
- package/dist/templates/demo-store/app/lib/seo/index.ts +0 -4
- package/dist/templates/demo-store/app/lib/seo/seo.tsx +0 -24
- package/dist/templates/demo-store/app/lib/seo/types.ts +0 -84
- package/dist/templates/demo-store/app/lib/session.server.ts +0 -57
- package/dist/templates/demo-store/app/lib/type.ts +0 -21
- package/dist/templates/demo-store/app/lib/utils.ts +0 -310
- package/dist/templates/demo-store/app/root.tsx +0 -279
- package/dist/templates/demo-store/app/routes/($lang)/$.tsx +0 -7
- package/dist/templates/demo-store/app/routes/($lang)/account/__private/address/$id.tsx +0 -320
- package/dist/templates/demo-store/app/routes/($lang)/account/__private/edit.tsx +0 -273
- package/dist/templates/demo-store/app/routes/($lang)/account/__private/logout.ts +0 -25
- package/dist/templates/demo-store/app/routes/($lang)/account/__private/orders.$id.tsx +0 -322
- package/dist/templates/demo-store/app/routes/($lang)/account/__public/activate.$id.$activationToken.tsx +0 -218
- package/dist/templates/demo-store/app/routes/($lang)/account/__public/login.tsx +0 -197
- package/dist/templates/demo-store/app/routes/($lang)/account/__public/recover.tsx +0 -144
- package/dist/templates/demo-store/app/routes/($lang)/account/__public/register.tsx +0 -184
- package/dist/templates/demo-store/app/routes/($lang)/account/__public/reset.$id.$resetToken.tsx +0 -214
- package/dist/templates/demo-store/app/routes/($lang)/account.tsx +0 -188
- package/dist/templates/demo-store/app/routes/($lang)/api/countries.tsx +0 -22
- package/dist/templates/demo-store/app/routes/($lang)/api/products.tsx +0 -116
- package/dist/templates/demo-store/app/routes/($lang)/cart.tsx +0 -510
- package/dist/templates/demo-store/app/routes/($lang)/collections/$collectionHandle.tsx +0 -300
- package/dist/templates/demo-store/app/routes/($lang)/collections/all.tsx +0 -5
- package/dist/templates/demo-store/app/routes/($lang)/collections/index.tsx +0 -188
- package/dist/templates/demo-store/app/routes/($lang)/discounts.$code.tsx +0 -60
- package/dist/templates/demo-store/app/routes/($lang)/featured-products.tsx +0 -58
- package/dist/templates/demo-store/app/routes/($lang)/index.tsx +0 -241
- package/dist/templates/demo-store/app/routes/($lang)/journal/$journalHandle.tsx +0 -141
- package/dist/templates/demo-store/app/routes/($lang)/journal/index.tsx +0 -152
- package/dist/templates/demo-store/app/routes/($lang)/og-image.tsx +0 -19
- package/dist/templates/demo-store/app/routes/($lang)/pages/$pageHandle.tsx +0 -75
- package/dist/templates/demo-store/app/routes/($lang)/policies/index.tsx +0 -97
- package/dist/templates/demo-store/app/routes/($lang)/products/$productHandle.tsx +0 -551
- package/dist/templates/demo-store/app/routes/($lang)/products/index.tsx +0 -148
- package/dist/templates/demo-store/app/routes/($lang)/search.tsx +0 -198
- package/dist/templates/demo-store/app/styles/app.css +0 -4203
- package/dist/templates/demo-store/app/styles/custom-font.css +0 -13
- package/dist/templates/demo-store/app/styles/fonts/IBMPlexSerif-Text.woff2 +0 -0
- package/dist/templates/demo-store/app/styles/fonts/IBMPlexSerif-TextItalic.woff2 +0 -0
- package/dist/templates/demo-store/dist/client/build/_assets/IBMPlexSerif-Text-YFMZNZW6.woff2 +0 -0
- package/dist/templates/demo-store/dist/client/build/_assets/IBMPlexSerif-TextItalic-CS6L5H7S.woff2 +0 -0
- package/dist/templates/demo-store/dist/client/build/_assets/app-PPSD2NK6.css +0 -1
- package/dist/templates/demo-store/dist/client/build/_assets/custom-font-WVPOFKHF.css +0 -1
- package/dist/templates/demo-store/dist/client/build/_assets/favicon-5FIZBM2K.svg +0 -28
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-7CASD2US.js +0 -9
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-7CASD2US.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-7CKXJRLM.js +0 -2
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-7CKXJRLM.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-AYHDHSL7.js +0 -2
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-AYHDHSL7.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-EW52HEI6.js +0 -133
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-EW52HEI6.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-MEPKJ2VW.js +0 -2
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-MEPKJ2VW.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-NIVT6A2W.js +0 -2
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-NIVT6A2W.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-SYP5DAMV.js +0 -2
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-SYP5DAMV.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-SZCP6RSO.js +0 -7
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-SZCP6RSO.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-YCAWB56Y.js +0 -31
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-YCAWB56Y.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/entry.client-3PUQSZFF.js +0 -2
- package/dist/templates/demo-store/dist/client/build/entry.client-3PUQSZFF.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/manifest-E4E22121.js +0 -1
- package/dist/templates/demo-store/dist/client/build/root-6BHVTOEY.js +0 -14
- package/dist/templates/demo-store/dist/client/build/root-6BHVTOEY.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/$-HDBACFGJ.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/$-HDBACFGJ.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/[robots.txt]-KDA3EX2G.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/[robots.txt]-KDA3EX2G.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/[sitemap.xml]-AAQRJL2R.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/[sitemap.xml]-AAQRJL2R.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__private/address/$id-3WQU2LQT.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__private/address/$id-3WQU2LQT.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__private/edit-3XQ4BLHS.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__private/edit-3XQ4BLHS.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__private/logout-7KXWFBCX.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__private/logout-7KXWFBCX.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__private/orders.$id-7VQDCWO5.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__private/orders.$id-7VQDCWO5.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__public/activate.$id.$activationToken-Z5BQE6J5.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__public/activate.$id.$activationToken-Z5BQE6J5.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__public/login-K6QUN2VF.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__public/login-K6QUN2VF.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__public/recover-UV5PLPS5.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__public/recover-UV5PLPS5.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__public/register-SZW3ORRR.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__public/register-SZW3ORRR.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__public/reset.$id.$resetToken-WOUXQWZU.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account/__public/reset.$id.$resetToken-WOUXQWZU.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account-PRE5HSJE.js +0 -25
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/account-PRE5HSJE.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/api/countries-UD6BGYL2.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/api/countries-UD6BGYL2.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/api/products-KIFIWUFE.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/api/products-KIFIWUFE.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/cart-3AJ7UOZX.js +0 -55
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/cart-3AJ7UOZX.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/collections/$collectionHandle-ORDYEBM3.js +0 -83
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/collections/$collectionHandle-ORDYEBM3.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/collections/all-IXDFOKCK.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/collections/all-IXDFOKCK.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/collections/index-3AJFWRDR.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/collections/index-3AJFWRDR.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/discounts.$code-GYKQBNLQ.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/discounts.$code-GYKQBNLQ.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/featured-products-KNUST6DD.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/featured-products-KNUST6DD.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/index-4US2D5XK.js +0 -32
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/index-4US2D5XK.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/journal/$journalHandle-BCHHYOJX.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/journal/$journalHandle-BCHHYOJX.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/journal/index-LZR4YNUM.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/journal/index-LZR4YNUM.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/og-image-KUOACO4J.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/og-image-KUOACO4J.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/pages/$pageHandle-5WR6PFRU.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/pages/$pageHandle-5WR6PFRU.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/policies/$policyHandle-C5ATUMN6.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/policies/$policyHandle-C5ATUMN6.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/policies/index-MJDYZG5P.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/policies/index-MJDYZG5P.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/products/$productHandle-IB2WTXB6.js +0 -68
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/products/$productHandle-IB2WTXB6.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/products/index-266HKDAN.js +0 -24
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/products/index-266HKDAN.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/search-CH57YG7S.js +0 -54
- package/dist/templates/demo-store/dist/client/build/routes/($lang)/search-CH57YG7S.js.map +0 -7
- package/dist/templates/demo-store/dist/client/build/routes/graphiql-ZHVT5SA7.js +0 -2
- package/dist/templates/demo-store/dist/client/build/routes/graphiql-ZHVT5SA7.js.map +0 -7
- package/dist/templates/demo-store/dist/worker/_assets/IBMPlexSerif-Text-YFMZNZW6.woff2 +0 -0
- package/dist/templates/demo-store/dist/worker/_assets/IBMPlexSerif-TextItalic-CS6L5H7S.woff2 +0 -0
- package/dist/templates/demo-store/dist/worker/index.js +0 -1385
- package/dist/templates/demo-store/dist/worker/index.js.map +0 -7
- package/dist/templates/demo-store/package.json +0 -67
- package/dist/templates/demo-store/playwright.config.ts +0 -109
- package/dist/templates/demo-store/postcss.config.js +0 -10
- package/dist/templates/demo-store/public/favicon.svg +0 -28
- package/dist/templates/demo-store/remix.env.d.ts +0 -40
- package/dist/templates/demo-store/remix.init/index.js +0 -25
- package/dist/templates/demo-store/remix.init/package.json +0 -7
- package/dist/templates/demo-store/server.ts +0 -73
- package/dist/templates/demo-store/styles/app.css +0 -182
- package/dist/templates/demo-store/tailwind.config.js +0 -70
- package/dist/templates/demo-store/tests/cart.test.ts +0 -70
- package/dist/templates/demo-store/tests/seo.test.ts +0 -36
- package/dist/templates/demo-store/tests/utils.ts +0 -100
- package/dist/templates/demo-store/tsconfig.json +0 -25
- package/dist/templates/hello-world/.cache/content-v2/sha512/13/f6/b7f804d45a961ca1e392429e75ad80f23ba46cbba0e960c6a70f8de81f3f3763af59651474176798d1a1a4bd2a5109b1d441f6d1c8ba070b678b38378adf +0 -1
- package/dist/templates/hello-world/.cache/content-v2/sha512/4b/d3/aedf0c5a14c0f852936adb81a3bbd15ad1d5d9964ffe11a40d56bbdb2f2a4c7588ffa1d1ee657a3c3be4f6e6194465365f5d4213ef3b4e5086aa4bf0a5a4 +0 -1
- package/dist/templates/hello-world/.cache/content-v2/sha512/fa/dd/9bc10a1cb1f145eabd96bdba509178e20484197fefd8469ace9f53bf277e875751db3c4dddf229807c48cbe8db19494fe2a5aab7d2a4b7ae8bebbd67509c +0 -1
- package/dist/templates/hello-world/.cache/index-v5/09/f6/fe4b05c4157320b8b59b3f84116195be0437d87357d743d21acd638a4606 +0 -2
- package/dist/templates/hello-world/.cache/index-v5/b3/75/d3e7a4a5df68530007409daf1d2e66ab789c8b658d1819d7e5fd183f5f57 +0 -2
- package/dist/templates/hello-world/.cache/index-v5/d0/c4/d960260ece228d28f70e317741b3f3f3df05c53956d870235837ae2b73b4 +0 -2
- package/dist/templates/hello-world/.eslintignore +0 -4
- package/dist/templates/hello-world/.eslintrc.js +0 -6
- package/dist/templates/hello-world/.graphqlrc.yml +0 -1
- package/dist/templates/hello-world/README.md +0 -20
- package/dist/templates/hello-world/_env +0 -6
- package/dist/templates/hello-world/_gitignore +0 -8
- package/dist/templates/hello-world/app/components/Layout.tsx +0 -15
- package/dist/templates/hello-world/app/components/index.ts +0 -1
- package/dist/templates/hello-world/app/entry.client.tsx +0 -4
- package/dist/templates/hello-world/app/entry.server.tsx +0 -21
- package/dist/templates/hello-world/app/root.tsx +0 -212
- package/dist/templates/hello-world/app/routes/graphiql.tsx +0 -10
- package/dist/templates/hello-world/app/styles/app.css +0 -38
- package/dist/templates/hello-world/dist/client/build/_assets/app-NBPUE4H5.css +0 -1
- package/dist/templates/hello-world/dist/client/build/_assets/favicon-5FIZBM2K.svg +0 -28
- package/dist/templates/hello-world/dist/client/build/_shared/chunk-MEPKJ2VW.js +0 -2
- package/dist/templates/hello-world/dist/client/build/_shared/chunk-MEPKJ2VW.js.map +0 -7
- package/dist/templates/hello-world/dist/client/build/_shared/chunk-SYP5DAMV.js +0 -2
- package/dist/templates/hello-world/dist/client/build/_shared/chunk-SYP5DAMV.js.map +0 -7
- package/dist/templates/hello-world/dist/client/build/_shared/chunk-UWGFS4PS.js +0 -31
- package/dist/templates/hello-world/dist/client/build/_shared/chunk-UWGFS4PS.js.map +0 -7
- package/dist/templates/hello-world/dist/client/build/entry.client-YKLPLTIJ.js +0 -9
- package/dist/templates/hello-world/dist/client/build/entry.client-YKLPLTIJ.js.map +0 -7
- package/dist/templates/hello-world/dist/client/build/manifest-5BEA23FF.js +0 -1
- package/dist/templates/hello-world/dist/client/build/root-YMCCM3GG.js +0 -2
- package/dist/templates/hello-world/dist/client/build/root-YMCCM3GG.js.map +0 -7
- package/dist/templates/hello-world/dist/client/build/routes/graphiql-ZHVT5SA7.js +0 -2
- package/dist/templates/hello-world/dist/client/build/routes/graphiql-ZHVT5SA7.js.map +0 -7
- package/dist/templates/hello-world/dist/client/build/routes/index-TH4MKESG.js +0 -2
- package/dist/templates/hello-world/dist/client/build/routes/index-TH4MKESG.js.map +0 -7
- package/dist/templates/hello-world/dist/client/favicon.svg +0 -28
- package/dist/templates/hello-world/dist/worker/index.js +0 -172
- package/dist/templates/hello-world/dist/worker/index.js.map +0 -7
- package/dist/templates/hello-world/package.json +0 -41
- package/dist/templates/hello-world/public/favicon.svg +0 -28
- package/dist/templates/hello-world/remix.env.d.ts +0 -35
- package/dist/templates/hello-world/remix.init/index.js +0 -25
- package/dist/templates/hello-world/remix.init/package.json +0 -7
- package/dist/templates/hello-world/server.ts +0 -129
- package/dist/templates/hello-world/tsconfig.json +0 -25
- package/dist/tmp-create-app.js +0 -33
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../app/routes/($lang)/products/$productHandle.tsx", "../../../../../../../../node_modules/@headlessui/react/dist/hooks/use-computed.js", "../../../../../../../../node_modules/@headlessui/react/dist/utils/form.js", "../../../../../../../../node_modules/@headlessui/react/dist/hooks/use-controllable.js", "../../../../../../../../node_modules/@headlessui/react/dist/components/listbox/listbox.js"],
|
|
4
|
-
"sourcesContent": ["import {type ReactNode, useRef, Suspense, useMemo} from 'react';\nimport {Disclosure, Listbox} from '@headlessui/react';\nimport {defer, type LoaderArgs} from '@shopify/remix-oxygen';\nimport {\n useLoaderData,\n Await,\n useSearchParams,\n useLocation,\n useTransition,\n} from '@remix-run/react';\nimport {Money, ShopPayButton} from '@shopify/storefront-kit-react';\nimport {\n Heading,\n IconCaret,\n IconCheck,\n IconClose,\n ProductGallery,\n ProductSwimlane,\n Section,\n Skeleton,\n Text,\n Link,\n AddToCartButton,\n} from '~/components';\nimport {getExcerpt} from '~/lib/utils';\nimport invariant from 'tiny-invariant';\nimport clsx from 'clsx';\nimport type {\n ProductVariant,\n SelectedOptionInput,\n Product as ProductType,\n Shop,\n ProductConnection,\n} from '@shopify/storefront-kit-react/storefront-api-types';\nimport {\n MEDIA_FRAGMENT,\n PRODUCT_CARD_FRAGMENT,\n PRODUCT_VARIANT_FRAGMENT,\n} from '~/data';\n\nexport async function loader({params, request, context}: LoaderArgs) {\n const {productHandle} = params;\n invariant(productHandle, 'Missing productHandle param, check route filename');\n\n const searchParams = new URL(request.url).searchParams;\n\n const selectedOptions: SelectedOptionInput[] = [];\n searchParams.forEach((value, name) => {\n selectedOptions.push({name, value});\n });\n\n const {shop, product} = await context.storefront.query<{\n product: ProductType & {selectedVariant?: ProductVariant};\n shop: Shop;\n }>(PRODUCT_QUERY, {\n variables: {\n handle: productHandle,\n selectedOptions,\n country: context.storefront.i18n.country,\n language: context.storefront.i18n.language,\n },\n });\n\n if (!product?.id) {\n throw new Response(null, {status: 404});\n }\n\n const recommended = getRecommendedProducts(context.storefront, product.id);\n\n return defer({\n product,\n shop,\n recommended,\n });\n}\n\nexport default function Product() {\n const {product, shop, recommended} = useLoaderData<typeof loader>();\n const {media, title, vendor, descriptionHtml} = product;\n const {shippingPolicy, refundPolicy} = shop;\n\n return (\n <>\n <Section padding=\"x\" className=\"px-0\">\n <div className=\"grid items-start md:gap-6 lg:gap-20 md:grid-cols-2 lg:grid-cols-3\">\n <ProductGallery\n media={media.nodes}\n className=\"w-screen md:w-full lg:col-span-2\"\n />\n <div className=\"sticky md:-mb-nav md:top-nav md:-translate-y-nav md:h-screen md:pt-nav hiddenScroll md:overflow-y-scroll\">\n <section className=\"flex flex-col w-full max-w-xl gap-8 p-6 md:mx-auto md:max-w-sm md:px-0\">\n <div className=\"grid gap-2\">\n <Heading as=\"h1\" format className=\"whitespace-normal\">\n {title}\n </Heading>\n {vendor && (\n <Text className={'opacity-50 font-medium'}>{vendor}</Text>\n )}\n </div>\n <ProductForm />\n <div className=\"grid gap-4 py-4\">\n {descriptionHtml && (\n <ProductDetail\n title=\"Product Details\"\n content={descriptionHtml}\n />\n )}\n {shippingPolicy?.body && (\n <ProductDetail\n title=\"Shipping\"\n content={getExcerpt(shippingPolicy.body)}\n learnMore={`/policies/${shippingPolicy.handle}`}\n />\n )}\n {refundPolicy?.body && (\n <ProductDetail\n title=\"Returns\"\n content={getExcerpt(refundPolicy.body)}\n learnMore={`/policies/${refundPolicy.handle}`}\n />\n )}\n </div>\n </section>\n </div>\n </div>\n </Section>\n <Suspense fallback={<Skeleton className=\"h-32\" />}>\n <Await\n errorElement=\"There was a problem loading related products\"\n resolve={recommended}\n >\n {(products) => (\n <ProductSwimlane title=\"Related Products\" products={products} />\n )}\n </Await>\n </Suspense>\n </>\n );\n}\n\nexport function ProductForm() {\n const {product} = useLoaderData<typeof loader>();\n\n const [currentSearchParams] = useSearchParams();\n const transition = useTransition();\n\n /**\n * We update `searchParams` with in-flight request data from `transition` (if available)\n * to create an optimistic UI, e.g. check the product option before the\n * request has completed.\n */\n const searchParams = useMemo(() => {\n return transition.location\n ? new URLSearchParams(transition.location.search)\n : currentSearchParams;\n }, [currentSearchParams, transition]);\n\n const firstVariant = product.variants.nodes[0];\n\n /**\n * We're making an explicit choice here to display the product options\n * UI with a default variant, rather than wait for the user to select\n * options first. Developers are welcome to opt-out of this behavior.\n * By default, the first variant's options are used.\n */\n const searchParamsWithDefaults = useMemo<URLSearchParams>(() => {\n const clonedParams = new URLSearchParams(searchParams);\n\n for (const {name, value} of firstVariant.selectedOptions) {\n if (!searchParams.has(name)) {\n clonedParams.set(name, value);\n }\n }\n\n return clonedParams;\n }, [searchParams, firstVariant.selectedOptions]);\n\n /**\n * Likewise, we're defaulting to the first variant for purposes\n * of add to cart if there is none returned from the loader.\n * A developer can opt out of this, too.\n */\n const selectedVariant = product.selectedVariant ?? firstVariant;\n const isOutOfStock = !selectedVariant?.availableForSale;\n\n const isOnSale =\n selectedVariant?.price?.amount &&\n selectedVariant?.compareAtPrice?.amount &&\n selectedVariant?.price?.amount < selectedVariant?.compareAtPrice?.amount;\n\n const lines = [\n {\n merchandiseId: selectedVariant.id,\n quantity: 1,\n },\n ];\n\n return (\n <div className=\"grid gap-10\">\n <div className=\"grid gap-4\">\n <ProductOptions\n options={product.options}\n searchParamsWithDefaults={searchParamsWithDefaults}\n />\n {selectedVariant && (\n <div className=\"grid items-stretch gap-4\">\n <AddToCartButton\n lines={[\n {\n merchandiseId: selectedVariant.id,\n quantity: 1,\n },\n ]}\n variant={isOutOfStock ? 'secondary' : 'primary'}\n data-test=\"add-to-cart\"\n >\n {isOutOfStock ? (\n <Text>Sold out</Text>\n ) : (\n <Text\n as=\"span\"\n className=\"flex items-center justify-center gap-2\"\n >\n <span>Add to Bag</span> <span>\u00B7</span>{' '}\n <Money\n withoutTrailingZeros\n data={selectedVariant?.price!}\n as=\"span\"\n />\n {isOnSale && (\n <Money\n withoutTrailingZeros\n data={selectedVariant?.compareAtPrice!}\n as=\"span\"\n className=\"opacity-50 strike\"\n />\n )}\n </Text>\n )}\n </AddToCartButton>\n {!isOutOfStock && (\n <ShopPayButton variantIds={[selectedVariant?.id!]} />\n )}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nfunction ProductOptions({\n options,\n searchParamsWithDefaults,\n}: {\n options: ProductType['options'];\n searchParamsWithDefaults: URLSearchParams;\n}) {\n const closeRef = useRef<HTMLButtonElement>(null);\n return (\n <>\n {options\n .filter((option) => option.values.length > 1)\n .map((option) => (\n <div\n key={option.name}\n className=\"flex flex-col flex-wrap mb-4 gap-y-2 last:mb-0\"\n >\n <Heading as=\"legend\" size=\"lead\" className=\"min-w-[4rem]\">\n {option.name}\n </Heading>\n <div className=\"flex flex-wrap items-baseline gap-4\">\n {/**\n * First, we render a bunch of <Link> elements for each option value.\n * When the user clicks one of these buttons, it will hit the loader\n * to get the new data.\n *\n * If there are more than 7 values, we render a dropdown.\n * Otherwise, we just render plain links.\n */}\n {option.values.length > 7 ? (\n <div className=\"relative w-full\">\n <Listbox>\n {({open}) => (\n <>\n <Listbox.Button\n ref={closeRef}\n className={clsx(\n 'flex items-center justify-between w-full py-3 px-4 border border-primary',\n open\n ? 'rounded-b md:rounded-t md:rounded-b-none'\n : 'rounded',\n )}\n >\n <span>\n {searchParamsWithDefaults.get(option.name)}\n </span>\n <IconCaret direction={open ? 'up' : 'down'} />\n </Listbox.Button>\n <Listbox.Options\n className={clsx(\n 'border-primary bg-contrast absolute bottom-12 z-30 grid h-48 w-full overflow-y-scroll rounded-t border px-2 py-2 transition-[max-height] duration-150 sm:bottom-auto md:rounded-b md:rounded-t-none md:border-t-0 md:border-b',\n open ? 'max-h-48' : 'max-h-0',\n )}\n >\n {option.values.map((value) => (\n <Listbox.Option\n key={`option-${option.name}-${value}`}\n value={value}\n >\n {({active}) => (\n <ProductOptionLink\n optionName={option.name}\n optionValue={value}\n className={clsx(\n 'text-primary w-full p-2 transition rounded flex justify-start items-center text-left cursor-pointer',\n active && 'bg-primary/10',\n )}\n searchParams={searchParamsWithDefaults}\n onClick={() => {\n if (!closeRef?.current) return;\n closeRef.current.click();\n }}\n >\n {value}\n {searchParamsWithDefaults.get(option.name) ===\n value && (\n <span className=\"ml-2\">\n <IconCheck />\n </span>\n )}\n </ProductOptionLink>\n )}\n </Listbox.Option>\n ))}\n </Listbox.Options>\n </>\n )}\n </Listbox>\n </div>\n ) : (\n <>\n {option.values.map((value) => {\n const checked =\n searchParamsWithDefaults.get(option.name) === value;\n const id = `option-${option.name}-${value}`;\n\n return (\n <Text key={id}>\n <ProductOptionLink\n optionName={option.name}\n optionValue={value}\n searchParams={searchParamsWithDefaults}\n className={clsx(\n 'leading-none py-1 border-b-[1.5px] cursor-pointer transition-all duration-200',\n checked ? 'border-primary/50' : 'border-primary/0',\n )}\n />\n </Text>\n );\n })}\n </>\n )}\n </div>\n </div>\n ))}\n </>\n );\n}\n\nfunction ProductOptionLink({\n optionName,\n optionValue,\n searchParams,\n children,\n ...props\n}: {\n optionName: string;\n optionValue: string;\n searchParams: URLSearchParams;\n children?: ReactNode;\n [key: string]: any;\n}) {\n const {pathname} = useLocation();\n const isLangPathname = /\\/[a-zA-Z]{2}-[a-zA-Z]{2}\\//g.test(pathname);\n // fixes internalized pathname\n const path = isLangPathname\n ? `/${pathname.split('/').slice(2).join('/')}`\n : pathname;\n\n const clonedSearchParams = new URLSearchParams(searchParams);\n clonedSearchParams.set(optionName, optionValue);\n\n return (\n <Link\n {...props}\n prefetch=\"intent\"\n replace\n to={`${path}?${clonedSearchParams.toString()}`}\n >\n {children ?? optionValue}\n </Link>\n );\n}\n\nfunction ProductDetail({\n title,\n content,\n learnMore,\n}: {\n title: string;\n content: string;\n learnMore?: string;\n}) {\n return (\n <Disclosure key={title} as=\"div\" className=\"grid w-full gap-2\">\n {({open}) => (\n <>\n <Disclosure.Button className=\"text-left\">\n <div className=\"flex justify-between\">\n <Text size=\"lead\" as=\"h4\">\n {title}\n </Text>\n <IconClose\n className={clsx(\n 'transition-transform transform-gpu duration-200',\n !open && 'rotate-[45deg]',\n )}\n />\n </div>\n </Disclosure.Button>\n\n <Disclosure.Panel className={'pb-4 pt-2 grid gap-2'}>\n <div\n className=\"prose dark:prose-invert\"\n dangerouslySetInnerHTML={{__html: content}}\n />\n {learnMore && (\n <div className=\"\">\n <Link\n className=\"pb-px border-b border-primary/30 text-primary/50\"\n to={learnMore}\n >\n Learn more\n </Link>\n </div>\n )}\n </Disclosure.Panel>\n </>\n )}\n </Disclosure>\n );\n}\n\nconst PRODUCT_QUERY = `#graphql\n ${MEDIA_FRAGMENT}\n ${PRODUCT_VARIANT_FRAGMENT}\n query Product(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n $selectedOptions: [SelectedOptionInput!]!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n id\n title\n vendor\n handle\n descriptionHtml\n options {\n name\n values\n }\n selectedVariant: variantBySelectedOptions(selectedOptions: $selectedOptions) {\n ...ProductVariantFragment\n }\n media(first: 7) {\n nodes {\n ...Media\n }\n }\n variants(first: 1) {\n nodes {\n ...ProductVariantFragment\n }\n }\n seo {\n description\n title\n }\n }\n shop {\n name\n shippingPolicy {\n body\n handle\n }\n refundPolicy {\n body\n handle\n }\n }\n }\n`;\n\nconst RECOMMENDED_PRODUCTS_QUERY = `#graphql\n ${PRODUCT_CARD_FRAGMENT}\n query productRecommendations(\n $productId: ID!\n $count: Int\n $country: CountryCode\n $language: LanguageCode\n ) @inContext(country: $country, language: $language) {\n recommended: productRecommendations(productId: $productId) {\n ...ProductCard\n }\n additional: products(first: $count, sortKey: BEST_SELLING) {\n nodes {\n ...ProductCard\n }\n }\n }\n`;\n\nasync function getRecommendedProducts(\n storefront: LoaderArgs['context']['storefront'],\n productId: string,\n) {\n const products = await storefront.query<{\n recommended: ProductType[];\n additional: ProductConnection;\n }>(RECOMMENDED_PRODUCTS_QUERY, {\n variables: {productId, count: 12},\n });\n\n invariant(products, 'No data returned from Shopify API');\n\n const mergedProducts = products.recommended\n .concat(products.additional.nodes)\n .filter(\n (value, index, array) =>\n array.findIndex((value2) => value2.id === value.id) === index,\n );\n\n const originalProduct = mergedProducts\n .map((item: ProductType) => item.id)\n .indexOf(productId);\n\n mergedProducts.splice(originalProduct, 1);\n\n return mergedProducts;\n}\n", "import{useState as s}from\"react\";import{useIsoMorphicEffect as f}from'./use-iso-morphic-effect.js';import{useLatestValue as m}from'./use-latest-value.js';function i(e,o){let[u,t]=s(e),r=m(e);return f(()=>t(r.current),[r,t,...o]),u}export{i as useComputed};\n", "function e(n={},r=null,t=[]){for(let[i,o]of Object.entries(n))f(t,s(r,i),o);return t}function s(n,r){return n?n+\"[\"+r+\"]\":r}function f(n,r,t){if(Array.isArray(t))for(let[i,o]of t.entries())f(n,s(r,i.toString()),o);else t instanceof Date?n.push([r,t.toISOString()]):typeof t==\"boolean\"?n.push([r,t?\"1\":\"0\"]):typeof t==\"string\"?n.push([r,t]):typeof t==\"number\"?n.push([r,`${t}`]):t==null?n.push([r,\"\"]):e(t,r,n)}function p(n){var t;let r=(t=n==null?void 0:n.form)!=null?t:n.closest(\"form\");if(!!r){for(let i of r.elements)if(i.tagName===\"INPUT\"&&i.type===\"submit\"||i.tagName===\"BUTTON\"&&i.type===\"submit\"||i.nodeName===\"INPUT\"&&i.type===\"image\"){i.click();return}}}export{p as attemptSubmit,e as objectToFormEntries};\n", "import{useState as f}from\"react\";import{useEvent as d}from'./use-event.js';function p(e,t,u){let[l,s]=f(u),i=e!==void 0;return[i?e:l,d(r=>(i||s(r),t==null?void 0:t(r)))]}export{p as useControllable};\n", "import G,{Fragment as q,createContext as J,createRef as V,useContext as Y,useEffect as Z,useMemo as E,useReducer as ee,useRef as Q}from\"react\";import{useDisposables as B}from'../../hooks/use-disposables.js';import{useId as U}from'../../hooks/use-id.js';import{useIsoMorphicEffect as A}from'../../hooks/use-iso-morphic-effect.js';import{useComputed as z}from'../../hooks/use-computed.js';import{useSyncRefs as I}from'../../hooks/use-sync-refs.js';import{Features as $,forwardRefWithAs as F,render as k,compact as te}from'../../utils/render.js';import{match as h}from'../../utils/match.js';import{disposables as _}from'../../utils/disposables.js';import{Keys as y}from'../keyboard.js';import{Focus as L,calculateActiveIndex as oe}from'../../utils/calculate-active-index.js';import{isDisabledReactIssue7711 as ne}from'../../utils/bugs.js';import{isFocusableElement as re,FocusableMode as ie,sortByDomNode as ae}from'../../utils/focus-management.js';import{useOpenClosed as le,State as H,OpenClosedProvider as se}from'../../internal/open-closed.js';import{useResolveButtonType as pe}from'../../hooks/use-resolve-button-type.js';import{useOutsideClick as ue}from'../../hooks/use-outside-click.js';import{Hidden as de,Features as ce}from'../../internal/hidden.js';import{objectToFormEntries as fe}from'../../utils/form.js';import{getOwnerDocument as be}from'../../utils/owner.js';import{useEvent as v}from'../../hooks/use-event.js';import{useControllable as Te}from'../../hooks/use-controllable.js';var ye=(n=>(n[n.Open=0]=\"Open\",n[n.Closed=1]=\"Closed\",n))(ye||{}),xe=(n=>(n[n.Single=0]=\"Single\",n[n.Multi=1]=\"Multi\",n))(xe||{}),Oe=(n=>(n[n.Pointer=0]=\"Pointer\",n[n.Other=1]=\"Other\",n))(Oe||{}),me=(r=>(r[r.OpenListbox=0]=\"OpenListbox\",r[r.CloseListbox=1]=\"CloseListbox\",r[r.SetDisabled=2]=\"SetDisabled\",r[r.SetOrientation=3]=\"SetOrientation\",r[r.GoToOption=4]=\"GoToOption\",r[r.Search=5]=\"Search\",r[r.ClearSearch=6]=\"ClearSearch\",r[r.RegisterOption=7]=\"RegisterOption\",r[r.UnregisterOption=8]=\"UnregisterOption\",r))(me||{});function j(t,i=n=>n){let n=t.activeOptionIndex!==null?t.options[t.activeOptionIndex]:null,e=ae(i(t.options.slice()),u=>u.dataRef.current.domRef.current),o=n?e.indexOf(n):null;return o===-1&&(o=null),{options:e,activeOptionIndex:o}}let ge={[1](t){return t.disabled||t.listboxState===1?t:{...t,activeOptionIndex:null,listboxState:1}},[0](t){if(t.disabled||t.listboxState===0)return t;let i=t.activeOptionIndex,{value:n,mode:e,compare:o}=t.propsRef.current,u=t.options.findIndex(l=>{let s=l.dataRef.current.value;return h(e,{[1]:()=>n.some(r=>o(r,s)),[0]:()=>o(n,s)})});return u!==-1&&(i=u),{...t,listboxState:0,activeOptionIndex:i}},[2](t,i){return t.disabled===i.disabled?t:{...t,disabled:i.disabled}},[3](t,i){return t.orientation===i.orientation?t:{...t,orientation:i.orientation}},[4](t,i){var o;if(t.disabled||t.listboxState===1)return t;let n=j(t),e=oe(i,{resolveItems:()=>n.options,resolveActiveIndex:()=>n.activeOptionIndex,resolveId:u=>u.id,resolveDisabled:u=>u.dataRef.current.disabled});return{...t,...n,searchQuery:\"\",activeOptionIndex:e,activationTrigger:(o=i.trigger)!=null?o:1}},[5]:(t,i)=>{if(t.disabled||t.listboxState===1)return t;let e=t.searchQuery!==\"\"?0:1,o=t.searchQuery+i.value.toLowerCase(),l=(t.activeOptionIndex!==null?t.options.slice(t.activeOptionIndex+e).concat(t.options.slice(0,t.activeOptionIndex+e)):t.options).find(d=>{var r;return!d.dataRef.current.disabled&&((r=d.dataRef.current.textValue)==null?void 0:r.startsWith(o))}),s=l?t.options.indexOf(l):-1;return s===-1||s===t.activeOptionIndex?{...t,searchQuery:o}:{...t,searchQuery:o,activeOptionIndex:s,activationTrigger:1}},[6](t){return t.disabled||t.listboxState===1||t.searchQuery===\"\"?t:{...t,searchQuery:\"\"}},[7]:(t,i)=>{let n={id:i.id,dataRef:i.dataRef},e=j(t,o=>[...o,n]);if(t.activeOptionIndex===null){let{value:o,mode:u,compare:l}=t.propsRef.current,s=i.dataRef.current.value;h(u,{[1]:()=>o.some(r=>l(r,s)),[0]:()=>l(o,s)})&&(e.activeOptionIndex=e.options.indexOf(n))}return{...t,...e}},[8]:(t,i)=>{let n=j(t,e=>{let o=e.findIndex(u=>u.id===i.id);return o!==-1&&e.splice(o,1),e});return{...t,...n,activationTrigger:1}}},K=J(null);K.displayName=\"ListboxContext\";function w(t){let i=Y(K);if(i===null){let n=new Error(`<${t} /> is missing a parent <Listbox /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,w),n}return i}function Re(t,i){return h(i.type,ge,t,i)}let ve=q,Le=F(function(i,n){let{value:e,defaultValue:o,name:u,onChange:l,by:s=(p,T)=>p===T,disabled:d=!1,horizontal:r=!1,multiple:x=!1,...S}=i;const g=r?\"horizontal\":\"vertical\";let O=I(n),[m,f]=Te(e,l,o),b=ee(Re,{listboxState:1,propsRef:{current:{value:m,onChange:f,mode:x?1:0,compare:v(typeof s==\"string\"?(p,T)=>{let C=s;return(p==null?void 0:p[C])===(T==null?void 0:T[C])}:s)}},labelRef:V(),buttonRef:V(),optionsRef:V(),disabled:d,orientation:g,options:[],searchQuery:\"\",activeOptionIndex:null,activationTrigger:1}),[{listboxState:a,propsRef:c,optionsRef:P,buttonRef:D},M]=b;c.current.value=m,c.current.mode=x?1:0,A(()=>{c.current.onChange=p=>h(c.current.mode,{[0](){return f(p)},[1](){let T=c.current.value.slice(),{compare:C}=c.current,W=T.findIndex(X=>C(X,p));return W===-1?T.push(p):T.splice(W,1),f(T)}})},[f,c]),A(()=>M({type:2,disabled:d}),[d]),A(()=>M({type:3,orientation:g}),[g]),ue([D,P],(p,T)=>{var C;M({type:1}),re(T,ie.Loose)||(p.preventDefault(),(C=D.current)==null||C.focus())},a===0);let N=E(()=>({open:a===0,disabled:d,value:m}),[a,d,m]),R={ref:O};return G.createElement(K.Provider,{value:b},G.createElement(se,{value:h(a,{[0]:H.Open,[1]:H.Closed})},u!=null&&m!=null&&fe({[u]:m}).map(([p,T])=>G.createElement(de,{features:ce.Hidden,...te({key:p,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,name:p,value:T})})),k({ourProps:R,theirProps:S,slot:N,defaultTag:ve,name:\"Listbox\"})))}),Se=\"button\",Ae=F(function(i,n){var f;let[e,o]=w(\"Listbox.Button\"),u=I(e.buttonRef,n),l=`headlessui-listbox-button-${U()}`,s=B(),d=v(b=>{switch(b.key){case y.Space:case y.Enter:case y.ArrowDown:b.preventDefault(),o({type:0}),s.nextFrame(()=>{e.propsRef.current.value||o({type:4,focus:L.First})});break;case y.ArrowUp:b.preventDefault(),o({type:0}),s.nextFrame(()=>{e.propsRef.current.value||o({type:4,focus:L.Last})});break}}),r=v(b=>{switch(b.key){case y.Space:b.preventDefault();break}}),x=v(b=>{if(ne(b.currentTarget))return b.preventDefault();e.listboxState===0?(o({type:1}),s.nextFrame(()=>{var a;return(a=e.buttonRef.current)==null?void 0:a.focus({preventScroll:!0})})):(b.preventDefault(),o({type:0}))}),S=z(()=>{if(!!e.labelRef.current)return[e.labelRef.current.id,l].join(\" \")},[e.labelRef.current,l]),g=E(()=>({open:e.listboxState===0,disabled:e.disabled,value:e.propsRef.current.value}),[e]),O=i,m={ref:u,id:l,type:pe(i,e.buttonRef),\"aria-haspopup\":!0,\"aria-controls\":(f=e.optionsRef.current)==null?void 0:f.id,\"aria-expanded\":e.disabled?void 0:e.listboxState===0,\"aria-labelledby\":S,disabled:e.disabled,onKeyDown:d,onKeyUp:r,onClick:x};return k({ourProps:m,theirProps:O,slot:g,defaultTag:Se,name:\"Listbox.Button\"})}),he=\"label\",Pe=F(function(i,n){let[e]=w(\"Listbox.Label\"),o=`headlessui-listbox-label-${U()}`,u=I(e.labelRef,n),l=v(()=>{var x;return(x=e.buttonRef.current)==null?void 0:x.focus({preventScroll:!0})}),s=E(()=>({open:e.listboxState===0,disabled:e.disabled}),[e]);return k({ourProps:{ref:u,id:o,onClick:l},theirProps:i,slot:s,defaultTag:he,name:\"Listbox.Label\"})}),Ce=\"ul\",De=$.RenderStrategy|$.Static,Me=F(function(i,n){var b;let[e,o]=w(\"Listbox.Options\"),u=I(e.optionsRef,n),l=`headlessui-listbox-options-${U()}`,s=B(),d=B(),r=le(),x=(()=>r!==null?r===H.Open:e.listboxState===0)();Z(()=>{var c;let a=e.optionsRef.current;!a||e.listboxState===0&&a!==((c=be(a))==null?void 0:c.activeElement)&&a.focus({preventScroll:!0})},[e.listboxState,e.optionsRef]);let S=v(a=>{switch(d.dispose(),a.key){case y.Space:if(e.searchQuery!==\"\")return a.preventDefault(),a.stopPropagation(),o({type:5,value:a.key});case y.Enter:if(a.preventDefault(),a.stopPropagation(),e.activeOptionIndex!==null){let{dataRef:c}=e.options[e.activeOptionIndex];e.propsRef.current.onChange(c.current.value)}e.propsRef.current.mode===0&&(o({type:1}),_().nextFrame(()=>{var c;return(c=e.buttonRef.current)==null?void 0:c.focus({preventScroll:!0})}));break;case h(e.orientation,{vertical:y.ArrowDown,horizontal:y.ArrowRight}):return a.preventDefault(),a.stopPropagation(),o({type:4,focus:L.Next});case h(e.orientation,{vertical:y.ArrowUp,horizontal:y.ArrowLeft}):return a.preventDefault(),a.stopPropagation(),o({type:4,focus:L.Previous});case y.Home:case y.PageUp:return a.preventDefault(),a.stopPropagation(),o({type:4,focus:L.First});case y.End:case y.PageDown:return a.preventDefault(),a.stopPropagation(),o({type:4,focus:L.Last});case y.Escape:return a.preventDefault(),a.stopPropagation(),o({type:1}),s.nextFrame(()=>{var c;return(c=e.buttonRef.current)==null?void 0:c.focus({preventScroll:!0})});case y.Tab:a.preventDefault(),a.stopPropagation();break;default:a.key.length===1&&(o({type:5,value:a.key}),d.setTimeout(()=>o({type:6}),350));break}}),g=z(()=>{var a,c,P;return(P=(a=e.labelRef.current)==null?void 0:a.id)!=null?P:(c=e.buttonRef.current)==null?void 0:c.id},[e.labelRef.current,e.buttonRef.current]),O=E(()=>({open:e.listboxState===0}),[e]),m=i,f={\"aria-activedescendant\":e.activeOptionIndex===null||(b=e.options[e.activeOptionIndex])==null?void 0:b.id,\"aria-multiselectable\":e.propsRef.current.mode===1?!0:void 0,\"aria-labelledby\":g,\"aria-orientation\":e.orientation,id:l,onKeyDown:S,role:\"listbox\",tabIndex:0,ref:u};return k({ourProps:f,theirProps:m,slot:O,defaultTag:Ce,features:De,visible:x,name:\"Listbox.Options\"})}),Ee=\"li\",Ie=F(function(i,n){let{disabled:e=!1,value:o,...u}=i,[l,s]=w(\"Listbox.Option\"),d=`headlessui-listbox-option-${U()}`,r=l.activeOptionIndex!==null?l.options[l.activeOptionIndex].id===d:!1,{value:x,compare:S}=l.propsRef.current,g=h(l.propsRef.current.mode,{[1]:()=>x.some(R=>S(R,o)),[0]:()=>S(x,o)}),O=Q(null),m=I(n,O);A(()=>{if(l.listboxState!==0||!r||l.activationTrigger===0)return;let R=_();return R.requestAnimationFrame(()=>{var p,T;(T=(p=O.current)==null?void 0:p.scrollIntoView)==null||T.call(p,{block:\"nearest\"})}),R.dispose},[O,r,l.listboxState,l.activationTrigger,l.activeOptionIndex]);let f=Q({disabled:e,value:o,domRef:O});A(()=>{f.current.disabled=e},[f,e]),A(()=>{f.current.value=o},[f,o]),A(()=>{var R,p;f.current.textValue=(p=(R=O.current)==null?void 0:R.textContent)==null?void 0:p.toLowerCase()},[f,O]);let b=v(()=>l.propsRef.current.onChange(o));A(()=>(s({type:7,id:d,dataRef:f}),()=>s({type:8,id:d})),[f,d]);let a=v(R=>{if(e)return R.preventDefault();b(),l.propsRef.current.mode===0&&(s({type:1}),_().nextFrame(()=>{var p;return(p=l.buttonRef.current)==null?void 0:p.focus({preventScroll:!0})}))}),c=v(()=>{if(e)return s({type:4,focus:L.Nothing});s({type:4,focus:L.Specific,id:d})}),P=v(()=>{e||r||s({type:4,focus:L.Specific,id:d,trigger:0})}),D=v(()=>{e||!r||s({type:4,focus:L.Nothing})}),M=E(()=>({active:r,selected:g,disabled:e}),[r,g,e]);return k({ourProps:{id:d,ref:m,role:\"option\",tabIndex:e===!0?void 0:-1,\"aria-disabled\":e===!0?!0:void 0,\"aria-selected\":g,disabled:void 0,onClick:a,onFocus:c,onPointerMove:P,onMouseMove:P,onPointerLeave:D,onMouseLeave:D},theirProps:u,slot:M,defaultTag:Ee,name:\"Listbox.Option\"})}),pt=Object.assign(Le,{Button:Ae,Label:Pe,Options:Me,Option:Ie});export{pt as Listbox};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["import_react", "import_react", "i", "u", "s", "r", "e", "n", "r", "t", "i", "o", "f", "s", "import_react", "p", "t", "u", "l", "s", "f", "o", "r", "import_react", "ye", "n", "xe", "Oe", "me", "r", "j", "t", "i", "e", "S", "u", "o", "ge", "l", "s", "x", "d", "K", "J", "w", "Y", "Re", "ve", "q", "Le", "C", "p", "T", "O", "y", "m", "b", "ee", "V", "a", "c", "P", "D", "M", "W", "X", "L", "F", "N", "E", "R", "G", "h", "$", "Se", "Ae", "f", "I", "g", "he", "Pe", "Ce", "De", "Me", "Z", "Ee", "Ie", "Q", "pt", "import_jsx_runtime", "Product", "product", "shop", "recommended", "useLoaderData", "media", "title", "vendor", "descriptionHtml", "shippingPolicy", "refundPolicy", "Section", "ProductGallery", "Heading", "Text", "ProductForm", "ProductDetail", "getExcerpt", "Skeleton", "Await", "products", "ProductSwimlane", "currentSearchParams", "useSearchParams", "transition", "useTransition", "searchParams", "firstVariant", "searchParamsWithDefaults", "clonedParams", "name", "value", "selectedVariant", "isOutOfStock", "isOnSale", "lines", "ProductOptions", "AddToCartButton", "Money", "ShopPayButton", "options", "closeRef", "option", "pt", "open", "clsx_m_default", "IconCaret", "active", "ProductOptionLink", "IconCheck", "checked", "id", "optionName", "optionValue", "children", "props", "pathname", "useLocation", "path", "clonedSearchParams", "Link", "content", "learnMore", "Oe", "IconClose", "PRODUCT_QUERY", "MEDIA_FRAGMENT", "PRODUCT_VARIANT_FRAGMENT", "RECOMMENDED_PRODUCTS_QUERY", "PRODUCT_CARD_FRAGMENT"]
|
|
7
|
-
}
|
package/dist/templates/demo-store/dist/client/build/routes/($lang)/products/index-266HKDAN.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import{b as C}from"/build/_shared/chunk-EW52HEI6.js";import{G as f,H as p,K as g,N as m,R as o,ba as y,ca as P}from"/build/_shared/chunk-SZCP6RSO.js";import"/build/_shared/chunk-7CKXJRLM.js";import"/build/_shared/chunk-NIVT6A2W.js";import"/build/_shared/chunk-AYHDHSL7.js";import"/build/_shared/chunk-7CASD2US.js";import{q as d}from"/build/_shared/chunk-YCAWB56Y.js";import{b as l}from"/build/_shared/chunk-SYP5DAMV.js";import{c}from"/build/_shared/chunk-MEPKJ2VW.js";var t=c(l());var L=()=>({title:"All Products",description:"All Products"});function $(){let A=d();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(p,{heading:"All Products",variant:"allCollections"}),(0,t.jsx)(f,{children:(0,t.jsx)(P,{connection:A,children:({endCursor:a,hasNextPage:n,hasPreviousPage:i,nextPageUrl:v,nodes:e,prevPageUrl:h,startCursor:u,nextLinkRef:x,isLoading:r})=>{let I=e.map((s,b)=>(0,t.jsx)(m,{product:s,loading:g(b)},s.id));return(0,t.jsxs)(t.Fragment,{children:[i&&(0,t.jsx)("div",{className:"flex items-center justify-center mt-6",children:(0,t.jsx)(o,{to:h,variant:"secondary",prefetch:"intent",width:"full",disabled:!r,state:{pageInfo:{endCursor:a,hasNextPage:n,startCursor:u},nodes:e},children:r?"Loading...":"Previous"})}),(0,t.jsx)(y,{"data-test":"product-grid",children:I}),n&&(0,t.jsx)("div",{className:"flex items-center justify-center mt-6",children:(0,t.jsx)(o,{ref:x,to:v,variant:"secondary",prefetch:"intent",width:"full",disabled:!r,state:{pageInfo:{endCursor:a,hasPreviousPage:i,startCursor:u},nodes:e},children:r?"Loading...":"Next"})})]})}})})]})}var D=`#graphql
|
|
2
|
-
${C}
|
|
3
|
-
query AllProducts(
|
|
4
|
-
$country: CountryCode
|
|
5
|
-
$language: LanguageCode
|
|
6
|
-
$first: Int
|
|
7
|
-
$last: Int
|
|
8
|
-
$startCursor: String
|
|
9
|
-
$endCursor: String
|
|
10
|
-
) @inContext(country: $country, language: $language) {
|
|
11
|
-
products(first: $first, last: $last, before: $startCursor, after: $endCursor) {
|
|
12
|
-
nodes {
|
|
13
|
-
...ProductCard
|
|
14
|
-
}
|
|
15
|
-
pageInfo {
|
|
16
|
-
hasPreviousPage
|
|
17
|
-
hasNextPage
|
|
18
|
-
startCursor
|
|
19
|
-
endCursor
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
`;export{$ as default,L as meta};
|
|
24
|
-
//# sourceMappingURL=/build/routes/($lang)/products/index-266HKDAN.js.map
|
package/dist/templates/demo-store/dist/client/build/routes/($lang)/products/index-266HKDAN.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../../app/routes/($lang)/products/index.tsx"],
|
|
4
|
-
"sourcesContent": ["import {type MetaFunction, type LoaderArgs} from '@shopify/remix-oxygen';\nimport {useLoaderData} from '@remix-run/react';\nimport type {ProductConnection} from '@shopify/storefront-kit-react/storefront-api-types';\nimport invariant from 'tiny-invariant';\nimport {\n PageHeader,\n Section,\n ProductCard,\n Grid,\n Pagination,\n getPaginationVariables,\n Button,\n} from '~/components';\nimport {PRODUCT_CARD_FRAGMENT} from '~/data';\nimport {getImageLoadingPriority} from '~/lib/const';\n\nconst PAGE_BY = 8;\n\nexport async function loader({request, context: {storefront}}: LoaderArgs) {\n const variables = getPaginationVariables(request, PAGE_BY);\n\n const data = await storefront.query<{\n products: ProductConnection;\n }>(ALL_PRODUCTS_QUERY, {\n variables: {\n ...variables,\n country: storefront.i18n.country,\n language: storefront.i18n.language,\n },\n });\n\n invariant(data, 'No data returned from Shopify API');\n\n return data.products;\n}\n\nexport const meta: MetaFunction = () => {\n return {\n title: 'All Products',\n description: 'All Products',\n };\n};\n\nexport default function AllProducts() {\n const products = useLoaderData<typeof loader>();\n\n return (\n <>\n <PageHeader heading=\"All Products\" variant=\"allCollections\" />\n <Section>\n <Pagination connection={products}>\n {({\n endCursor,\n hasNextPage,\n hasPreviousPage,\n nextPageUrl,\n nodes,\n prevPageUrl,\n startCursor,\n nextLinkRef,\n isLoading,\n }) => {\n const itemsMarkup = nodes.map((product, i) => (\n <ProductCard\n key={product.id}\n product={product}\n loading={getImageLoadingPriority(i)}\n />\n ));\n\n return (\n <>\n {hasPreviousPage && (\n <div className=\"flex items-center justify-center mt-6\">\n <Button\n to={prevPageUrl}\n variant=\"secondary\"\n prefetch=\"intent\"\n width=\"full\"\n disabled={!isLoading}\n state={{\n pageInfo: {\n endCursor,\n hasNextPage,\n startCursor,\n },\n nodes,\n }}\n >\n {isLoading ? 'Loading...' : 'Previous'}\n </Button>\n </div>\n )}\n <Grid data-test=\"product-grid\">{itemsMarkup}</Grid>\n {hasNextPage && (\n <div className=\"flex items-center justify-center mt-6\">\n <Button\n ref={nextLinkRef}\n to={nextPageUrl}\n variant=\"secondary\"\n prefetch=\"intent\"\n width=\"full\"\n disabled={!isLoading}\n state={{\n pageInfo: {\n endCursor,\n hasPreviousPage,\n startCursor,\n },\n nodes,\n }}\n >\n {isLoading ? 'Loading...' : 'Next'}\n </Button>\n </div>\n )}\n </>\n );\n }}\n </Pagination>\n </Section>\n </>\n );\n}\n\nconst ALL_PRODUCTS_QUERY = `#graphql\n ${PRODUCT_CARD_FRAGMENT}\n query AllProducts(\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n products(first: $first, last: $last, before: $startCursor, after: $endCursor) {\n nodes {\n ...ProductCard\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n }\n`;\n"],
|
|
5
|
-
"mappings": "odAgDM,IAAAA,EAAA,OAZC,IAAMC,EAAqB,KACzB,CACL,MAAO,eACP,YAAa,cACf,GAGa,SAARC,GAA+B,CACpC,IAAMC,EAAWC,EAA6B,EAE9C,SACE,oBACE,oBAACC,EAAA,CAAW,QAAQ,eAAe,QAAQ,iBAAiB,KAC5D,OAACC,EAAA,CACC,mBAACC,EAAA,CAAW,WAAYJ,EACrB,UAAC,CACA,UAAAK,EACA,YAAAC,EACA,gBAAAC,EACA,YAAAC,EACA,MAAAC,EACA,YAAAC,EACA,YAAAC,EACA,YAAAC,EACA,UAAAC,CACF,IAAM,CACJ,IAAMC,EAAcL,EAAM,IAAI,CAACM,EAASC,OACtC,OAACC,EAAA,CAEC,QAASF,EACT,QAASG,EAAwBF,CAAC,GAF7BD,EAAQ,EAGf,CACD,EAED,SACE,oBACG,UAAAR,MACC,OAAC,OAAI,UAAU,wCACb,mBAACY,EAAA,CACC,GAAIT,EACJ,QAAQ,YACR,SAAS,SACT,MAAM,OACN,SAAU,CAACG,EACX,MAAO,CACL,SAAU,CACR,UAAAR,EACA,YAAAC,EACA,YAAAK,CACF,EACA,MAAAF,CACF,EAEC,SAAAI,EAAY,aAAe,WAC9B,EACF,KAEF,OAACO,EAAA,CAAK,YAAU,eAAgB,SAAAN,EAAY,EAC3CR,MACC,OAAC,OAAI,UAAU,wCACb,mBAACa,EAAA,CACC,IAAKP,EACL,GAAIJ,EACJ,QAAQ,YACR,SAAS,SACT,MAAM,OACN,SAAU,CAACK,EACX,MAAO,CACL,SAAU,CACR,UAAAR,EACA,gBAAAE,EACA,YAAAI,CACF,EACA,MAAAF,CACF,EAEC,SAAAI,EAAY,aAAe,OAC9B,EACF,GAEJ,CAEJ,EACF,EACF,GACF,CAEJ,CAEA,IAAMQ,EAAqB;AAAA,IACvBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
6
|
-
"names": ["import_jsx_runtime", "meta", "AllProducts", "products", "useLoaderData", "PageHeader", "Section", "Pagination", "endCursor", "hasNextPage", "hasPreviousPage", "nextPageUrl", "nodes", "prevPageUrl", "startCursor", "nextLinkRef", "isLoading", "itemsMarkup", "product", "i", "ProductCard", "getImageLoadingPriority", "Button", "Grid", "ALL_PRODUCTS_QUERY", "PRODUCT_CARD_FRAGMENT"]
|
|
7
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import{b as a}from"/build/_shared/chunk-EW52HEI6.js";import{E as g,F as m,G as r,H as p,I as y,O as f,P as C,Z as h}from"/build/_shared/chunk-SZCP6RSO.js";import"/build/_shared/chunk-7CKXJRLM.js";import"/build/_shared/chunk-NIVT6A2W.js";import"/build/_shared/chunk-AYHDHSL7.js";import"/build/_shared/chunk-7CASD2US.js";import{g as u,n as i,q as l}from"/build/_shared/chunk-YCAWB56Y.js";import{a as $,b as d}from"/build/_shared/chunk-SYP5DAMV.js";import{c as o}from"/build/_shared/chunk-MEPKJ2VW.js";var P=o($());var e=o(d());function A(){let{searchTerm:t,products:n,noResultRecommendations:R}=l(),s=n?.nodes?.length===0;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(p,{children:[(0,e.jsx)(m,{as:"h1",size:"copy",children:"Search"}),(0,e.jsxs)(u,{method:"get",className:"relative flex w-full text-heading",children:[(0,e.jsx)(y,{defaultValue:t,placeholder:"Search\u2026",type:"search",variant:"search",name:"q"}),(0,e.jsx)("button",{className:"absolute right-0 py-2",type:"submit",children:"Go"})]})]}),!t||s?(0,e.jsxs)(e.Fragment,{children:[s&&(0,e.jsx)(r,{padding:"x",children:(0,e.jsx)(g,{className:"opacity-50",children:"No results, try something else."})}),(0,e.jsx)(P.Suspense,{children:(0,e.jsx)(i,{errorElement:"There was a problem loading related products",resolve:R,children:c=>(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(h,{title:"Trending Collections",collections:c.featuredCollections}),(0,e.jsx)(f,{title:"Trending Products",products:c.featuredProducts})]})})})]}):(0,e.jsx)(r,{children:(0,e.jsx)(C,{url:`/search?q=${t}`,collection:{products:n}},"search")})]})}var q=`#graphql
|
|
2
|
-
${a}
|
|
3
|
-
query search(
|
|
4
|
-
$searchTerm: String
|
|
5
|
-
$country: CountryCode
|
|
6
|
-
$language: LanguageCode
|
|
7
|
-
$pageBy: Int!
|
|
8
|
-
$after: String
|
|
9
|
-
) @inContext(country: $country, language: $language) {
|
|
10
|
-
products(
|
|
11
|
-
first: $pageBy
|
|
12
|
-
sortKey: RELEVANCE
|
|
13
|
-
query: $searchTerm
|
|
14
|
-
after: $after
|
|
15
|
-
) {
|
|
16
|
-
nodes {
|
|
17
|
-
...ProductCard
|
|
18
|
-
}
|
|
19
|
-
pageInfo {
|
|
20
|
-
startCursor
|
|
21
|
-
endCursor
|
|
22
|
-
hasNextPage
|
|
23
|
-
hasPreviousPage
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
`;var w=`#graphql
|
|
28
|
-
${a}
|
|
29
|
-
query searchNoResult(
|
|
30
|
-
$country: CountryCode
|
|
31
|
-
$language: LanguageCode
|
|
32
|
-
$pageBy: Int!
|
|
33
|
-
) @inContext(country: $country, language: $language) {
|
|
34
|
-
featuredCollections: collections(first: 3, sortKey: UPDATED_AT) {
|
|
35
|
-
nodes {
|
|
36
|
-
id
|
|
37
|
-
title
|
|
38
|
-
handle
|
|
39
|
-
image {
|
|
40
|
-
altText
|
|
41
|
-
width
|
|
42
|
-
height
|
|
43
|
-
url
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
featuredProducts: products(first: $pageBy) {
|
|
48
|
-
nodes {
|
|
49
|
-
...ProductCard
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
`;export{A as default};
|
|
54
|
-
//# sourceMappingURL=/build/routes/($lang)/search-CH57YG7S.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../app/routes/($lang)/search.tsx"],
|
|
4
|
-
"sourcesContent": ["import {defer, type LoaderArgs} from '@shopify/remix-oxygen';\nimport {flattenConnection} from '@shopify/storefront-kit-react';\nimport {Await, Form, useLoaderData} from '@remix-run/react';\nimport type {\n Collection,\n CollectionConnection,\n Product,\n ProductConnection,\n} from '@shopify/storefront-kit-react/storefront-api-types';\nimport {Suspense} from 'react';\nimport invariant from 'tiny-invariant';\nimport {\n Heading,\n Input,\n PageHeader,\n ProductGrid,\n ProductSwimlane,\n FeaturedCollections,\n Section,\n Text,\n} from '~/components';\nimport {PRODUCT_CARD_FRAGMENT} from '~/data';\nimport {PAGINATION_SIZE} from '~/lib/const';\n\nexport default function () {\n const {searchTerm, products, noResultRecommendations} =\n useLoaderData<typeof loader>();\n const noResults = products?.nodes?.length === 0;\n\n return (\n <>\n <PageHeader>\n <Heading as=\"h1\" size=\"copy\">\n Search\n </Heading>\n <Form method=\"get\" className=\"relative flex w-full text-heading\">\n <Input\n defaultValue={searchTerm}\n placeholder=\"Search\u2026\"\n type=\"search\"\n variant=\"search\"\n name=\"q\"\n />\n <button className=\"absolute right-0 py-2\" type=\"submit\">\n Go\n </button>\n </Form>\n </PageHeader>\n {!searchTerm || noResults ? (\n <>\n {noResults && (\n <Section padding=\"x\">\n <Text className=\"opacity-50\">\n No results, try something else.\n </Text>\n </Section>\n )}\n <Suspense>\n <Await\n errorElement=\"There was a problem loading related products\"\n resolve={noResultRecommendations}\n >\n {(data) => (\n <>\n <FeaturedCollections\n title=\"Trending Collections\"\n collections={data!.featuredCollections as Array<Collection>}\n />\n <ProductSwimlane\n title=\"Trending Products\"\n products={data!.featuredProducts as Array<Product>}\n />\n </>\n )}\n </Await>\n </Suspense>\n </>\n ) : (\n <Section>\n <ProductGrid\n key=\"search\"\n url={`/search?q=${searchTerm}`}\n collection={{products} as Collection}\n />\n </Section>\n )}\n </>\n );\n}\n\nexport async function loader({request, context: {storefront}}: LoaderArgs) {\n const searchParams = new URL(request.url).searchParams;\n const cursor = searchParams.get('cursor')!;\n const searchTerm = searchParams.get('q')!;\n\n const data = await storefront.query<{\n products: ProductConnection;\n }>(SEARCH_QUERY, {\n variables: {\n pageBy: PAGINATION_SIZE,\n searchTerm,\n cursor,\n country: storefront.i18n.country,\n language: storefront.i18n.language,\n },\n });\n\n invariant(data, 'No data returned from Shopify API');\n const {products} = data;\n\n const getRecommendations = !searchTerm || products?.nodes?.length === 0;\n\n return defer({\n searchTerm,\n products,\n noResultRecommendations: getRecommendations\n ? getNoResultRecommendations(storefront)\n : Promise.resolve(null),\n });\n}\n\nconst SEARCH_QUERY = `#graphql\n ${PRODUCT_CARD_FRAGMENT}\n query search(\n $searchTerm: String\n $country: CountryCode\n $language: LanguageCode\n $pageBy: Int!\n $after: String\n ) @inContext(country: $country, language: $language) {\n products(\n first: $pageBy\n sortKey: RELEVANCE\n query: $searchTerm\n after: $after\n ) {\n nodes {\n ...ProductCard\n }\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n }\n }\n`;\n\nexport async function getNoResultRecommendations(\n storefront: LoaderArgs['context']['storefront'],\n) {\n const data = await storefront.query<{\n featuredCollections: CollectionConnection;\n featuredProducts: ProductConnection;\n }>(SEARCH_NO_RESULTS_QUERY, {\n variables: {\n pageBy: PAGINATION_SIZE,\n country: storefront.i18n.country,\n language: storefront.i18n.language,\n },\n });\n\n invariant(data, 'No data returned from Shopify API');\n\n return {\n featuredCollections: flattenConnection(data.featuredCollections),\n featuredProducts: flattenConnection(data.featuredProducts),\n };\n}\n\nconst SEARCH_NO_RESULTS_QUERY = `#graphql\n ${PRODUCT_CARD_FRAGMENT}\n query searchNoResult(\n $country: CountryCode\n $language: LanguageCode\n $pageBy: Int!\n ) @inContext(country: $country, language: $language) {\n featuredCollections: collections(first: 3, sortKey: UPDATED_AT) {\n nodes {\n id\n title\n handle\n image {\n altText\n width\n height\n url\n }\n }\n }\n featuredProducts: products(first: $pageBy) {\n nodes {\n ...ProductCard\n }\n }\n }\n`;\n"],
|
|
5
|
-
"mappings": "mfASA,IAAAA,EAAuB,OAuBf,IAAAC,EAAA,OARO,SAARC,GAAoB,CACzB,GAAM,CAAC,WAAAC,EAAY,SAAAC,EAAU,wBAAAC,CAAuB,EAClDC,EAA6B,EACzBC,EAAYH,GAAU,OAAO,SAAW,EAE9C,SACE,oBACE,qBAACI,EAAA,CACC,oBAACC,EAAA,CAAQ,GAAG,KAAK,KAAK,OAAO,kBAE7B,KACA,QAACC,EAAA,CAAK,OAAO,MAAM,UAAU,oCAC3B,oBAACC,EAAA,CACC,aAAcR,EACd,YAAY,eACZ,KAAK,SACL,QAAQ,SACR,KAAK,IACP,KACA,OAAC,UAAO,UAAU,wBAAwB,KAAK,SAAS,cAExD,GACF,GACF,EACC,CAACA,GAAcI,KACd,oBACG,UAAAA,MACC,OAACK,EAAA,CAAQ,QAAQ,IACf,mBAACC,EAAA,CAAK,UAAU,aAAa,2CAE7B,EACF,KAEF,OAAC,YACC,mBAACC,EAAA,CACC,aAAa,+CACb,QAAST,EAER,SAACU,MACA,oBACE,oBAACC,EAAA,CACC,MAAM,uBACN,YAAaD,EAAM,oBACrB,KACA,OAACE,EAAA,CACC,MAAM,oBACN,SAAUF,EAAM,iBAClB,GACF,EAEJ,EACF,GACF,KAEA,OAACH,EAAA,CACC,mBAACM,EAAA,CAEC,IAAK,aAAaf,IAClB,WAAY,CAAC,SAAAC,CAAQ,GAFjB,QAGN,EACF,GAEJ,CAEJ,CAiCA,IAAMe,EAAe;AAAA,IACjBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAiDJ,IAAMC,EAA0B;AAAA,IAC5BC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
6
|
-
"names": ["import_react", "import_jsx_runtime", "search_default", "searchTerm", "products", "noResultRecommendations", "useLoaderData", "noResults", "PageHeader", "Heading", "Form", "Input", "Section", "Text", "Await", "data", "FeaturedCollections", "ProductSwimlane", "ProductGrid", "SEARCH_QUERY", "PRODUCT_CARD_FRAGMENT", "SEARCH_NO_RESULTS_QUERY", "PRODUCT_CARD_FRAGMENT"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["browser-route-module:routes/graphiql.tsx?browser"],
|
|
4
|
-
"sourcesContent": ["module.exports = {};"],
|
|
5
|
-
"mappings": "qDAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,CAAAA,EAAO,QAAU,CAAC",
|
|
6
|
-
"names": ["require_graphiql", "__commonJSMin", "exports", "module"]
|
|
7
|
-
}
|
|
Binary file
|