@shopify/cli-hydrogen 4.0.0-alpha.1 → 4.0.0-alpha.2
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/templates/demo-store/.cache/content-v2/sha512/00/cf/2691ba3b4253dc803282219fc108c6d7b3fb03e318729ee568216e8a13af36614948c5a215992ba7b5222cc1055cf81b6a752c3597e261a8c8095f55eb9d +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/02/76/13bbea15bb42b81a204b0dc5f14726e0bfa8d012a7b284f887cc2e3c92195d6b07a78f199f990b311ca5fafa9079563503cdd81808cd9b7e496d86c72732 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/08/3c/f2108d415b1474e3e7fee6684b9f1c4b99249c5d4178686b1632d19209f6782c86d7b04abe3873d955bb9e353cca92d8ae7324f374eb691bfd8729ce8407 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/0c/da/c6f091fb614d96e6d0a533733b487011ab615ad5983823c7085320ec2ea2ee8e020ae2646f4772d350f253abb4f8a2489c843a8b873a90bfed3c27c5fd0b +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/11/0c/195071c290a61e22dd825b300c9f93e5315b2effefc3e5545440ac704d629e177bc877333ce73232ac72703bcc69fb425632d84b3caefe7f5c0fd12537ee +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/17/08/03dabbacd40d4a2b132018a520d1dbcf29ffb2c659bbe01cb91f700202d5016ab4104831b95a05b98535549be4a6520ddcd6504ba361692549a5cd0458ee +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/25/f3/97b4dddda618ca4621d4a8da779269ba2f2eae1fc35cb0cc394e5fb909bb4825e10ca37a4115d69fdd5551be5d64bdb75e0bf0199794f473c25f4ae7aa1a +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/27/a0/d277ff364ced6a2d01639f1e2b8675ef95eff3a4aa4d2fda0990392526e0f18def66116a8623096d1bdafabe1dc8efc56ef0956054b3370dfa9ad6596a29 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/28/53/96d2a5c3d4b08a7191e545d4d961f7690f814a331dc8efcc11e45854fbccd04f825ec8d3a1070b05aca51dd63e06c778316395446055cc3cfc90c8b30615 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/28/7c/c71b0c6367bdf7307a8061fe1c4568c9f1e9603d835b6fc917fe8042535a867c37154e35376a01ad6bdb3c2d6f29b88b41902fd6f20b1227e02081682d01 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/29/2e/db501d168869cc6b7d5e51bfbf399e920773ed905b9e2b782ebfb29c5260f05b67d0b7d4599e8c5666253789d545ecfdfdb9e020da8ac262d99d0e69e5b0 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/2b/71/b06448186eeafe74e7e29de9fb188013acc513af9d0d4eeff66650385fce9f77f5f2ccea51806c8449cf25c7825ee4c3ac428822d4e3b8b3f1b010adb7aa +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/2d/e9/141465ed1c16a93073fe5602f300dc3d8a5246fe045abffa4ac277550e4b365c30629224f328540a36d470ef4d69d8f80d6aeadfbd4a07872a66c40143df +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/2d/ec/a65ff18546d88746d8d74b60cd34137005996ded9afd4877b74cba36e9a4dd1829992dbb37ec13b296f39cfeef462c6f12a4c6913577504fec6d7d5611aa +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/30/9f/f03a3dcdd3a5f1116ab710595deb552c1564bd8295bff71f62b3d95be656a6ef53e8ceaee21cbcb880cc06270c3db2327ab1ddef2fc09d6cba4436f470e7 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/35/3c/f46f8adbcf210210bac8ab00267ab16c16393ab4a95920f69c4452b298a83c9785d3d2c2bb4a63937cb4eed028197a18f0d2929024ebae18b0751f07ebf5 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/36/3e/ece5cc6633a23301aa4f05fc1efddd8876aec2d8bf7afe504526e2866ed67263e99bffbb1e0d99a65622a7246f9d662217032aca47f70b6f0f13b75e7df1 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/37/19/de54f68ea7b2a79f86d12ec1107e99d04217817fb6de9a5ba2dc5cdd16d16e1dda4cc9f7cf2b6ece5a6330f47ca20fa27a08aeffc17eb23fd11399e601fd +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/46/04/af285aee74d96b28b24f75d7911de65e6c7bb26475ab5219fe5308028fda55060cf45650dfa09c0731ec73ece453c1e24e0c38715e8d4c5c80fd6365a1f4 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/46/1c/c69c5b9150a9f76dff13c0d6a768540636e6569f4f3f56795d1b4c494045d5908674f292815212ac52e6d8a597b4ad35783506113f195a09f1057f09f00c +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/4b/48/ca635670e7d1b1a5550d32f51389a5754234da55c6d7c900f348c8bf1ccc84bdcefc620e08979b7aa1d04a49a1138b46346f126d20c0126eb0c3261deb5b +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/50/75/609ace481c5e148698b91afca04bd995ab360802c5f8961228eceb891236836cab54c7fddd97a62e4ca19a03e5863fd0999c68849cf37b30a4fe32e1397f +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/50/cd/4f809a5b4a52449879ecf0b061e00f36f5e2df284fddb5c9c75e13ab1db6e85931fb82d211f1699eed3fe308ffd5d2e69dc2d261fdea58f8224acc278143 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/51/ab/e165384df6374c7b2d0ebebc8642ecb0e0c14f7c5b57970ec5d2e17f7d1643e0b01eda69e5ffbefde85ecba6d613bcc5175c5564e36bfb73d966c8ea4153 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/54/86/917224aeb3e04e19a51534244f5ed28f3529d85276452f52af9af3657798246c97a0948bcf62c707394ab80f0062a87e7079bd71c05e0d16f927091617d2 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/6a/9d/a99dc2fae7981ecb35b0dadc0acddd23e65ae6590f70743d824c36697fd10610ffafa9aa63c09a7861a701c1d52400050d9b562dc4f6bdba8e0de362b486 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/6b/6d/71211d4cebfd1e1c86788ede5784a53cf366a85f4e2646a300c820958a5219bfa5492b169d1cca1b431e946b41d15a526ee7f77db65a6e730dead281f777 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/6e/25/d2212e576c7d9684f5237bd1ee363dfe5cf0ad5f9acbeeded47a531c7d3444d2144684e310c8d4d4200ee5b142671bc2be887dc8d3244377d645813e048c +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/73/40/c822831f11f08a9ceea944d0145b072ba6164a3e2e75f98fda5437cda6dfddf9ca9450445c1f3236228d6259ac95e4cde9bb6e5996490ed00b7b13b06121 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/73/4c/bf7dfa31c1d17f57e5fdabc0bd79ce133d3ea7562f494615c8bd4369b58c29963090577cd70c6ab2bb8af6ae92915ce20bb0bf1925cccb961aeeed9c8703 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/7b/15/d1749be8fa73f2f123e5e9a0807f343cdfa14fd263f9073fe7cd73352b7318b976a43687096a06acbbed2a2f0f86119d45cdd1e9ad6d09208c06b6232db2 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/88/76/d18fdfbb05293909609d42368642fc6da4bd138c5864ec2f721212b52e595b84ae46f48021ed3e6240edf443f78bdea557d56d700e3da848459ea3077a80 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/8a/d1/ca384452cdc8a2fb92fa1c70a4db303dd5f9887475e0e4ddf4bc711b5ebceb684ba5fd8bf596c3d491ab8598bd52ffe20f98564f8110da0730f46f39e790 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/8b/ae/5793cc875f8fa5fe744c72c07b09ead40386e23a89cb2b77957c61413eb4afc993f70eee071a00aeff74bfe63cfcd91385e45094338c0fc05aedaca91917 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/8c/51/88e1fc4d8365cb6ad1a755e8bca81fbb64abb1c8ef08a8314471952910e0e29eadfa283d482233d500893a57b57470171ab98ebacb4b93780b37e7a87c93 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/8f/81/8e238bb1d4654dcc554d661194c9415fe36dc6f20624dd26e47c0043f06ee69d1abd49947b11954508bfd01823fdf97a3ca9196521f05cb471473095c5c5 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/91/39/2d6842760bb34dde16e9aad46162f546e8cab25d2440a69cb01bf4b2ed8fb3122490666d3eb9b70225259f7ed47e182bc6b83fe455647dde30d61cefa07d +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/91/ef/9fc44c6b88d8614b31058550efddfc49a43aeef50cf16d7ade5087e6b13c3f5ca743b1a10c72993a806db4ddf093c2216a853e0dbf6c002c61507e60bfee +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/93/6b/e60098157f6bff8ba570cab2ffd97a14983109006f7fa87e4432728366f96dfb19e957d28754daa45f1b6cb2421d26ab59bbd5ce5a448d6102e8e662403d +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/94/4a/a539de5a6348e4ecc4e05ea18301c0077a30ed452550660f8b13440a40f7e3858a03ef0aad25b559c49dbbe51455cc5d8e2a7b6c2b0c57e31875b5f8e6be +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/94/6b/572828348790e114213fd3502aba2781cdb87da48f9a16bc6c407d5e12ec888c3fd144f699f50c26934255feee621b2e81aa9156d1afd4e838698fd7be94 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/9c/93/917e1b17263467c1baa4f0ef3e5f0a24cf28fc88f290532df19a48d5364d0ca64ef4b5296581cec1e94c5b9a896174e7dd67f42c44ab0482ecbbedf46b3a +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/9e/2e/945fdc4a4fb8c2186645c71b48ef341e6f0da2a6b3ddd38761210fcf713c2249160f87387ac66547fa30732269fbf9ad6b24b6c6a50ae914284b96be8571 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/9f/e5/f8840af1702b9e2e9005708f2513779d889a88d8d7379d5d93cf28390fd6c0300ba5cac0fe429d67a22ddeb884f85917c73f4ae286328a5cf437f568b73f +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/a0/92/dc5bc315864cebde3ccd84e2a2e4228d8f467aa14efdcc3ef13b8815abbf495afeccb531cc4e049fe4d81d0b3e5afc0139b4450fb2cfca2b2c82cdd450ac +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/aa/85/daa1447b7715eafed15469bb5fdce67152d71416d2c40db224480ca151019a7ee86ea5b81ddeb85f7bdae453dab2021886ba63e85b0303ab20bc7b712ea4 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/ad/44/f00b1b89c5d7778be4cd40cff421c77e97a937e945491777256fafa6ac80cc334b7118b4248fd13c3cb7fb37d86e1b54afaf688b295542694f276d359082 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/b0/02/9ef55507e114e4391048df8e43101c006d5b3852e33450030d3ba974d438dd3ac489b084b15445ff5e1747e642eda2d969a13c8ba5a778669f9ab019789a +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/ba/08/9238d2f1bec0536eed757ab6583e384da966814a1c83896409f032bb673a056d62bb6f3b8a5bef36d61daf0e15617154b106b3bbc721354690bc930bb649 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/bc/33/6e26ece5ac53d9eac9ac8a192ef39faf2a587a5808253c659fb1d371c477fc8074d428c8d1929b0d85dd1fec66fc79ea6b9fcb01507e2efec75fb7fbc2cc +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/be/33/7a64881c125a7ff913866bb1818d3fd54d10d837c5a66b6e8f39b9be9e12d352d060f365a62b070414995afb4e90ce70e3d0d31423e6f6fa4e02141e9e9d +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/c5/5a/e35359eb2d580bc01b459208e8911fb606223ae88c095db8174d0400824626bc8cf02c869c11d3b751774fafc52555243ed0ea6d6e3c072ef990a4f41461 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/cd/6c/8525b5108666cbe3305a4ad413c0ea863878337b0621eaff9443c170e2f4afe6a0b0ece9ea5ee6777f37b483dede689e86734350430416bde47553bdaf7c +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/d4/79/8b69e57b3c37d1b04f2734fef377858aaa753467733fc2545b45556e0ae2d066c0180fa34c3a93b625db353ee070b82ad24f3b8dd2a2513aac4fcdc55154 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/d5/f6/e56af7190da8a8ba31ae458ad2b1cbfc0cd10a449248348eb92dd8a7de2819c284525513e3082fcd3b1bfdddbe2135bda8bf827cef58bc95abb8a3c83278 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/d7/9e/450b29d4cb47831fc3235642c3f4c461d3fb8f8c0ee567aeed2d51d3c0eb6d2e0cfabcf0dbe709ff99d3ba04ead42c75b06efe396aae4939163884cbfec5 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/da/84/b6d27e02f9b109d7cff3095b08e2e2ed1802c8b6829c98f6e297d1c404059f8bacfdc278afd07e2f81cbc487318396a3775037b678ab6aff9a5231c94c0d +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/dc/0a/58f1301ab9de7b2c6b01d5d5b3676416048c9a42e4140ce4149d242da4d1d7b009bd9f911cf5860628ede86c7d30f4e827c502b8b4f365de6d7e7378ca94 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/dd/b0/b95c68e126e3b0ceeb4c28f6d9cfd165597001d03c7287a9d2fe632cd166c442a578b55ddbb757b72202dcdd49586de80d54cb98ec439d0bd99c0023d6f6 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/e2/6e/b769bab909900c19709f3779dde41268bd5bad463f233c1a4934aefc4af01ba532b0ec73776e874427e110710069e5c2c0aeb4debeef9827a21cc8d3364d +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/e8/ae/9b467e1d23913d4584d9417875b3cdc25f6dfed8b228f3a0c818129010b778aae1af1eb200b015ab428e79afe0ef1061262392fbdb96ed7da95efbe7f758 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/ec/08/68aa37fb6cee7b8ad4e1c4ee9d352d626db39c1f6b1ed71530e5943d1575127e82f636bdab2fa00b90581c3829db9bf4d3ef4130024ef224c8a48b4d7df2 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/ed/74/dda12abc4e0e3d645725a3b240b3874262c153ae37fe7a2991d5b6aa7564b5adf8080d262c0be4f841747ca359db51d58b004b7eed8330f27a739b9e3a46 +1 -0
- package/dist/templates/demo-store/.cache/content-v2/sha512/fd/f3/986b7ee5ea5ad1d89af5c08de69d43c025b54381092e0a19fd7e7a1e0352552aa85c056315ce5e11a46ec75a252b1a44e2083abb73cd6df8407dfdb0ac48 +1 -0
- package/dist/templates/demo-store/.cache/index-v5/06/7e/7376a38676aa7f0543ab03fc451602dab8ad66e6ddebc44d94ee6f5c1df2 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/06/84/719070270981ac7d003eefa98569d499d2d93dd2f1828da9825b87d03160 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/08/b4/0d9cf6db265587df0990c07ef4bc1e61fa9fe85d6cfe4d6cbbf839c2313c +2 -0
- package/dist/templates/demo-store/.cache/index-v5/09/f6/fe4b05c4157320b8b59b3f84116195be0437d87357d743d21acd638a4606 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/0a/75/d3baf53012b62018cb60557f47601d810ec57c564bdc0b24c4990c73a833 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/0c/43/721b2c2b054af973286c2ea3c51c612d347365682b5aae5b9e98554f91e1 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/12/83/1a44e36774d9014fe186e18a3691e1ec3f37f2c30c22d38787a3cd157d7f +2 -0
- package/dist/templates/demo-store/.cache/index-v5/13/bd/14a326bd4cb6fb280eb85ecca60d6519738bf7e80df5285ec626d129baf3 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/19/b1/b0877b4141a2ee6f7c173e2407c0b26958c0919238934a89a03049397aec +2 -0
- package/dist/templates/demo-store/.cache/index-v5/1b/6a/418ff1309326b48db3963d5ad40eacb0728d138b7f24896390e484b34c50 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/24/d9/e0e8006f3c8deb17314475a674698161e207f116d9056bf0e1aabfa6c430 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/28/f4/466108ec4c6619222c94f178cc3962ed49f5f9a1e3783ad55335de0cdad3 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/2e/ae/45167cd92f49c852d660e05a29b7484c886b3c0579fb9c148162b1a88fb6 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/35/95/be51ab071b6bd2259e4acb91185c5e0affeee223c15a822ba226607d5616 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/36/74/12368a4a642be74c83dfdb5eaca244dc624ca78c3528edc49262807f9f96 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/37/56/4cbfef349acf26ffb05aa7f17742913d7bd956c920a5bb1941ca0dda3a22 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/3b/e5/5841b3445af43a34c7b560d6cf329ade1bfb64584b85fbb10ac4a7313ef4 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/40/67/0807c50d176836338cf5fe4864622d377a143dc97f0a86a702bf11dd7d72 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/45/4b/1a3af253b3e2ef123d3872ad54d71865cc788ff5373a00414d2ae0243421 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/4f/8a/4672c73b9b76b90b7b378fbf9bc1a09426d0b5dbe97404e1f1f5a354013c +2 -0
- package/dist/templates/demo-store/.cache/index-v5/51/da/70f3331e7c62bab563cf9f86297b1bda6f6215420807d7710aaee0b8ca5d +2 -0
- package/dist/templates/demo-store/.cache/index-v5/55/0e/4666f091383137a5168d8052b246b3a7a28e05215dc7d8ff7f6b921f0142 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/58/93/287077465c80a2bfba306f218e51893019895137562df4a116326a0b222a +2 -0
- package/dist/templates/demo-store/.cache/index-v5/61/d4/edd3f3713e7e144ff99d6920736fddfa8676eb5ab824f3f97cf65fa250ea +2 -0
- package/dist/templates/demo-store/.cache/index-v5/68/63/f781b7764101dfe1c192f68e1083513974e2396c9db609adf220a983bd88 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/68/f1/4a98caa6e2ab43e78781b99c7833cab4e722cd716bf9718e001a43efb27b +2 -0
- package/dist/templates/demo-store/.cache/index-v5/7d/de/0d76288297eecd2ad4b07dd881631b481b19a83f7c9d36cfa4f967332943 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/7e/12/528dc5a6aebfe1fb1d5b4b7d56097f25291dd9454e0ab8faa0a26f296815 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/7e/bf/17c5f07b52df7946e14e733afa8f3880a40c1032bd3fb307cae4319e0fa8 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/81/59/14da935263d86e18f99d2391d6731d29cd2d5c0d8c81c65293816e6ad32a +2 -0
- package/dist/templates/demo-store/.cache/index-v5/85/85/0475166b36ce12e75c5a6352b12ea2fa872f696b8161dd08fdfab09a7273 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/88/bd/84904435de02c12b5b01c5aadd782e65a48d44006d98b864e01961a109dc +2 -0
- package/dist/templates/demo-store/.cache/index-v5/88/f6/729e4bad26ebd2b792dee6d1f96f87546ff9c4fa95518f603627fdd1126f +2 -0
- package/dist/templates/demo-store/.cache/index-v5/8a/7c/f5287da63fd3884889fef7019b2679f9a53ce5a268097295682ddad5131b +2 -0
- package/dist/templates/demo-store/.cache/index-v5/95/40/bed10ab9e6081915bc6dc1ffb23a589f407c22ab7d254453f0b3ce53e5f5 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/96/b8/090abc56d6e9489d08af9564fb75d34477730aa1ece14ad85ba516549f2b +2 -0
- package/dist/templates/demo-store/.cache/index-v5/9b/e4/8aa4e95d52644490afdb862c05cb2dccb9f5c1aa45157f3af5c37aad080a +2 -0
- package/dist/templates/demo-store/.cache/index-v5/a1/e7/85ee850c85c329791d2123dd8231464fa27317290756b459012830d0f57e +2 -0
- package/dist/templates/demo-store/.cache/index-v5/a2/27/f2e299e50a8a3b2b54a89bb3be85f3118081b3c6cfed704bb7d2802e2a49 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/a2/88/971871174c14875c70ca7bc9cea8d6b01465c1716d99440b059fa493947c +2 -0
- package/dist/templates/demo-store/.cache/index-v5/aa/57/05b67f08f71909d263fe9c357786097f5683394dbd65b0e4da2f9aa25288 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/ac/25/d778b282ab78dbafcc1b4fb19695aed368081c76fa680140b89af08b07b1 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/ad/f9/09a060689bb686417e37a22fcf4866b6188f58eff7128f7979a4a68a6b2d +2 -0
- package/dist/templates/demo-store/.cache/index-v5/af/79/e80586a8b4bd0086246d97823d95bd64c77ad44b1fae591fdcd3883f776e +2 -0
- package/dist/templates/demo-store/.cache/index-v5/b8/22/805af62bf21b63052b47f2f85322cb615ee786c214c0abc63b593a9f80ac +2 -0
- package/dist/templates/demo-store/.cache/index-v5/b8/67/17d551f86553b2a3a30c80b1d9797cbfcaa3d00f5239f39c1727c4d4fe8e +2 -0
- package/dist/templates/demo-store/.cache/index-v5/bc/52/538f70c9e2857f944f17c9121f6018d5c26ba916801b78d75484b130cd78 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/c1/77/182e74b8e456fd321a98e8b23f5616eaf2968ccc0dd0eeff016624a89534 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/c2/b6/58c9b05294374187ca9a342d46ed1b1f9e0afaf619acf88014f7f1a5dd8b +2 -0
- package/dist/templates/demo-store/.cache/index-v5/c6/72/887059f60c91b6fa41fbdab6bc1e1b6f4e3596cadd7a22457466fc1c2f67 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/c8/52/09bfbca72b45aec745fc339c27986edefa85e40bd69113275a6ecd6495e9 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/cb/f3/c8983d3f6b148ff6b70a42e0c3ccc4ca2f368df0aca086b8f0279d49f5be +2 -0
- package/dist/templates/demo-store/.cache/index-v5/d0/c4/d960260ece228d28f70e317741b3f3f3df05c53956d870235837ae2b73b4 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/d2/7b/9476cfbc06c75a311a1951bcdea3b843d3f8763c916468901c3cd85ae7a4 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/d7/2f/11fb6fd9a383d1edb40e2a774ca2de45a4f4b2c02e3f10d772427ef813d1 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/d7/a8/e21243c97a68bff4874453358b21815d4dc4c804b63fce7cba9cc567c3d6 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/db/34/e258d66ddeae0e8df2f3a92f0fc0a0472adc9b48c8d2f38087a828da4bc0 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/de/8a/31224d2c63a17ccc13c25e35f4e5882c9a5f5553a3ffeb916c84aa73a15d +2 -0
- package/dist/templates/demo-store/.cache/index-v5/e0/9c/a50143959e2a05f23db12f6e7f9982a0889c4105004c9f58115f9fdb19e0 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/f3/45/ed5a71628f7babbcd96f9d316ba1a9a7cdea5be1ef54d931ed5d6fcbfc21 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/f4/20/fefac33b4499a27824ee7ef5a84779df38eca55b00ec3046fcb028efb593 +2 -0
- package/dist/templates/demo-store/.cache/index-v5/f6/1d/25c4d10714262d4559d2c43d3e64ebfc038d37b0edbbf02246bdd6dcdacb +2 -0
- package/dist/templates/demo-store/.cache/index-v5/f8/f2/017d33a8105299b5a1d72ea80b7cce0d4bafbcd8409437a212735325631a +2 -0
- package/dist/templates/demo-store/.cache/index-v5/fd/f2/f7f55dae9bf6b65ea883eb44dc2fd24a2d2a97c5b68cb559255c6574d239 +2 -0
- package/dist/templates/demo-store/.hydrogen/routes/[route-manifest.json].tsx +54 -0
- package/dist/templates/demo-store/.hydrogen/routes/admin.tsx +15 -0
- package/dist/templates/demo-store/_env +6 -0
- package/dist/templates/demo-store/_gitignore +14 -0
- package/dist/templates/demo-store/app/styles/app.css +4203 -0
- package/dist/templates/demo-store/dist/client/build/_.._/.hydrogen/routes/[route-manifest.json]-BIPZTJVN.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_.._/.hydrogen/routes/[route-manifest.json]-BIPZTJVN.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_.._/.hydrogen/routes/admin-G2IKFE47.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_.._/.hydrogen/routes/admin-G2IKFE47.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_assets/app-QCTC5PWY.css +4203 -0
- package/dist/templates/demo-store/dist/client/build/_assets/custom-font-COCMVHUB.css +13 -0
- package/dist/templates/demo-store/dist/client/build/_assets/favicon-5FIZBM2K.svg +28 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-3CERGUQT.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-3CERGUQT.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-3RYZL4SD.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-3RYZL4SD.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-4GXS2URF.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-4GXS2URF.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-4ROFW2VH.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-4ROFW2VH.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-63VE24M5.js +133 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-63VE24M5.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-6IZ7NY57.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-6IZ7NY57.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-6RKYTPO7.js +27 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-6RKYTPO7.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-ALSZP6XO.js +83 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-ALSZP6XO.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-AOOMA6GB.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-AOOMA6GB.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-AYHDHSL7.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-AYHDHSL7.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-BY6S7IS7.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-BY6S7IS7.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-C4WAPTNR.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-C4WAPTNR.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-GV33UIO4.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-GV33UIO4.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-HX34UWFZ.js +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-HX34UWFZ.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-JV4GUPYG.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-JV4GUPYG.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-KSKV5IK6.js +20 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-KSKV5IK6.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-LNLOHMUB.js +32 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-LNLOHMUB.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-LSI6EG4I.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-LSI6EG4I.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-LYYN6DNQ.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-LYYN6DNQ.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-MIBUUBFO.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-MIBUUBFO.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-NJK6XHPK.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-NJK6XHPK.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-OC3377HQ.js +105 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-OC3377HQ.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-RBLOPOSG.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-RBLOPOSG.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-RTZIY6AR.js +68 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-RTZIY6AR.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-S4E36YX5.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-S4E36YX5.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-UCP7TDFX.js +24 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-UCP7TDFX.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-V5EUNG45.js +25 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-V5EUNG45.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-WYHUKY3H.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-WYHUKY3H.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-X2L7EU2T.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-X2L7EU2T.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-X4LCECW4.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-X4LCECW4.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-XDBJQDOE.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-XDBJQDOE.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-XJLYC4WF.js +54 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-XJLYC4WF.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-YGLSE5Z5.js +2 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-YGLSE5Z5.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-ZNLABNO4.js +66 -0
- package/dist/templates/demo-store/dist/client/build/_shared/chunk-ZNLABNO4.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/entry.client-UGG4BFNY.js +2 -0
- package/dist/templates/demo-store/dist/client/build/entry.client-UGG4BFNY.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/manifest-78BD90E6.js +1 -0
- package/dist/templates/demo-store/dist/client/build/root-LDM5SSFY.js +32 -0
- package/dist/templates/demo-store/dist/client/build/root-LDM5SSFY.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$-T6CCBQXB.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$-T6CCBQXB.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/$-RML44FPI.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/$-RML44FPI.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/[robots.txt]-Q6A4ELVO.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/[robots.txt]-Q6A4ELVO.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/[sitemap.xml]-XRXAWWFM.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/[sitemap.xml]-XRXAWWFM.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/address/$id-3CPMYDWB.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/address/$id-3CPMYDWB.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/edit-KUSSPNLG.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/edit-KUSSPNLG.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/logout-W2VRZWGS.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/logout-W2VRZWGS.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/orders.$id-6XB7QE3Z.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__private/orders.$id-6XB7QE3Z.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/activate.$id.$activationToken-XURZGKY5.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/activate.$id.$activationToken-XURZGKY5.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/login-ICCBTETC.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/login-ICCBTETC.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/recover-NCBS3PRT.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/recover-NCBS3PRT.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/register-OQDSIXDB.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/register-OQDSIXDB.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/reset.$id.$resetToken-BC773EWT.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account/__public/reset.$id.$resetToken-BC773EWT.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account-UCAHSQYN.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/account-UCAHSQYN.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/api/countries-D74K7HOY.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/api/countries-D74K7HOY.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/api/products-LVMWKMBH.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/api/products-LVMWKMBH.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/cart-UVXZT4M5.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/cart-UVXZT4M5.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/$collectionHandle-IXHYLA76.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/$collectionHandle-IXHYLA76.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/all-I3ZQ3MBD.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/all-I3ZQ3MBD.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/index-LFW7EEWJ.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/collections/index-LFW7EEWJ.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/featured-products-UU24CXMU.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/featured-products-UU24CXMU.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/index-C53BLYRE.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/index-C53BLYRE.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/journal/$journalHandle-JIHENEIT.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/journal/$journalHandle-JIHENEIT.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/journal/index-Y3BHQBEG.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/journal/index-Y3BHQBEG.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/og-image-JHBOIC2Z.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/og-image-JHBOIC2Z.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/pages/$pageHandle-UAXAZ3DG.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/pages/$pageHandle-UAXAZ3DG.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/policies/$policyHandle-6OJWYHRC.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/policies/$policyHandle-6OJWYHRC.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/policies/index-NSX5XJI5.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/policies/index-NSX5XJI5.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/products/$productHandle-2Y4OD7YF.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/products/$productHandle-2Y4OD7YF.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/products/index-7DNEY6RA.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/products/index-7DNEY6RA.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/search-FFWHIHND.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/$lang/search-FFWHIHND.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/[robots.txt]-JOBE7OD7.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/[robots.txt]-JOBE7OD7.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/[sitemap.xml]-UQB7RN5M.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/[sitemap.xml]-UQB7RN5M.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__private/address/$id-7UWEFJPQ.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__private/address/$id-7UWEFJPQ.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__private/edit-P6H3SMMC.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__private/edit-P6H3SMMC.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__private/logout-MRH6DVPZ.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__private/logout-MRH6DVPZ.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__private/orders.$id-WRZR7KFX.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__private/orders.$id-WRZR7KFX.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__public/activate.$id.$activationToken-MQJ7UCXL.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__public/activate.$id.$activationToken-MQJ7UCXL.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__public/login-PV6QK5VR.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__public/login-PV6QK5VR.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__public/recover-BPPSDCFU.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__public/recover-BPPSDCFU.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__public/register-FOWQ2VDD.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__public/register-FOWQ2VDD.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__public/reset.$id.$resetToken-HEH66LNH.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/account/__public/reset.$id.$resetToken-HEH66LNH.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/account-OVETQ7UE.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/account-OVETQ7UE.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/api/countries-FOQSZPCF.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/api/countries-FOQSZPCF.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/api/products-JQONOX4V.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/api/products-JQONOX4V.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/cart-CX5DA2OD.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/cart-CX5DA2OD.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/collections/$collectionHandle-S6W3L6G5.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/collections/$collectionHandle-S6W3L6G5.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/collections/all-EXLOY5Y6.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/collections/all-EXLOY5Y6.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/collections/index-LE6BMYRV.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/collections/index-LE6BMYRV.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/discounts.$code-ORRT2Y6X.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/discounts.$code-ORRT2Y6X.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/featured-products-ECR7IJXB.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/featured-products-ECR7IJXB.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/index-DPGHJVAI.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/index-DPGHJVAI.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/journal/$journalHandle-GK4XP5IH.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/journal/$journalHandle-GK4XP5IH.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/journal/index-DZH346LQ.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/journal/index-DZH346LQ.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/og-image-DYICG2WR.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/og-image-DYICG2WR.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/pages/$pageHandle-FSWWJUZK.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/pages/$pageHandle-FSWWJUZK.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/policies/$policyHandle-U2LKNOPS.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/policies/$policyHandle-U2LKNOPS.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/policies/index-OHYNKKT6.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/policies/index-OHYNKKT6.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/products/$productHandle-UNLU3NW6.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/products/$productHandle-UNLU3NW6.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/products/index-XFDNNZYK.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/products/index-XFDNNZYK.js.map +7 -0
- package/dist/templates/demo-store/dist/client/build/routes/search-KWI45NMS.js +2 -0
- package/dist/templates/demo-store/dist/client/build/routes/search-KWI45NMS.js.map +7 -0
- package/dist/templates/demo-store/dist/client/favicon.svg +28 -0
- package/dist/templates/demo-store/dist/client/fonts/IBMPlexSerif-Text.woff2 +0 -0
- package/dist/templates/demo-store/dist/client/fonts/IBMPlexSerif-TextItalic.woff2 +0 -0
- package/dist/templates/demo-store/dist/worker/_assets/app-QCTC5PWY.css +4203 -0
- package/dist/templates/demo-store/dist/worker/_assets/custom-font-COCMVHUB.css +13 -0
- package/dist/templates/demo-store/dist/worker/_assets/favicon-5FIZBM2K.svg +28 -0
- package/dist/templates/demo-store/dist/worker/index.js +1572 -0
- package/dist/templates/demo-store/dist/worker/index.js.map +7 -0
- package/dist/templates/demo-store/package.json +1 -1
- package/dist/templates/demo-store/remix.init/index.mjs +25 -0
- package/dist/templates/hello-world/.cache/content-v2/sha512/34/81/da34a44efefe809149ec1298fc4031563cb2702c00c70fbd1d0392afa44e5a6bc535cbe5c34a6f379361a5991327c2023fb915b0f94940d21c42cc38a368 +1 -0
- package/dist/templates/hello-world/.cache/content-v2/sha512/fa/dd/9bc10a1cb1f145eabd96bdba509178e20484197fefd8469ace9f53bf277e875751db3c4dddf229807c48cbe8db19494fe2a5aab7d2a4b7ae8bebbd67509c +1 -0
- package/dist/templates/hello-world/.cache/index-v5/09/f6/fe4b05c4157320b8b59b3f84116195be0437d87357d743d21acd638a4606 +2 -0
- package/dist/templates/hello-world/.cache/index-v5/d0/c4/d960260ece228d28f70e317741b3f3f3df05c53956d870235837ae2b73b4 +2 -0
- package/dist/templates/hello-world/_env +6 -0
- package/dist/templates/hello-world/_gitignore +8 -0
- package/dist/templates/hello-world/dist/client/build/_assets/app-2MJQXVFI.css +38 -0
- package/dist/templates/hello-world/dist/client/build/_assets/favicon-5FIZBM2K.svg +28 -0
- package/dist/templates/hello-world/dist/client/build/_shared/chunk-P5MXKSMH.js +66 -0
- package/dist/templates/hello-world/dist/client/build/_shared/chunk-P5MXKSMH.js.map +7 -0
- package/dist/templates/hello-world/dist/client/build/_shared/chunk-UFW4O55J.js +20 -0
- package/dist/templates/hello-world/dist/client/build/_shared/chunk-UFW4O55J.js.map +7 -0
- package/dist/templates/hello-world/dist/client/build/entry.client-AX7FWGNS.js +27 -0
- package/dist/templates/hello-world/dist/client/build/entry.client-AX7FWGNS.js.map +7 -0
- package/dist/templates/hello-world/dist/client/build/manifest-7F090344.js +1 -0
- package/dist/templates/hello-world/dist/client/build/root-IVDOAS2B.js +2 -0
- package/dist/templates/hello-world/dist/client/build/root-IVDOAS2B.js.map +7 -0
- package/dist/templates/hello-world/dist/client/build/routes/index-TUNWZ4RV.js +2 -0
- package/dist/templates/hello-world/dist/client/build/routes/index-TUNWZ4RV.js.map +7 -0
- package/dist/templates/hello-world/dist/client/favicon.svg +28 -0
- package/dist/templates/hello-world/dist/worker/_assets/app-2MJQXVFI.css +38 -0
- package/dist/templates/hello-world/dist/worker/_assets/favicon-5FIZBM2K.svg +28 -0
- package/dist/templates/hello-world/dist/worker/index.js +257 -0
- package/dist/templates/hello-world/dist/worker/index.js.map +7 -0
- package/dist/templates/hello-world/package.json +1 -1
- package/dist/templates/hello-world/remix.init/index.mjs +25 -0
- package/dist/templates/hello-world/remix.init/package.json +7 -0
- package/package.json +1 -1
- package/tmp-create-app.mjs +7 -1
- package/dist/templates/demo-store/.turbo/turbo-build.log +0 -13
- package/dist/templates/demo-store/package-lock.json +0 -25515
- package/dist/templates/demo-store/remix.init/index.ts +0 -15
- package/dist/templates/hello-world/.turbo/turbo-build.log +0 -9
- package/dist/templates/hello-world/package-lock.json +0 -27641
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../node_modules/@headlessui/react/dist/components/disclosure/disclosure.js", "../../../../../../node_modules/@headlessui/react/dist/utils/match.js", "../../../../../../node_modules/@headlessui/react/dist/utils/render.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-sync-refs.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-event.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-latest-value.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js", "../../../../../../node_modules/@headlessui/react/dist/utils/ssr.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-id.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js", "../../../../../../node_modules/@headlessui/react/dist/components/keyboard.js", "../../../../../../node_modules/@headlessui/react/dist/utils/bugs.js", "../../../../../../node_modules/@headlessui/react/dist/internal/open-closed.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js", "../../../../../../node_modules/@headlessui/react/dist/utils/owner.js", "../../../../app/components/Drawer.tsx", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-disposables.js", "../../../../../../node_modules/@headlessui/react/dist/utils/micro-task.js", "../../../../../../node_modules/@headlessui/react/dist/utils/disposables.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-outside-click.js", "../../../../../../node_modules/@headlessui/react/dist/utils/focus-management.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-document-event.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-tree-walker.js", "../../../../../../node_modules/@headlessui/react/dist/utils/calculate-active-index.js", "../../../../../../node_modules/@headlessui/react/dist/internal/hidden.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-watch.js", "../../../../../../node_modules/@headlessui/react/dist/components/dialog/dialog.js", "../../../../../../node_modules/@headlessui/react/dist/components/focus-trap/focus-trap.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-tab-direction.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-window-event.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-is-mounted.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-owner.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-event-listener.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-inert-others.js", "../../../../../../node_modules/@headlessui/react/dist/components/portal/portal.js", "../../../../../../node_modules/@headlessui/react/dist/internal/portal-force-root.js", "../../../../../../node_modules/@headlessui/react/dist/components/description/description.js", "../../../../../../node_modules/@headlessui/react/dist/internal/stack-context.js", "../../../../../../node_modules/@headlessui/react/dist/utils/platform.js", "../../../../../../node_modules/@headlessui/react/dist/components/menu/menu.js", "../../../../../../node_modules/@headlessui/react/dist/components/transitions/transition.js", "../../../../../../node_modules/@headlessui/react/dist/utils/once.js", "../../../../../../node_modules/@headlessui/react/dist/components/transitions/utils/transition.js", "../../../../../../node_modules/@headlessui/react/dist/hooks/use-transition.js", "../../../../../../node_modules/clsx/dist/clsx.m.js", "../../../../app/components/Text.tsx", "../../../../app/components/Input.tsx", "../../../../app/lib/const.ts", "../../../../app/components/ProductGallery.tsx", "../../../../app/lib/placeholders.ts", "../../../../app/components/ProductCard.tsx", "../../../../app/components/ProductSwimlane.tsx", "../../../../app/components/ProductGrid.tsx", "../../../../app/components/Skeleton.tsx", "../../../../app/components/Button.tsx", "../../../../app/components/CountrySelector.tsx", "../../../../../../node_modules/src/observe.ts", "../../../../../../node_modules/src/InView.tsx", "../../../../../../node_modules/src/useInView.tsx", "../../../../app/components/Cart.tsx", "../../../../../../node_modules/react-use/esm/misc/util.js", "../../../../../../node_modules/react-use/esm/useDebounce.js", "../../../../../../node_modules/react-use/esm/useTimeoutFn.js", "../../../../../../node_modules/react-use/esm/useEffectOnce.js", "../../../../../../node_modules/react-use/esm/useRafState.js", "../../../../../../node_modules/react-use/esm/useUnmount.js", "../../../../../../node_modules/react-use/esm/useScroll.js", "../../../../../../node_modules/react-use/esm/useWindowScroll.js", "../../../../app/components/CartLoading.tsx", "../../../../app/components/OrderCard.tsx", "../../../../app/components/AccountDetails.tsx", "../../../../app/components/AccountAddressBook.tsx", "../../../../app/components/Modal.tsx", "../../../../app/components/Link.tsx", "../../../../app/components/FeaturedCollections.tsx", "../../../../app/components/Hero.tsx", "../../../../app/components/SortFilter.tsx", "../../../../app/components/Breadcrumbs.tsx", "../../../../app/components/Grid.tsx", "../../../../app/components/FeaturedProducts.tsx", "../../../../app/components/Pagination.tsx", "../../../../app/components/AddToCartButton.tsx", "../../../../app/components/Icon.tsx", "../../../../app/components/Layout.tsx", "../../../../app/hooks/useIsHydrated.tsx", "../../../../app/hooks/useCartFetchers.tsx"],
|
|
4
|
+
"sourcesContent": ["import S,{Fragment as w,createContext as I,useContext as L,useEffect as F,useMemo as g,useReducer as N,useRef as E}from\"react\";import{match as O}from'../../utils/match.js';import{forwardRefWithAs as k,render as M,Features as _}from'../../utils/render.js';import{optionalRef as G,useSyncRefs as x}from'../../hooks/use-sync-refs.js';import{useId as K}from'../../hooks/use-id.js';import{Keys as y}from'../keyboard.js';import{isDisabledReactIssue7711 as W}from'../../utils/bugs.js';import{OpenClosedProvider as $,State as v,useOpenClosed as q}from'../../internal/open-closed.js';import{useResolveButtonType as z}from'../../hooks/use-resolve-button-type.js';import{getOwnerDocument as J}from'../../utils/owner.js';import{useEvent as R}from'../../hooks/use-event.js';var Q=(o=>(o[o.Open=0]=\"Open\",o[o.Closed=1]=\"Closed\",o))(Q||{}),V=(n=>(n[n.ToggleDisclosure=0]=\"ToggleDisclosure\",n[n.CloseDisclosure=1]=\"CloseDisclosure\",n[n.SetButtonId=2]=\"SetButtonId\",n[n.SetPanelId=3]=\"SetPanelId\",n[n.LinkPanel=4]=\"LinkPanel\",n[n.UnlinkPanel=5]=\"UnlinkPanel\",n))(V||{});let X={[0]:e=>({...e,disclosureState:O(e.disclosureState,{[0]:1,[1]:0})}),[1]:e=>e.disclosureState===1?e:{...e,disclosureState:1},[4](e){return e.linkedPanel===!0?e:{...e,linkedPanel:!0}},[5](e){return e.linkedPanel===!1?e:{...e,linkedPanel:!1}},[2](e,t){return e.buttonId===t.buttonId?e:{...e,buttonId:t.buttonId}},[3](e,t){return e.panelId===t.panelId?e:{...e,panelId:t.panelId}}},B=I(null);B.displayName=\"DisclosureContext\";function h(e){let t=L(B);if(t===null){let o=new Error(`<${e} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,h),o}return t}let H=I(null);H.displayName=\"DisclosureAPIContext\";function j(e){let t=L(H);if(t===null){let o=new Error(`<${e} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,j),o}return t}let U=I(null);U.displayName=\"DisclosurePanelContext\";function Y(){return L(U)}function Z(e,t){return O(t.type,X,e,t)}let ee=w,te=k(function(t,o){let{defaultOpen:l=!1,...i}=t,s=`headlessui-disclosure-button-${K()}`,n=`headlessui-disclosure-panel-${K()}`,u=E(null),D=x(o,G(f=>{u.current=f},t.as===void 0||t.as===w)),T=E(null),m=E(null),c=N(Z,{disclosureState:l?0:1,linkedPanel:!1,buttonRef:m,panelRef:T,buttonId:s,panelId:n}),[{disclosureState:p},a]=c;F(()=>a({type:2,buttonId:s}),[s,a]),F(()=>a({type:3,panelId:n}),[n,a]);let P=R(f=>{a({type:1});let C=J(u);if(!C)return;let A=(()=>f?f instanceof HTMLElement?f:f.current instanceof HTMLElement?f.current:C.getElementById(s):C.getElementById(s))();A==null||A.focus()}),b=g(()=>({close:P}),[P]),r=g(()=>({open:p===0,close:P}),[p,P]),d={ref:D};return S.createElement(B.Provider,{value:c},S.createElement(H.Provider,{value:b},S.createElement($,{value:O(p,{[0]:v.Open,[1]:v.Closed})},M({ourProps:d,theirProps:i,slot:r,defaultTag:ee,name:\"Disclosure\"}))))}),ne=\"button\",le=k(function(t,o){let[l,i]=h(\"Disclosure.Button\"),s=Y(),n=s===null?!1:s===l.panelId,u=E(null),D=x(u,o,n?null:l.buttonRef),T=R(r=>{var d;if(n){if(l.disclosureState===1)return;switch(r.key){case y.Space:case y.Enter:r.preventDefault(),r.stopPropagation(),i({type:0}),(d=l.buttonRef.current)==null||d.focus();break}}else switch(r.key){case y.Space:case y.Enter:r.preventDefault(),r.stopPropagation(),i({type:0});break}}),m=R(r=>{switch(r.key){case y.Space:r.preventDefault();break}}),c=R(r=>{var d;W(r.currentTarget)||t.disabled||(n?(i({type:0}),(d=l.buttonRef.current)==null||d.focus()):i({type:0}))}),p=g(()=>({open:l.disclosureState===0}),[l]),a=z(t,u),P=t,b=n?{ref:D,type:a,onKeyDown:T,onClick:c}:{ref:D,id:l.buttonId,type:a,\"aria-expanded\":t.disabled?void 0:l.disclosureState===0,\"aria-controls\":l.linkedPanel?l.panelId:void 0,onKeyDown:T,onKeyUp:m,onClick:c};return M({ourProps:b,theirProps:P,slot:p,defaultTag:ne,name:\"Disclosure.Button\"})}),oe=\"div\",re=_.RenderStrategy|_.Static,se=k(function(t,o){let[l,i]=h(\"Disclosure.Panel\"),{close:s}=j(\"Disclosure.Panel\"),n=x(o,l.panelRef,p=>{i({type:p?4:5})}),u=q(),D=(()=>u!==null?u===v.Open:l.disclosureState===0)(),T=g(()=>({open:l.disclosureState===0,close:s}),[l,s]),m=t,c={ref:n,id:l.panelId};return S.createElement(U.Provider,{value:l.panelId},M({ourProps:c,theirProps:m,slot:T,defaultTag:oe,features:re,visible:D,name:\"Disclosure.Panel\"}))}),Oe=Object.assign(te,{Button:le,Panel:se});export{Oe as Disclosure};\n", "function u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}export{u as match};\n", "import{Fragment as c,cloneElement as P,createElement as b,forwardRef as E,isValidElement as x}from\"react\";import{match as R}from'./match.js';var S=(a=>(a[a.None=0]=\"None\",a[a.RenderStrategy=1]=\"RenderStrategy\",a[a.Static=2]=\"Static\",a))(S||{}),j=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(j||{});function $({ourProps:r,theirProps:t,slot:e,defaultTag:a,features:o,visible:n=!0,name:l}){let s=T(t,r);if(n)return p(s,e,a,l);let u=o!=null?o:0;if(u&2){let{static:i=!1,...d}=s;if(i)return p(d,e,a,l)}if(u&1){let{unmount:i=!0,...d}=s;return R(i?0:1,{[0](){return null},[1](){return p({...d,hidden:!0,style:{display:\"none\"}},e,a,l)}})}return p(s,e,a,l)}function p(r,t={},e,a){let{as:o=e,children:n,refName:l=\"ref\",...s}=m(r,[\"unmount\",\"static\"]),u=r.ref!==void 0?{[l]:r.ref}:{},i=typeof n==\"function\"?n(t):n;s.className&&typeof s.className==\"function\"&&(s.className=s.className(t));let d={};if(t){let f=!1,y=[];for(let[h,g]of Object.entries(t))typeof g==\"boolean\"&&(f=!0),g===!0&&y.push(h);f&&(d[\"data-headlessui-state\"]=y.join(\" \"))}if(o===c&&Object.keys(F(s)).length>0){if(!x(i)||Array.isArray(i)&&i.length>1)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${a} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(s).map(f=>` - ${f}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(f=>` - ${f}`).join(`\n`)].join(`\n`));return P(i,Object.assign({},T(i.props,F(m(s,[\"ref\"]))),d,u,w(i.ref,u.ref)))}return b(o,Object.assign({},m(s,[\"ref\"]),o!==c&&u,o!==c&&d),i)}function w(...r){return{ref:r.every(t=>t==null)?void 0:t=>{for(let e of r)e!=null&&(typeof e==\"function\"?e(t):e.current=t)}}}function T(...r){var a;if(r.length===0)return{};if(r.length===1)return r[0];let t={},e={};for(let o of r)for(let n in o)n.startsWith(\"on\")&&typeof o[n]==\"function\"?((a=e[n])!=null||(e[n]=[]),e[n].push(o[n])):t[n]=o[n];if(t.disabled||t[\"aria-disabled\"])return Object.assign(t,Object.fromEntries(Object.keys(e).map(o=>[o,void 0])));for(let o in e)Object.assign(t,{[o](n,...l){let s=e[o];for(let u of s){if((n instanceof Event||(n==null?void 0:n.nativeEvent)instanceof Event)&&n.defaultPrevented)return;u(n,...l)}}});return t}function C(r){var t;return Object.assign(E(r),{displayName:(t=r.displayName)!=null?t:r.name})}function F(r){let t=Object.assign({},r);for(let e in t)t[e]===void 0&&delete t[e];return t}function m(r,t=[]){let e=Object.assign({},r);for(let a of t)a in e&&delete e[a];return e}export{S as Features,j as RenderStrategy,F as compact,C as forwardRefWithAs,$ as render};\n", "import{useRef as l,useEffect as i}from\"react\";import{useEvent as r}from'./use-event.js';let u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function y(...t){let n=l(t);i(()=>{n.current=t},[t]);let c=r(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}export{T as optionalRef,y as useSyncRefs};\n", "import a from\"react\";import{useLatestValue as n}from'./use-latest-value.js';let o=function(t){let e=n(t);return a.useCallback((...r)=>e.current(...r),[e])};export{o as useEvent};\n", "import{useRef as t}from\"react\";import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';function s(e){let r=t(e);return o(()=>{r.current=e},[e]),r}export{s as useLatestValue};\n", "import{useLayoutEffect as e,useEffect as f}from\"react\";import{isServer as o}from'../utils/ssr.js';let s=o?f:e;export{s as useIsoMorphicEffect};\n", "const e=typeof window==\"undefined\"||typeof document==\"undefined\";export{e as isServer};\n", "var u;import t from\"react\";import{useIsoMorphicEffect as d}from'./use-iso-morphic-effect.js';import{useServerHandoffComplete as f}from'./use-server-handoff-complete.js';let l=0;function r(){return++l}let I=(u=t.useId)!=null?u:function(){let n=f(),[e,o]=t.useState(n?r:null);return d(()=>{e===null&&o(r())},[e]),e!=null?\"\"+e:void 0};export{I as useId};\n", "import{useState as o,useEffect as t}from\"react\";let r={serverHandoffComplete:!1};function a(){let[e,f]=o(r.serverHandoffComplete);return t(()=>{e!==!0&&f(!0)},[e]),t(()=>{r.serverHandoffComplete===!1&&(r.serverHandoffComplete=!0)},[]),e}export{a as useServerHandoffComplete};\n", "var o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(o||{});export{o as Keys};\n", "function r(n){let e=n.parentElement,l=null;for(;e&&!(e instanceof HTMLFieldSetElement);)e instanceof HTMLLegendElement&&(l=e),e=e.parentElement;let t=(e==null?void 0:e.getAttribute(\"disabled\"))===\"\";return t&&i(l)?!1:t}function i(n){if(!n)return!1;let e=n.previousElementSibling;for(;e!==null;){if(e instanceof HTMLLegendElement)return!1;e=e.previousElementSibling}return!0}export{r as isDisabledReactIssue7711};\n", "import r,{createContext as l,useContext as d}from\"react\";let o=l(null);o.displayName=\"OpenClosedContext\";var p=(e=>(e[e.Open=0]=\"Open\",e[e.Closed=1]=\"Closed\",e))(p||{});function s(){return d(o)}function C({value:t,children:n}){return r.createElement(o.Provider,{value:t},n)}export{C as OpenClosedProvider,p as State,s as useOpenClosed};\n", "import{useState as o}from\"react\";import{useIsoMorphicEffect as r}from'./use-iso-morphic-effect.js';function i(t){var n;if(t.type)return t.type;let e=(n=t.as)!=null?n:\"button\";if(typeof e==\"string\"&&e.toLowerCase()===\"button\")return\"button\"}function s(t,e){let[n,u]=o(()=>i(t));return r(()=>{u(i(t))},[t.type,t.as]),r(()=>{n||!e.current||e.current instanceof HTMLButtonElement&&!e.current.hasAttribute(\"type\")&&u(\"button\")},[n,e]),n}export{s as useResolveButtonType};\n", "import{isServer as n}from'./ssr.js';function e(r){return n?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}export{e as getOwnerDocument};\n", "import {Fragment, useState} from 'react';\nimport {Dialog, Transition} from '@headlessui/react';\n\nimport {Heading, IconClose} from '~/components';\n\n/**\n * Drawer component that opens on user click.\n * @param heading - string. Shown at the top of the drawer.\n * @param open - boolean state. if true opens the drawer.\n * @param onClose - function should set the open state.\n * @param openFrom - right, left\n * @param children - react children node.\n */\nexport function Drawer({\n heading,\n open,\n onClose,\n openFrom = 'right',\n children,\n}: {\n heading?: string;\n open: boolean;\n onClose: () => void;\n openFrom: 'right' | 'left';\n children: React.ReactNode;\n}) {\n const offScreen = {\n right: 'translate-x-full',\n left: '-translate-x-full',\n };\n\n return (\n <Transition appear show={open} as={Fragment}>\n <Dialog as=\"div\" className=\"relative z-50\" onClose={onClose}>\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-300\"\n enterFrom=\"opacity-0 left-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-in duration-200\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div className=\"fixed inset-0 bg-black bg-opacity-25\" />\n </Transition.Child>\n\n <div className=\"fixed inset-0\">\n <div className=\"absolute inset-0 overflow-hidden\">\n <div\n className={`fixed inset-y-0 flex max-w-full ${\n openFrom === 'right' ? 'right-0' : ''\n }`}\n >\n <Transition.Child\n as={Fragment}\n enter=\"transform transition ease-in-out duration-300\"\n enterFrom={offScreen[openFrom]}\n enterTo=\"translate-x-0\"\n leave=\"transform transition ease-in-out duration-300\"\n leaveFrom=\"translate-x-0\"\n leaveTo={offScreen[openFrom]}\n >\n <Dialog.Panel className=\"w-screen max-w-lg text-left align-middle transition-all transform shadow-xl h-screen-dynamic bg-contrast\">\n <header\n className={`sticky top-0 flex items-center px-6 h-nav sm:px-8 md:px-12 ${\n heading ? 'justify-between' : 'justify-end'\n }`}\n >\n {heading !== null && (\n <Dialog.Title>\n <Heading as=\"span\" size=\"lead\" id=\"cart-contents\">\n {heading}\n </Heading>\n </Dialog.Title>\n )}\n <button\n type=\"button\"\n className=\"p-4 -m-4 transition text-primary hover:text-primary/50\"\n onClick={onClose}\n data-test=\"close-cart\"\n >\n <IconClose aria-label=\"Close panel\" />\n </button>\n </header>\n {children}\n </Dialog.Panel>\n </Transition.Child>\n </div>\n </div>\n </div>\n </Dialog>\n </Transition>\n );\n}\n\n/* Use for associating arialabelledby with the title*/\nDrawer.Title = Dialog.Title;\n\nexport function useDrawer(openDefault = false) {\n const [isOpen, setIsOpen] = useState(openDefault);\n\n function openDrawer() {\n setIsOpen(true);\n }\n\n function closeDrawer() {\n setIsOpen(false);\n }\n\n return {\n isOpen,\n openDrawer,\n closeDrawer,\n };\n}\n", "import{useState as s,useEffect as o}from\"react\";import{disposables as t}from'../utils/disposables.js';function p(){let[e]=s(t);return o(()=>()=>e.dispose(),[e]),e}export{p as useDisposables};\n", "function t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}export{t as microTask};\n", "import{microTask as s}from'./micro-task.js';function m(){let n=[],i=[],r={enqueue(e){i.push(e)},addEventListener(e,t,a,o){return e.addEventListener(t,a,o),r.add(()=>e.removeEventListener(t,a,o))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return s(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},add(e){return n.push(e),()=>{let t=n.indexOf(e);if(t>=0){let[a]=n.splice(t,1);a()}}},dispose(){for(let e of n.splice(0))e()},async workQueue(){for(let e of i.splice(0))await e()}};return r}export{m as disposables};\n", "import{useEffect as C,useRef as a}from\"react\";import{FocusableMode as d,isFocusableElement as v}from'../utils/focus-management.js';import{useDocumentEvent as o}from'./use-document-event.js';function L(f,m,i=!0){let l=a(!1);C(()=>{requestAnimationFrame(()=>{l.current=i})},[i]);function c(t,E){if(!l.current||t.defaultPrevented)return;let s=function r(e){return typeof e==\"function\"?r(e()):Array.isArray(e)||e instanceof Set?e:[e]}(f),n=E(t);if(n!==null&&!!n.ownerDocument.documentElement.contains(n)){for(let r of s){if(r===null)continue;let e=r instanceof HTMLElement?r:r.current;if(e!=null&&e.contains(n))return}return!v(n,d.Loose)&&n.tabIndex!==-1&&t.preventDefault(),m(t,n)}}let u=a(null);o(\"mousedown\",t=>{l.current&&(u.current=t.target)},!0),o(\"click\",t=>{!u.current||(c(t,()=>u.current),u.current=null)},!0),o(\"blur\",t=>c(t,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{L as useOutsideClick};\n", "import{disposables as p}from'./disposables.js';import{match as L}from'./match.js';import{getOwnerDocument as c}from'./owner.js';let m=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var T=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n))(T||{}),M=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(M||{}),b=(r=>(r[r.Previous=-1]=\"Previous\",r[r.Next=1]=\"Next\",r))(b||{});function d(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(m))}var N=(r=>(r[r.Strict=0]=\"Strict\",r[r.Loose=1]=\"Loose\",r))(N||{});function F(e,t=0){var r;return e===((r=c(e))==null?void 0:r.body)?!1:L(t,{[0](){return e.matches(m)},[1](){let l=e;for(;l!==null;){if(l.matches(m))return!0;l=l.parentElement}return!1}})}function I(e){let t=c(e);p().nextFrame(()=>{t&&!F(t.activeElement,0)&&h(e)})}function h(e){e==null||e.focus({preventScroll:!0})}let w=[\"textarea\",\"input\"].join(\",\");function H(e){var t,r;return(r=(t=e==null?void 0:e.matches)==null?void 0:t.call(e,w))!=null?r:!1}function S(e,t=r=>r){return e.slice().sort((r,l)=>{let o=t(r),s=t(l);if(o===null||s===null)return 0;let n=o.compareDocumentPosition(s);return n&Node.DOCUMENT_POSITION_FOLLOWING?-1:n&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function D(e,t){return O(d(),t,!0,e)}function O(e,t,r=!0,l=null){let o=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,s=Array.isArray(e)?r?S(e):e:d(e);l=l!=null?l:o.activeElement;let n=(()=>{if(t&5)return 1;if(t&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),E=(()=>{if(t&1)return 0;if(t&2)return Math.max(0,s.indexOf(l))-1;if(t&4)return Math.max(0,s.indexOf(l))+1;if(t&8)return s.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),x=t&32?{preventScroll:!0}:{},f=0,i=s.length,u;do{if(f>=i||f+i<=0)return 0;let a=E+f;if(t&16)a=(a+i)%i;else{if(a<0)return 3;if(a>=i)return 1}u=s[a],u==null||u.focus(x),f+=n}while(u!==o.activeElement);return t&6&&H(u)&&u.select(),u.hasAttribute(\"tabindex\")||u.setAttribute(\"tabindex\",\"0\"),2}export{T as Focus,M as FocusResult,N as FocusableMode,h as focusElement,D as focusFrom,O as focusIn,d as getFocusableElements,F as isFocusableElement,I as restoreFocusIfNecessary,S as sortByDomNode};\n", "import{useEffect as m}from\"react\";import{useLatestValue as c}from'./use-latest-value.js';function d(e,r,n){let o=c(r);m(()=>{function t(u){o.current(u)}return document.addEventListener(e,t,n),()=>document.removeEventListener(e,t,n)},[e,n])}export{d as useDocumentEvent};\n", "import{useRef as E,useEffect as m}from\"react\";import{useIsoMorphicEffect as T}from'./use-iso-morphic-effect.js';import{getOwnerDocument as N}from'../utils/owner.js';function F({container:e,accept:t,walk:r,enabled:c=!0}){let o=E(t),l=E(r);m(()=>{o.current=t,l.current=r},[t,r]),T(()=>{if(!e||!c)return;let n=N(e);if(!n)return;let f=o.current,p=l.current,d=Object.assign(i=>f(i),{acceptNode:f}),u=n.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,d,!1);for(;u.nextNode();)p(u.currentNode)},[e,c,o,l])}export{F as useTreeWalker};\n", "function f(r){throw new Error(\"Unexpected object: \"+r)}var a=(e=>(e[e.First=0]=\"First\",e[e.Previous=1]=\"Previous\",e[e.Next=2]=\"Next\",e[e.Last=3]=\"Last\",e[e.Specific=4]=\"Specific\",e[e.Nothing=5]=\"Nothing\",e))(a||{});function x(r,n){let t=n.resolveItems();if(t.length<=0)return null;let l=n.resolveActiveIndex(),s=l!=null?l:-1,d=(()=>{switch(r.focus){case 0:return t.findIndex(e=>!n.resolveDisabled(e));case 1:{let e=t.slice().reverse().findIndex((i,c,u)=>s!==-1&&u.length-c-1>=s?!1:!n.resolveDisabled(i));return e===-1?e:t.length-1-e}case 2:return t.findIndex((e,i)=>i<=s?!1:!n.resolveDisabled(e));case 3:{let e=t.slice().reverse().findIndex(i=>!n.resolveDisabled(i));return e===-1?e:t.length-1-e}case 4:return t.findIndex(e=>n.resolveId(e)===r.id);case 5:return null;default:f(r)}})();return d===-1?l:d}export{a as Focus,x as calculateActiveIndex};\n", "import{forwardRefWithAs as i,render as n}from'../utils/render.js';let a=\"div\";var s=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(s||{});let h=i(function(t,o){let{features:e=1,...r}=t,d={ref:o,\"aria-hidden\":(e&2)===2?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(e&4)===4&&(e&2)!==2&&{display:\"none\"}}};return n({ourProps:d,theirProps:r,slot:{},defaultTag:a,name:\"Hidden\"})});export{s as Features,h as Hidden};\n", "import{useEffect as s,useRef as f}from\"react\";import{useEvent as i}from'./use-event.js';function m(u,t){let e=f([]),r=i(u);s(()=>{let o=[...e.current];for(let[n,a]of t.entries())if(e.current[n]!==a){let l=r(t,o);return e.current=t,l}},[r,...t])}export{m as useWatch};\n", "import c,{createContext as oe,createRef as re,useContext as Y,useEffect as F,useMemo as b,useReducer as le,useRef as x,useState as ne}from\"react\";import{match as k}from'../../utils/match.js';import{forwardRefWithAs as A,render as E,Features as j}from'../../utils/render.js';import{useSyncRefs as v}from'../../hooks/use-sync-refs.js';import{Keys as ie}from'../keyboard.js';import{isDisabledReactIssue7711 as ae}from'../../utils/bugs.js';import{useId as O}from'../../hooks/use-id.js';import{FocusTrap as C}from'../../components/focus-trap/focus-trap.js';import{useInertOthers as se}from'../../hooks/use-inert-others.js';import{Portal as I}from'../../components/portal/portal.js';import{ForcePortalRoot as H}from'../../internal/portal-force-root.js';import{Description as pe,useDescriptions as de}from'../description/description.js';import{useOpenClosed as ue,State as N}from'../../internal/open-closed.js';import{useServerHandoffComplete as fe}from'../../hooks/use-server-handoff-complete.js';import{StackProvider as ce,StackMessage as V}from'../../internal/stack-context.js';import{useOutsideClick as ge}from'../../hooks/use-outside-click.js';import{useOwnerDocument as Te}from'../../hooks/use-owner.js';import{useEventListener as me}from'../../hooks/use-event-listener.js';import{Hidden as Pe,Features as De}from'../../internal/hidden.js';import{useEvent as S}from'../../hooks/use-event.js';import{disposables as ye}from'../../utils/disposables.js';import{isIOS as he}from'../../utils/platform.js';var Re=(r=>(r[r.Open=0]=\"Open\",r[r.Closed=1]=\"Closed\",r))(Re||{}),be=(e=>(e[e.SetTitleId=0]=\"SetTitleId\",e))(be||{});let Ae={[0](l,e){return l.titleId===e.id?l:{...l,titleId:e.id}}},M=oe(null);M.displayName=\"DialogContext\";function L(l){let e=Y(M);if(e===null){let r=new Error(`<${l} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,L),r}return e}function Ee(l,e){F(()=>{var p;if(!e||!l)return;let r=ye();function t(n,d,m){let i=n.style.getPropertyValue(d);return Object.assign(n.style,{[d]:m}),r.add(()=>{Object.assign(n.style,{[d]:i})})}let o=l.documentElement,s=((p=l.defaultView)!=null?p:window).innerWidth-o.clientWidth;if(t(o,\"overflow\",\"hidden\"),s>0){let n=o.clientWidth-o.offsetWidth,d=s-n;t(o,\"paddingRight\",`${d}px`)}if(he()){let n=window.pageYOffset;t(o,\"position\",\"fixed\"),t(o,\"marginTop\",`-${n}px`),t(o,\"width\",\"100%\"),r.add(()=>window.scrollTo(0,n))}return r.dispose},[l,e])}function ve(l,e){return k(e.type,Ae,l,e)}let Oe=\"div\",Ce=j.RenderStrategy|j.Static,Se=A(function(e,r){let{open:t,onClose:o,initialFocus:a,__demoMode:s=!1,...p}=e,[n,d]=ne(0),m=ue();t===void 0&&m!==null&&(t=k(m,{[N.Open]:!0,[N.Closed]:!1}));let i=x(new Set),T=x(null),K=v(T,r),W=x(null),P=Te(T),B=e.hasOwnProperty(\"open\")||m!==null,G=e.hasOwnProperty(\"onClose\");if(!B&&!G)throw new Error(\"You have to provide an `open` and an `onClose` prop to the `Dialog` component.\");if(!B)throw new Error(\"You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.\");if(!G)throw new Error(\"You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.\");if(typeof t!=\"boolean\")throw new Error(`You provided an \\`open\\` prop to the \\`Dialog\\`, but the value is not a boolean. Received: ${t}`);if(typeof o!=\"function\")throw new Error(`You provided an \\`onClose\\` prop to the \\`Dialog\\`, but the value is not a function. Received: ${o}`);let u=t?0:1,[y,q]=le(ve,{titleId:null,descriptionId:null,panelRef:re()}),h=S(()=>o(!1)),U=S(f=>q({type:0,id:f})),_=fe()?s?!1:u===0:!1,w=n>1,z=Y(M)!==null,J=w?\"parent\":\"leaf\";se(T,w?_:!1),ge(()=>{var R,g;return[...Array.from((R=P==null?void 0:P.querySelectorAll(\"body > *, [data-headlessui-portal]\"))!=null?R:[]).filter(D=>!(!(D instanceof HTMLElement)||D.contains(W.current)||y.panelRef.current&&D.contains(y.panelRef.current))),(g=y.panelRef.current)!=null?g:T.current]},h,_&&!w),me(P==null?void 0:P.defaultView,\"keydown\",f=>{f.defaultPrevented||f.key===ie.Escape&&u===0&&(w||(f.preventDefault(),f.stopPropagation(),h()))}),Ee(P,u===0&&!z),F(()=>{if(u!==0||!T.current)return;let f=new IntersectionObserver(R=>{for(let g of R)g.boundingClientRect.x===0&&g.boundingClientRect.y===0&&g.boundingClientRect.width===0&&g.boundingClientRect.height===0&&h()});return f.observe(T.current),()=>f.disconnect()},[u,T,h]);let[Q,X]=de(),Z=`headlessui-dialog-${O()}`,ee=b(()=>[{dialogState:u,close:h,setTitleId:U},y],[u,y,h,U]),$=b(()=>({open:u===0}),[u]),te={ref:K,id:Z,role:\"dialog\",\"aria-modal\":u===0?!0:void 0,\"aria-labelledby\":y.titleId,\"aria-describedby\":Q};return c.createElement(ce,{type:\"Dialog\",enabled:u===0,element:T,onUpdate:S((f,R,g)=>{R===\"Dialog\"&&k(f,{[V.Add](){i.current.add(g),d(D=>D+1)},[V.Remove](){i.current.add(g),d(D=>D-1)}})})},c.createElement(H,{force:!0},c.createElement(I,null,c.createElement(M.Provider,{value:ee},c.createElement(I.Group,{target:T},c.createElement(H,{force:!1},c.createElement(X,{slot:$,name:\"Dialog.Description\"},c.createElement(C,{initialFocus:a,containers:i,features:_?k(J,{parent:C.features.RestoreFocus,leaf:C.features.All&~C.features.FocusLock}):C.features.None},E({ourProps:te,theirProps:p,slot:$,defaultTag:Oe,features:Ce,visible:u===0,name:\"Dialog\"})))))))),c.createElement(Pe,{features:De.Hidden,ref:W}))}),Le=\"div\",we=A(function(e,r){let[{dialogState:t,close:o}]=L(\"Dialog.Overlay\"),a=v(r),s=`headlessui-dialog-overlay-${O()}`,p=S(i=>{if(i.target===i.currentTarget){if(ae(i.currentTarget))return i.preventDefault();i.preventDefault(),i.stopPropagation(),o()}}),n=b(()=>({open:t===0}),[t]);return E({ourProps:{ref:a,id:s,\"aria-hidden\":!0,onClick:p},theirProps:e,slot:n,defaultTag:Le,name:\"Dialog.Overlay\"})}),Fe=\"div\",ke=A(function(e,r){let[{dialogState:t},o]=L(\"Dialog.Backdrop\"),a=v(r),s=`headlessui-dialog-backdrop-${O()}`;F(()=>{if(o.panelRef.current===null)throw new Error(\"A <Dialog.Backdrop /> component is being used, but a <Dialog.Panel /> component is missing.\")},[o.panelRef]);let p=b(()=>({open:t===0}),[t]);return c.createElement(H,{force:!0},c.createElement(I,null,E({ourProps:{ref:a,id:s,\"aria-hidden\":!0},theirProps:e,slot:p,defaultTag:Fe,name:\"Dialog.Backdrop\"})))}),Me=\"div\",_e=A(function(e,r){let[{dialogState:t},o]=L(\"Dialog.Panel\"),a=v(r,o.panelRef),s=`headlessui-dialog-panel-${O()}`,p=b(()=>({open:t===0}),[t]),n=S(i=>{i.stopPropagation()});return E({ourProps:{ref:a,id:s,onClick:n},theirProps:e,slot:p,defaultTag:Me,name:\"Dialog.Panel\"})}),xe=\"h2\",Ie=A(function(e,r){let[{dialogState:t,setTitleId:o}]=L(\"Dialog.Title\"),a=`headlessui-dialog-title-${O()}`,s=v(r);F(()=>(o(a),()=>o(null)),[a,o]);let p=b(()=>({open:t===0}),[t]);return E({ourProps:{ref:s,id:a},theirProps:e,slot:p,defaultTag:xe,name:\"Dialog.Title\"})}),gt=Object.assign(Se,{Backdrop:ke,Panel:_e,Overlay:we,Title:Ie,Description:pe});export{gt as Dialog};\n", "import i,{useEffect as h,useRef as m}from\"react\";import{forwardRefWithAs as y,render as S}from'../../utils/render.js';import{useServerHandoffComplete as g}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as B}from'../../hooks/use-sync-refs.js';import{Features as M,Hidden as L}from'../../internal/hidden.js';import{focusElement as f,focusIn as b,Focus as E,FocusResult as I}from'../../utils/focus-management.js';import{match as P}from'../../utils/match.js';import{useEvent as _}from'../../hooks/use-event.js';import{useTabDirection as U,Direction as d}from'../../hooks/use-tab-direction.js';import{useIsMounted as H}from'../../hooks/use-is-mounted.js';import{useOwnerDocument as C}from'../../hooks/use-owner.js';import{useEventListener as R}from'../../hooks/use-event-listener.js';import{microTask as F}from'../../utils/micro-task.js';import{useWatch as O}from'../../hooks/use-watch.js';let N=\"div\";var v=(r=>(r[r.None=1]=\"None\",r[r.InitialFocus=2]=\"InitialFocus\",r[r.TabLock=4]=\"TabLock\",r[r.FocusLock=8]=\"FocusLock\",r[r.RestoreFocus=16]=\"RestoreFocus\",r[r.All=30]=\"All\",r))(v||{});let fe=Object.assign(y(function(u,e){let l=m(null),o=B(l,e),{initialFocus:a,containers:r,features:n=30,...c}=u;g()||(n=1);let s=C(l);V({ownerDocument:s},Boolean(n&16));let j=x({ownerDocument:s,container:l,initialFocus:a},Boolean(n&2));G({ownerDocument:s,container:l,containers:r,previousActiveElement:j},Boolean(n&8));let k=U(),p=_(()=>{let T=l.current;!T||P(k.current,{[d.Forwards]:()=>b(T,E.First),[d.Backwards]:()=>b(T,E.Last)})}),A={ref:o};return i.createElement(i.Fragment,null,Boolean(n&4)&&i.createElement(L,{as:\"button\",type:\"button\",onFocus:p,features:M.Focusable}),S({ourProps:A,theirProps:c,defaultTag:N,name:\"FocusTrap\"}),Boolean(n&4)&&i.createElement(L,{as:\"button\",type:\"button\",onFocus:p,features:M.Focusable}))}),{features:v});function V({ownerDocument:t},u){let e=m(null);R(t==null?void 0:t.defaultView,\"focusout\",o=>{!u||e.current||(e.current=o.target)},!0),O(()=>{u||((t==null?void 0:t.activeElement)===(t==null?void 0:t.body)&&f(e.current),e.current=null)},[u]);let l=m(!1);h(()=>(l.current=!1,()=>{l.current=!0,F(()=>{!l.current||(f(e.current),e.current=null)})}),[])}function x({ownerDocument:t,container:u,initialFocus:e},l){let o=m(null),a=H();return O(()=>{if(!l)return;let r=u.current;!r||F(()=>{if(!a.current)return;let n=t==null?void 0:t.activeElement;if(e!=null&&e.current){if((e==null?void 0:e.current)===n){o.current=n;return}}else if(r.contains(n)){o.current=n;return}e!=null&&e.current?f(e.current):b(r,E.First)===I.Error&&console.warn(\"There are no focusable elements inside the <FocusTrap />\"),o.current=t==null?void 0:t.activeElement})},[l]),o}function G({ownerDocument:t,container:u,containers:e,previousActiveElement:l},o){let a=H();R(t==null?void 0:t.defaultView,\"focus\",r=>{if(!o||!a.current)return;let n=new Set(e==null?void 0:e.current);n.add(u);let c=l.current;if(!c)return;let s=r.target;s&&s instanceof HTMLElement?W(n,s)?(l.current=s,f(s)):(r.preventDefault(),r.stopPropagation(),f(c)):f(l.current)},!0)}function W(t,u){var e;for(let l of t)if((e=l.current)!=null&&e.contains(u))return!0;return!1}export{fe as FocusTrap};\n", "import{useRef as t}from\"react\";import{useWindowEvent as a}from'./use-window-event.js';var s=(r=>(r[r.Forwards=0]=\"Forwards\",r[r.Backwards=1]=\"Backwards\",r))(s||{});function n(){let e=t(0);return a(\"keydown\",o=>{o.key===\"Tab\"&&(e.current=o.shiftKey?1:0)},!0),e}export{s as Direction,n as useTabDirection};\n", "import{useEffect as d}from\"react\";import{useLatestValue as a}from'./use-latest-value.js';function s(e,r,n){let o=a(r);d(()=>{function t(i){o.current(i)}return window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)},[e,n])}export{s as useWindowEvent};\n", "import{useRef as r}from\"react\";import{useIsoMorphicEffect as t}from'./use-iso-morphic-effect.js';function f(){let e=r(!1);return t(()=>(e.current=!0,()=>{e.current=!1}),[]),e}export{f as useIsMounted};\n", "import{useMemo as t}from\"react\";import{getOwnerDocument as o}from'../utils/owner.js';function n(...e){return t(()=>o(...e),[...e])}export{n as useOwnerDocument};\n", "import{useEffect as d}from\"react\";import{useLatestValue as s}from'./use-latest-value.js';function E(n,e,a,t){let i=s(a);d(()=>{n=n!=null?n:window;function r(o){i.current(o)}return n.addEventListener(e,r,t),()=>n.removeEventListener(e,r,t)},[n,e,t])}export{E as useEventListener};\n", "import{getOwnerDocument as s}from'../utils/owner.js';import{useIsoMorphicEffect as d}from'./use-iso-morphic-effect.js';let i=new Set,r=new Map;function u(t){t.setAttribute(\"aria-hidden\",\"true\"),t.inert=!0}function l(t){let n=r.get(t);!n||(n[\"aria-hidden\"]===null?t.removeAttribute(\"aria-hidden\"):t.setAttribute(\"aria-hidden\",n[\"aria-hidden\"]),t.inert=n.inert)}function M(t,n=!0){d(()=>{if(!n||!t.current)return;let o=t.current,a=s(o);if(!!a){i.add(o);for(let e of r.keys())e.contains(o)&&(l(e),r.delete(e));return a.querySelectorAll(\"body > *\").forEach(e=>{if(e instanceof HTMLElement){for(let f of i)if(e.contains(f))return;i.size===1&&(r.set(e,{\"aria-hidden\":e.getAttribute(\"aria-hidden\"),inert:e.inert}),u(e))}}),()=>{if(i.delete(o),i.size>0)a.querySelectorAll(\"body > *\").forEach(e=>{if(e instanceof HTMLElement&&!r.has(e)){for(let f of i)if(e.contains(f))return;r.set(e,{\"aria-hidden\":e.getAttribute(\"aria-hidden\"),inert:e.inert}),u(e)}});else for(let e of r.keys())l(e),r.delete(e)}}},[n])}export{M as useInertOthers};\n", "import h,{Fragment as s,createContext as L,useContext as y,useEffect as m,useRef as d,useState as T}from\"react\";import{createPortal as G}from\"react-dom\";import{forwardRefWithAs as P,render as R}from'../../utils/render.js';import{useIsoMorphicEffect as M}from'../../hooks/use-iso-morphic-effect.js';import{usePortalRoot as v}from'../../internal/portal-force-root.js';import{useServerHandoffComplete as C}from'../../hooks/use-server-handoff-complete.js';import{optionalRef as O,useSyncRefs as g}from'../../hooks/use-sync-refs.js';import{useOwnerDocument as c}from'../../hooks/use-owner.js';import{microTask as H}from'../../utils/micro-task.js';import{isServer as E}from'../../utils/ssr.js';function x(i){let u=v(),o=y(A),e=c(i),[r,f]=T(()=>{if(!u&&o!==null||E)return null;let n=e==null?void 0:e.getElementById(\"headlessui-portal-root\");if(n)return n;if(e===null)return null;let t=e.createElement(\"div\");return t.setAttribute(\"id\",\"headlessui-portal-root\"),e.body.appendChild(t)});return m(()=>{r!==null&&(e!=null&&e.body.contains(r)||e==null||e.body.appendChild(r))},[r,e]),m(()=>{u||o!==null&&f(o.current)},[o,f,u]),r}let _=s,U=P(function(u,o){let e=u,r=d(null),f=g(O(a=>{r.current=a}),o),n=c(r),t=x(r),[l]=T(()=>{var a;return E?null:(a=n==null?void 0:n.createElement(\"div\"))!=null?a:null}),b=C(),p=d(!1);return M(()=>{if(p.current=!1,!(!t||!l))return t.contains(l)||(l.setAttribute(\"data-headlessui-portal\",\"\"),t.appendChild(l)),()=>{p.current=!0,H(()=>{var a;!p.current||!t||!l||(t.removeChild(l),t.childNodes.length<=0&&((a=t.parentElement)==null||a.removeChild(t)))})}},[t,l]),b?!t||!l?null:G(R({ourProps:{ref:f},theirProps:e,defaultTag:_,name:\"Portal\"}),l):null}),j=s,A=L(null),F=P(function(u,o){let{target:e,...r}=u,n={ref:g(o)};return h.createElement(A.Provider,{value:e},R({ourProps:n,theirProps:r,defaultTag:j,name:\"Popover.Group\"}))}),$=Object.assign(U,{Group:F});export{$ as Portal};\n", "import t,{createContext as r,useContext as c}from\"react\";let e=r(!1);function l(){return c(e)}function P(o){return t.createElement(e.Provider,{value:o.force},o.children)}export{P as ForcePortalRoot,l as usePortalRoot};\n", "import f,{createContext as m,useContext as D,useMemo as l,useState as P}from\"react\";import{useId as T}from'../../hooks/use-id.js';import{forwardRefWithAs as g,render as x}from'../../utils/render.js';import{useIsoMorphicEffect as E}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as h}from'../../hooks/use-sync-refs.js';import{useEvent as v}from'../../hooks/use-event.js';let d=m(null);function u(){let r=D(d);if(r===null){let t=new Error(\"You used a <Description /> component, but it is not inside a relevant parent.\");throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}return r}function k(){let[r,t]=P([]);return[r.length>0?r.join(\" \"):void 0,l(()=>function(e){let i=v(n=>(t(o=>[...o,n]),()=>t(o=>{let c=o.slice(),p=c.indexOf(n);return p!==-1&&c.splice(p,1),c}))),s=l(()=>({register:i,slot:e.slot,name:e.name,props:e.props}),[i,e.slot,e.name,e.props]);return f.createElement(d.Provider,{value:s},e.children)},[t])]}let S=\"p\",F=g(function(t,a){let e=u(),i=`headlessui-description-${T()}`,s=h(a);E(()=>e.register(i),[i,e.register]);let n=t,o={ref:s,...e.props,id:i};return x({ourProps:o,theirProps:n,slot:e.slot||{},defaultTag:S,name:e.name||\"Description\"})});export{F as Description,k as useDescriptions};\n", "import d,{createContext as c,useContext as m}from\"react\";import{useIsoMorphicEffect as f}from'../hooks/use-iso-morphic-effect.js';import{useEvent as p}from'../hooks/use-event.js';let a=c(()=>{});a.displayName=\"StackContext\";var s=(e=>(e[e.Add=0]=\"Add\",e[e.Remove=1]=\"Remove\",e))(s||{});function x(){return m(a)}function M({children:i,onUpdate:r,type:e,element:n,enabled:u}){let l=x(),o=p((...t)=>{r==null||r(...t),l(...t)});return f(()=>{let t=u===void 0||u===!0;return t&&o(0,e,n),()=>{t&&o(1,e,n)}},[o,e,n,u]),d.createElement(a.Provider,{value:o},i)}export{s as StackMessage,M as StackProvider,x as useStackContext};\n", "function o(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}export{o as isIOS};\n", "import U,{Fragment as G,createContext as W,createRef as B,useContext as V,useEffect as $,useMemo as S,useReducer as q,useRef as K}from\"react\";import{match as _}from'../../utils/match.js';import{forwardRefWithAs as h,render as P,Features as N}from'../../utils/render.js';import{disposables as O}from'../../utils/disposables.js';import{useDisposables as H}from'../../hooks/use-disposables.js';import{useIsoMorphicEffect as E}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as x}from'../../hooks/use-sync-refs.js';import{useId as F}from'../../hooks/use-id.js';import{Keys as m}from'../keyboard.js';import{Focus as y,calculateActiveIndex as J}from'../../utils/calculate-active-index.js';import{isDisabledReactIssue7711 as z}from'../../utils/bugs.js';import{isFocusableElement as X,FocusableMode as Y,sortByDomNode as Z,Focus as j,focusFrom as ee,restoreFocusIfNecessary as Q}from'../../utils/focus-management.js';import{useOutsideClick as te}from'../../hooks/use-outside-click.js';import{useTreeWalker as re}from'../../hooks/use-tree-walker.js';import{useOpenClosed as ne,State as L,OpenClosedProvider as oe}from'../../internal/open-closed.js';import{useResolveButtonType as ae}from'../../hooks/use-resolve-button-type.js';import{useOwnerDocument as ie}from'../../hooks/use-owner.js';import{useEvent as I}from'../../hooks/use-event.js';var ue=(o=>(o[o.Open=0]=\"Open\",o[o.Closed=1]=\"Closed\",o))(ue||{}),se=(o=>(o[o.Pointer=0]=\"Pointer\",o[o.Other=1]=\"Other\",o))(se||{}),le=(a=>(a[a.OpenMenu=0]=\"OpenMenu\",a[a.CloseMenu=1]=\"CloseMenu\",a[a.GoToItem=2]=\"GoToItem\",a[a.Search=3]=\"Search\",a[a.ClearSearch=4]=\"ClearSearch\",a[a.RegisterItem=5]=\"RegisterItem\",a[a.UnregisterItem=6]=\"UnregisterItem\",a))(le||{});function k(t,i=o=>o){let o=t.activeItemIndex!==null?t.items[t.activeItemIndex]:null,e=Z(i(t.items.slice()),u=>u.dataRef.current.domRef.current),n=o?e.indexOf(o):null;return n===-1&&(n=null),{items:e,activeItemIndex:n}}let ce={[1](t){return t.menuState===1?t:{...t,activeItemIndex:null,menuState:1}},[0](t){return t.menuState===0?t:{...t,menuState:0}},[2]:(t,i)=>{var n;let o=k(t),e=J(i,{resolveItems:()=>o.items,resolveActiveIndex:()=>o.activeItemIndex,resolveId:u=>u.id,resolveDisabled:u=>u.dataRef.current.disabled});return{...t,...o,searchQuery:\"\",activeItemIndex:e,activationTrigger:(n=i.trigger)!=null?n:1}},[3]:(t,i)=>{let e=t.searchQuery!==\"\"?0:1,n=t.searchQuery+i.value.toLowerCase(),s=(t.activeItemIndex!==null?t.items.slice(t.activeItemIndex+e).concat(t.items.slice(0,t.activeItemIndex+e)):t.items).find(c=>{var p;return((p=c.dataRef.current.textValue)==null?void 0:p.startsWith(n))&&!c.dataRef.current.disabled}),a=s?t.items.indexOf(s):-1;return a===-1||a===t.activeItemIndex?{...t,searchQuery:n}:{...t,searchQuery:n,activeItemIndex:a,activationTrigger:1}},[4](t){return t.searchQuery===\"\"?t:{...t,searchQuery:\"\",searchActiveItemIndex:null}},[5]:(t,i)=>{let o=k(t,e=>[...e,{id:i.id,dataRef:i.dataRef}]);return{...t,...o}},[6]:(t,i)=>{let o=k(t,e=>{let n=e.findIndex(u=>u.id===i.id);return n!==-1&&e.splice(n,1),e});return{...t,...o,activationTrigger:1}}},w=W(null);w.displayName=\"MenuContext\";function D(t){let i=V(w);if(i===null){let o=new Error(`<${t} /> is missing a parent <Menu /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,D),o}return i}function pe(t,i){return _(i.type,ce,t,i)}let me=G,de=h(function(i,o){let e=q(pe,{menuState:1,buttonRef:B(),itemsRef:B(),items:[],searchQuery:\"\",activeItemIndex:null,activationTrigger:1}),[{menuState:n,itemsRef:u,buttonRef:s},a]=e,c=x(o);te([s,u],(M,R)=>{var f;a({type:1}),X(R,Y.Loose)||(M.preventDefault(),(f=s.current)==null||f.focus())},n===0);let p=S(()=>({open:n===0}),[n]),g=i,d={ref:c};return U.createElement(w.Provider,{value:e},U.createElement(oe,{value:_(n,{[0]:L.Open,[1]:L.Closed})},P({ourProps:d,theirProps:g,slot:p,defaultTag:me,name:\"Menu\"})))}),fe=\"button\",Te=h(function(i,o){var f;let[e,n]=D(\"Menu.Button\"),u=x(e.buttonRef,o),s=`headlessui-menu-button-${F()}`,a=H(),c=I(l=>{switch(l.key){case m.Space:case m.Enter:case m.ArrowDown:l.preventDefault(),l.stopPropagation(),n({type:0}),a.nextFrame(()=>n({type:2,focus:y.First}));break;case m.ArrowUp:l.preventDefault(),l.stopPropagation(),n({type:0}),a.nextFrame(()=>n({type:2,focus:y.Last}));break}}),p=I(l=>{switch(l.key){case m.Space:l.preventDefault();break}}),g=I(l=>{if(z(l.currentTarget))return l.preventDefault();i.disabled||(e.menuState===0?(n({type:1}),a.nextFrame(()=>{var b;return(b=e.buttonRef.current)==null?void 0:b.focus({preventScroll:!0})})):(l.preventDefault(),n({type:0})))}),d=S(()=>({open:e.menuState===0}),[e]),M=i,R={ref:u,id:s,type:ae(i,e.buttonRef),\"aria-haspopup\":!0,\"aria-controls\":(f=e.itemsRef.current)==null?void 0:f.id,\"aria-expanded\":i.disabled?void 0:e.menuState===0,onKeyDown:c,onKeyUp:p,onClick:g};return P({ourProps:R,theirProps:M,slot:d,defaultTag:fe,name:\"Menu.Button\"})}),ye=\"div\",Ie=N.RenderStrategy|N.Static,ge=h(function(i,o){var b,C;let[e,n]=D(\"Menu.Items\"),u=x(e.itemsRef,o),s=ie(e.itemsRef),a=`headlessui-menu-items-${F()}`,c=H(),p=ne(),g=(()=>p!==null?p===L.Open:e.menuState===0)();$(()=>{let r=e.itemsRef.current;!r||e.menuState===0&&r!==(s==null?void 0:s.activeElement)&&r.focus({preventScroll:!0})},[e.menuState,e.itemsRef,s]),re({container:e.itemsRef.current,enabled:e.menuState===0,accept(r){return r.getAttribute(\"role\")===\"menuitem\"?NodeFilter.FILTER_REJECT:r.hasAttribute(\"role\")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT},walk(r){r.setAttribute(\"role\",\"none\")}});let d=I(r=>{var T,A;switch(c.dispose(),r.key){case m.Space:if(e.searchQuery!==\"\")return r.preventDefault(),r.stopPropagation(),n({type:3,value:r.key});case m.Enter:if(r.preventDefault(),r.stopPropagation(),n({type:1}),e.activeItemIndex!==null){let{dataRef:v}=e.items[e.activeItemIndex];(A=(T=v.current)==null?void 0:T.domRef.current)==null||A.click()}Q(e.buttonRef.current);break;case m.ArrowDown:return r.preventDefault(),r.stopPropagation(),n({type:2,focus:y.Next});case m.ArrowUp:return r.preventDefault(),r.stopPropagation(),n({type:2,focus:y.Previous});case m.Home:case m.PageUp:return r.preventDefault(),r.stopPropagation(),n({type:2,focus:y.First});case m.End:case m.PageDown:return r.preventDefault(),r.stopPropagation(),n({type:2,focus:y.Last});case m.Escape:r.preventDefault(),r.stopPropagation(),n({type:1}),O().nextFrame(()=>{var v;return(v=e.buttonRef.current)==null?void 0:v.focus({preventScroll:!0})});break;case m.Tab:r.preventDefault(),r.stopPropagation(),n({type:1}),O().nextFrame(()=>{ee(e.buttonRef.current,r.shiftKey?j.Previous:j.Next)});break;default:r.key.length===1&&(n({type:3,value:r.key}),c.setTimeout(()=>n({type:4}),350));break}}),M=I(r=>{switch(r.key){case m.Space:r.preventDefault();break}}),R=S(()=>({open:e.menuState===0}),[e]),f=i,l={\"aria-activedescendant\":e.activeItemIndex===null||(b=e.items[e.activeItemIndex])==null?void 0:b.id,\"aria-labelledby\":(C=e.buttonRef.current)==null?void 0:C.id,id:a,onKeyDown:d,onKeyUp:M,role:\"menu\",tabIndex:0,ref:u};return P({ourProps:l,theirProps:f,slot:R,defaultTag:ye,features:Ie,visible:g,name:\"Menu.Items\"})}),Me=G,Re=h(function(i,o){let{disabled:e=!1,...n}=i,[u,s]=D(\"Menu.Item\"),a=`headlessui-menu-item-${F()}`,c=u.activeItemIndex!==null?u.items[u.activeItemIndex].id===a:!1,p=K(null),g=x(o,p);E(()=>{if(u.menuState!==0||!c||u.activationTrigger===0)return;let r=O();return r.requestAnimationFrame(()=>{var T,A;(A=(T=p.current)==null?void 0:T.scrollIntoView)==null||A.call(T,{block:\"nearest\"})}),r.dispose},[p,c,u.menuState,u.activationTrigger,u.activeItemIndex]);let d=K({disabled:e,domRef:p});E(()=>{d.current.disabled=e},[d,e]),E(()=>{var r,T;d.current.textValue=(T=(r=p.current)==null?void 0:r.textContent)==null?void 0:T.toLowerCase()},[d,p]),E(()=>(s({type:5,id:a,dataRef:d}),()=>s({type:6,id:a})),[d,a]);let M=I(r=>{if(e)return r.preventDefault();s({type:1}),Q(u.buttonRef.current)}),R=I(()=>{if(e)return s({type:2,focus:y.Nothing});s({type:2,focus:y.Specific,id:a})}),f=I(()=>{e||c||s({type:2,focus:y.Specific,id:a,trigger:0})}),l=I(()=>{e||!c||s({type:2,focus:y.Nothing})}),b=S(()=>({active:c,disabled:e}),[c,e]);return P({ourProps:{id:a,ref:g,role:\"menuitem\",tabIndex:e===!0?void 0:-1,\"aria-disabled\":e===!0?!0:void 0,disabled:void 0,onClick:M,onFocus:R,onPointerMove:f,onMouseMove:f,onPointerLeave:l,onMouseLeave:l},theirProps:n,slot:b,defaultTag:Me,name:\"Menu.Item\"})}),qe=Object.assign(de,{Button:Te,Items:ge,Item:Re});export{qe as Menu};\n", "import T,{Fragment as J,createContext as K,useContext as G,useEffect as H,useMemo as Q,useRef as c,useState as B}from\"react\";import{Features as fe,forwardRefWithAs as W,render as X,RenderStrategy as g}from'../../utils/render.js';import{OpenClosedProvider as Te,State as O,useOpenClosed as Y}from'../../internal/open-closed.js';import{match as R}from'../../utils/match.js';import{useIsMounted as ce}from'../../hooks/use-is-mounted.js';import{useIsoMorphicEffect as me}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as A}from'../../hooks/use-latest-value.js';import{useServerHandoffComplete as Z}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as $}from'../../hooks/use-sync-refs.js';import{useTransition as pe}from'../../hooks/use-transition.js';import{useEvent as y}from'../../hooks/use-event.js';import{useDisposables as he}from'../../hooks/use-disposables.js';function x(r=\"\"){return r.split(\" \").filter(e=>e.trim().length>1)}let F=K(null);F.displayName=\"TransitionContext\";var ve=(s=>(s.Visible=\"visible\",s.Hidden=\"hidden\",s))(ve||{});function Ce(){let r=G(F);if(r===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return r}function ge(){let r=G(M);if(r===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return r}let M=K(null);M.displayName=\"NestingContext\";function I(r){return\"children\"in r?I(r.children):r.current.filter(({el:e})=>e.current!==null).filter(({state:e})=>e===\"visible\").length>0}function ee(r,e){let s=A(r),n=c([]),m=ce(),D=he(),b=y((l,i=g.Hidden)=>{let t=n.current.findIndex(({el:o})=>o===l);t!==-1&&(R(i,{[g.Unmount](){n.current.splice(t,1)},[g.Hidden](){n.current[t].state=\"hidden\"}}),D.microTask(()=>{var o;!I(n)&&m.current&&((o=s.current)==null||o.call(s))}))}),E=y(l=>{let i=n.current.find(({el:t})=>t===l);return i?i.state!==\"visible\"&&(i.state=\"visible\"):n.current.push({el:l,state:\"visible\"}),()=>b(l,g.Unmount)}),S=c([]),u=c(Promise.resolve()),p=c({enter:[],leave:[],idle:[]}),d=y((l,i,t)=>{S.current.splice(0),e&&(e.chains.current[i]=e.chains.current[i].filter(([o])=>o!==l)),e==null||e.chains.current[i].push([l,new Promise(o=>{S.current.push(o)})]),e==null||e.chains.current[i].push([l,new Promise(o=>{Promise.all(p.current[i].map(([f,a])=>a)).then(()=>o())})]),i===\"enter\"?u.current=u.current.then(()=>e==null?void 0:e.wait.current).then(()=>t(i)):t(i)}),h=y((l,i,t)=>{Promise.all(p.current[i].splice(0).map(([o,f])=>f)).then(()=>{var o;(o=S.current.shift())==null||o()}).then(()=>t(i))});return Q(()=>({children:n,register:E,unregister:b,onStart:d,onStop:h,wait:u,chains:p}),[E,b,n,d,h,p,u])}function be(){}let Ee=[\"beforeEnter\",\"afterEnter\",\"beforeLeave\",\"afterLeave\"];function te(r){var s;let e={};for(let n of Ee)e[n]=(s=r[n])!=null?s:be;return e}function Se(r){let e=c(te(r));return H(()=>{e.current=te(r)},[r]),e}let xe=\"div\",ne=fe.RenderStrategy,re=W(function(e,s){let{beforeEnter:n,afterEnter:m,beforeLeave:D,afterLeave:b,enter:E,enterFrom:S,enterTo:u,entered:p,leave:d,leaveFrom:h,leaveTo:l,...i}=e,t=c(null),o=$(t,s),f=i.unmount?g.Unmount:g.Hidden,{show:a,appear:P,initial:ie}=Ce(),[v,_]=B(a?\"visible\":\"hidden\"),z=ge(),{register:N,unregister:V}=z,j=c(null);H(()=>N(t),[N,t]),H(()=>{if(f===g.Hidden&&!!t.current){if(a&&v!==\"visible\"){_(\"visible\");return}return R(v,{[\"hidden\"]:()=>V(t),[\"visible\"]:()=>N(t)})}},[v,t,N,V,a,f]);let oe=A({enter:x(E),enterFrom:x(S),enterTo:x(u),entered:x(p),leave:x(d),leaveFrom:x(h),leaveTo:x(l)}),L=Se({beforeEnter:n,afterEnter:m,beforeLeave:D,afterLeave:b}),U=Z();H(()=>{if(U&&v===\"visible\"&&t.current===null)throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\")},[t,v,U]);let k=ie&&!P,se=(()=>!U||k||j.current===a?\"idle\":a?\"enter\":\"leave\")(),le=y(C=>R(C,{enter:()=>L.current.beforeEnter(),leave:()=>L.current.beforeLeave(),idle:()=>{}})),ae=y(C=>R(C,{enter:()=>L.current.afterEnter(),leave:()=>L.current.afterLeave(),idle:()=>{}})),w=ee(()=>{_(\"hidden\"),V(t)},z);pe({container:t,classes:oe,direction:se,onStart:A(C=>{w.onStart(t,C,le)}),onStop:A(C=>{w.onStop(t,C,ae),C===\"leave\"&&!I(w)&&(_(\"hidden\"),V(t))})}),H(()=>{!k||(f===g.Hidden?j.current=null:j.current=a)},[a,k,v]);let ue=i,de={ref:o};return T.createElement(M.Provider,{value:w},T.createElement(Te,{value:R(v,{[\"visible\"]:O.Open,[\"hidden\"]:O.Closed})},X({ourProps:de,theirProps:ue,defaultTag:xe,features:ne,visible:v===\"visible\",name:\"Transition.Child\"})))}),q=W(function(e,s){let{show:n,appear:m=!1,unmount:D,...b}=e,E=c(null),S=$(E,s);Z();let u=Y();if(n===void 0&&u!==null&&(n=R(u,{[O.Open]:!0,[O.Closed]:!1})),![!0,!1].includes(n))throw new Error(\"A <Transition /> is used but it is missing a `show={true | false}` prop.\");let[p,d]=B(n?\"visible\":\"hidden\"),h=ee(()=>{d(\"hidden\")}),[l,i]=B(!0),t=c([n]);me(()=>{l!==!1&&t.current[t.current.length-1]!==n&&(t.current.push(n),i(!1))},[t,n]);let o=Q(()=>({show:n,appear:m,initial:l}),[n,m,l]);H(()=>{if(n)d(\"visible\");else if(!I(h))d(\"hidden\");else{let a=E.current;if(!a)return;let P=a.getBoundingClientRect();P.x===0&&P.y===0&&P.width===0&&P.height===0&&d(\"hidden\")}},[n,h]);let f={unmount:D};return T.createElement(M.Provider,{value:h},T.createElement(F.Provider,{value:o},X({ourProps:{...f,as:J,children:T.createElement(re,{ref:S,...f,...b})},theirProps:{},defaultTag:J,features:ne,visible:p===\"visible\",name:\"Transition\"})))}),Pe=W(function(e,s){let n=G(F)!==null,m=Y()!==null;return T.createElement(T.Fragment,null,!n&&m?T.createElement(q,{ref:s,...e}):T.createElement(re,{ref:s,...e}))}),We=Object.assign(q,{Child:Pe,Root:q});export{We as Transition};\n", "function l(r){let e={called:!1};return(...t)=>{if(!e.called)return e.called=!0,r(...t)}}export{l as once};\n", "import{once as E}from'../../../utils/once.js';import{disposables as g}from'../../../utils/disposables.js';import{match as p}from'../../../utils/match.js';function f(t,...e){t&&e.length>0&&t.classList.add(...e)}function v(t,...e){t&&e.length>0&&t.classList.remove(...e)}var T=(n=>(n.Ended=\"ended\",n.Cancelled=\"cancelled\",n))(T||{});function c(t,e){let n=g();if(!t)return n.dispose;let{transitionDuration:d,transitionDelay:o}=getComputedStyle(t),[s,u]=[d,o].map(i=>{let[a=0]=i.split(\",\").filter(Boolean).map(r=>r.includes(\"ms\")?parseFloat(r):parseFloat(r)*1e3).sort((r,l)=>l-r);return a});if(s+u!==0){let i=[];i.push(n.addEventListener(t,\"transitionrun\",a=>{a.target===a.currentTarget&&(i.splice(0).forEach(r=>r()),i.push(n.addEventListener(t,\"transitionend\",r=>{r.target===r.currentTarget&&(e(\"ended\"),i.splice(0).forEach(l=>l()))}),n.addEventListener(t,\"transitioncancel\",r=>{r.target===r.currentTarget&&(e(\"cancelled\"),i.splice(0).forEach(l=>l()))})))}))}else e(\"ended\");return n.add(()=>e(\"cancelled\")),n.dispose}function C(t,e,n,d){let o=n?\"enter\":\"leave\",s=g(),u=d!==void 0?E(d):()=>{};o===\"enter\"&&(t.removeAttribute(\"hidden\"),t.style.display=\"\");let m=p(o,{enter:()=>e.enter,leave:()=>e.leave}),i=p(o,{enter:()=>e.enterTo,leave:()=>e.leaveTo}),a=p(o,{enter:()=>e.enterFrom,leave:()=>e.leaveFrom});return v(t,...e.enter,...e.enterTo,...e.enterFrom,...e.leave,...e.leaveFrom,...e.leaveTo,...e.entered),f(t,...m,...a),s.nextFrame(()=>{v(t,...a),f(t,...i),c(t,r=>(r===\"ended\"&&(v(t,...m),f(t,...e.entered)),u(r)))}),s.dispose}export{T as Reason,C as transition};\n", "import{Reason as i,transition as m}from'../components/transitions/utils/transition.js';import{disposables as f}from'../utils/disposables.js';import{match as p}from'../utils/match.js';import{useDisposables as b}from'./use-disposables.js';import{useIsMounted as g}from'./use-is-mounted.js';import{useIsoMorphicEffect as M}from'./use-iso-morphic-effect.js';import{useLatestValue as T}from'./use-latest-value.js';function I({container:o,direction:t,classes:s,onStart:a,onStop:u}){let c=g(),d=b(),r=T(t);M(()=>{let e=f();d.add(e.dispose);let n=o.current;if(!!n&&r.current!==\"idle\"&&!!c.current)return e.dispose(),a.current(r.current),e.add(m(n,s.current,r.current===\"enter\",l=>{e.dispose(),p(l,{[i.Ended](){u.current(r.current)},[i.Cancelled]:()=>{}})})),e.dispose},[t])}export{I as useTransition};\n", "function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f);else for(t in e)e[t]&&(n&&(n+=\" \"),n+=t);return n}export function clsx(){for(var e,t,f=0,n=\"\";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;", "import clsx from 'clsx';\n\nimport {missingClass, formatText} from '~/lib/utils';\n\nexport function Text({\n as: Component = 'span',\n className,\n color = 'default',\n format,\n size = 'copy',\n width = 'default',\n children,\n ...props\n}: {\n as?: React.ElementType;\n className?: string;\n color?: 'default' | 'primary' | 'subtle' | 'notice' | 'contrast';\n format?: boolean;\n size?: 'lead' | 'copy' | 'fine';\n width?: 'default' | 'narrow' | 'wide';\n children: React.ReactNode;\n [key: string]: any;\n}) {\n const colors: Record<string, string> = {\n default: 'inherit',\n primary: 'text-primary/90',\n subtle: 'text-primary/50',\n notice: 'text-notice',\n contrast: 'text-contrast/90',\n };\n\n const sizes: Record<string, string> = {\n lead: 'text-lead font-medium',\n copy: 'text-copy',\n fine: 'text-fine subpixel-antialiased',\n };\n\n const widths: Record<string, string> = {\n default: 'max-w-prose',\n narrow: 'max-w-prose-narrow',\n wide: 'max-w-prose-wide',\n };\n\n const styles = clsx(\n missingClass(className, 'max-w-') && widths[width],\n missingClass(className, 'whitespace-') && 'whitespace-pre-wrap',\n missingClass(className, 'text-') && colors[color],\n sizes[size],\n className,\n );\n\n return (\n <Component {...props} className={styles}>\n {format ? formatText(children) : children}\n </Component>\n );\n}\n\nexport function Heading({\n as: Component = 'h2',\n children,\n className = '',\n format,\n size = 'heading',\n width = 'default',\n ...props\n}: {\n as?: React.ElementType;\n children: React.ReactNode;\n format?: boolean;\n size?: 'display' | 'heading' | 'lead' | 'copy';\n width?: 'default' | 'narrow' | 'wide';\n} & React.HTMLAttributes<HTMLHeadingElement>) {\n const sizes = {\n display: 'font-bold text-display',\n heading: 'font-bold text-heading',\n lead: 'font-bold text-lead',\n copy: 'font-medium text-copy',\n };\n\n const widths = {\n default: 'max-w-prose',\n narrow: 'max-w-prose-narrow',\n wide: 'max-w-prose-wide',\n };\n\n const styles = clsx(\n missingClass(className, 'whitespace-') && 'whitespace-pre-wrap',\n missingClass(className, 'max-w-') && widths[width],\n missingClass(className, 'font-') && sizes[size],\n className,\n );\n\n return (\n <Component {...props} className={styles}>\n {format ? formatText(children) : children}\n </Component>\n );\n}\n\nexport function Section({\n as: Component = 'section',\n children,\n className,\n divider = 'none',\n display = 'grid',\n heading,\n padding = 'all',\n ...props\n}: {\n as?: React.ElementType;\n children?: React.ReactNode;\n className?: string;\n divider?: 'none' | 'top' | 'bottom' | 'both';\n display?: 'grid' | 'flex';\n heading?: string;\n padding?: 'x' | 'y' | 'swimlane' | 'all';\n [key: string]: any;\n}) {\n const paddings = {\n x: 'px-6 md:px-8 lg:px-12',\n y: 'py-6 md:py-8 lg:py-12',\n swimlane: 'pt-4 md:pt-8 lg:pt-12 md:pb-4 lg:pb-8',\n all: 'p-6 md:p-8 lg:p-12',\n };\n\n const dividers = {\n none: 'border-none',\n top: 'border-t border-primary/05',\n bottom: 'border-b border-primary/05',\n both: 'border-y border-primary/05',\n };\n\n const displays = {\n flex: 'flex',\n grid: 'grid',\n };\n\n const styles = clsx(\n 'w-full gap-4 md:gap-8',\n displays[display],\n missingClass(className, '\\\\mp[xy]?-') && paddings[padding],\n dividers[divider],\n className,\n );\n\n return (\n <Component {...props} className={styles}>\n {heading && (\n <Heading size=\"lead\" className={padding === 'y' ? paddings['x'] : ''}>\n {heading}\n </Heading>\n )}\n {children}\n </Component>\n );\n}\n\nexport function PageHeader({\n children,\n className,\n heading,\n variant = 'default',\n ...props\n}: {\n children?: React.ReactNode;\n className?: string;\n heading?: string;\n variant?: 'default' | 'blogPost' | 'allCollections';\n [key: string]: any;\n}) {\n const variants: Record<string, string> = {\n default: 'grid w-full gap-8 p-6 py-8 md:p-8 lg:p-12 justify-items-start',\n blogPost:\n 'grid md:text-center w-full gap-4 p-6 py-8 md:p-8 lg:p-12 md:justify-items-center',\n allCollections:\n 'flex justify-between items-baseline gap-8 p-6 md:p-8 lg:p-12',\n };\n\n const styles = clsx(variants[variant], className);\n\n return (\n <header {...props} className={styles}>\n {heading && (\n <Heading as=\"h1\" width=\"narrow\" size=\"heading\" className=\"inline-block\">\n {heading}\n </Heading>\n )}\n {children}\n </header>\n );\n}\n", "import clsx from 'clsx';\n\nexport function Input({\n className = '',\n type,\n variant,\n ...props\n}: {\n className?: string;\n type?: string;\n variant: 'search' | 'minisearch';\n [key: string]: any;\n}) {\n const variants = {\n search:\n 'bg-transparent px-0 py-2 text-heading w-full focus:ring-0 border-x-0 border-t-0 transition border-b-2 border-primary/10 focus:border-primary/90',\n minisearch:\n 'bg-transparent hidden md:inline-block text-left lg:text-right border-b transition border-transparent -mb-px border-x-0 border-t-0 appearance-none px-0 py-1 focus:ring-transparent placeholder:opacity-20 placeholder:text-inherit',\n };\n\n const styles = clsx(variants[variant], className);\n\n return <input type={type} {...props} className={styles} />;\n}\n", "export const PAGINATION_SIZE = 8;\nexport const DEFAULT_GRID_IMG_LOAD_EAGER_COUNT = 4;\nexport const ATTR_LOADING_EAGER = 'eager';\n\nexport function getImageLoadingPriority(\n index: number,\n maxEagerLoadCount = DEFAULT_GRID_IMG_LOAD_EAGER_COUNT,\n) {\n return index < maxEagerLoadCount ? ATTR_LOADING_EAGER : undefined;\n}\n", "import type {MediaEdge} from '@shopify/hydrogen-react/storefront-api-types';\nimport {ATTR_LOADING_EAGER} from '~/lib/const';\nimport type {MediaImage} from '@shopify/hydrogen-react/storefront-api-types';\n\n/**\n * A client component that defines a media gallery for hosting images, 3D models, and videos of products\n */\nexport function ProductGallery({\n media,\n className,\n}: {\n media: MediaEdge['node'][];\n className?: string;\n}) {\n if (!media.length) {\n return null;\n }\n\n return (\n <div\n className={`swimlane md:grid-flow-row hiddenScroll md:p-0 md:overflow-x-auto md:grid-cols-2 ${className}`}\n >\n {media.map((med, i) => {\n let mediaProps: Record<string, any> = {};\n const isFirst = i === 0;\n const isFourth = i === 3;\n const isFullWidth = i % 3 === 0;\n\n const data = {\n ...med,\n image: {\n // @ts-ignore\n ...med.image,\n altText: med.alt || 'Product image',\n },\n } as MediaImage;\n\n switch (med.mediaContentType) {\n case 'IMAGE':\n mediaProps = {\n width: 800,\n widths: [400, 800, 1200, 1600, 2000, 2400],\n };\n break;\n case 'VIDEO':\n mediaProps = {\n width: '100%',\n autoPlay: true,\n controls: false,\n muted: true,\n loop: true,\n preload: 'auto',\n };\n break;\n case 'EXTERNAL_VIDEO':\n mediaProps = {width: '100%'};\n break;\n case 'MODEL_3D':\n mediaProps = {\n width: '100%',\n interactionPromptThreshold: '0',\n ar: true,\n loading: ATTR_LOADING_EAGER,\n disableZoom: true,\n };\n break;\n }\n\n if (i === 0 && med.mediaContentType === 'IMAGE') {\n mediaProps.loading = ATTR_LOADING_EAGER;\n }\n\n const style = [\n isFullWidth ? 'md:col-span-2' : 'md:col-span-1',\n isFirst || isFourth ? '' : 'md:aspect-[4/5]',\n 'aspect-square snap-center card-image bg-white dark:bg-contrast/10 w-mobileGallery md:w-full',\n ].join(' ');\n\n return (\n <div\n className={style}\n // @ts-ignore\n key={med.id || med.image.id}\n >\n {/* TODO: Replace with MediaFile when it's available */}\n {(med as MediaImage).image && (\n <img\n src={data.image!.url}\n alt={data.image!.altText!}\n className=\"w-full h-full aspect-square fadeIn object-cover\"\n />\n )}\n {/* <MediaFile\n tabIndex=\"0\"\n className={`w-full h-full aspect-square fadeIn object-cover`}\n data={data}\n sizes={\n isFullWidth\n ? '(min-width: 64em) 60vw, (min-width: 48em) 50vw, 90vw'\n : '(min-width: 64em) 30vw, (min-width: 48em) 25vw, 90vw'\n }\n // @ts-ignore\n options={{\n crop: 'center',\n scale: 2,\n }}\n {...mediaProps}\n /> */}\n </div>\n );\n })}\n </div>\n );\n}\n", "// Demo store placeholders\nconst PLACEHOLDERS = {\n HEROS: [\n // primaryHero\n {\n heading: {value: 'All Mountain All Season'},\n byline: {\n value: 'The All New Hydrogen Snowboard Exclusively From Shopify',\n },\n cta: {value: 'Shop Now \u2192'},\n handle: 'freestyle',\n spread: {\n reference: {\n mediaContentType: 'IMAGE',\n alt: 'Tracks in the snow leading to a person on a mountain top with a red jacket contrasting to an epic blue horizon with a mountain range in the distance.',\n previewImage: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/Hydrogen_Hero_Feature_1.jpg?v=1654902468',\n },\n id: 'gid://shopify/MediaImage/29259478466616',\n image: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/Hydrogen_Hero_Feature_1.jpg?v=1654902468',\n width: 2500,\n height: 3155,\n },\n },\n },\n spreadSecondary: {\n reference: {\n __typename: 'MediaImage',\n mediaContentType: 'IMAGE',\n alt: 'A snowboarder standing on a mountain top in choppy snow, shows off the back of his snowboard which reads Hydrogen in a cursive script.',\n previewImage: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/Hydrogen_Hero_Feature_2.jpg?v=1654902468',\n },\n id: 'gid://shopify/MediaImage/29259478499384',\n image: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/Hydrogen_Hero_Feature_2.jpg?v=1654902468',\n width: 2500,\n height: 3155,\n },\n },\n },\n height: 'full',\n top: true,\n loading: 'eager',\n },\n // secondaryHero\n {\n heading: {value: 'From the Slopes to the Chalet'},\n byline: null,\n cta: {value: 'Shop Now \u2192'},\n handle: 'backcountry',\n spread: {\n reference: {\n __typename: 'MediaImage',\n mediaContentType: 'IMAGE',\n alt: 'A skier hikes up a mountain through the snow with skis over their shoulder.',\n previewImage: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/Chalet_Collection_Feature_1.jpg?v=1654902306',\n },\n id: 'gid://shopify/MediaImage/29259478368312',\n image: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/Chalet_Collection_Feature_1.jpg?v=1654902306',\n width: 2500,\n height: 2500,\n },\n },\n },\n spreadSecondary: {\n reference: {\n __typename: 'MediaImage',\n mediaContentType: 'IMAGE',\n alt: 'A snow covered lodge is illuminated by lights at night with a dark starry sky and mountain backdrop.',\n previewImage: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/Chalet_Collection_Feature_2.jpg?v=1654902306',\n },\n id: 'gid://shopify/MediaImage/29259478401080',\n image: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/Chalet_Collection_Feature_2.jpg?v=1654902306',\n width: 2500,\n height: 2500,\n },\n },\n },\n },\n // tertiaryHero\n {\n heading: {value: 'The Winter 2022 Collection'},\n byline: {value: 'Just Dropped'},\n cta: {value: 'Shop Now \u2192'},\n handle: 'winter-2022',\n spread: {\n reference: {\n __typename: 'MediaImage',\n mediaContentType: 'IMAGE',\n alt: 'Three young women in snowboarding attire embracing and laughing while snow falls around them',\n previewImage: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/Collection_Feature_Wide.jpg?v=1654902160',\n },\n id: 'gid://shopify/MediaImage/29259478302776',\n image: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/files/Collection_Feature_Wide.jpg?v=1654902160',\n width: 5000,\n height: 2500,\n },\n },\n },\n spreadSecondary: null,\n },\n ],\n PRODUCT_INFO: [\n {\n title: 'Description',\n content:\n 'We threw snow tires on our core classics... Good for all year round! Named after my favorite football match of the year. Just like any of our joints, dress them up or down...',\n },\n {\n title: 'Size and Fit',\n content:\n 'We threw snow tires on our core classics... Good for all year round! Named after my favorite football match of the year. Just like any of our joints, dress them up or down...',\n },\n {\n title: 'Delivery and Returns',\n content: `The towels had been hanging from the rod for years. They were stained and worn, and quite frankly, just plain ugly. Debra didn't want to touch them but she really didn't have a choice. It was important for her to see what was living within them. Patrick didn't want to go. The fact that she was insisting they must go made him want to go even less. He had no desire to make small talk with strangers he would never again see just to be polite. But she insisted that Patrick go, and she would soon find out that this would be the biggest mistake she could make in their relationship.`,\n },\n ],\n PRODUCT: {\n label: 'Limited Edition',\n id: 'gid://shopify/Product/6730850828344',\n title: 'The Hydrogen',\n publishedAt: '2021-06-17T18:33:17Z',\n handle: 'snowboard',\n description:\n \"Description Our flagship board, ideal for technical terrain and those who dare to go where the chairlift can't take you. The Hydrogen excels in the backcountry making riding out of bounds as easy as resort groomers. New for 2021, the Hydrogen Snowboard has Oxygen Pack inserts giving you more float on the deepest days. Care Guide Clean well after use Wax regularly Specs Weight: 5 lb Length: 4 ft Width: 1 ft Manufactured on: 8/2/2021, 3:30:00 PM Manufactured by: Shopify\",\n priceRange: {\n minVariantPrice: {\n amount: '775.0',\n currencyCode: 'CAD',\n },\n maxVariantPrice: {\n amount: '775.0',\n currencyCode: 'CAD',\n },\n },\n options: [\n {\n name: 'Color',\n values: ['Morning', 'Evening', 'Night'],\n },\n {\n name: 'Size',\n values: ['154', '158', '160'],\n },\n ],\n variants: {\n nodes: [\n {\n id: 'gid://shopify/ProductVariant/41007289630776',\n image: {\n url: 'https://cdn.shopify.com/s/files/1/0551/4566/0472/products/hydrogen-morning.jpg?v=1636146509',\n altText: 'The Hydrogen snowboard, color Morning',\n width: 1200,\n height: 1504,\n },\n price: {\n amount: '775.0',\n currencyCode: 'CAD',\n },\n compareAtPrice: {\n amount: '840.0',\n currencyCode: 'CAD',\n },\n },\n ],\n },\n },\n};\n\n/**\n * getHeroPlaceholder() returns placeholder content when the expected metafields\n * don't exist. Define the following five custom metafields on your Shopify store to override placeholders:\n * - hero.title Single line text\n * - hero.byline Single line text\n * - hero.cta Single line text\n * - hero.spread File\n * - hero.spread_secondary File\n *\n * @see https://help.shopify.com/manual/metafields/metafield-definitions/creating-custom-metafield-definitions\n * @see https://github.com/Shopify/hydrogen/discussions/1790\n */\n\nexport function getHeroPlaceholder(heros: any[]) {\n if (!heros?.length) return [];\n\n // when we pass a collection without metafields,\n // we merge it with placeholder data\n return heros.map((hero, index) => {\n // assume passed hero has metafields data already\n if (hero?.heading?.value) {\n return hero;\n }\n\n // hero placeholder\n const placeholder = PLACEHOLDERS.HEROS[index];\n\n // prioritize metafield data if available, else the hero hero values\n // otherwise the placeholder values\n const byLine =\n hero?.byLine || hero?.descriptionHtml\n ? {value: hero.descriptionHtml}\n : placeholder.byline;\n\n const heading =\n hero?.heading || hero?.title ? {value: hero.title} : placeholder.heading;\n\n // merge hero placeholder with hero data\n return {\n heading,\n byLine,\n cta: hero?.cta || placeholder.cta,\n handle: hero?.handle || placeholder.handle,\n id: hero?.id || index,\n spread: hero?.spread || placeholder.spread,\n spreadSecondary: hero?.spreadSecondary || placeholder.spreadSecondary,\n height: placeholder?.height || undefined,\n top: placeholder?.top || undefined,\n };\n });\n}\n\n// get product info placeholder data\nexport function getProductInfoPlaceholder() {\n function getMultipleRandom(arr: any[], infos: number) {\n const shuffled = [...arr].sort(() => 0.5 - Math.random());\n return shuffled.slice(0, infos);\n }\n return getMultipleRandom(PLACEHOLDERS.PRODUCT_INFO, 3);\n}\n\nexport function getProductPlaceholder() {\n return PLACEHOLDERS.PRODUCT;\n}\n", "import clsx from 'clsx';\nimport {\n flattenConnection,\n Image,\n Money,\n useMoney,\n} from '@shopify/hydrogen-react';\nimport type {SerializeFrom} from '@shopify/remix-oxygen';\nimport {Text, Link, Button, AddToCartButton} from '~/components';\nimport {isDiscounted, isNewArrival} from '~/lib/utils';\nimport {getProductPlaceholder} from '~/lib/placeholders';\nimport type {\n CartLineInput,\n MoneyV2,\n Product,\n ProductVariant,\n ProductVariantConnection,\n} from '@shopify/hydrogen-react/storefront-api-types';\nimport {useFetcher, useMatches} from '@remix-run/react';\n\nexport function ProductCard({\n product,\n label,\n className,\n loading,\n onClick,\n}: {\n product: SerializeFrom<Product>;\n label?: string;\n className?: string;\n loading?: HTMLImageElement['loading'];\n onClick?: () => void;\n}) {\n let cardLabel;\n\n const cartProduct = product?.variants ? product : getProductPlaceholder();\n if (!cartProduct?.variants?.nodes?.length) return null;\n\n const firstVariant = flattenConnection<ProductVariant>(\n cartProduct?.variants as ProductVariantConnection,\n )[0];\n\n if (!firstVariant) return null;\n const {image, price, compareAtPrice} = firstVariant;\n\n if (label) {\n cardLabel = label;\n } else if (isDiscounted(price as MoneyV2, compareAtPrice as MoneyV2)) {\n cardLabel = 'Sale';\n } else if (isNewArrival(product.publishedAt)) {\n cardLabel = 'New';\n }\n\n return (\n <div className=\"flex flex-col\">\n <Link\n onClick={onClick}\n to={`/products/${product.handle}`}\n prefetch=\"intent\"\n >\n <div className={clsx('grid gap-6', className)}>\n <div className=\"card-image aspect-[4/5] bg-primary/5\">\n {image && (\n <Image\n className=\"aspect-[4/5] w-full object-cover fadeIn\"\n widths={[320]}\n sizes=\"320px\"\n loaderOptions={{\n crop: 'center',\n scale: 2,\n width: 320,\n height: 400,\n }}\n data={image}\n alt={image.altText || `Picture of ${product.title}`}\n loading={loading}\n />\n )}\n <Text\n as=\"label\"\n size=\"fine\"\n className=\"absolute top-0 right-0 m-4 text-right text-notice\"\n >\n {cardLabel}\n </Text>\n </div>\n <div className=\"grid gap-1\">\n <Text\n className=\"w-full overflow-hidden whitespace-nowrap text-ellipsis \"\n as=\"h3\"\n >\n {product.title}\n </Text>\n <div className=\"flex gap-4\">\n <Text className=\"flex gap-4\">\n <Money withoutTrailingZeros data={price!} />\n {isDiscounted(price as MoneyV2, compareAtPrice as MoneyV2) && (\n <CompareAtPrice\n className={'opacity-50'}\n data={compareAtPrice as MoneyV2}\n />\n )}\n </Text>\n </div>\n </div>\n </div>\n </Link>\n {firstVariant?.id && (\n <AddToCartButton\n lines={[\n {\n quantity: 1,\n merchandiseId: firstVariant.id,\n },\n ]}\n variant=\"secondary\"\n className=\"mt-2\"\n >\n <Text as=\"span\" className=\"flex items-center justify-center gap-2\">\n Add to Bag\n </Text>\n </AddToCartButton>\n )}\n </div>\n );\n}\n\nfunction CompareAtPrice({\n data,\n className,\n}: {\n data: MoneyV2;\n className?: string;\n}) {\n const {currencyNarrowSymbol, withoutTrailingZerosAndCurrency} =\n useMoney(data);\n\n const styles = clsx('strike', className);\n\n return (\n <span className={styles}>\n {currencyNarrowSymbol}\n {withoutTrailingZerosAndCurrency}\n </span>\n );\n}\n", "import type {SerializeFrom} from '@shopify/remix-oxygen';\nimport type {Product} from '@shopify/hydrogen-react/storefront-api-types';\nimport {ProductCard, Section} from '~/components';\n\nconst mockProducts = new Array(12).fill('');\n\nexport function ProductSwimlane({\n title = 'Featured Products',\n products = mockProducts,\n count = 12,\n ...props\n}: {\n title?: string;\n products?: SerializeFrom<Product[]>;\n count?: number;\n}) {\n return (\n <Section heading={title} padding=\"y\" {...props}>\n <div className=\"swimlane hiddenScroll md:pb-8 md:scroll-px-8 lg:scroll-px-12 md:px-8 lg:px-12\">\n {products.map((product) => (\n <ProductCard\n product={product}\n key={product.id}\n className=\"snap-start w-80\"\n />\n ))}\n </div>\n </Section>\n );\n}\n", "import {Button, Grid, ProductCard, Link} from '~/components';\nimport {getImageLoadingPriority} from '~/lib/const';\nimport type {\n Collection,\n Product,\n} from '@shopify/hydrogen-react/storefront-api-types';\nimport {useFetcher} from '@remix-run/react';\nimport {useEffect, useState} from 'react';\n\nexport function ProductGrid({\n url,\n collection,\n ...props\n}: {\n url: string;\n collection: Collection;\n}) {\n const [initialProducts, setInitialProducts] = useState(\n collection?.products?.nodes || [],\n );\n\n const [nextPage, setNextPage] = useState(\n collection?.products?.pageInfo?.hasNextPage,\n );\n const [endCursor, setEndCursor] = useState(\n collection?.products?.pageInfo?.endCursor,\n );\n const [products, setProducts] = useState(initialProducts);\n\n // props have changes, reset component state\n const productProps = collection?.products?.nodes || [];\n if (initialProducts !== productProps) {\n setInitialProducts(productProps);\n setProducts(productProps);\n }\n\n const fetcher = useFetcher();\n\n function fetchMoreProducts() {\n fetcher.load(`${url}?index&cursor=${endCursor}`);\n }\n\n useEffect(() => {\n if (!fetcher.data) return;\n\n const {collection} = fetcher.data;\n\n setProducts((prev: Product[]) => [...prev, ...collection.products.nodes]);\n setNextPage(collection.products.pageInfo.hasNextPage);\n setEndCursor(collection.products.pageInfo.endCursor);\n }, [fetcher.data]);\n\n const haveProducts = initialProducts.length > 0;\n\n if (!haveProducts) {\n return (\n <>\n <p>No products found on this collection</p>\n <Link to=\"/products\">\n <p className=\"underline\">Browse catalog</p>\n </Link>\n </>\n );\n }\n\n return (\n <>\n <Grid layout=\"products\" {...props}>\n {products.map((product, i) => (\n <ProductCard\n key={product.id}\n product={product}\n loading={getImageLoadingPriority(i)}\n />\n ))}\n </Grid>\n\n {nextPage && (\n <div className=\"flex items-center justify-center mt-6\">\n <Button\n disabled={fetcher.state !== 'idle'}\n variant=\"secondary\"\n onClick={fetchMoreProducts}\n width=\"full\"\n prefetch=\"intent\"\n >\n {fetcher.state !== 'idle' ? 'Loading...' : 'Load more products'}\n </Button>\n </div>\n )}\n </>\n );\n}\n", "import clsx from 'clsx';\n\n/**\n * A shared component and Suspense call that's used in `App.server.jsx` to let your app wait for code to load while declaring a loading state\n */\nexport function Skeleton({\n as: Component = 'div',\n width,\n height,\n className,\n ...props\n}: {\n as?: React.ElementType;\n width?: string;\n height?: string;\n className?: string;\n [key: string]: any;\n}) {\n const styles = clsx('rounded bg-primary/10', className);\n\n return (\n <Component {...props} width={width} height={height} className={styles} />\n );\n}\n", "import {forwardRef} from 'react';\nimport {Link} from '@remix-run/react';\nimport clsx from 'clsx';\n\nimport {missingClass} from '~/lib/utils';\n\nexport const Button = forwardRef(\n (\n {\n as = 'button',\n className = '',\n variant = 'primary',\n width = 'auto',\n ...props\n }: {\n as?: React.ElementType;\n className?: string;\n variant?: 'primary' | 'secondary' | 'inline';\n width?: 'auto' | 'full';\n [key: string]: any;\n },\n ref,\n ) => {\n const Component = props?.to ? Link : as;\n\n const baseButtonClasses =\n 'inline-block rounded font-medium text-center py-3 px-6';\n\n const variants = {\n primary: `${baseButtonClasses} bg-primary text-contrast`,\n secondary: `${baseButtonClasses} border border-primary/10 bg-contrast text-primary`,\n inline: 'border-b border-primary/10 leading-none pb-1',\n };\n\n const widths = {\n auto: 'w-auto',\n full: 'w-full',\n };\n\n const styles = clsx(\n missingClass(className, 'bg-') && variants[variant],\n missingClass(className, 'w-') && widths[width],\n className,\n );\n\n return (\n <Component\n // @todo: not supported until react-router makes it into Remix.\n // preventScrollReset={true}\n className={styles}\n {...props}\n ref={ref}\n />\n );\n },\n);\n", "import {useFetcher, useLocation, useMatches} from '@remix-run/react';\nimport {Heading, Button, IconCheck} from '~/components';\nimport {useCallback, useEffect, useRef} from 'react';\nimport {useInView} from 'react-intersection-observer';\nimport {Localizations, Locale, CartAction} from '~/lib/type';\nimport {DEFAULT_LOCALE} from '~/lib/utils';\nimport clsx from 'clsx';\nimport {CartBuyerIdentityInput} from '@shopify/hydrogen-react/storefront-api-types';\n\nexport function CountrySelector() {\n const [root] = useMatches();\n const fetcher = useFetcher();\n const closeRef = useRef<HTMLDetailsElement>(null);\n const selectedLocale = root.data?.selectedLocale ?? DEFAULT_LOCALE;\n const {pathname, search} = useLocation();\n const pathWithoutLocale = `${pathname.replace(\n selectedLocale.pathPrefix,\n '',\n )}${search}`;\n\n const countries = (fetcher.data ?? {}) as Localizations;\n const defaultLocale = countries?.['default'];\n const defaultLocalePrefix = defaultLocale\n ? `${defaultLocale?.language}-${defaultLocale?.country}`\n : '';\n\n const {ref, inView} = useInView({\n threshold: 0,\n triggerOnce: true,\n });\n\n const observerRef = useRef(null);\n useEffect(() => {\n ref(observerRef.current);\n }, [ref, observerRef]);\n\n // Get available countries list when in view\n useEffect(() => {\n if (!inView || fetcher.data || fetcher.state === 'loading') return;\n fetcher.load('/api/countries');\n }, [inView, fetcher]);\n\n const closeDropdown = useCallback(() => {\n closeRef.current?.removeAttribute('open');\n }, []);\n\n return (\n <section\n ref={observerRef}\n className=\"grid gap-4 w-full md:max-w-[335px] md:ml-auto\"\n onMouseLeave={closeDropdown}\n >\n <Heading size=\"lead\" className=\"cursor-default\" as=\"h3\">\n Country\n </Heading>\n <div className=\"relative\">\n <details\n className=\"border rounded border-contrast/30 dark:border-white open:round-b-none\"\n ref={closeRef}\n >\n <summary className=\"flex items-center justify-between w-full py-3 px-4 cursor-pointer\">\n {selectedLocale.label}\n </summary>\n <div className=\"overflow-auto border-t py-2 bg-contrast w-full max-h-36\">\n {countries &&\n Object.keys(countries).map((countryPath) => {\n const countryLocale = countries[countryPath];\n const isSelected =\n countryLocale.language === selectedLocale.language &&\n countryLocale.country === selectedLocale.country;\n\n const countryUrlPath = getCountryUrlPath({\n countryLocale,\n defaultLocalePrefix,\n pathWithoutLocale,\n });\n\n return (\n <Country\n key={countryPath}\n closeDropdown={closeDropdown}\n countryUrlPath={countryUrlPath}\n isSelected={isSelected}\n countryLocale={countryLocale}\n />\n );\n })}\n </div>\n </details>\n </div>\n </section>\n );\n}\n\nfunction Country({\n closeDropdown,\n countryLocale,\n countryUrlPath,\n isSelected,\n}: {\n closeDropdown: () => void;\n countryLocale: Locale;\n countryUrlPath: string;\n isSelected: boolean;\n}) {\n return (\n <ChangeLocaleForm\n key={countryLocale.country}\n redirectTo={countryUrlPath}\n buyerIdentity={{\n countryCode: countryLocale.country,\n }}\n >\n <Button\n className={clsx([\n 'text-contrast dark:text-primary',\n 'bg-primary dark:bg-contrast w-full p-2 transition rounded flex justify-start',\n 'items-center text-left cursor-pointer py-2 px-4',\n ])}\n type=\"submit\"\n variant=\"primary\"\n onClick={closeDropdown}\n >\n {countryLocale.label}\n {isSelected ? (\n <span className=\"ml-2\">\n <IconCheck />\n </span>\n ) : null}\n </Button>\n </ChangeLocaleForm>\n );\n}\n\nfunction ChangeLocaleForm({\n children,\n buyerIdentity,\n redirectTo,\n}: {\n children: React.ReactNode;\n buyerIdentity: CartBuyerIdentityInput;\n redirectTo: string;\n}) {\n const fetcher = useFetcher();\n\n return (\n <fetcher.Form action=\"/cart\" method=\"post\">\n <input\n type=\"hidden\"\n name=\"cartAction\"\n value={CartAction.UPDATE_BUYER_IDENTITY}\n />\n <input\n type=\"hidden\"\n name=\"buyerIdentity\"\n value={JSON.stringify(buyerIdentity)}\n />\n <input type=\"hidden\" name=\"redirectTo\" value={redirectTo} />\n {children}\n </fetcher.Form>\n );\n}\n\nfunction getCountryUrlPath({\n countryLocale,\n defaultLocalePrefix,\n pathWithoutLocale,\n}: {\n countryLocale: Locale;\n pathWithoutLocale: string;\n defaultLocalePrefix: string;\n}) {\n let countryPrefixPath = '';\n const countryLocalePrefix = `${countryLocale.language}-${countryLocale.country}`;\n\n if (countryLocalePrefix !== defaultLocalePrefix) {\n countryPrefixPath = `/${countryLocalePrefix.toLowerCase()}`;\n }\n return `${countryPrefixPath}${pathWithoutLocale}`;\n}\n", "import type { ObserverInstanceCallback } from './index';\n\nconst observerMap = new Map<\n string,\n {\n id: string;\n observer: IntersectionObserver;\n elements: Map<Element, Array<ObserverInstanceCallback>>;\n }\n>();\n\nconst RootIds: WeakMap<Element | Document, string> = new WeakMap();\nlet rootId = 0;\n\nlet unsupportedValue: boolean | undefined = undefined;\n\n/**\n * What should be the default behavior if the IntersectionObserver is unsupported?\n * Ideally the polyfill has been loaded, you can have the following happen:\n * - `undefined`: Throw an error\n * - `true` or `false`: Set the `inView` value to this regardless of intersection state\n * **/\nexport function defaultFallbackInView(inView: boolean | undefined) {\n unsupportedValue = inView;\n}\n\n/**\n * Generate a unique ID for the root element\n * @param root\n */\nfunction getRootId(root: IntersectionObserverInit['root']) {\n if (!root) return '0';\n if (RootIds.has(root)) return RootIds.get(root);\n rootId += 1;\n RootIds.set(root, rootId.toString());\n return RootIds.get(root);\n}\n\n/**\n * Convert the options to a string Id, based on the values.\n * Ensures we can reuse the same observer when observing elements with the same options.\n * @param options\n */\nexport function optionsToId(options: IntersectionObserverInit) {\n return Object.keys(options)\n .sort()\n .filter((key) => options[key] !== undefined)\n .map((key) => {\n return `${key}_${\n key === 'root' ? getRootId(options.root) : options[key]\n }`;\n })\n .toString();\n}\n\nfunction createObserver(options: IntersectionObserverInit) {\n // Create a unique ID for this observer instance, based on the root, root margin and threshold.\n let id = optionsToId(options);\n let instance = observerMap.get(id);\n\n if (!instance) {\n // Create a map of elements this observer is going to observe. Each element has a list of callbacks that should be triggered, once it comes into view.\n const elements = new Map<Element, Array<ObserverInstanceCallback>>();\n let thresholds: number[] | readonly number[];\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n // While it would be nice if you could just look at isIntersecting to determine if the component is inside the viewport, browsers can't agree on how to use it.\n // -Firefox ignores `threshold` when considering `isIntersecting`, so it will never be false again if `threshold` is > 0\n const inView =\n entry.isIntersecting &&\n thresholds.some((threshold) => entry.intersectionRatio >= threshold);\n\n // @ts-ignore support IntersectionObserver v2\n if (options.trackVisibility && typeof entry.isVisible === 'undefined') {\n // The browser doesn't support Intersection Observer v2, falling back to v1 behavior.\n // @ts-ignore\n entry.isVisible = inView;\n }\n\n elements.get(entry.target)?.forEach((callback) => {\n callback(inView, entry);\n });\n });\n }, options);\n\n // Ensure we have a valid thresholds array. If not, use the threshold from the options\n thresholds =\n observer.thresholds ||\n (Array.isArray(options.threshold)\n ? options.threshold\n : [options.threshold || 0]);\n\n instance = {\n id,\n observer,\n elements,\n };\n\n observerMap.set(id, instance);\n }\n\n return instance;\n}\n\n/**\n * @param element - DOM Element to observe\n * @param callback - Callback function to trigger when intersection status changes\n * @param options - Intersection Observer options\n * @param fallbackInView - Fallback inView value.\n * @return Function - Cleanup function that should be triggered to unregister the observer\n */\nexport function observe(\n element: Element,\n callback: ObserverInstanceCallback,\n options: IntersectionObserverInit = {},\n fallbackInView = unsupportedValue,\n) {\n if (\n typeof window.IntersectionObserver === 'undefined' &&\n fallbackInView !== undefined\n ) {\n const bounds = element.getBoundingClientRect();\n callback(fallbackInView, {\n isIntersecting: fallbackInView,\n target: element,\n intersectionRatio:\n typeof options.threshold === 'number' ? options.threshold : 0,\n time: 0,\n boundingClientRect: bounds,\n intersectionRect: bounds,\n rootBounds: bounds,\n });\n return () => {\n // Nothing to cleanup\n };\n }\n // An observer with the same options can be reused, so lets use this fact\n const { id, observer, elements } = createObserver(options);\n\n // Register the callback listener for this element\n let callbacks = elements.get(element) || [];\n if (!elements.has(element)) {\n elements.set(element, callbacks);\n }\n\n callbacks.push(callback);\n observer.observe(element);\n\n return function unobserve() {\n // Remove the callback from the callback list\n callbacks.splice(callbacks.indexOf(callback), 1);\n\n if (callbacks.length === 0) {\n // No more callback exists for element, so destroy it\n elements.delete(element);\n observer.unobserve(element);\n }\n\n if (elements.size === 0) {\n // No more elements are being observer by this instance, so destroy it\n observer.disconnect();\n observerMap.delete(id);\n }\n };\n}\n", "import * as React from 'react';\nimport type { IntersectionObserverProps, PlainChildrenProps } from './index';\nimport { observe } from './observe';\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\nfunction isPlainChildren(\n props: IntersectionObserverProps | PlainChildrenProps,\n): props is PlainChildrenProps {\n return typeof props.children !== 'function';\n}\n\n/**\n ## Render props\n\n To use the `<InView>` component, you pass it a function. It will be called\n whenever the state changes, with the new value of `inView`. In addition to the\n `inView` prop, children also receive a `ref` that should be set on the\n containing DOM element. This is the element that the IntersectionObserver will\n monitor.\n\n If you need it, you can also access the\n [`IntersectionObserverEntry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry)\n on `entry`, giving you access to all the details about the current intersection\n state.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n <InView>\n {({ inView, ref, entry }) => (\n <div ref={ref}>\n <h2>{`Header inside viewport ${inView}.`}</h2>\n </div>\n )}\n </InView>\n );\n\n export default Component;\n ```\n\n ## Plain children\n\n You can pass any element to the `<InView />`, and it will handle creating the\n wrapping DOM element. Add a handler to the `onChange` method, and control the\n state in your own component. Any extra props you add to `<InView>` will be\n passed to the HTML element, allowing you set the `className`, `style`, etc.\n\n ```jsx\n import { InView } from 'react-intersection-observer';\n\n const Component = () => (\n <InView as=\"div\" onChange={(inView, entry) => console.log('Inview:', inView)}>\n <h2>Plain children are always rendered. Use onChange to monitor state.</h2>\n </InView>\n );\n\n export default Component;\n ```\n */\nexport class InView extends React.Component<\n IntersectionObserverProps | PlainChildrenProps,\n State\n> {\n constructor(props: IntersectionObserverProps | PlainChildrenProps) {\n super(props);\n this.state = {\n inView: !!props.initialInView,\n entry: undefined,\n };\n }\n\n componentDidUpdate(prevProps: IntersectionObserverProps) {\n // If a IntersectionObserver option changed, reinit the observer\n if (\n prevProps.rootMargin !== this.props.rootMargin ||\n prevProps.root !== this.props.root ||\n prevProps.threshold !== this.props.threshold ||\n prevProps.skip !== this.props.skip ||\n prevProps.trackVisibility !== this.props.trackVisibility ||\n prevProps.delay !== this.props.delay\n ) {\n this.unobserve();\n this.observeNode();\n }\n }\n\n componentWillUnmount() {\n this.unobserve();\n this.node = null;\n }\n\n node: Element | null = null;\n _unobserveCb: (() => void) | null = null;\n\n observeNode() {\n if (!this.node || this.props.skip) return;\n const {\n threshold,\n root,\n rootMargin,\n trackVisibility,\n delay,\n fallbackInView,\n } = this.props;\n\n this._unobserveCb = observe(\n this.node,\n this.handleChange,\n {\n threshold,\n root,\n rootMargin,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n }\n\n unobserve() {\n if (this._unobserveCb) {\n this._unobserveCb();\n this._unobserveCb = null;\n }\n }\n\n handleNode = (node?: Element | null) => {\n if (this.node) {\n // Clear the old observer, before we start observing a new element\n this.unobserve();\n\n if (!node && !this.props.triggerOnce && !this.props.skip) {\n // Reset the state if we get a new node, and we aren't ignoring updates\n this.setState({ inView: !!this.props.initialInView, entry: undefined });\n }\n }\n\n this.node = node ? node : null;\n this.observeNode();\n };\n\n handleChange = (inView: boolean, entry: IntersectionObserverEntry) => {\n if (inView && this.props.triggerOnce) {\n // If `triggerOnce` is true, we should stop observing the element.\n this.unobserve();\n }\n if (!isPlainChildren(this.props)) {\n // Store the current State, so we can pass it to the children in the next render update\n // There's no reason to update the state for plain children, since it's not used in the rendering.\n this.setState({ inView, entry });\n }\n if (this.props.onChange) {\n // If the user is actively listening for onChange, always trigger it\n this.props.onChange(inView, entry);\n }\n };\n\n render() {\n if (!isPlainChildren(this.props)) {\n const { inView, entry } = this.state;\n return this.props.children({ inView, entry, ref: this.handleNode });\n }\n\n const {\n children,\n as,\n triggerOnce,\n threshold,\n root,\n rootMargin,\n onChange,\n skip,\n trackVisibility,\n delay,\n initialInView,\n fallbackInView,\n ...props\n } = this.props;\n\n return React.createElement(\n as || 'div',\n { ref: this.handleNode, ...props },\n children,\n );\n }\n}\n", "import * as React from 'react';\nimport type { InViewHookResponse, IntersectionOptions } from './index';\nimport { observe } from './observe';\n\ntype State = {\n inView: boolean;\n entry?: IntersectionObserverEntry;\n};\n\n/**\n * React Hooks make it easy to monitor the `inView` state of your components. Call\n * the `useInView` hook with the (optional) [options](#options) you need. It will\n * return an array containing a `ref`, the `inView` status and the current\n * [`entry`](https://developer.mozilla.org/en-US/docs/Web/API/IntersectionObserverEntry).\n * Assign the `ref` to the DOM element you want to monitor, and the hook will\n * report the status.\n *\n * @example\n * ```jsx\n * import React from 'react';\n * import { useInView } from 'react-intersection-observer';\n *\n * const Component = () => {\n * const { ref, inView, entry } = useInView({\n * threshold: 0,\n * });\n *\n * return (\n * <div ref={ref}>\n * <h2>{`Header inside viewport ${inView}.`}</h2>\n * </div>\n * );\n * };\n * ```\n */\nexport function useInView({\n threshold,\n delay,\n trackVisibility,\n rootMargin,\n root,\n triggerOnce,\n skip,\n initialInView,\n fallbackInView,\n onChange,\n}: IntersectionOptions = {}): InViewHookResponse {\n const [ref, setRef] = React.useState<Element | null>(null);\n const callback = React.useRef<IntersectionOptions['onChange']>();\n const [state, setState] = React.useState<State>({\n inView: !!initialInView,\n entry: undefined,\n });\n\n // Store the onChange callback in a `ref`, so we can access the latest instance\n // inside the `useEffect`, but without triggering a rerender.\n callback.current = onChange;\n\n React.useEffect(\n () => {\n // Ensure we have node ref, and that we shouldn't skip observing\n if (skip || !ref) return;\n\n let unobserve: (() => void) | undefined;\n unobserve = observe(\n ref,\n (inView, entry) => {\n setState({\n inView,\n entry,\n });\n if (callback.current) callback.current(inView, entry);\n\n if (entry.isIntersecting && triggerOnce && unobserve) {\n // If it should only trigger once, unobserve the element after it's inView\n unobserve();\n unobserve = undefined;\n }\n },\n {\n root,\n rootMargin,\n threshold,\n // @ts-ignore\n trackVisibility,\n // @ts-ignore\n delay,\n },\n fallbackInView,\n );\n\n return () => {\n if (unobserve) {\n unobserve();\n }\n };\n },\n // We break the rule here, because we aren't including the actual `threshold` variable\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n // If the threshold is an array, convert it to a string, so it won't change between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Array.isArray(threshold) ? threshold.toString() : threshold,\n ref,\n root,\n rootMargin,\n triggerOnce,\n skip,\n trackVisibility,\n fallbackInView,\n delay,\n ],\n );\n\n const entryTarget = state.entry?.target;\n\n React.useEffect(() => {\n if (!ref && entryTarget && !triggerOnce && !skip) {\n // If we don't have a node ref, then reset the state (unless the hook is set to only `triggerOnce` or `skip`)\n // This ensures we correctly reflect the current state - If you aren't observing anything, then nothing is inView\n setState({\n inView: !!initialInView,\n entry: undefined,\n });\n }\n }, [ref, entryTarget, triggerOnce, skip, initialInView]);\n\n const result = [setRef, state.inView, state.entry] as InViewHookResponse;\n\n // Support object destructuring, by adding the specific values.\n result.ref = result[0];\n result.inView = result[1];\n result.entry = result[2];\n\n return result;\n}\n", "import clsx from 'clsx';\nimport {useRef, useState} from 'react';\nimport {useScroll} from 'react-use';\nimport {flattenConnection, Image, Money} from '@shopify/hydrogen-react';\nimport {\n Button,\n Heading,\n IconRemove,\n Text,\n Link,\n FeaturedProducts,\n} from '~/components';\nimport {getInputStyleClasses} from '~/lib/utils';\nimport type {\n Cart as CartType,\n CartCost,\n CartLine,\n CartLineUpdateInput,\n} from '@shopify/hydrogen-react/storefront-api-types';\nimport {useFetcher} from '@remix-run/react';\nimport {CartAction} from '~/lib/type';\n\ntype Layouts = 'page' | 'drawer';\n\nexport function Cart({\n layout,\n onClose,\n cart,\n}: {\n layout: Layouts;\n onClose?: () => void;\n cart: CartType | null;\n}) {\n const linesCount = Boolean(cart?.lines?.edges?.length || 0);\n\n return (\n <>\n <CartEmpty hidden={linesCount} onClose={onClose} layout={layout} />\n <CartDetails cart={cart} layout={layout} />\n </>\n );\n}\n\nexport function CartDetails({\n layout,\n cart,\n}: {\n layout: Layouts;\n cart: CartType | null;\n}) {\n // @todo: get optimistic cart cost\n const isZeroCost = !cart || cart?.cost?.subtotalAmount?.amount === '0.0';\n\n const container = {\n drawer: 'grid grid-cols-1 h-screen-no-nav grid-rows-[1fr_auto]',\n page: 'w-full pb-12 grid md:grid-cols-2 md:items-start gap-8 md:gap-8 lg:gap-12',\n };\n\n return (\n <div className={container[layout]}>\n <CartLines lines={cart?.lines} layout={layout} />\n {!isZeroCost && (\n <CartSummary cost={cart.cost} layout={layout}>\n <CartDiscounts discountCodes={cart.discountCodes} />\n <CartCheckoutActions checkoutUrl={cart.checkoutUrl} />\n </CartSummary>\n )}\n </div>\n );\n}\n\n/**\n * Temporary discount UI\n * @param discountCodes the current discount codes applied to the cart\n * @todo rework when a design is ready\n */\nfunction CartDiscounts({\n discountCodes,\n}: {\n discountCodes: CartType['discountCodes'];\n}) {\n const codes = discountCodes?.map(({code}) => code).join(', ') || null;\n\n return (\n <>\n {/* Have existing discount, display it with a remove option */}\n <dl className={clsx(codes ? 'grid' : 'hidden')}>\n <div className=\"flex items-center justify-between font-medium\">\n <Text as=\"dt\">Discount(s)</Text>\n <div className=\"flex items-center justify-between\">\n <UpdateDiscountForm>\n <button>\n <IconRemove\n aria-hidden=\"true\"\n style={{height: 18, marginRight: 4}}\n />\n </button>\n </UpdateDiscountForm>\n <Text as=\"dd\">{codes}</Text>\n </div>\n </div>\n </dl>\n\n {/* No discounts, show an input to apply a discount */}\n <UpdateDiscountForm>\n <div\n className={clsx(\n codes ? 'hidden' : 'flex',\n 'items-center justify-between',\n )}\n >\n <input\n className={getInputStyleClasses()}\n type=\"text\"\n name=\"discountCode\"\n />\n <button className=\"w-[150px] flex justify-end\">\n <Text size=\"fine\">Apply Discount</Text>\n </button>\n </div>\n </UpdateDiscountForm>\n </>\n );\n}\n\nfunction UpdateDiscountForm({children}: {children: React.ReactNode}) {\n const fetcher = useFetcher();\n return (\n <fetcher.Form action=\"/cart\" method=\"post\">\n <input\n type=\"hidden\"\n name=\"cartAction\"\n value={CartAction.UPDATE_DISCOUNT}\n />\n {children}\n </fetcher.Form>\n );\n}\n\nfunction CartLines({\n layout = 'drawer',\n lines: cartLines,\n}: {\n layout: Layouts;\n lines: CartType['lines'] | undefined;\n}) {\n const currentLines = cartLines ? flattenConnection(cartLines) : [];\n const scrollRef = useRef(null);\n const {y} = useScroll(scrollRef);\n\n const className = clsx([\n y > 0 ? 'border-t' : '',\n layout === 'page'\n ? 'flex-grow md:translate-y-4'\n : 'px-6 pb-6 sm-max:pt-2 overflow-auto transition md:px-12',\n ]);\n\n return (\n <section\n ref={scrollRef}\n aria-labelledby=\"cart-contents\"\n className={className}\n >\n <ul className=\"grid gap-6 md:gap-10\">\n {currentLines.map((line) => (\n <CartLineItem key={line.id} line={line as CartLine} />\n ))}\n </ul>\n </section>\n );\n}\n\nfunction CartCheckoutActions({checkoutUrl}: {checkoutUrl: string}) {\n if (!checkoutUrl) return null;\n\n return (\n <div className=\"flex flex-col mt-2\">\n <a href={checkoutUrl} target=\"_self\">\n <Button as=\"span\" width=\"full\">\n Continue to Checkout\n </Button>\n </a>\n {/* @todo: <CartShopPayButton cart={cart} /> */}\n </div>\n );\n}\n\nfunction CartSummary({\n cost,\n layout,\n children = null,\n}: {\n children?: React.ReactNode;\n cost: CartCost;\n layout: Layouts;\n}) {\n const summary = {\n drawer: 'grid gap-4 p-6 border-t md:px-12',\n page: 'sticky top-nav grid gap-6 p-4 md:px-6 md:translate-y-4 bg-primary/5 rounded w-full',\n };\n\n return (\n <section aria-labelledby=\"summary-heading\" className={summary[layout]}>\n <h2 id=\"summary-heading\" className=\"sr-only\">\n Order summary\n </h2>\n <dl className=\"grid\">\n <div className=\"flex items-center justify-between font-medium\">\n <Text as=\"dt\">Subtotal</Text>\n <Text as=\"dd\" data-test=\"subtotal\">\n {cost?.subtotalAmount?.amount ? (\n <Money data={cost?.subtotalAmount} />\n ) : (\n '-'\n )}\n </Text>\n </div>\n </dl>\n {children}\n </section>\n );\n}\n\nfunction CartLineItem({line}: {line: CartLine}) {\n if (!line?.id) return null;\n\n const {id, quantity, merchandise} = line;\n\n if (typeof quantity === 'undefined' || !merchandise?.product) return null;\n\n return (\n <li key={id} className=\"flex gap-4\">\n <div className=\"flex-shrink\">\n {merchandise.image && (\n <Image\n width={220}\n height={220}\n data={merchandise.image}\n className=\"object-cover object-center w-24 h-24 border rounded md:w-28 md:h-28\"\n alt={merchandise.title}\n />\n )}\n </div>\n\n <div className=\"flex justify-between flex-grow\">\n <div className=\"grid gap-2\">\n <Heading as=\"h3\" size=\"copy\">\n {merchandise?.product?.handle ? (\n <Link to={`/products/${merchandise.product.handle}`}>\n {merchandise?.product?.title || ''}\n </Link>\n ) : (\n <Text>{merchandise?.product?.title || ''}</Text>\n )}\n </Heading>\n\n <div className=\"grid pb-2\">\n {(merchandise?.selectedOptions || []).map((option) => (\n <Text color=\"subtle\" key={option.name}>\n {option.name}: {option.value}\n </Text>\n ))}\n </div>\n\n <div className=\"flex items-center gap-2\">\n <div className=\"flex justify-start text-copy\">\n <CartLineQuantityAdjust line={line} />\n </div>\n <ItemRemoveButton lineIds={[id]} />\n </div>\n </div>\n <Text>\n <CartLinePrice line={line} as=\"span\" />\n </Text>\n </div>\n </li>\n );\n}\n\nfunction ItemRemoveButton({lineIds}: {lineIds: CartLine['id'][]}) {\n const fetcher = useFetcher();\n\n return (\n <fetcher.Form action=\"/cart\" method=\"post\">\n <input\n type=\"hidden\"\n name=\"cartAction\"\n value={CartAction.REMOVE_FROM_CART}\n />\n <input type=\"hidden\" name=\"linesIds\" value={JSON.stringify(lineIds)} />\n <button\n className=\"flex items-center justify-center w-10 h-10 border rounded\"\n type=\"submit\"\n >\n <span className=\"sr-only\">Remove</span>\n <IconRemove aria-hidden=\"true\" />\n </button>\n </fetcher.Form>\n );\n}\n\nfunction CartLineQuantityAdjust({line}: {line: CartLine}) {\n if (!line || typeof line?.quantity === 'undefined') return null;\n const {id: lineId, quantity} = line;\n const prevQuantity = Number(Math.max(0, quantity - 1).toFixed(0));\n const nextQuantity = Number((quantity + 1).toFixed(0));\n\n return (\n <>\n <label htmlFor={`quantity-${lineId}`} className=\"sr-only\">\n Quantity, {quantity}\n </label>\n <div className=\"flex items-center border rounded\">\n <UpdateCartButton lines={[{id: lineId, quantity: prevQuantity}]}>\n <button\n name=\"decrease-quantity\"\n aria-label=\"Decrease quantity\"\n className=\"w-10 h-10 transition text-primary/50 hover:text-primary disabled:text-primary/10\"\n value={prevQuantity}\n disabled={quantity <= 1}\n >\n <span>−</span>\n </button>\n </UpdateCartButton>\n\n <div className=\"px-2 text-center\" data-test=\"item-quantity\">\n {quantity}\n </div>\n\n <UpdateCartButton lines={[{id: lineId, quantity: nextQuantity}]}>\n <button\n className=\"w-10 h-10 transition text-primary/50 hover:text-primary\"\n name=\"increase-quantity\"\n value={nextQuantity}\n aria-label=\"Increase quantity\"\n >\n <span>+</span>\n </button>\n </UpdateCartButton>\n </div>\n </>\n );\n}\n\nfunction UpdateCartButton({\n children,\n lines,\n}: {\n children: React.ReactNode;\n lines: CartLineUpdateInput[];\n}) {\n const fetcher = useFetcher();\n\n return (\n <fetcher.Form action=\"/cart\" method=\"post\">\n <input type=\"hidden\" name=\"cartAction\" value={CartAction.UPDATE_CART} />\n <input type=\"hidden\" name=\"lines\" value={JSON.stringify(lines)} />\n {children}\n </fetcher.Form>\n );\n}\n\nfunction CartLinePrice({\n line,\n priceType = 'regular',\n ...passthroughProps\n}: {\n line: CartLine;\n priceType?: 'regular' | 'compareAt';\n [key: string]: any;\n}) {\n if (!line?.cost?.amountPerQuantity || !line?.cost?.totalAmount) return null;\n\n const moneyV2 =\n priceType === 'regular'\n ? line.cost.totalAmount\n : line.cost.compareAtAmountPerQuantity;\n\n if (moneyV2 == null) {\n return null;\n }\n\n return <Money withoutTrailingZeros {...passthroughProps} data={moneyV2} />;\n}\n\nexport function CartEmpty({\n hidden = false,\n layout = 'drawer',\n onClose,\n}: {\n hidden: boolean;\n layout?: Layouts;\n onClose?: () => void;\n}) {\n const scrollRef = useRef(null);\n const {y} = useScroll(scrollRef);\n\n const container = {\n drawer: clsx([\n 'content-start gap-4 px-6 pb-8 transition overflow-y-scroll md:gap-12 md:px-12 h-screen-no-nav md:pb-12',\n y > 0 ? 'border-t' : '',\n ]),\n page: clsx([\n hidden ? '' : 'grid',\n `pb-12 w-full md:items-start gap-4 md:gap-8 lg:gap-12`,\n ]),\n };\n\n return (\n <div ref={scrollRef} className={container[layout]} hidden={hidden}>\n <section className=\"grid gap-6\">\n <Text format>\n Looks like you haven’t added anything yet, let’s get you\n started!\n </Text>\n <div>\n <Button onClick={onClose}>Continue shopping</Button>\n </div>\n </section>\n <section className=\"grid gap-8 pt-4\">\n <FeaturedProducts\n count={4}\n heading=\"Shop Best Sellers\"\n layout={layout}\n onClose={onClose}\n sortKey=\"BEST_SELLING\"\n />\n </section>\n </div>\n );\n}\n", "export var noop = function () { };\nexport function on(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.addEventListener) {\n obj.addEventListener.apply(obj, args);\n }\n}\nexport function off(obj) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (obj && obj.removeEventListener) {\n obj.removeEventListener.apply(obj, args);\n }\n}\nexport var isBrowser = typeof window !== 'undefined';\nexport var isNavigator = typeof navigator !== 'undefined';\n", "import { useEffect } from 'react';\nimport useTimeoutFn from './useTimeoutFn';\nexport default function useDebounce(fn, ms, deps) {\n if (ms === void 0) { ms = 0; }\n if (deps === void 0) { deps = []; }\n var _a = useTimeoutFn(fn, ms), isReady = _a[0], cancel = _a[1], reset = _a[2];\n useEffect(reset, deps);\n return [isReady, cancel];\n}\n", "import { useCallback, useEffect, useRef } from 'react';\nexport default function useTimeoutFn(fn, ms) {\n if (ms === void 0) { ms = 0; }\n var ready = useRef(false);\n var timeout = useRef();\n var callback = useRef(fn);\n var isReady = useCallback(function () { return ready.current; }, []);\n var set = useCallback(function () {\n ready.current = false;\n timeout.current && clearTimeout(timeout.current);\n timeout.current = setTimeout(function () {\n ready.current = true;\n callback.current();\n }, ms);\n }, [ms]);\n var clear = useCallback(function () {\n ready.current = null;\n timeout.current && clearTimeout(timeout.current);\n }, []);\n // update ref when function changes\n useEffect(function () {\n callback.current = fn;\n }, [fn]);\n // set on mount, clear on unmount\n useEffect(function () {\n set();\n return clear;\n }, [ms]);\n return [isReady, clear, set];\n}\n", "import { useEffect } from 'react';\nvar useEffectOnce = function (effect) {\n useEffect(effect, []);\n};\nexport default useEffectOnce;\n", "import { useCallback, useRef, useState } from 'react';\nimport useUnmount from './useUnmount';\nvar useRafState = function (initialState) {\n var frame = useRef(0);\n var _a = useState(initialState), state = _a[0], setState = _a[1];\n var setRafState = useCallback(function (value) {\n cancelAnimationFrame(frame.current);\n frame.current = requestAnimationFrame(function () {\n setState(value);\n });\n }, []);\n useUnmount(function () {\n cancelAnimationFrame(frame.current);\n });\n return [state, setRafState];\n};\nexport default useRafState;\n", "import { useRef } from 'react';\nimport useEffectOnce from './useEffectOnce';\nvar useUnmount = function (fn) {\n var fnRef = useRef(fn);\n // update the ref each render so if it change the newest callback will be invoked\n fnRef.current = fn;\n useEffectOnce(function () { return function () { return fnRef.current(); }; });\n};\nexport default useUnmount;\n", "import { useEffect } from 'react';\nimport useRafState from './useRafState';\nimport { off, on } from './misc/util';\nvar useScroll = function (ref) {\n if (process.env.NODE_ENV === 'development') {\n if (typeof ref !== 'object' || typeof ref.current === 'undefined') {\n console.error('`useScroll` expects a single ref argument.');\n }\n }\n var _a = useRafState({\n x: 0,\n y: 0,\n }), state = _a[0], setState = _a[1];\n useEffect(function () {\n var handler = function () {\n if (ref.current) {\n setState({\n x: ref.current.scrollLeft,\n y: ref.current.scrollTop,\n });\n }\n };\n if (ref.current) {\n on(ref.current, 'scroll', handler, {\n capture: false,\n passive: true,\n });\n }\n return function () {\n if (ref.current) {\n off(ref.current, 'scroll', handler);\n }\n };\n }, [ref]);\n return state;\n};\nexport default useScroll;\n", "import { useEffect } from 'react';\nimport { isBrowser, off, on } from './misc/util';\nimport useRafState from './useRafState';\nvar useWindowScroll = function () {\n var _a = useRafState(function () { return ({\n x: isBrowser ? window.pageXOffset : 0,\n y: isBrowser ? window.pageYOffset : 0,\n }); }), state = _a[0], setState = _a[1];\n useEffect(function () {\n var handler = function () {\n setState(function (state) {\n var pageXOffset = window.pageXOffset, pageYOffset = window.pageYOffset;\n //Check state for change, return same state if no change happened to prevent rerender\n //(see useState/setState documentation). useState/setState is used internally in useRafState/setState.\n return state.x !== pageXOffset || state.y !== pageYOffset\n ? {\n x: pageXOffset,\n y: pageYOffset,\n }\n : state;\n });\n };\n //We have to update window scroll at mount, before subscription.\n //Window scroll may be changed between render and effect handler.\n handler();\n on(window, 'scroll', handler, {\n capture: false,\n passive: true,\n });\n return function () {\n off(window, 'scroll', handler);\n };\n }, []);\n return state;\n};\nexport default useWindowScroll;\n", "export function CartLoading() {\n return (\n <div className=\"flex w-full h-screen-no-nav justify-center items-center\">\n {/* @todo better spinner? */}\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={38}\n height={38}\n viewBox=\"0 0 38 38\"\n >\n <defs>\n <linearGradient x1=\"8.042%\" y1=\"0%\" x2=\"65.682%\" y2=\"23.865%\" id=\"a\">\n <stop stopColor=\"#fff\" stopOpacity={0} offset=\"0%\" />\n <stop stopColor=\"#fff\" stopOpacity=\".631\" offset=\"63.146%\" />\n <stop stopColor=\"#fff\" offset=\"100%\" />\n </linearGradient>\n </defs>\n <g fill=\"none\" fillRule=\"evenodd\">\n <g transform=\"translate(1 1)\">\n <path\n d=\"M36 18c0-9.94-8.06-18-18-18\"\n id=\"Oval-2\"\n stroke=\"url(#a)\"\n strokeWidth={2}\n >\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 18 18\"\n to=\"360 18 18\"\n dur=\"0.9s\"\n repeatCount=\"indefinite\"\n />\n </path>\n <circle fill=\"#fff\" cx={36} cy={18} r={1}>\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 18 18\"\n to=\"360 18 18\"\n dur=\"0.9s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </g>\n </g>\n </svg>\n </div>\n );\n}\n", "import {flattenConnection} from '@shopify/hydrogen-react';\nimport type {\n Order,\n OrderLineItem,\n} from '@shopify/hydrogen-react/storefront-api-types';\nimport {Heading, Text, Link} from '~/components';\nimport {statusMessage} from '~/lib/utils';\n\nexport function OrderCard({order}: {order: Order}) {\n if (!order?.id) return null;\n const [legacyOrderId, key] = order!.id!.split('/').pop()!.split('?');\n const lineItems = flattenConnection<OrderLineItem>(order?.lineItems);\n\n return (\n <li className=\"grid text-center border rounded\">\n <Link\n className=\"grid items-center gap-4 p-4 md:gap-6 md:p-6 md:grid-cols-2\"\n to={`/account/orders/${legacyOrderId}?${key}`}\n prefetch=\"intent\"\n >\n {lineItems[0].variant?.image && (\n <div className=\"card-image aspect-square bg-primary/5\">\n <img\n width={168}\n height={168}\n className=\"w-full fadeIn cover\"\n alt={lineItems[0].variant?.image?.altText ?? 'Order image'}\n src={lineItems[0].variant?.image.url}\n />\n </div>\n )}\n <div\n className={`flex-col justify-center text-left ${\n !lineItems[0].variant?.image && 'md:col-span-2'\n }`}\n >\n <Heading as=\"h3\" format size=\"copy\">\n {lineItems.length > 1\n ? `${lineItems[0].title} +${lineItems.length - 1} more`\n : lineItems[0].title}\n </Heading>\n <dl className=\"grid grid-gap-1\">\n <dt className=\"sr-only\">Order ID</dt>\n <dd>\n <Text size=\"fine\" color=\"subtle\">\n Order No. {order.orderNumber}\n </Text>\n </dd>\n <dt className=\"sr-only\">Order Date</dt>\n <dd>\n <Text size=\"fine\" color=\"subtle\">\n {new Date(order.processedAt).toDateString()}\n </Text>\n </dd>\n <dt className=\"sr-only\">Fulfillment Status</dt>\n <dd className=\"mt-2\">\n <span\n className={`px-3 py-1 text-xs font-medium rounded-full ${\n order.fulfillmentStatus === 'FULFILLED'\n ? 'bg-green-100 text-green-800'\n : 'bg-primary/5 text-primary/50'\n }`}\n >\n <Text size=\"fine\">\n {statusMessage(order.fulfillmentStatus)}\n </Text>\n </span>\n </dd>\n </dl>\n </div>\n </Link>\n <div className=\"self-end border-t\">\n <Link\n className=\"block w-full p-2 text-center\"\n to={`/account/orders/${legacyOrderId}?${key}`}\n prefetch=\"intent\"\n >\n <Text color=\"subtle\" className=\"ml-3\">\n View Details\n </Text>\n </Link>\n </div>\n </li>\n );\n}\n", "import type {Customer} from '@shopify/hydrogen-react/storefront-api-types';\nimport {Link} from '~/components';\n\nexport function AccountDetails({customer}: {customer: Customer}) {\n const {firstName, lastName, email, phone} = customer;\n\n return (\n <>\n <div className=\"grid w-full gap-4 p-4 py-6 md:gap-8 md:p-8 lg:p-12\">\n <h3 className=\"font-bold text-lead\">Account Details</h3>\n <div className=\"lg:p-8 p-6 border border-gray-200 rounded\">\n <div className=\"flex\">\n <h3 className=\"font-bold text-base flex-1\">Profile & Security</h3>\n <Link\n prefetch=\"intent\"\n className=\"underline text-sm font-normal\"\n to=\"/account/edit\"\n >\n Edit\n </Link>\n </div>\n <div className=\"mt-4 text-sm text-primary/50\">Name</div>\n <p className=\"mt-1\">\n {firstName || lastName\n ? (firstName ? firstName + ' ' : '') + lastName\n : 'Add name'}{' '}\n </p>\n\n <div className=\"mt-4 text-sm text-primary/50\">Contact</div>\n <p className=\"mt-1\">{phone ?? 'Add mobile'}</p>\n\n <div className=\"mt-4 text-sm text-primary/50\">Email address</div>\n <p className=\"mt-1\">{email}</p>\n\n <div className=\"mt-4 text-sm text-primary/50\">Password</div>\n <p className=\"mt-1\">**************</p>\n </div>\n </div>\n </>\n );\n}\n", "import {Form} from '@remix-run/react';\nimport type {\n Customer,\n MailingAddress,\n} from '@shopify/hydrogen-react/storefront-api-types';\nimport {Button, Link, Text} from '~/components';\n\nexport function AccountAddressBook({\n customer,\n addresses,\n}: {\n customer: Customer;\n addresses: MailingAddress[];\n}) {\n return (\n <>\n <div className=\"grid w-full gap-4 p-4 py-6 md:gap-8 md:p-8 lg:p-12\">\n <h3 className=\"font-bold text-lead\">Address Book</h3>\n <div>\n {!addresses?.length && (\n <Text className=\"mb-1\" width=\"narrow\" as=\"p\" size=\"copy\">\n You haven't saved any addresses yet.\n </Text>\n )}\n <div className=\"w-48\">\n <Button\n to=\"address/add\"\n className=\"mt-2 text-sm w-full mb-6\"\n variant=\"secondary\"\n >\n Add an Address\n </Button>\n </div>\n {Boolean(addresses?.length) && (\n <div className=\"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6\">\n {customer.defaultAddress && (\n <Address address={customer.defaultAddress} defaultAddress />\n )}\n {addresses\n .filter((address) => address.id !== customer.defaultAddress?.id)\n .map((address) => (\n <Address key={address.id} address={address} />\n ))}\n </div>\n )}\n </div>\n </div>\n </>\n );\n}\n\nfunction Address({\n address,\n defaultAddress,\n}: {\n address: MailingAddress;\n defaultAddress?: boolean;\n}) {\n return (\n <div className=\"lg:p-8 p-6 border border-gray-200 rounded flex flex-col\">\n {defaultAddress && (\n <div className=\"mb-3 flex flex-row\">\n <span className=\"px-3 py-1 text-xs font-medium rounded-full bg-primary/20 text-primary/50\">\n Default\n </span>\n </div>\n )}\n <ul className=\"flex-1 flex-row\">\n {(address.firstName || address.lastName) && (\n <li>\n {'' +\n (address.firstName && address.firstName + ' ') +\n address?.lastName}\n </li>\n )}\n {address.formatted &&\n address.formatted.map((line: string) => <li key={line}>{line}</li>)}\n </ul>\n\n <div className=\"flex flex-row font-medium mt-6\">\n <Link\n to={`/account/address/${encodeURIComponent(address.id)}`}\n className=\"text-left underline text-sm\"\n prefetch=\"intent\"\n >\n Edit\n </Link>\n <Form action=\"address/delete\" method=\"delete\">\n <input type=\"hidden\" name=\"addressId\" value={address.id} />\n <button className=\"text-left text-primary/50 ml-6 text-sm\">\n Remove\n </button>\n </Form>\n </div>\n </div>\n );\n}\n", "import {IconClose, Link} from '~/components';\n\nexport function Modal({\n children,\n cancelLink,\n}: {\n children: React.ReactNode;\n cancelLink: string;\n}) {\n return (\n <div\n className=\"relative z-50\"\n aria-labelledby=\"modal-title\"\n role=\"dialog\"\n aria-modal=\"true\"\n id=\"modal-bg\"\n >\n <div className=\"fixed inset-0 transition-opacity bg-opacity-75 bg-primary/40\"></div>\n <div className=\"fixed inset-0 z-50 overflow-y-auto\">\n <div className=\"flex items-center justify-center min-h-full p-4 text-center sm:p-0\">\n <div\n className=\"relative flex-1 px-4 pt-5 pb-4 overflow-hidden text-left transition-all transform rounded shadow-xl bg-contrast sm:my-12 sm:flex-none sm:w-full sm:max-w-sm sm:p-6\"\n role=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n }}\n onKeyPress={(e) => {\n e.stopPropagation();\n }}\n tabIndex={0}\n >\n <div className=\"absolute top-0 right-0 hidden pt-4 pr-4 sm:block\">\n <Link\n to={cancelLink}\n className=\"p-4 -m-4 transition text-primary hover:text-primary/50\"\n >\n <IconClose aria-label=\"Close panel\" />\n </Link>\n </div>\n {children}\n </div>\n </div>\n </div>\n </div>\n );\n}\n", "import {\n Link as RemixLink,\n NavLink as RemixNavLink,\n type NavLinkProps as RemixNavLinkProps,\n type LinkProps as RemixLinkProps,\n useMatches,\n} from '@remix-run/react';\n\ntype LinkProps = Omit<RemixLinkProps, 'className'> & {\n className?: RemixNavLinkProps['className'] | RemixLinkProps['className'];\n};\n\n/**\n * In our app, we've chosen to wrap Remix's `Link` component to add\n * helper functionality. If the `to` value is a string (not object syntax),\n * we prefix the locale to the path if there is one.\n *\n * You could implement the same behavior throughout your app using the\n * Remix-native nested routes. However, your route and component structure\n * changes the level of nesting required to get the locale into the route,\n * which may not be ideal for shared components or layouts.\n *\n * Likewise, your internationalization strategy may not require a locale\n * in the pathname and instead rely on a domain, cookie, or header.\n *\n * Ultimately, it is up to you to decide how to implement this behavior.\n */\nexport function Link(props: LinkProps) {\n const {to, className, ...resOfProps} = props;\n const [root] = useMatches();\n const selectedLocale = root.data?.selectedLocale;\n\n let toWithLocale = to;\n\n if (typeof to === 'string') {\n toWithLocale = selectedLocale ? `${selectedLocale.pathPrefix}${to}` : to;\n }\n\n if (typeof className === 'function') {\n return (\n <RemixNavLink to={toWithLocale} className={className} {...resOfProps} />\n );\n }\n\n return <RemixLink to={toWithLocale} className={className} {...resOfProps} />;\n}\n", "import {Image} from '@shopify/hydrogen-react';\nimport type {SerializeFrom} from '@shopify/remix-oxygen';\nimport type {Collection} from '@shopify/hydrogen-react/storefront-api-types';\nimport {Heading, Section, Grid, Link} from '~/components';\n\nexport function FeaturedCollections({\n collections,\n title = 'Collections',\n ...props\n}: {\n collections: SerializeFrom<Collection[]>;\n title?: string;\n [key: string]: any;\n}) {\n const items = collections.filter((item) => item.image).length;\n const haveCollections = collections.length > 0;\n\n if (!haveCollections) return null;\n\n return (\n <Section {...props} heading={title}>\n <Grid items={items}>\n {collections.map((collection) => {\n if (!collection?.image) {\n return null;\n }\n return (\n <Link key={collection.id} to={`/collections/${collection.handle}`}>\n <div className=\"grid gap-4\">\n <div className=\"card-image bg-primary/5 aspect-[3/2]\">\n {collection?.image && (\n <Image\n alt={`Image of ${collection.title}`}\n data={collection.image}\n height={400}\n sizes=\"(max-width: 32em) 100vw, 33vw\"\n width={600}\n widths={[400, 500, 600, 700, 800, 900]}\n loaderOptions={{\n scale: 2,\n crop: 'center',\n }}\n />\n )}\n </div>\n <Heading size=\"copy\">{collection.title}</Heading>\n </div>\n </Link>\n );\n })}\n </Grid>\n </Section>\n );\n}\n", "import clsx from 'clsx';\nimport {MediaFile} from '@shopify/hydrogen-react';\nimport type {\n MediaImage,\n Media,\n Video as MediaVideo,\n Metafield,\n} from '@shopify/hydrogen-react/storefront-api-types';\nimport {Heading, Text, Link} from '~/components';\n\nexport function Hero({\n byline,\n cta,\n handle,\n heading,\n height,\n loading,\n spread,\n spreadSecondary,\n top,\n}: {\n byline: Metafield;\n cta: Metafield;\n handle: string;\n heading: Metafield;\n height?: 'full';\n loading?: 'eager' | 'lazy';\n spread: Metafield;\n spreadSecondary: Metafield;\n top?: boolean;\n}) {\n return (\n <Link to={`/collections/${handle}`}>\n <section\n className={clsx(\n 'relative justify-end flex flex-col w-full',\n top && '-mt-nav',\n height === 'full'\n ? 'h-screen'\n : 'aspect-[4/5] sm:aspect-square md:aspect-[5/4] lg:aspect-[3/2] xl:aspect-[2/1]',\n )}\n >\n <div className=\"absolute inset-0 grid flex-grow grid-flow-col pointer-events-none auto-cols-fr -z-10 content-stretch overflow-clip\">\n {spread?.reference && (\n <div>\n <SpreadMedia\n scale={2}\n sizes={\n spreadSecondary?.reference\n ? '(min-width: 80em) 700px, (min-width: 48em) 450px, 500px'\n : '(min-width: 80em) 1400px, (min-width: 48em) 900px, 500px'\n }\n widths={\n spreadSecondary?.reference\n ? [500, 450, 700]\n : [500, 900, 1400]\n }\n width={spreadSecondary?.reference ? 375 : 750}\n data={spread.reference as Media}\n loading={loading}\n />\n </div>\n )}\n {spreadSecondary?.reference && (\n <div className=\"hidden md:block\">\n <SpreadMedia\n sizes=\"(min-width: 80em) 700, (min-width: 48em) 450, 500\"\n widths={[450, 700]}\n width={375}\n data={spreadSecondary.reference as Media}\n />\n </div>\n )}\n </div>\n <div className=\"flex flex-col items-baseline justify-between gap-4 px-6 py-8 sm:px-8 md:px-12 bg-gradient-to-t dark:from-contrast/60 dark:text-primary from-primary/60 text-contrast\">\n {heading?.value && (\n <Heading format as=\"h2\" size=\"display\" className=\"max-w-md\">\n {heading.value}\n </Heading>\n )}\n {byline?.value && (\n <Text format width=\"narrow\" as=\"p\" size=\"lead\">\n {byline.value}\n </Text>\n )}\n {cta?.value && <Text size=\"lead\">{cta.value}</Text>}\n </div>\n </section>\n </Link>\n );\n}\n\ninterface SpreadMediaProps {\n data: Media | MediaImage | MediaVideo;\n loading?: HTMLImageElement['loading'];\n scale?: 2 | 3;\n sizes: string;\n width: number;\n widths: number[];\n}\n\nfunction SpreadMedia({\n data,\n loading,\n scale,\n sizes,\n width,\n widths,\n}: SpreadMediaProps) {\n return (\n <MediaFile\n data={data}\n alt={data.alt}\n className=\"block object-cover w-full h-full\"\n // @ts-expect-error Need to update the types in H-UI to allow optional properties on this object\n mediaOptions={{\n video: {\n controls: false,\n muted: true,\n loop: true,\n playsInline: true,\n autoPlay: true,\n width: (scale ?? 1) * width,\n previewImageOptions: {scale, src: data.previewImage?.url ?? ''},\n },\n image: {\n loading,\n loaderOptions: {scale, crop: 'center'},\n widths,\n sizes,\n width,\n },\n }}\n />\n );\n}\n", "import {SyntheticEvent, useMemo, useState} from 'react';\nimport {Menu} from '@headlessui/react';\n\nimport {Heading, IconFilters, IconCaret, IconXMark, Text} from '~/components';\nimport {\n Link,\n useLocation,\n useSearchParams,\n Location,\n useNavigate,\n} from '@remix-run/react';\nimport {useDebounce} from 'react-use';\nimport {Disclosure} from '@headlessui/react';\n\nimport type {\n FilterType,\n Filter,\n Collection,\n} from '@shopify/hydrogen-react/storefront-api-types';\nimport {AppliedFilter, SortParam} from '~/routes/collections/$collectionHandle';\n\ntype Props = {\n filters: Filter[];\n appliedFilters?: AppliedFilter[];\n children: React.ReactNode;\n collections?: Collection[];\n};\n\nexport function SortFilter({\n filters,\n appliedFilters = [],\n children,\n collections = [],\n}: Props) {\n const [isOpen, setIsOpen] = useState(false);\n return (\n <>\n <div className=\"flex items-center justify-between w-full\">\n <button\n onClick={() => setIsOpen(!isOpen)}\n className={\n 'relative flex items-center justify-center w-8 h-8 focus:ring-primary/5'\n }\n >\n <IconFilters />\n </button>\n <SortMenu />\n </div>\n <div className=\"flex flex-wrap flex-col md:flex-row\">\n <div\n className={`transition-all duration-200 ${\n isOpen\n ? 'opacity-100 min-w-full md:min-w-[240px] md:w-[240px] md:pr-8 max-h-full'\n : 'opacity-0 md:min-w-[0px] md:w-[0px] pr-0 max-h-0 md:max-h-full'\n }`}\n >\n <FiltersDrawer\n collections={collections}\n filters={filters}\n appliedFilters={appliedFilters}\n />\n </div>\n <div className=\"flex-1\">{children}</div>\n </div>\n </>\n );\n}\n\nexport function FiltersDrawer({\n filters = [],\n appliedFilters = [],\n collections = [],\n}: {\n filters: Filter[];\n appliedFilters: AppliedFilter[];\n collections: Collection[];\n}) {\n const [params] = useSearchParams();\n const location = useLocation();\n\n const filterMarkup = (filter: Filter, option: Filter['values'][0]) => {\n switch (filter.type) {\n case 'PRICE_RANGE':\n const min =\n params.has('minPrice') && !isNaN(Number(params.get('minPrice')))\n ? Number(params.get('minPrice'))\n : undefined;\n\n const max =\n params.has('maxPrice') && !isNaN(Number(params.get('maxPrice')))\n ? Number(params.get('maxPrice'))\n : undefined;\n\n return <PriceRangeFilter min={min} max={max} />;\n\n default:\n const to = getFilterLink(\n filter,\n option.input as string,\n params,\n location,\n );\n return (\n <Link\n className=\"focus:underline hover:underline\"\n prefetch=\"intent\"\n to={to}\n >\n {option.label}\n </Link>\n );\n }\n };\n\n const collectionsMarkup = collections.map((collection) => {\n return (\n <li key={collection.handle} className=\"pb-4\">\n <Link\n to={`/collections/${collection.handle}`}\n className=\"focus:underline hover:underline\"\n key={collection.handle}\n prefetch=\"intent\"\n >\n {collection.title}\n </Link>\n </li>\n );\n });\n\n return (\n <>\n <nav className=\"py-8\">\n {appliedFilters.length > 0 ? (\n <div className=\"pb-8\">\n <AppliedFilters filters={appliedFilters} />\n </div>\n ) : null}\n\n <Disclosure as=\"div\" className=\"w-full\">\n {({open}) => (\n <>\n <Disclosure.Button className=\"py-4 w-full flex justify-between\">\n <Text size=\"lead\">Collection</Text>\n <IconCaret direction={open ? 'up' : 'down'} />\n </Disclosure.Button>\n <Disclosure.Panel>\n <ul className=\"py-2\">{collectionsMarkup}</ul>\n </Disclosure.Panel>\n </>\n )}\n </Disclosure>\n <Heading as=\"h4\" size=\"lead\" className=\"pb-4\">\n Filter By\n </Heading>\n <div className=\"divide-y\">\n {filters.map((filter: Filter) => (\n <Disclosure as=\"div\" key={filter.id} className=\"w-full\">\n {({open}) => (\n <>\n <Disclosure.Button className=\"py-4 w-full flex justify-between\">\n <Text size=\"lead\">{filter.label}</Text>\n <IconCaret direction={open ? 'up' : 'down'} />\n </Disclosure.Button>\n <Disclosure.Panel key={filter.id}>\n <ul key={filter.id} className=\"py-2\">\n {filter.values?.map((option) => {\n return (\n <li key={option.id} className=\"pb-4\">\n {filterMarkup(filter, option)}\n </li>\n );\n })}\n </ul>\n </Disclosure.Panel>\n </>\n )}\n </Disclosure>\n ))}\n </div>\n </nav>\n </>\n );\n}\n\nfunction AppliedFilters({filters = []}: {filters: AppliedFilter[]}) {\n const [params] = useSearchParams();\n const location = useLocation();\n return (\n <>\n <Heading as=\"h4\" size=\"lead\" className=\"pb-4\">\n Applied filters\n </Heading>\n <div className=\"flex flex-wrap gap-2\">\n {filters.map((filter: AppliedFilter) => {\n return (\n <Link\n to={getAppliedFilterLink(filter, params, location)}\n className=\"rounded-full border px-2 flex gap\"\n key={`${filter.label}-${filter.urlParam}`}\n >\n <span className=\"flex-grow\">{filter.label}</span>\n <span>\n <IconXMark />\n </span>\n </Link>\n );\n })}\n </div>\n </>\n );\n}\n\nfunction getAppliedFilterLink(\n filter: AppliedFilter,\n params: URLSearchParams,\n location: Location,\n) {\n const paramsClone = new URLSearchParams(params);\n if (filter.urlParam.key === 'variantOption') {\n const variantOptions = paramsClone.getAll('variantOption');\n const filteredVariantOptions = variantOptions.filter(\n (options) => !options.includes(filter.urlParam.value),\n );\n paramsClone.delete(filter.urlParam.key);\n for (const filteredVariantOption of filteredVariantOptions) {\n paramsClone.append(filter.urlParam.key, filteredVariantOption);\n }\n } else {\n paramsClone.delete(filter.urlParam.key);\n }\n return `${location.pathname}?${paramsClone.toString()}`;\n}\n\nfunction getSortLink(\n sort: SortParam,\n params: URLSearchParams,\n location: Location,\n) {\n params.set('sort', sort);\n return `${location.pathname}?${params.toString()}`;\n}\n\nfunction getFilterLink(\n filter: Filter,\n rawInput: string | Record<string, any>,\n params: URLSearchParams,\n location: ReturnType<typeof useLocation>,\n) {\n const paramsClone = new URLSearchParams(params);\n const newParams = filterInputToParams(filter.type, rawInput, paramsClone);\n return `${location.pathname}?${newParams.toString()}`;\n}\n\nconst PRICE_RANGE_FILTER_DEBOUNCE = 500;\n\nfunction PriceRangeFilter({max, min}: {max?: number; min?: number}) {\n const location = useLocation();\n const params = useMemo(\n () => new URLSearchParams(location.search),\n [location.search],\n );\n const navigate = useNavigate();\n\n const [minPrice, setMinPrice] = useState(min ? String(min) : '');\n const [maxPrice, setMaxPrice] = useState(max ? String(max) : '');\n\n useDebounce(\n () => {\n if (\n (minPrice === '' || minPrice === String(min)) &&\n (maxPrice === '' || maxPrice === String(max))\n )\n return;\n\n const price: {min?: string; max?: string} = {};\n if (minPrice !== '') price.min = minPrice;\n if (maxPrice !== '') price.max = maxPrice;\n\n const newParams = filterInputToParams('PRICE_RANGE', {price}, params);\n navigate(`${location.pathname}?${newParams.toString()}`);\n },\n PRICE_RANGE_FILTER_DEBOUNCE,\n [minPrice, maxPrice],\n );\n\n const onChangeMax = (event: SyntheticEvent) => {\n const newMaxPrice = (event.target as HTMLInputElement).value;\n setMaxPrice(newMaxPrice);\n };\n\n const onChangeMin = (event: SyntheticEvent) => {\n const newMinPrice = (event.target as HTMLInputElement).value;\n setMinPrice(newMinPrice);\n };\n\n return (\n <div className=\"flex flex-col\">\n <label className=\"mb-4\">\n <span>from</span>\n <input\n name=\"maxPrice\"\n className=\"text-black\"\n type=\"text\"\n defaultValue={min}\n placeholder={'$'}\n onChange={onChangeMin}\n />\n </label>\n <label>\n <span>to</span>\n <input\n name=\"minPrice\"\n className=\"text-black\"\n type=\"number\"\n defaultValue={max}\n placeholder={'$'}\n onChange={onChangeMax}\n />\n </label>\n </div>\n );\n}\n\nfunction filterInputToParams(\n type: FilterType,\n rawInput: string | Record<string, any>,\n params: URLSearchParams,\n) {\n const input = typeof rawInput === 'string' ? JSON.parse(rawInput) : rawInput;\n switch (type) {\n case 'PRICE_RANGE':\n if (input.price.min) params.set('minPrice', input.price.min);\n if (input.price.max) params.set('maxPrice', input.price.max);\n break;\n case 'LIST':\n Object.entries(input).forEach(([key, value]) => {\n if (typeof value === 'string') {\n params.set(key, value);\n } else if (typeof value === 'boolean') {\n params.set(key, value.toString());\n } else {\n const {name, value: val} = value as {name: string; value: string};\n const allVariants = params.getAll(`variantOption`);\n const newVariant = `${name}:${val}`;\n if (!allVariants.includes(newVariant)) {\n params.append('variantOption', newVariant);\n }\n }\n });\n break;\n }\n\n return params;\n}\n\nexport default function SortMenu() {\n const items: {label: string; key: SortParam}[] = [\n {label: 'Featured', key: 'featured'},\n {\n label: 'Price: Low - High',\n key: 'price-low-high',\n },\n {\n label: 'Price: High - Low',\n key: 'price-high-low',\n },\n {\n label: 'Best Selling',\n key: 'best-selling',\n },\n {\n label: 'Newest',\n key: 'newest',\n },\n ];\n const [params] = useSearchParams();\n const location = useLocation();\n const activeItem = items.find((item) => item.key === params.get('sort'));\n\n return (\n <Menu as=\"div\" className=\"relative z-40\">\n <Menu.Button className=\"flex items-center\">\n <span className=\"px-2\">\n <span className=\"px-2 font-medium\">Sort by:</span>\n <span>{(activeItem || items[0]).label}</span>\n </span>\n <IconCaret />\n </Menu.Button>\n\n <Menu.Items\n as=\"nav\"\n className=\"rounded-sm\tbg-contrast flex flex-col absolute text-right right-0 p-4\"\n >\n {items.map((item) => (\n <Menu.Item key={item.label}>\n {() => (\n <Link\n className={`block text-sm pb-2 px-3 ${\n activeItem?.key === item.key ? 'font-bold' : 'font-normal'\n }`}\n to={getSortLink(item.key, params, location)}\n >\n {item.label}\n </Link>\n )}\n </Menu.Item>\n ))}\n </Menu.Items>\n </Menu>\n );\n}\n", "import {Text} from './Text';\nimport {Link} from './Link';\n\ninterface Breadcrumb {\n handle: string;\n title: string;\n id: string;\n}\n\n// Renders a breadcrumb trail from a references metafield list\nexport function Breadcrumbs({\n breadcrumbs,\n}: {\n breadcrumbs?: Breadcrumb[] | null;\n}) {\n if (!breadcrumbs || breadcrumbs.length === 0) {\n return null;\n }\n\n const breadcrumbsMarkup = breadcrumbs.map((breadcrumb, index) => {\n const isLastBreadcrumb = index === breadcrumbs.length - 1;\n\n return isLastBreadcrumb ? (\n <Text key={breadcrumb.id} as=\"span\">\n {breadcrumb.title}\n </Text>\n ) : (\n <span key={breadcrumb.id}>\n <Link to={`/collections/${breadcrumb.handle}`}>{breadcrumb.title}</Link>\n <span className=\"px-2\">/</span>\n </span>\n );\n });\n\n return <nav className=\"flex items-center\">{breadcrumbsMarkup}</nav>;\n}\n", "import clsx from 'clsx';\n\nexport function Grid({\n as: Component = 'div',\n className,\n flow = 'row',\n gap = 'default',\n items = 4,\n layout = 'default',\n ...props\n}: {\n as?: React.ElementType;\n className?: string;\n flow?: 'row' | 'col';\n gap?: 'default' | 'blog';\n items?: number;\n layout?: 'default' | 'products' | 'auto' | 'blog';\n [key: string]: any;\n}) {\n const layouts = {\n default: `grid-cols-1 ${items === 2 && 'md:grid-cols-2'} ${\n items === 3 && 'sm:grid-cols-3'\n } ${items > 3 && 'md:grid-cols-3'} ${items >= 4 && 'lg:grid-cols-4'}`,\n products: `grid-cols-2 ${items >= 3 && 'md:grid-cols-3'} ${\n items >= 4 && 'lg:grid-cols-4'\n }`,\n auto: 'auto-cols-auto',\n blog: 'grid-cols-1 md:grid-cols-2',\n };\n\n const gaps = {\n default: 'grid gap-2 gap-y-6 md:gap-4 lg:gap-6',\n blog: 'grid gap-6',\n };\n\n const flows = {\n row: 'grid-flow-row',\n col: 'grid-flow-col',\n };\n\n const styles = clsx(flows[flow], gaps[gap], layouts[layout], className);\n\n return <Component {...props} className={styles} />;\n}\n", "import clsx from 'clsx';\nimport {useEffect, useId, useMemo} from 'react';\nimport {useFetcher} from '@remix-run/react';\nimport {Heading, ProductCard, Skeleton, Text} from '~/components';\nimport type {\n Product,\n ProductSortKeys,\n} from '@shopify/hydrogen-react/storefront-api-types';\n\ninterface FeaturedProductsProps {\n count: number;\n heading: string;\n layout?: 'drawer' | 'page';\n onClose?: () => void;\n query?: string;\n reverse?: boolean;\n sortKey: ProductSortKeys;\n}\n\n/**\n * Display a grid of products and a heading based on some options.\n * This components uses the storefront API products query\n * @param count number of products to display\n * @param query a filtering query\n * @param reverse wether to reverse the product results\n * @param sortKey Sort the underlying list by the given key.\n * @see query https://shopify.dev/api/storefront/2023-01/queries/products\n * @see filters https://shopify.dev/api/storefront/2023-01/queries/products#argument-products-query\n */\nexport function FeaturedProducts({\n count = 4,\n heading = 'Shop Best Sellers',\n layout = 'drawer',\n onClose,\n query,\n reverse,\n sortKey = 'BEST_SELLING',\n}: FeaturedProductsProps) {\n const {load, data} = useFetcher();\n const queryString = useMemo(\n () =>\n Object.entries({count, sortKey, query, reverse})\n .map(([key, val]) => (val ? `${key}=${val}` : null))\n .filter(Boolean)\n .join('&'),\n [count, sortKey, query, reverse],\n );\n\n useEffect(() => {\n load(`/api/products?${queryString}`);\n }, [load, queryString]);\n\n return (\n <>\n <Heading format size=\"copy\" className=\"t-4\">\n {heading}\n </Heading>\n <div\n className={clsx([\n `grid grid-cols-2 gap-x-6 gap-y-8`,\n layout === 'page' ? 'md:grid-cols-4 sm:grid-col-4' : '',\n ])}\n >\n <FeatureProductsContent\n count={count}\n onClick={onClose}\n products={data?.products as Product[]}\n />\n </div>\n </>\n );\n}\n\n/**\n * Render the FeaturedProducts content based on the fetcher's state. \"loading\", \"empty\" or \"products\"\n */\nfunction FeatureProductsContent({\n count = 4,\n onClick,\n products,\n}: {\n count: FeaturedProductsProps['count'];\n products: Product[] | undefined;\n onClick?: () => void;\n}) {\n const id = useId();\n\n if (!products) {\n return (\n <>\n {[...new Array(count)].map((_, i) => (\n <div key={`${id + i}`} className=\"grid gap-2\">\n <Skeleton className=\"aspect-[3/4]\" />\n <Skeleton className=\"w-32 h-4\" />\n </div>\n ))}\n </>\n );\n }\n\n if (products?.length === 0) {\n return <Text format>No products found.</Text>;\n }\n\n return (\n <>\n {products.map((product) => (\n <ProductCard\n product={product as Product}\n key={product.id}\n onClick={onClick}\n />\n ))}\n </>\n );\n}\n", "import {useEffect, useMemo, useState} from 'react';\nimport type {\n Maybe,\n PageInfo,\n ProductConnection,\n} from '@shopify/hydrogen-react/storefront-api-types';\n\nimport {useInView, type IntersectionOptions} from 'react-intersection-observer';\nimport {useTransition, useLocation, useNavigate} from '@remix-run/react';\n\ntype Connection = {\n nodes: ProductConnection['nodes'] | any[];\n pageInfo: PageInfo;\n};\n\ntype PaginationState = {\n nodes: ProductConnection['nodes'] | any[];\n pageInfo: PageInfo | null;\n};\n\ntype Props<Resource extends Connection> = {\n connection: Resource;\n autoLoadOnScroll?: boolean | IntersectionOptions;\n};\n\ninterface PaginationInfo {\n endCursor: Maybe<string> | undefined;\n hasNextPage: boolean;\n hasPreviousPage: boolean;\n isLoading: boolean;\n nextLinkRef: any;\n nextPageUrl: string;\n nodes: ProductConnection['nodes'] | any[];\n prevPageUrl: string;\n startCursor: Maybe<string> | undefined;\n}\n\nexport function Pagination<Resource extends Connection>({\n connection,\n children = () => null,\n autoLoadOnScroll = true,\n}: Props<Resource> & {\n children: ({\n endCursor,\n hasNextPage,\n hasPreviousPage,\n isLoading,\n nextPageUrl,\n nodes,\n prevPageUrl,\n startCursor,\n }: PaginationInfo) => JSX.Element | null;\n}) {\n const transition = useTransition();\n const isLoading = transition.state === 'loading';\n const autoScrollEnabled = Boolean(autoLoadOnScroll);\n const autoScrollConfig = (\n autoScrollEnabled\n ? autoLoadOnScroll\n : {\n threshold: 0,\n rootMargin: '1000px 0px 0px 0px',\n }\n ) as IntersectionOptions;\n const {ref: nextLinkRef, inView} = useInView(autoScrollConfig);\n const {\n endCursor,\n hasNextPage,\n hasPreviousPage,\n nextPageUrl,\n nodes,\n prevPageUrl,\n startCursor,\n } = usePagination(connection);\n\n // auto load next page if in view\n useLoadMoreWhenInView({\n disabled: !autoScrollEnabled,\n connection: {\n pageInfo: {startCursor, endCursor, hasPreviousPage, hasNextPage},\n nodes,\n },\n inView,\n isLoading,\n });\n\n return children({\n endCursor,\n hasNextPage,\n hasPreviousPage,\n isLoading,\n nextLinkRef,\n nextPageUrl,\n nodes,\n prevPageUrl,\n startCursor,\n });\n}\n\n/**\n * Get cumulative pagination logic for a given connection\n */\nexport function usePagination(\n connection: Connection,\n): Omit<PaginationInfo, 'isLoading' | 'nextLinkRef'> {\n const [nodes, setNodes] = useState(connection.nodes);\n const {state, search} = useLocation() as {\n state: PaginationState;\n search: string;\n };\n const params = new URLSearchParams(search);\n const direction = params.get('direction');\n const isPrevious = direction === 'previous';\n\n const {hasNextPage, hasPreviousPage, startCursor, endCursor} =\n connection.pageInfo;\n\n const currentPageInfo = useMemo(() => {\n let pageStartCursor =\n state?.pageInfo?.startCursor === undefined\n ? startCursor\n : state.pageInfo.startCursor;\n\n let pageEndCursor =\n state?.pageInfo?.endCursor === undefined\n ? endCursor\n : state.pageInfo.endCursor;\n\n if (state?.nodes) {\n if (isPrevious) {\n pageStartCursor = startCursor;\n } else {\n pageEndCursor = endCursor;\n }\n }\n\n const previousPageExists =\n state?.pageInfo?.hasPreviousPage === undefined\n ? hasPreviousPage\n : state.pageInfo.hasPreviousPage;\n\n const nextPageExists =\n state?.pageInfo?.hasNextPage === undefined\n ? hasNextPage\n : state.pageInfo.hasNextPage;\n\n return {\n startCursor: pageStartCursor,\n endCursor: pageEndCursor,\n hasPreviousPage: previousPageExists,\n hasNextPage: nextPageExists,\n };\n }, [isPrevious, state, hasNextPage, hasPreviousPage, startCursor, endCursor]);\n\n const prevPageUrl = useMemo(() => {\n const params = new URLSearchParams(search);\n params.set('direction', 'previous');\n currentPageInfo.startCursor &&\n params.set('cursor', currentPageInfo.startCursor);\n return `?${params.toString()}`;\n }, [search, currentPageInfo.startCursor]);\n\n const nextPageUrl = useMemo(() => {\n const params = new URLSearchParams(search);\n params.set('direction', 'next');\n currentPageInfo.endCursor &&\n params.set('cursor', currentPageInfo.endCursor);\n return `?${params.toString()}`;\n }, [search, currentPageInfo.endCursor]);\n\n // the only way to prevent hydration mismatches\n useEffect(() => {\n if (!state || !state?.nodes) {\n setNodes(connection.nodes);\n return;\n }\n\n if (isPrevious) {\n setNodes([...connection.nodes, ...state.nodes]);\n } else {\n setNodes([...state.nodes, ...connection.nodes]);\n }\n }, [state, isPrevious, connection.nodes]);\n\n return {...currentPageInfo, prevPageUrl, nextPageUrl, nodes};\n}\n\n/**\n * Auto load the next pagination page when in view and autoLoadOnScroll is true\n * @param disabled disable auto loading\n * @param inView trigger element is in viewport\n * @param isIdle page transition is idle\n * @param connection Storefront API connection\n */\nfunction useLoadMoreWhenInView<Resource extends Connection>({\n disabled,\n inView,\n isLoading,\n connection,\n}: Pick<Props<Resource>, 'autoLoadOnScroll' | 'connection'> & {\n disabled: boolean;\n inView: boolean;\n isLoading: boolean;\n}) {\n const location = useLocation();\n const navigate = useNavigate();\n\n const {\n pageInfo: {startCursor, endCursor, hasPreviousPage, hasNextPage},\n nodes,\n } = connection;\n\n // load next when in view and autoLoadOnScroll\n useEffect(() => {\n if (!inView) return;\n if (!hasNextPage) return;\n if (!endCursor) return;\n if (disabled) return;\n if (isLoading) return;\n\n const nextPageUrl =\n location.pathname + `?index&cursor=${endCursor}&direction=next`;\n\n navigate(nextPageUrl, {\n state: {\n pageInfo: {\n endCursor,\n hasPreviousPage,\n startCursor,\n },\n nodes,\n },\n });\n }, [\n disabled,\n endCursor,\n hasNextPage,\n hasPreviousPage,\n inView,\n isLoading,\n nodes,\n location.pathname,\n navigate,\n startCursor,\n ]);\n}\n\n/**\n * Get variables for route loader to support pagination\n * @param autoLoadOnScroll enable auto loading\n * @param inView trigger element is in viewport\n * @param isIdle page transition is idle\n * @param connection Storefront API connection\n * @returns cumulativePageInfo {startCursor, endCursor, hasPreviousPage, hasNextPage}\n */\nexport function getPaginationVariables(request: Request, pageBy: number) {\n const searchParams = new URLSearchParams(new URL(request.url).search);\n\n const cursor = searchParams.get('cursor') ?? undefined;\n const direction =\n searchParams.get('direction') === 'previous' ? 'previous' : 'next';\n const isPrevious = direction === 'previous';\n\n const prevPage = {\n last: pageBy,\n startCursor: cursor ?? null,\n };\n\n const nextPage = {\n first: pageBy,\n endCursor: cursor ?? null,\n };\n\n const variables = isPrevious ? prevPage : nextPage;\n\n return variables;\n}\n", "import type {CartLineInput} from '@shopify/hydrogen-react/storefront-api-types';\nimport {useFetcher, useMatches} from '@remix-run/react';\nimport {Button} from '~/components';\nimport {CartAction} from '~/lib/type';\n\nexport function AddToCartButton({\n children,\n lines,\n className = '',\n variant = 'primary',\n width = 'full',\n ...props\n}: {\n children: React.ReactNode;\n lines: CartLineInput[];\n className?: string;\n variant?: 'primary' | 'secondary' | 'inline';\n width?: 'auto' | 'full';\n [key: string]: any;\n}) {\n const [root] = useMatches();\n const selectedLocale = root?.data?.selectedLocale;\n const fetcher = useFetcher();\n\n return (\n <fetcher.Form action=\"/cart\" method=\"post\">\n <input type=\"hidden\" name=\"cartAction\" value={CartAction.ADD_TO_CART} />\n <input type=\"hidden\" name=\"countryCode\" value={selectedLocale.country} />\n <input type=\"hidden\" name=\"lines\" value={JSON.stringify(lines)} />\n <Button\n as=\"button\"\n type=\"submit\"\n width={width}\n variant={variant}\n className={className}\n {...props}\n >\n {children}\n </Button>\n </fetcher.Form>\n );\n}\n", "import clsx from 'clsx';\n\ntype IconProps = JSX.IntrinsicElements['svg'] & {\n direction?: 'up' | 'right' | 'down' | 'left';\n};\n\nfunction Icon({\n children,\n className,\n fill = 'currentColor',\n stroke,\n ...props\n}: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n {...props}\n fill={fill}\n stroke={stroke}\n className={clsx('w-5 h-5', className)}\n >\n {children}\n </svg>\n );\n}\n\nexport function IconMenu(props: IconProps) {\n return (\n <Icon {...props} stroke={props.stroke || 'currentColor'}>\n <title>Menu</title>\n <line x1=\"3\" y1=\"6.375\" x2=\"17\" y2=\"6.375\" strokeWidth=\"1.25\" />\n <line x1=\"3\" y1=\"10.375\" x2=\"17\" y2=\"10.375\" strokeWidth=\"1.25\" />\n <line x1=\"3\" y1=\"14.375\" x2=\"17\" y2=\"14.375\" strokeWidth=\"1.25\" />\n </Icon>\n );\n}\n\nexport function IconClose(props: IconProps) {\n return (\n <Icon {...props} stroke={props.stroke || 'currentColor'}>\n <title>Close</title>\n <line\n x1=\"4.44194\"\n y1=\"4.30806\"\n x2=\"15.7556\"\n y2=\"15.6218\"\n strokeWidth=\"1.25\"\n />\n <line\n y1=\"-0.625\"\n x2=\"16\"\n y2=\"-0.625\"\n transform=\"matrix(-0.707107 0.707107 0.707107 0.707107 16 4.75)\"\n strokeWidth=\"1.25\"\n />\n </Icon>\n );\n}\n\nexport function IconArrow({direction = 'right'}: IconProps) {\n let rotate;\n\n switch (direction) {\n case 'right':\n rotate = 'rotate-0';\n break;\n case 'left':\n rotate = 'rotate-180';\n break;\n case 'up':\n rotate = '-rotate-90';\n break;\n case 'down':\n rotate = 'rotate-90';\n break;\n default:\n rotate = 'rotate-0';\n }\n\n return (\n <Icon className={`w-5 h-5 ${rotate}`}>\n <title>Arrow</title>\n <path d=\"M7 3L14 10L7 17\" strokeWidth=\"1.25\" />\n </Icon>\n );\n}\n\nexport function IconCaret({\n direction = 'down',\n stroke = 'currentColor',\n ...props\n}: IconProps) {\n let rotate;\n\n switch (direction) {\n case 'down':\n rotate = 'rotate-0';\n break;\n case 'up':\n rotate = 'rotate-180';\n break;\n case 'left':\n rotate = '-rotate-90';\n break;\n case 'right':\n rotate = 'rotate-90';\n break;\n default:\n rotate = 'rotate-0';\n }\n\n return (\n <Icon\n {...props}\n className={`w-5 h-5 transition ${rotate}`}\n fill=\"transparent\"\n stroke={stroke}\n >\n <title>Caret</title>\n <path d=\"M14 8L10 12L6 8\" strokeWidth=\"1.25\" />\n </Icon>\n );\n}\n\nexport function IconSelect(props: IconProps) {\n return (\n <Icon {...props}>\n <title>Select</title>\n <path d=\"M7 8.5L10 6.5L13 8.5\" strokeWidth=\"1.25\" />\n <path d=\"M13 11.5L10 13.5L7 11.5\" strokeWidth=\"1.25\" />\n </Icon>\n );\n}\n\nexport function IconBag(props: IconProps) {\n return (\n <Icon {...props}>\n <title>Bag</title>\n <path\n fillRule=\"evenodd\"\n d=\"M8.125 5a1.875 1.875 0 0 1 3.75 0v.375h-3.75V5Zm-1.25.375V5a3.125 3.125 0 1 1 6.25 0v.375h3.5V15A2.625 2.625 0 0 1 14 17.625H6A2.625 2.625 0 0 1 3.375 15V5.375h3.5ZM4.625 15V6.625h10.75V15c0 .76-.616 1.375-1.375 1.375H6c-.76 0-1.375-.616-1.375-1.375Z\"\n />\n </Icon>\n );\n}\n\nexport function IconAccount(props: IconProps) {\n return (\n <Icon {...props}>\n <title>Account</title>\n <path\n fillRule=\"evenodd\"\n d=\"M9.9998 12.625c-1.9141 0-3.6628.698-5.0435 1.8611C3.895 13.2935 3.25 11.7221 3.25 10c0-3.728 3.022-6.75 6.75-6.75 3.7279 0 6.75 3.022 6.75 6.75 0 1.7222-.645 3.2937-1.7065 4.4863-1.3807-1.1632-3.1295-1.8613-5.0437-1.8613ZM10 18c-2.3556 0-4.4734-1.0181-5.9374-2.6382C2.7806 13.9431 2 12.0627 2 10c0-4.4183 3.5817-8 8-8s8 3.5817 8 8-3.5817 8-8 8Zm0-12.5c-1.567 0-2.75 1.394-2.75 3s1.183 3 2.75 3 2.75-1.394 2.75-3-1.183-3-2.75-3Z\"\n />\n </Icon>\n );\n}\n\nexport function IconHelp(props: IconProps) {\n return (\n <Icon {...props}>\n <title>Help</title>\n <path d=\"M3.375 10a6.625 6.625 0 1 1 13.25 0 6.625 6.625 0 0 1-13.25 0ZM10 2.125a7.875 7.875 0 1 0 0 15.75 7.875 7.875 0 0 0 0-15.75Zm.699 10.507H9.236V14h1.463v-1.368ZM7.675 7.576A3.256 3.256 0 0 0 7.5 8.67h1.245c0-.496.105-.89.316-1.182.218-.299.553-.448 1.005-.448a1 1 0 0 1 .327.065c.124.044.24.113.35.208.108.095.2.223.272.383.08.154.12.34.12.558a1.3 1.3 0 0 1-.076.471c-.044.131-.11.252-.197.361-.08.102-.174.197-.283.285-.102.087-.212.182-.328.284a3.157 3.157 0 0 0-.382.383c-.102.124-.19.27-.262.438a2.476 2.476 0 0 0-.164.591 6.333 6.333 0 0 0-.043.81h1.179c0-.263.021-.485.065-.668a1.65 1.65 0 0 1 .207-.47c.088-.139.19-.263.306-.372.117-.11.244-.223.382-.34l.35-.306c.116-.11.218-.23.305-.361.095-.139.168-.3.219-.482.058-.19.087-.412.087-.667 0-.35-.062-.664-.186-.942a1.881 1.881 0 0 0-.513-.689 2.07 2.07 0 0 0-.753-.427A2.721 2.721 0 0 0 10.12 6c-.4 0-.764.066-1.092.197a2.36 2.36 0 0 0-.83.536c-.225.234-.4.515-.523.843Z\" />\n </Icon>\n );\n}\n\nexport function IconSearch(props: IconProps) {\n return (\n <Icon {...props}>\n <title>Search</title>\n <path\n fillRule=\"evenodd\"\n d=\"M13.3 8.52a4.77 4.77 0 1 1-9.55 0 4.77 4.77 0 0 1 9.55 0Zm-.98 4.68a6.02 6.02 0 1 1 .88-.88l4.3 4.3-.89.88-4.3-4.3Z\"\n />\n </Icon>\n );\n}\n\nexport function IconCheck({\n stroke = 'currentColor',\n ...props\n}: React.ComponentProps<typeof Icon>) {\n return (\n <Icon {...props} fill=\"transparent\" stroke={stroke}>\n <title>Check</title>\n <circle cx=\"10\" cy=\"10\" r=\"7.25\" strokeWidth=\"1.25\" />\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"1.5\"\n d=\"m7.04 10.37 2.42 2.41 3.5-5.56\"\n />\n </Icon>\n );\n}\n\nexport function IconXMark({\n stroke = 'currentColor',\n ...props\n}: React.ComponentProps<typeof Icon>) {\n return (\n <Icon {...props} fill=\"transparent\" stroke={stroke}>\n <title>Delete</title>\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </Icon>\n );\n}\n\nexport function IconRemove(props: IconProps) {\n return (\n <Icon {...props} fill=\"transparent\" stroke={props.stroke || 'currentColor'}>\n <title>Remove</title>\n <path\n d=\"M4 6H16\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path d=\"M8.5 9V14\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path d=\"M11.5 9V14\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n <path\n d=\"M5.5 6L6 17H14L14.5 6\"\n strokeWidth=\"1.25\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8 6L8 5C8 4 8.75 3 10 3C11.25 3 12 4 12 5V6\"\n strokeWidth=\"1.25\"\n />\n </Icon>\n );\n}\n\nexport function IconFilters(props: IconProps) {\n return (\n <Icon {...props} fill=\"transparent\" stroke={props.stroke || 'currentColor'}>\n <title>Filters</title>\n <circle cx=\"4.5\" cy=\"6.5\" r=\"2\" />\n <line x1=\"6\" y1=\"6.5\" x2=\"14\" y2=\"6.5\" />\n <line x1=\"4.37114e-08\" y1=\"6.5\" x2=\"3\" y2=\"6.5\" />\n <line x1=\"4.37114e-08\" y1=\"13.5\" x2=\"8\" y2=\"13.5\" />\n <line x1=\"11\" y1=\"13.5\" x2=\"14\" y2=\"13.5\" />\n <circle cx=\"9.5\" cy=\"13.5\" r=\"2\" />\n </Icon>\n );\n}\n", "import {\n type EnhancedMenu,\n type EnhancedMenuItem,\n useIsHomePath,\n} from '~/lib/utils';\nimport {\n Drawer,\n useDrawer,\n Text,\n Input,\n IconAccount,\n IconBag,\n IconSearch,\n Heading,\n IconMenu,\n IconCaret,\n Section,\n CountrySelector,\n Cart,\n CartLoading,\n Link,\n} from '~/components';\nimport {useParams, Form, Await, useMatches} from '@remix-run/react';\nimport {useWindowScroll} from 'react-use';\nimport {Disclosure} from '@headlessui/react';\nimport type {LayoutData} from '~/data';\nimport {Suspense, useEffect, useMemo} from 'react';\nimport {useIsHydrated} from '~/hooks/useIsHydrated';\nimport {useCartFetchers} from '~/hooks/useCartFetchers';\n\nexport function Layout({\n children,\n layout,\n}: {\n children: React.ReactNode;\n layout: LayoutData;\n}) {\n return (\n <>\n <div className=\"flex flex-col min-h-screen\">\n <div className=\"\">\n <a href=\"#mainContent\" className=\"sr-only\">\n Skip to content\n </a>\n </div>\n <Header\n title={layout?.shop.name ?? 'Hydrogen'}\n menu={layout?.headerMenu}\n />\n <main role=\"main\" id=\"mainContent\" className=\"flex-grow\">\n {children}\n </main>\n </div>\n <Footer menu={layout?.footerMenu} />\n </>\n );\n}\n\nfunction Header({title, menu}: {title: string; menu?: EnhancedMenu}) {\n const isHome = useIsHomePath();\n\n const {\n isOpen: isCartOpen,\n openDrawer: openCart,\n closeDrawer: closeCart,\n } = useDrawer();\n\n const {\n isOpen: isMenuOpen,\n openDrawer: openMenu,\n closeDrawer: closeMenu,\n } = useDrawer();\n\n const addToCartFetchers = useCartFetchers('ADD_TO_CART');\n\n // toggle cart drawer when adding to cart\n useEffect(() => {\n if (isCartOpen || !addToCartFetchers.length) return;\n openCart();\n }, [addToCartFetchers, isCartOpen, openCart]);\n\n return (\n <>\n <CartDrawer isOpen={isCartOpen} onClose={closeCart} />\n {menu && (\n <MenuDrawer isOpen={isMenuOpen} onClose={closeMenu} menu={menu} />\n )}\n <DesktopHeader\n isHome={isHome}\n title={title}\n menu={menu}\n openCart={openCart}\n />\n <MobileHeader\n isHome={isHome}\n title={title}\n openCart={openCart}\n openMenu={openMenu}\n />\n </>\n );\n}\n\nfunction CartDrawer({isOpen, onClose}: {isOpen: boolean; onClose: () => void}) {\n const [root] = useMatches();\n\n return (\n <Drawer open={isOpen} onClose={onClose} heading=\"Cart\" openFrom=\"right\">\n <div className=\"grid\">\n <Suspense fallback={<CartLoading />}>\n <Await resolve={root.data?.cart}>\n {(cart) => <Cart layout=\"drawer\" onClose={onClose} cart={cart} />}\n </Await>\n </Suspense>\n </div>\n </Drawer>\n );\n}\n\nexport function MenuDrawer({\n isOpen,\n onClose,\n menu,\n}: {\n isOpen: boolean;\n onClose: () => void;\n menu: EnhancedMenu;\n}) {\n return (\n <Drawer open={isOpen} onClose={onClose} openFrom=\"left\" heading=\"Menu\">\n <div className=\"grid\">\n <MenuMobileNav menu={menu} onClose={onClose} />\n </div>\n </Drawer>\n );\n}\n\nfunction MenuMobileNav({\n menu,\n onClose,\n}: {\n menu: EnhancedMenu;\n onClose: () => void;\n}) {\n const styles = {\n link: 'pb-1',\n linkActive: 'pb-1 border-b -mb-px',\n };\n\n return (\n <nav className=\"grid gap-4 p-6 sm:gap-6 sm:px-12 sm:py-8\">\n {/* Top level menu items */}\n {(menu?.items || []).map((item) => (\n <span key={item.id} className=\"block\">\n <Link\n to={item.to}\n target={item.target}\n onClick={onClose}\n className={({isActive}) =>\n isActive ? styles.linkActive : styles.link\n }\n >\n <Text as=\"span\" size=\"copy\">\n {item.title}\n </Text>\n </Link>\n </span>\n ))}\n </nav>\n );\n}\n\nfunction MobileHeader({\n title,\n isHome,\n openCart,\n openMenu,\n}: {\n title: string;\n isHome: boolean;\n openCart: () => void;\n openMenu: () => void;\n}) {\n const {y} = useWindowScroll();\n\n const styles = {\n button: 'relative flex items-center justify-center w-8 h-8',\n container: `${\n isHome\n ? 'bg-primary/80 dark:bg-contrast/60 text-contrast dark:text-primary shadow-darkHeader'\n : 'bg-contrast/80 text-primary'\n } ${\n y > 50 && !isHome ? 'shadow-lightHeader ' : ''\n }flex lg:hidden items-center h-nav sticky backdrop-blur-lg z-40 top-0 justify-between w-full leading-none gap-4 px-4 md:px-8`,\n };\n const params = useParams();\n\n return (\n <header role=\"banner\" className={styles.container}>\n <div className=\"flex items-center justify-start w-full gap-4\">\n <button onClick={openMenu} className={styles.button}>\n <IconMenu />\n </button>\n <Form\n method=\"get\"\n action={params.lang ? `/${params.lang}/search` : '/search'}\n className=\"items-center gap-2 sm:flex\"\n >\n <button type=\"submit\" className={styles.button}>\n <IconSearch />\n </button>\n <Input\n className={\n isHome\n ? 'focus:border-contrast/20 dark:focus:border-primary/20'\n : 'focus:border-primary/20'\n }\n type=\"search\"\n variant=\"minisearch\"\n placeholder=\"Search\"\n name=\"q\"\n />\n </Form>\n </div>\n\n <Link\n className=\"flex items-center self-stretch leading-[3rem] md:leading-[4rem] justify-center flex-grow w-full h-full\"\n to=\"/\"\n >\n <Heading className=\"font-bold text-center\" as={isHome ? 'h1' : 'h2'}>\n {title}\n </Heading>\n </Link>\n\n <div className=\"flex items-center justify-end w-full gap-4\">\n <Link to=\"/account\" className={styles.button}>\n <IconAccount />\n </Link>\n <CartCount isHome={isHome} openCart={openCart} />\n </div>\n </header>\n );\n}\n\nfunction DesktopHeader({\n isHome,\n menu,\n openCart,\n title,\n}: {\n isHome: boolean;\n openCart: () => void;\n menu?: EnhancedMenu;\n title: string;\n}) {\n const {y} = useWindowScroll();\n const params = useParams();\n\n const styles = {\n link: 'pb-1',\n linkActive: 'pb-1 border-b -mb-px',\n button:\n 'relative flex items-center justify-center w-8 h-8 focus:ring-primary/5',\n container: `${\n isHome\n ? 'bg-primary/80 dark:bg-contrast/60 text-contrast dark:text-primary shadow-darkHeader'\n : 'bg-contrast/80 text-primary'\n } ${\n y > 50 && !isHome ? 'shadow-lightHeader ' : ''\n }hidden h-nav lg:flex items-center sticky transition duration-300 backdrop-blur-lg z-40 top-0 justify-between w-full leading-none gap-8 px-12 py-8`,\n };\n\n return (\n <header role=\"banner\" className={styles.container}>\n <div className=\"flex gap-12\">\n <Link className=\"font-bold\" to=\"/\" prefetch=\"intent\">\n {title}\n </Link>\n <nav className=\"flex gap-8\">\n {/* Top level menu items */}\n {(menu?.items || []).map((item) => (\n <Link\n key={item.id}\n to={item.to}\n target={item.target}\n prefetch=\"intent\"\n className={({isActive}) =>\n isActive ? styles.linkActive : styles.link\n }\n >\n {item.title}\n </Link>\n ))}\n </nav>\n </div>\n <div className=\"flex items-center gap-1\">\n <Form\n method=\"get\"\n action={params.lang ? `/${params.lang}/search` : '/search'}\n className=\"flex items-center gap-2\"\n >\n <Input\n className={\n isHome\n ? 'focus:border-contrast/20 dark:focus:border-primary/20'\n : 'focus:border-primary/20'\n }\n type=\"search\"\n variant=\"minisearch\"\n placeholder=\"Search\"\n name=\"q\"\n />\n <button type=\"submit\" className={styles.button}>\n <IconSearch />\n </button>\n </Form>\n <Link to=\"/account\" className={styles.button}>\n <IconAccount />\n </Link>\n <CartCount isHome={isHome} openCart={openCart} />\n </div>\n </header>\n );\n}\n\nfunction CartCount({\n isHome,\n openCart,\n}: {\n isHome: boolean;\n openCart: () => void;\n}) {\n const [root] = useMatches();\n\n return (\n <Suspense fallback={<Badge count={0} dark={isHome} openCart={openCart} />}>\n <Await resolve={root.data?.cart}>\n {(cart) => (\n <Badge\n dark={isHome}\n openCart={openCart}\n count={cart?.totalQuantity || 0}\n />\n )}\n </Await>\n </Suspense>\n );\n}\n\nfunction Badge({\n openCart,\n dark,\n count,\n}: {\n count: number;\n dark: boolean;\n openCart: () => void;\n}) {\n const isHydrated = useIsHydrated();\n\n const BadgeCounter = useMemo(\n () => (\n <>\n <IconBag />\n <div\n className={`${\n dark\n ? 'text-primary bg-contrast dark:text-contrast dark:bg-primary'\n : 'text-contrast bg-primary'\n } absolute bottom-1 right-1 text-[0.625rem] font-medium subpixel-antialiased h-3 min-w-[0.75rem] flex items-center justify-center leading-none text-center rounded-full w-auto px-[0.125rem] pb-px`}\n >\n <span>{count || 0}</span>\n </div>\n </>\n ),\n [count, dark],\n );\n\n return isHydrated ? (\n <button\n onClick={openCart}\n className={\n 'relative flex items-center justify-center w-8 h-8 focus:ring-primary/5'\n }\n >\n {BadgeCounter}\n </button>\n ) : (\n <Link\n to=\"/cart\"\n className={\n 'relative flex items-center justify-center w-8 h-8 focus:ring-primary/5'\n }\n >\n {BadgeCounter}\n </Link>\n );\n}\n\nfunction Footer({menu}: {menu?: EnhancedMenu}) {\n const isHome = useIsHomePath();\n const itemsCount = menu\n ? menu?.items?.length + 1 > 4\n ? 4\n : menu?.items?.length + 1\n : [];\n\n return (\n <Section\n divider={isHome ? 'none' : 'top'}\n as=\"footer\"\n role=\"contentinfo\"\n className={`grid min-h-[25rem] items-start grid-flow-row w-full gap-6 py-8 px-6 md:px-8 lg:px-12\n border-b md:gap-8 lg:gap-12 grid-cols-1 md:grid-cols-2 lg:grid-cols-${itemsCount}\n bg-primary dark:bg-contrast dark:text-primary text-contrast overflow-hidden`}\n >\n <FooterMenu menu={menu} />\n <CountrySelector />\n <div\n className={`self-end pt-8 opacity-50 md:col-span-2 lg:col-span-${itemsCount}`}\n >\n © {new Date().getFullYear()} / Shopify, Inc. Hydrogen is an MIT\n Licensed Open Source project. This website is carbon neutral.\n </div>\n </Section>\n );\n}\n\nconst FooterLink = ({item}: {item: EnhancedMenuItem}) => {\n if (item.to.startsWith('http')) {\n return (\n <a href={item.to} target={item.target} rel=\"noopener noreferrer\">\n {item.title}\n </a>\n );\n }\n\n return (\n <Link to={item.to} target={item.target} prefetch=\"intent\">\n {item.title}\n </Link>\n );\n};\n\nfunction FooterMenu({menu}: {menu?: EnhancedMenu}) {\n const styles = {\n section: 'grid gap-4',\n nav: 'grid gap-2 pb-6',\n };\n\n return (\n <>\n {(menu?.items || []).map((item: EnhancedMenuItem) => (\n <section key={item.id} className={styles.section}>\n <Disclosure>\n {({open}) => (\n <>\n <Disclosure.Button className=\"text-left md:cursor-default\">\n <Heading className=\"flex justify-between\" size=\"lead\" as=\"h3\">\n {item.title}\n {item?.items?.length > 0 && (\n <span className=\"md:hidden\">\n <IconCaret direction={open ? 'up' : 'down'} />\n </span>\n )}\n </Heading>\n </Disclosure.Button>\n {item?.items?.length > 0 ? (\n <div\n className={`${\n open ? `max-h-48 h-fit` : `max-h-0 md:max-h-fit`\n } overflow-hidden transition-all duration-300`}\n >\n <Suspense data-comment=\"This suspense fixes a hydration bug in Disclosure.Panel with static prop\">\n <Disclosure.Panel static>\n <nav className={styles.nav}>\n {item.items.map((subItem) => (\n <FooterLink key={subItem.id} item={subItem} />\n ))}\n </nav>\n </Disclosure.Panel>\n </Suspense>\n </div>\n ) : null}\n </>\n )}\n </Disclosure>\n </section>\n ))}{' '}\n </>\n );\n}\n", "import {useState, useEffect} from 'react';\n\n// @feedback - This hook could be replaced by remix-utils's ow hook should we want to go down this route.\nexport function useIsHydrated() {\n const [isHydrated, setHydrated] = useState<boolean>(false);\n\n useEffect(() => {\n setHydrated(true);\n }, []);\n\n return isHydrated;\n}\n", "import {useFetchers} from '@remix-run/react';\n\nexport function useCartFetchers(actionName: string) {\n const fetchers = useFetchers();\n const cartFetchers = [];\n\n for (const fetcher of fetchers) {\n const formData = fetcher.submission?.formData;\n if (formData && formData.get('cartAction') === actionName) {\n cartFetchers.push(fetcher);\n }\n }\n return cartFetchers;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react", "u", "r", "n", "a", "e", "t", "import_react", "S", "a", "j", "$", "r", "e", "o", "n", "l", "s", "T", "p", "u", "i", "d", "m", "f", "h", "g", "c", "F", "x", "P", "w", "b", "t", "C", "E", "import_react", "import_react", "import_react", "import_react", "e", "s", "e", "f", "s", "r", "t", "o", "t", "e", "s", "a", "u", "T", "t", "n", "y", "l", "i", "c", "o", "e", "import_react", "import_react", "r", "a", "f", "o", "t", "u", "l", "r", "I", "t", "n", "a", "e", "o", "s", "o", "r", "r", "n", "e", "l", "t", "i", "import_react", "o", "l", "p", "s", "d", "C", "t", "n", "r", "import_react", "i", "t", "n", "e", "s", "u", "o", "e", "r", "Q", "o", "V", "n", "X", "u", "B", "I", "h", "L", "H", "j", "U", "Y", "Z", "ee", "w", "te", "C", "t", "l", "i", "s", "E", "D", "y", "T", "f", "m", "N", "p", "a", "F", "P", "e", "A", "b", "g", "r", "d", "S", "$", "ne", "le", "oe", "re", "se", "Oe", "import_react", "import_react", "t", "o", "m", "n", "i", "e", "t", "o", "p", "s", "m", "o", "import_react", "m", "T", "n", "M", "o", "b", "r", "d", "N", "F", "e", "u", "l", "I", "h", "w", "H", "S", "s", "D", "O", "E", "x", "f", "i", "a", "import_react", "d", "r", "n", "s", "m", "t", "u", "L", "f", "m", "i", "l", "a", "C", "c", "t", "E", "s", "r", "e", "n", "F", "N", "u", "d", "import_react", "F", "c", "o", "E", "l", "m", "s", "n", "e", "f", "p", "d", "i", "u", "f", "r", "a", "x", "n", "t", "l", "s", "d", "e", "c", "a", "s", "h", "C", "t", "o", "e", "r", "d", "$", "import_react", "m", "u", "e", "f", "r", "o", "s", "n", "a", "l", "import_react", "import_react", "import_react", "import_react", "s", "r", "n", "d", "t", "i", "s", "r", "n", "t", "o", "import_react", "f", "r", "s", "import_react", "n", "t", "e", "import_react", "E", "n", "e", "a", "t", "i", "s", "d", "r", "o", "N", "v", "r", "fe", "C", "u", "e", "l", "m", "y", "a", "n", "c", "s", "V", "j", "x", "G", "k", "p", "o", "T", "O", "A", "i", "h", "$", "t", "E", "f", "M", "W", "i", "r", "u", "t", "l", "n", "M", "s", "o", "a", "e", "f", "import_react", "import_react_dom", "import_react", "e", "r", "l", "c", "P", "o", "t", "x", "i", "u", "l", "o", "y", "A", "e", "n", "r", "f", "T", "t", "m", "_", "s", "U", "C", "d", "a", "b", "p", "G", "$", "j", "L", "F", "h", "import_react", "d", "m", "u", "r", "D", "k", "P", "l", "e", "i", "o", "n", "c", "p", "s", "f", "S", "F", "C", "t", "a", "I", "y", "$", "import_react", "a", "c", "s", "x", "m", "M", "i", "r", "e", "n", "u", "l", "o", "t", "d", "o", "Re", "r", "be", "Ae", "l", "e", "M", "oe", "L", "Y", "Ee", "F", "p", "m", "t", "n", "d", "i", "o", "ve", "u", "Oe", "Ce", "S", "Se", "C", "a", "s", "ne", "x", "T", "K", "y", "W", "P", "B", "G", "q", "le", "re", "h", "U", "f", "_", "w", "z", "J", "R", "g", "D", "E", "Q", "X", "k", "Z", "I", "ee", "b", "$", "te", "c", "fe", "Le", "we", "Fe", "ke", "Me", "_e", "xe", "Ie", "gt", "import_react", "ue", "o", "se", "le", "a", "k", "t", "i", "e", "S", "u", "ce", "n", "x", "s", "c", "p", "w", "W", "D", "V", "pe", "me", "G", "de", "C", "q", "B", "y", "L", "M", "R", "f", "F", "N", "g", "d", "U", "$", "fe", "Te", "I", "l", "r", "b", "ye", "Ie", "ge", "A", "v", "m", "T", "Me", "Re", "K", "qe", "import_react", "l", "r", "e", "t", "f", "t", "e", "v", "T", "n", "c", "m", "d", "o", "s", "u", "a", "r", "l", "C", "i", "I", "o", "s", "a", "u", "c", "f", "d", "p", "r", "e", "m", "n", "C", "l", "T", "x", "r", "e", "F", "K", "ve", "s", "Ce", "G", "ge", "M", "I", "ee", "n", "c", "m", "f", "D", "p", "b", "o", "l", "i", "j", "t", "u", "E", "S", "a", "h", "Q", "be", "Ee", "te", "Se", "H", "xe", "ne", "re", "C", "d", "y", "P", "ie", "v", "_", "B", "z", "N", "V", "oe", "L", "U", "k", "se", "le", "ae", "w", "ue", "de", "T", "$", "q", "J", "Pe", "We", "import_jsx_runtime", "Drawer", "heading", "open", "onClose", "openFrom", "children", "offScreen", "We", "gt", "Heading", "IconClose", "useDrawer", "openDefault", "isOpen", "setIsOpen", "openDrawer", "closeDrawer", "r", "f", "n", "clsx", "clsx_m_default", "import_jsx_runtime", "Text", "Component", "className", "color", "format", "size", "width", "children", "props", "colors", "sizes", "widths", "styles", "clsx_m_default", "missingClass", "formatText", "Heading", "Section", "divider", "display", "heading", "padding", "paddings", "dividers", "PageHeader", "variant", "import_jsx_runtime", "Input", "className", "type", "variant", "props", "styles", "clsx_m_default", "ATTR_LOADING_EAGER", "getImageLoadingPriority", "index", "maxEagerLoadCount", "import_jsx_runtime", "ProductGallery", "media", "className", "med", "i", "mediaProps", "isFirst", "isFourth", "isFullWidth", "data", "ATTR_LOADING_EAGER", "style", "PLACEHOLDERS", "getHeroPlaceholder", "heros", "hero", "index", "placeholder", "byLine", "getProductPlaceholder", "PLACEHOLDERS", "import_jsx_runtime", "ProductCard", "product", "label", "className", "loading", "onClick", "cardLabel", "cartProduct", "getProductPlaceholder", "firstVariant", "flattenConnection", "image", "price", "compareAtPrice", "isDiscounted", "isNewArrival", "Link", "clsx_m_default", "Image", "Text", "Money", "CompareAtPrice", "AddToCartButton", "data", "currencyNarrowSymbol", "withoutTrailingZerosAndCurrency", "useMoney", "styles", "import_jsx_runtime", "mockProducts", "ProductSwimlane", "title", "products", "count", "props", "Section", "product", "ProductCard", "import_react", "import_jsx_runtime", "ProductGrid", "url", "collection", "props", "initialProducts", "setInitialProducts", "nextPage", "setNextPage", "endCursor", "setEndCursor", "products", "setProducts", "productProps", "fetcher", "useFetcher", "fetchMoreProducts", "prev", "Grid", "product", "i", "ProductCard", "getImageLoadingPriority", "Button", "Link", "import_jsx_runtime", "Skeleton", "Component", "width", "height", "className", "props", "styles", "clsx_m_default", "import_react", "import_jsx_runtime", "Button", "as", "className", "variant", "width", "props", "ref", "Component", "Link", "baseButtonClasses", "variants", "widths", "styles", "clsx_m_default", "missingClass", "import_react", "observerMap", "Map", "RootIds", "WeakMap", "rootId", "unsupportedValue", "getRootId", "root", "RootIds", "has", "rootId", "set", "toString", "get", "optionsToId", "options", "Object", "keys", "sort", "filter", "key", "undefined", "map", "createObserver", "id", "instance", "observerMap", "elements", "Map", "thresholds", "observer", "IntersectionObserver", "entries", "forEach", "entry", "_elements$get", "inView", "isIntersecting", "some", "threshold", "intersectionRatio", "trackVisibility", "isVisible", "target", "callback", "Array", "isArray", "observe", "element", "fallbackInView", "unsupportedValue", "window", "bounds", "getBoundingClientRect", "time", "boundingClientRect", "intersectionRect", "rootBounds", "callbacks", "push", "splice", "indexOf", "length", "delete", "unobserve", "size", "disconnect", "useInView", "threshold", "delay", "trackVisibility", "rootMargin", "root", "triggerOnce", "skip", "initialInView", "fallbackInView", "onChange", "_state$entry", "ref", "setRef", "useState", "callback", "useRef", "state", "setState", "inView", "entry", "undefined", "current", "useEffect", "unobserve", "observe", "isIntersecting", "Array", "isArray", "toString", "entryTarget", "target", "result", "import_jsx_runtime", "CountrySelector", "root", "useMatches", "fetcher", "useFetcher", "closeRef", "selectedLocale", "DEFAULT_LOCALE", "pathname", "search", "useLocation", "pathWithoutLocale", "countries", "defaultLocale", "defaultLocalePrefix", "ref", "inView", "useInView", "observerRef", "closeDropdown", "Heading", "countryPath", "countryLocale", "isSelected", "countryUrlPath", "getCountryUrlPath", "Country", "ChangeLocaleForm", "Button", "clsx_m_default", "IconCheck", "children", "buyerIdentity", "redirectTo", "countryPrefixPath", "countryLocalePrefix", "import_react", "on", "obj", "args", "_i", "off", "isBrowser", "import_react", "import_react", "useTimeoutFn", "fn", "ms", "ready", "timeout", "callback", "isReady", "set", "clear", "useDebounce", "fn", "ms", "deps", "_a", "useTimeoutFn", "isReady", "cancel", "reset", "import_react", "useEffectOnce", "effect", "useEffectOnce_default", "import_react", "import_react", "useUnmount", "fn", "fnRef", "useEffectOnce_default", "useUnmount_default", "useRafState", "initialState", "frame", "_a", "state", "setState", "setRafState", "value", "useUnmount_default", "useRafState_default", "import_react", "useScroll", "ref", "_a", "useRafState_default", "state", "setState", "handler", "on", "off", "useScroll_default", "import_react", "useWindowScroll", "_a", "useRafState_default", "isBrowser", "state", "setState", "handler", "pageXOffset", "pageYOffset", "on", "off", "useWindowScroll_default", "import_jsx_runtime", "Cart", "layout", "onClose", "cart", "linesCount", "CartEmpty", "CartDetails", "isZeroCost", "CartLines", "CartSummary", "CartDiscounts", "CartCheckoutActions", "discountCodes", "codes", "code", "clsx_m_default", "Text", "UpdateDiscountForm", "IconRemove", "getInputStyleClasses", "children", "fetcher", "useFetcher", "cartLines", "currentLines", "flattenConnection", "scrollRef", "y", "useScroll_default", "className", "line", "CartLineItem", "checkoutUrl", "Button", "cost", "Money", "id", "quantity", "merchandise", "Image", "Heading", "Link", "option", "CartLineQuantityAdjust", "ItemRemoveButton", "CartLinePrice", "lineIds", "lineId", "prevQuantity", "nextQuantity", "UpdateCartButton", "lines", "priceType", "passthroughProps", "moneyV2", "hidden", "container", "FeaturedProducts", "import_jsx_runtime", "CartLoading", "import_jsx_runtime", "OrderCard", "order", "legacyOrderId", "key", "lineItems", "flattenConnection", "Link", "Heading", "Text", "statusMessage", "import_jsx_runtime", "AccountDetails", "customer", "firstName", "lastName", "email", "phone", "Link", "import_jsx_runtime", "AccountAddressBook", "customer", "addresses", "Text", "Button", "Address", "address", "defaultAddress", "line", "Link", "Form", "import_jsx_runtime", "Modal", "children", "cancelLink", "e", "Link", "IconClose", "import_jsx_runtime", "Link", "props", "to", "className", "resOfProps", "root", "useMatches", "selectedLocale", "toWithLocale", "NavLink", "import_jsx_runtime", "FeaturedCollections", "collections", "title", "props", "items", "item", "Section", "Grid", "collection", "Link", "Image", "Heading", "import_jsx_runtime", "Hero", "byline", "cta", "handle", "heading", "height", "loading", "spread", "spreadSecondary", "top", "Link", "clsx_m_default", "SpreadMedia", "Heading", "Text", "data", "scale", "sizes", "width", "widths", "MediaFile", "import_react", "import_jsx_runtime", "SortFilter", "filters", "appliedFilters", "children", "collections", "isOpen", "setIsOpen", "IconFilters", "SortMenu", "FiltersDrawer", "params", "useSearchParams", "location", "useLocation", "filterMarkup", "filter", "option", "min", "max", "PriceRangeFilter", "to", "getFilterLink", "Link", "collectionsMarkup", "collection", "AppliedFilters", "Oe", "open", "Text", "IconCaret", "Heading", "getAppliedFilterLink", "IconXMark", "paramsClone", "filteredVariantOptions", "options", "filteredVariantOption", "getSortLink", "sort", "rawInput", "newParams", "filterInputToParams", "PRICE_RANGE_FILTER_DEBOUNCE", "navigate", "useNavigate", "minPrice", "setMinPrice", "maxPrice", "setMaxPrice", "useDebounce", "price", "event", "newMinPrice", "newMaxPrice", "type", "input", "key", "value", "name", "val", "allVariants", "newVariant", "items", "activeItem", "item", "qe", "import_jsx_runtime", "Breadcrumbs", "breadcrumbs", "breadcrumbsMarkup", "breadcrumb", "index", "Text", "Link", "import_jsx_runtime", "Grid", "Component", "className", "flow", "gap", "items", "layout", "props", "layouts", "gaps", "styles", "clsx_m_default", "import_react", "import_jsx_runtime", "FeaturedProducts", "count", "heading", "layout", "onClose", "query", "reverse", "sortKey", "load", "data", "useFetcher", "queryString", "key", "val", "Heading", "clsx_m_default", "FeatureProductsContent", "onClick", "products", "id", "Text", "product", "ProductCard", "_", "i", "Skeleton", "import_react", "Pagination", "connection", "children", "autoLoadOnScroll", "isLoading", "useTransition", "autoScrollEnabled", "autoScrollConfig", "nextLinkRef", "inView", "useInView", "endCursor", "hasNextPage", "hasPreviousPage", "nextPageUrl", "nodes", "prevPageUrl", "startCursor", "usePagination", "useLoadMoreWhenInView", "setNodes", "state", "search", "useLocation", "isPrevious", "currentPageInfo", "pageStartCursor", "pageEndCursor", "previousPageExists", "nextPageExists", "params", "disabled", "location", "navigate", "useNavigate", "import_jsx_runtime", "AddToCartButton", "children", "lines", "className", "variant", "width", "props", "root", "useMatches", "selectedLocale", "fetcher", "useFetcher", "Button", "import_jsx_runtime", "Icon", "children", "className", "fill", "stroke", "props", "clsx_m_default", "IconMenu", "IconClose", "IconCaret", "direction", "stroke", "props", "rotate", "Icon", "IconBag", "props", "Icon", "IconAccount", "IconSearch", "props", "Icon", "IconCheck", "stroke", "IconXMark", "IconRemove", "IconFilters", "import_react", "import_react", "useIsHydrated", "isHydrated", "setHydrated", "useCartFetchers", "actionName", "fetchers", "useFetchers", "cartFetchers", "fetcher", "formData", "import_jsx_runtime", "Layout", "children", "layout", "Header", "Footer", "title", "menu", "isHome", "useIsHomePath", "isCartOpen", "openCart", "closeCart", "useDrawer", "isMenuOpen", "openMenu", "closeMenu", "addToCartFetchers", "useCartFetchers", "CartDrawer", "MenuDrawer", "DesktopHeader", "MobileHeader", "isOpen", "onClose", "root", "useMatches", "Drawer", "CartLoading", "Await", "cart", "Cart", "MenuMobileNav", "styles", "item", "Link", "isActive", "Text", "y", "useWindowScroll_default", "params", "useParams", "IconMenu", "Form", "IconSearch", "Input", "Heading", "IconAccount", "CartCount", "Badge", "dark", "count", "isHydrated", "useIsHydrated", "BadgeCounter", "IconBag", "itemsCount", "Section", "FooterMenu", "CountrySelector", "FooterLink", "Oe", "open", "IconCaret", "subItem"]
|
|
7
|
+
}
|