@0xsequence/marketplace-sdk 0.10.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/.storybook/ConnectionStatus.tsx +289 -0
  2. package/.storybook/main.ts +20 -1
  3. package/.storybook/preview.tsx +105 -0
  4. package/CHANGELOG.md +116 -9
  5. package/compile-tailwind.js +54 -0
  6. package/dist/BellIcon-IpHHEy8h.js +45 -0
  7. package/dist/BellIcon-IpHHEy8h.js.map +1 -0
  8. package/dist/{CalendarIcon-CqsuAuCm.js → CartIcon-C8zbor8H.js} +50 -42
  9. package/dist/CartIcon-C8zbor8H.js.map +1 -0
  10. package/dist/CollectibleCard-C2EWF0zo.d.ts +8 -0
  11. package/dist/{_internal-C75gOSNo.js → _internal-DkS2VUn5.js} +10 -2
  12. package/dist/_internal-DkS2VUn5.js.map +1 -0
  13. package/dist/{alien_swap-CYv6YlOF.js → alien_swap-BTJ7mSR-.js} +1 -1
  14. package/dist/{alien_swap-CYv6YlOF.js.map → alien_swap-BTJ7mSR-.js.map} +1 -1
  15. package/dist/{api-BiMGqWdz.js → api-DuLKn__v.js} +26 -4
  16. package/dist/api-DuLKn__v.js.map +1 -0
  17. package/dist/{aqua-xyz-Bzn5baeH.js → aqua-xyz-BYJ9WSP_.js} +1 -1
  18. package/dist/{aqua-xyz-Bzn5baeH.js.map → aqua-xyz-BYJ9WSP_.js.map} +1 -1
  19. package/dist/{aura-DzIWh8WT.js → aura-D7SUjgro.js} +1 -1
  20. package/dist/{aura-DzIWh8WT.js.map → aura-D7SUjgro.js.map} +1 -1
  21. package/dist/{blur-DSH-Cbpj.js → blur-BcnRFCaV.js} +1 -1
  22. package/dist/{blur-DSH-Cbpj.js.map → blur-BcnRFCaV.js.map} +1 -1
  23. package/dist/builder-api-BFuZNOaN.js.map +1 -1
  24. package/dist/builder.gen-B9wR2nvF.js.map +1 -1
  25. package/dist/{coinbase-Df8URNxq.js → coinbase-ChoX9Hw2.js} +1 -1
  26. package/dist/{coinbase-Df8URNxq.js.map → coinbase-ChoX9Hw2.js.map} +1 -1
  27. package/dist/components-CUv-wQr8.js +119 -0
  28. package/dist/components-CUv-wQr8.js.map +1 -0
  29. package/dist/contracts-D72LBOX3.js +96 -0
  30. package/dist/contracts-D72LBOX3.js.map +1 -0
  31. package/dist/{create-config-fQ-jbJD1.js → create-config-CIfejoCk.js} +6 -11
  32. package/dist/create-config-CIfejoCk.js.map +1 -0
  33. package/dist/{create-config-DKJ-F0jc.d.ts → create-config-DV_dtaLt.d.ts} +267 -247
  34. package/dist/{element-Cx6uJu5N.js → element-Dbcv5qya.js} +1 -1
  35. package/dist/{element-Cx6uJu5N.js.map → element-Dbcv5qya.js.map} +1 -1
  36. package/dist/filters-zkMJaPey.d.ts +31 -0
  37. package/dist/{foundation-D6U4aRLN.js → foundation-QPhUEUy8.js} +1 -1
  38. package/dist/{foundation-D6U4aRLN.js.map → foundation-QPhUEUy8.js.map} +1 -1
  39. package/dist/{index-C5aqo8xu.d.ts → index-B6aSbaw2.d.ts} +1 -1
  40. package/dist/index-B8vaT3_s.d.ts +18 -0
  41. package/dist/index-BaytncQc.d.ts +946 -0
  42. package/dist/{index-CUwMH7Ht.d.ts → index-BoNNplSx.d.ts} +2 -2
  43. package/dist/{index-136YrWDH.d.ts → index-Bv5XVLjH.d.ts} +1 -1
  44. package/dist/index-C768pAfu.d.ts +61 -0
  45. package/dist/index-CM0ZTePs.d.ts +2541 -0
  46. package/dist/index-CMPUveNz.d.ts +64 -0
  47. package/dist/index-CQecU53t.d.ts +311 -0
  48. package/dist/{index-BAhaEfqY.d.ts → index-CT8ZorFd.d.ts} +1 -1
  49. package/dist/index-CXscCUg7.d.ts +298 -0
  50. package/dist/{index-BhVFc2rX.d.ts → index-D-UXGo5d.d.ts} +4 -4
  51. package/dist/index-D6YMj82n.d.ts +813 -0
  52. package/dist/index-DJG0kiII.d.ts +346 -0
  53. package/dist/index-DLUjc7Bx.d.ts +316 -0
  54. package/dist/index-DMBMM16q.d.ts +447 -0
  55. package/dist/{index-CKrYP7ot.d.ts → index-DpeWm_vF.d.ts} +14 -22
  56. package/dist/index-Yobo6icm.d.ts +234 -0
  57. package/dist/index-jGgfEHfQ.d.ts +131 -0
  58. package/dist/index.d.ts +8 -8
  59. package/dist/index.js +13 -13
  60. package/dist/listCollectiblesPaginated-Bq0QSOjJ.d.ts +168 -0
  61. package/dist/listCollections-dTCq00l5.d.ts +669 -0
  62. package/dist/{looks-rare-ChBRBY-p.js → looks-rare-C7cQztTR.js} +1 -1
  63. package/dist/{looks-rare-ChBRBY-p.js.map → looks-rare-C7cQztTR.js.map} +1 -1
  64. package/dist/lowestListing-CB5Te-Q9.d.ts +168 -0
  65. package/dist/{magic-eden-D5U7N1xL.js → magic-eden-D3r7jiBG.js} +1 -1
  66. package/dist/{magic-eden-D5U7N1xL.js.map → magic-eden-D3r7jiBG.js.map} +1 -1
  67. package/dist/{manifold-CtLF52zU.js → manifold-DsX0CBP-.js} +1 -1
  68. package/dist/{manifold-CtLF52zU.js.map → manifold-DsX0CBP-.js.map} +1 -1
  69. package/dist/marketCurrencies-Bzj8X4TL.d.ts +122 -0
  70. package/dist/{marketplace-DmFiyBoS.js → marketplace-BYY8OloA.js} +1 -1
  71. package/dist/{marketplace-DmFiyBoS.js.map → marketplace-BYY8OloA.js.map} +1 -1
  72. package/dist/{marketplace-logos-Cd6W-qOq.js → marketplace-logos-Csv2MBwf.js} +21 -21
  73. package/dist/marketplace-logos-Csv2MBwf.js.map +1 -0
  74. package/dist/{marketplace.gen-HpnpL5xU.js → marketplace.gen-w2YvbEEo.js} +2 -2
  75. package/dist/marketplace.gen-w2YvbEEo.js.map +1 -0
  76. package/dist/{marketplaceConfig-GQTTmihy.js → marketplaceConfig-BTy75Mbf.js} +20 -10
  77. package/dist/marketplaceConfig-BTy75Mbf.js.map +1 -0
  78. package/dist/{mintify-Bi3Bce68.js → mintify-DiOoDmO1.js} +1 -1
  79. package/dist/{mintify-Bi3Bce68.js.map → mintify-DiOoDmO1.js.map} +1 -1
  80. package/dist/{network-CGD0oKtS.js → network-DtmiMhcg.js} +2 -2
  81. package/dist/network-DtmiMhcg.js.map +1 -0
  82. package/dist/networkconfigToWagmiChain-DbUf6HiO.js +15 -0
  83. package/dist/networkconfigToWagmiChain-DbUf6HiO.js.map +1 -0
  84. package/dist/{nftx-BDQZjtkX.js → nftx-CP82jNra.js} +1 -1
  85. package/dist/{nftx-BDQZjtkX.js.map → nftx-CP82jNra.js.map} +1 -1
  86. package/dist/{okx-D4meadLe.js → okx-p9-4xRjs.js} +1 -1
  87. package/dist/{okx-D4meadLe.js.map → okx-p9-4xRjs.js.map} +1 -1
  88. package/dist/{open-sea-DN0hgfVw.js → open-sea-D2GwAmKS.js} +1 -1
  89. package/dist/{open-sea-DN0hgfVw.js.map → open-sea-D2GwAmKS.js.map} +1 -1
  90. package/dist/primary-sale-DOmNDq2P.js +3048 -0
  91. package/dist/primary-sale-DOmNDq2P.js.map +1 -0
  92. package/dist/queries-EMA5CcwY.js +1399 -0
  93. package/dist/queries-EMA5CcwY.js.map +1 -0
  94. package/dist/query-BG-MA1MB.d.ts +31 -0
  95. package/dist/{rarible-B0xlD88A.js → rarible-DqiiW9ki.js} +1 -1
  96. package/dist/{rarible-B0xlD88A.js.map → rarible-DqiiW9ki.js.map} +1 -1
  97. package/dist/react/_internal/api/index.d.ts +1 -1
  98. package/dist/react/_internal/api/index.js +4 -6
  99. package/dist/react/_internal/databeat/index.d.ts +1 -1
  100. package/dist/react/_internal/databeat/index.js +27 -4
  101. package/dist/react/_internal/index.d.ts +1 -1
  102. package/dist/react/_internal/index.js +8 -10
  103. package/dist/react/_internal/wagmi/index.d.ts +1 -1
  104. package/dist/react/_internal/wagmi/index.js +4 -4
  105. package/dist/react/hooks/config/index.d.ts +9 -0
  106. package/dist/react/hooks/config/index.js +29 -0
  107. package/dist/react/hooks/contracts/index.d.ts +7 -0
  108. package/dist/react/hooks/contracts/index.js +17 -0
  109. package/dist/react/hooks/data/collectibles/index.d.ts +5 -0
  110. package/dist/react/hooks/data/collectibles/index.js +29 -0
  111. package/dist/react/hooks/data/collections/index.d.ts +11 -0
  112. package/dist/react/hooks/data/collections/index.js +29 -0
  113. package/dist/react/hooks/data/index.d.ts +29 -0
  114. package/dist/react/hooks/data/index.js +29 -0
  115. package/dist/react/hooks/data/inventory/index.d.ts +29 -0
  116. package/dist/react/hooks/data/inventory/index.js +29 -0
  117. package/dist/react/hooks/data/market/index.d.ts +6 -0
  118. package/dist/react/hooks/data/market/index.js +29 -0
  119. package/dist/react/hooks/data/orders/index.d.ts +5 -0
  120. package/dist/react/hooks/data/orders/index.js +29 -0
  121. package/dist/react/hooks/data/primary-sales/index.d.ts +29 -0
  122. package/dist/react/hooks/data/primary-sales/index.js +29 -0
  123. package/dist/react/hooks/data/tokens/index.d.ts +5 -0
  124. package/dist/react/hooks/data/tokens/index.js +29 -0
  125. package/dist/react/hooks/index.d.ts +29 -13
  126. package/dist/react/hooks/index.js +25 -23
  127. package/dist/react/hooks/transactions/index.d.ts +3 -0
  128. package/dist/react/hooks/transactions/index.js +29 -0
  129. package/dist/react/hooks/ui/index.d.ts +5 -0
  130. package/dist/react/hooks/ui/index.js +29 -0
  131. package/dist/react/hooks/utils/index.d.ts +29 -0
  132. package/dist/react/hooks/utils/index.js +29 -0
  133. package/dist/react/index.d.ts +29 -13
  134. package/dist/react/index.js +25 -28
  135. package/dist/react/queries/index.d.ts +16 -9
  136. package/dist/react/queries/index.js +18 -20
  137. package/dist/react/ssr/index.d.ts +7 -7
  138. package/dist/react/ssr/index.js +9 -11
  139. package/dist/react/ssr/index.js.map +1 -1
  140. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.d.ts +3 -0
  141. package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.js +22 -0
  142. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +54 -0
  143. package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +29 -0
  144. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +5 -4
  145. package/dist/react/ui/components/marketplace-collectible-card/index.js +24 -27
  146. package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -2
  147. package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +9 -11
  148. package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
  149. package/dist/react/ui/components/marketplace-logos/index.js +1 -1
  150. package/dist/react/ui/icons/index.js +13 -13
  151. package/dist/react/ui/index.d.ts +5 -4
  152. package/dist/react/ui/index.js +24 -27
  153. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +3 -27
  154. package/dist/react/ui/modals/_internal/components/actionModal/index.js +25 -24
  155. package/dist/react/utils/index.d.ts +19 -0
  156. package/dist/react/utils/index.js +9 -0
  157. package/dist/react-BLJ4DkPx.js +12410 -0
  158. package/dist/react-BLJ4DkPx.js.map +1 -0
  159. package/dist/{react-DeDyTgo7.css → react-F03jPjPk.css} +1 -1
  160. package/dist/{react-DeDyTgo7.css.map → react-F03jPjPk.css.map} +1 -1
  161. package/dist/{sequence-BIrOVRXO.js → sequence-Bbb-TFKg.js} +1 -1
  162. package/dist/{sequence-BIrOVRXO.js.map → sequence-Bbb-TFKg.js.map} +1 -1
  163. package/dist/{index.css → styles/index.css} +314 -153
  164. package/dist/{sudo-swap-BPMon-M5.js → sudo-swap-CEPIM3Js.js} +1 -1
  165. package/dist/{sudo-swap-BPMon-M5.js.map → sudo-swap-CEPIM3Js.js.map} +1 -1
  166. package/dist/{super-rare-kPN6Ua8i.js → super-rare-CMEn9PoO.js} +1 -1
  167. package/dist/{super-rare-kPN6Ua8i.js.map → super-rare-CMEn9PoO.js.map} +1 -1
  168. package/dist/{token-CHSBPYVG.js → token-CcyLz8Z8.js} +1 -1
  169. package/dist/{token-CHSBPYVG.js.map → token-CcyLz8Z8.js.map} +1 -1
  170. package/dist/tokenSupplies-C470zTT0.d.ts +147 -0
  171. package/dist/{transaction-CnctdNzS.js → transaction-DZUW5RHu.js} +21 -24
  172. package/dist/transaction-DZUW5RHu.js.map +1 -0
  173. package/dist/types/index.d.ts +2 -2
  174. package/dist/types/index.js +2 -2
  175. package/dist/{types-Yw2ywj6j.js → types-B_-cnkcP.js} +1 -1
  176. package/dist/types-B_-cnkcP.js.map +1 -0
  177. package/dist/{CollectibleCard-Dd-CG6dE.d.ts → types-D6LkVrF0.d.ts} +18 -13
  178. package/dist/utils/abi/index.d.ts +5 -5
  179. package/dist/utils/abi/index.js +5 -5
  180. package/dist/utils/abi/marketplace/index.d.ts +1 -1
  181. package/dist/utils/abi/marketplace/index.js +1 -1
  182. package/dist/utils/abi/primary-sale/index.d.ts +2 -2
  183. package/dist/utils/abi/primary-sale/index.js +2 -2
  184. package/dist/utils/abi/token/index.d.ts +1 -1
  185. package/dist/utils/abi/token/index.js +1 -1
  186. package/dist/utils/index.d.ts +7 -7
  187. package/dist/utils/index.js +12 -12
  188. package/dist/{utils-9RXDgcBl.js → utils-BZEkdqWK.js} +7 -24
  189. package/dist/utils-BZEkdqWK.js.map +1 -0
  190. package/dist/{utils-DjVJ9tov.js → utils-oVZxdK0o.js} +2 -2
  191. package/dist/utils-oVZxdK0o.js.map +1 -0
  192. package/dist/waitForTransactionReceipt-B08YZiDY.js +26 -0
  193. package/dist/waitForTransactionReceipt-B08YZiDY.js.map +1 -0
  194. package/dist/{x2y2-BLz-_Q2O.js → x2y2-DNe6JgtG.js} +1 -1
  195. package/dist/{x2y2-BLz-_Q2O.js.map → x2y2-DNe6JgtG.js.map} +1 -1
  196. package/dist/{zora-UGhKs-aL.js → zora-w0Zqxxs4.js} +1 -1
  197. package/dist/{zora-UGhKs-aL.js.map → zora-w0Zqxxs4.js.map} +1 -1
  198. package/package.json +50 -47
  199. package/postcss.config.mjs +72 -5
  200. package/public/mockServiceWorker.js +344 -0
  201. package/src/react/_internal/api/__mocks__/builder.msw.ts +6 -0
  202. package/src/react/_internal/api/__mocks__/metadata.msw.ts +12 -1
  203. package/src/react/_internal/api/builder.gen.ts +11 -7
  204. package/src/react/_internal/api/marketplace.gen.ts +1 -1
  205. package/src/react/_internal/api/query-keys.ts +2 -0
  206. package/src/react/_internal/databeat/index.ts +1 -1
  207. package/src/react/_internal/databeat/types.ts +1 -0
  208. package/src/react/_internal/query-meta.ts +3 -0
  209. package/src/react/_internal/utils.ts +2 -0
  210. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +19 -8
  211. package/src/react/_internal/wagmi/create-config.ts +7 -18
  212. package/src/react/_internal/wagmi/get-connectors.ts +1 -1
  213. package/src/react/hooks/{__tests__ → config}/__snapshots__/useMarketplaceConfig.test.tsx.snap +10 -4
  214. package/src/react/hooks/config/index.ts +3 -0
  215. package/src/react/hooks/{useConfig.tsx → config/useConfig.tsx} +2 -2
  216. package/src/react/hooks/config/useConnectorMetadata.tsx +16 -0
  217. package/src/react/hooks/{__tests__ → config}/useMarketplaceConfig.test.tsx +1 -1
  218. package/src/react/hooks/{useMarketplaceConfig.tsx → config/useMarketplaceConfig.tsx} +2 -2
  219. package/src/react/hooks/contracts/index.ts +1 -0
  220. package/src/react/hooks/contracts/useSalesContractABI.ts +174 -0
  221. package/src/react/hooks/data/collectibles/index.ts +6 -0
  222. package/src/react/hooks/{__tests__ → data/collectibles}/useBalanceOfCollectible.laos.test.tsx +6 -6
  223. package/src/react/hooks/{__tests__ → data/collectibles}/useBalanceOfCollectible.test.tsx +2 -2
  224. package/src/react/hooks/{useBalanceOfCollectible.tsx → data/collectibles/useBalanceOfCollectible.tsx} +4 -4
  225. package/src/react/hooks/{__tests__ → data/collectibles}/useCollectible.test.tsx +3 -3
  226. package/src/react/hooks/{useCollectible.tsx → data/collectibles/useCollectible.tsx} +3 -3
  227. package/src/react/hooks/{__tests__ → data/collectibles}/useCountOfCollectables.test.tsx +4 -4
  228. package/src/react/hooks/{useCountOfCollectables.tsx → data/collectibles/useCountOfCollectables.tsx} +3 -3
  229. package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectibleActivities.test.tsx +3 -3
  230. package/src/react/hooks/{useListCollectibleActivities.tsx → data/collectibles/useListCollectibleActivities.tsx} +3 -3
  231. package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectibles.test.tsx +5 -6
  232. package/src/react/hooks/{useListCollectibles.tsx → data/collectibles/useListCollectibles.tsx} +3 -3
  233. package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectiblesPaginated.test.tsx +4 -4
  234. package/src/react/hooks/{useListCollectiblesPaginated.tsx → data/collectibles/useListCollectiblesPaginated.tsx} +3 -3
  235. package/src/react/hooks/data/collectibles/useTokenBalances.test.tsx +151 -0
  236. package/src/react/hooks/data/collectibles/useTokenBalances.tsx +47 -0
  237. package/src/react/hooks/{__tests__ → data/collections}/__snapshots__/useListCollections.test.tsx.snap +16 -6
  238. package/src/react/hooks/data/collections/index.ts +6 -0
  239. package/src/react/hooks/{__tests__ → data/collections}/useCollection.test.tsx +2 -3
  240. package/src/react/hooks/{useCollection.tsx → data/collections/useCollection.tsx} +3 -3
  241. package/src/react/hooks/{__tests__ → data/collections}/useCollectionBalanceDetails.test.tsx +2 -2
  242. package/src/react/hooks/{useCollectionBalanceDetails.tsx → data/collections/useCollectionBalanceDetails.tsx} +3 -3
  243. package/src/react/hooks/{__tests__ → data/collections}/useCollectionDetails.test.tsx +2 -2
  244. package/src/react/hooks/{useCollectionDetails.ts → data/collections/useCollectionDetails.ts} +3 -3
  245. package/src/react/hooks/{__tests__ → data/collections}/useCollectionDetailsPolling.test.tsx +3 -3
  246. package/src/react/hooks/{useCollectionDetailsPolling.tsx → data/collections/useCollectionDetailsPolling.tsx} +4 -4
  247. package/src/react/hooks/{__tests__ → data/collections}/useListCollectionActivities.test.tsx +5 -5
  248. package/src/react/hooks/{useListCollectionActivities.tsx → data/collections/useListCollectionActivities.tsx} +3 -3
  249. package/src/react/hooks/{__tests__ → data/collections}/useListCollections.test.tsx +5 -4
  250. package/src/react/hooks/{useListCollections.tsx → data/collections/useListCollections.tsx} +4 -4
  251. package/src/react/hooks/data/index.ts +6 -0
  252. package/src/react/hooks/data/inventory/index.ts +1 -0
  253. package/src/react/hooks/{__tests__ → data/inventory}/useInventory.test.tsx +7 -102
  254. package/src/react/hooks/data/inventory/useInventory.tsx +21 -0
  255. package/src/react/hooks/data/market/index.ts +3 -0
  256. package/src/react/hooks/{__tests__ → data/market}/useCurrency.test.tsx +4 -4
  257. package/src/react/hooks/{useCurrency.tsx → data/market/useCurrency.tsx} +3 -3
  258. package/src/react/hooks/{__tests__ → data/market}/useListMarketCardData.test.tsx +10 -14
  259. package/src/react/hooks/{useListMarketCardData.tsx → data/market/useListMarketCardData.tsx} +7 -7
  260. package/src/react/hooks/{__tests__ → data/market}/useMarketCurrencies.test.tsx +5 -5
  261. package/src/react/hooks/{useMarketCurrencies.tsx → data/market/useMarketCurrencies.tsx} +3 -3
  262. package/src/react/hooks/data/orders/index.ts +7 -0
  263. package/src/react/hooks/{__tests__ → data/orders}/useCountListingsForCollectible.test.tsx +2 -2
  264. package/src/react/hooks/{useCountListingsForCollectible.tsx → data/orders/useCountListingsForCollectible.tsx} +3 -3
  265. package/src/react/hooks/{__tests__ → data/orders}/useCountOffersForCollectible.test.tsx +2 -2
  266. package/src/react/hooks/{useCountOffersForCollectible.tsx → data/orders/useCountOffersForCollectible.tsx} +3 -3
  267. package/src/react/hooks/{__tests__ → data/orders}/useFloorOrder.test.tsx +3 -3
  268. package/src/react/hooks/{useFloorOrder.tsx → data/orders/useFloorOrder.tsx} +3 -3
  269. package/src/react/hooks/{__tests__ → data/orders}/useHighestOffer.test.tsx +3 -3
  270. package/src/react/hooks/{useHighestOffer.tsx → data/orders/useHighestOffer.tsx} +3 -3
  271. package/src/react/hooks/{__tests__ → data/orders}/useListListingsForCollectible.test.tsx +6 -6
  272. package/src/react/hooks/{useListListingsForCollectible.tsx → data/orders/useListListingsForCollectible.tsx} +3 -3
  273. package/src/react/hooks/{__tests__ → data/orders}/useListOffersForCollectible.test.tsx +5 -5
  274. package/src/react/hooks/data/orders/useListOffersForCollectible.tsx +80 -0
  275. package/src/react/hooks/{__tests__ → data/orders}/useLowestListing.test.tsx +5 -5
  276. package/src/react/hooks/{useLowestListing.tsx → data/orders/useLowestListing.tsx} +3 -3
  277. package/src/react/hooks/data/primary-sales/index.ts +6 -0
  278. package/src/react/hooks/{useCountOfPrimarySaleItems.tsx → data/primary-sales/useCountOfPrimarySaleItems.tsx} +2 -2
  279. package/src/react/hooks/data/primary-sales/useErc721SalesData.tsx +184 -0
  280. package/src/react/hooks/{useGetCountOfPrimarySaleItems.tsx → data/primary-sales/useGetCountOfPrimarySaleItems.tsx} +4 -4
  281. package/src/react/hooks/{useList1155ShopCardData.tsx → data/primary-sales/useList1155ShopCardData.tsx} +30 -39
  282. package/src/react/hooks/data/primary-sales/useList721ShopCardData.tsx +194 -0
  283. package/src/react/hooks/{useListPrimarySaleItems.tsx → data/primary-sales/useListPrimarySaleItems.tsx} +3 -3
  284. package/src/react/hooks/data/tokens/index.ts +5 -0
  285. package/src/react/hooks/{__tests__ → data/tokens}/useCurrencyBalance.test.tsx +2 -2
  286. package/src/react/hooks/{__tests__ → data/tokens}/useGetTokenRanges.test.tsx +3 -3
  287. package/src/react/hooks/{useGetTokenRanges.tsx → data/tokens/useGetTokenRanges.tsx} +6 -4
  288. package/src/react/hooks/{__tests__ → data/tokens}/useListBalances.test.tsx +2 -2
  289. package/src/react/hooks/{useListBalances.tsx → data/tokens/useListBalances.tsx} +5 -5
  290. package/src/react/hooks/{__tests__ → data/tokens}/useListTokenMetadata.test.tsx +3 -3
  291. package/src/react/hooks/{useListTokenMetadata.tsx → data/tokens/useListTokenMetadata.tsx} +3 -3
  292. package/src/react/hooks/data/tokens/useSearchTokenMetadata.test.tsx +284 -0
  293. package/src/react/hooks/data/tokens/useSearchTokenMetadata.tsx +189 -0
  294. package/src/react/hooks/{useTokenSupplies.ts → data/tokens/useTokenSupplies.ts} +5 -5
  295. package/src/react/hooks/index.ts +18 -52
  296. package/src/react/hooks/transactions/index.ts +9 -0
  297. package/src/react/hooks/{__tests__ → transactions}/useCancelOrder.test.tsx +59 -88
  298. package/src/react/hooks/{useCancelOrder.tsx → transactions/useCancelOrder.tsx} +6 -5
  299. package/src/react/hooks/{__tests__/useCancelTransactionSteps.test.tsx → transactions/useCancelTransactionSteps.test.tsx.bak} +3 -52
  300. package/src/react/hooks/transactions/useCancelTransactionSteps.tsx +193 -0
  301. package/src/react/hooks/{__tests__ → transactions}/useGenerateCancelTransaction.test.tsx +2 -2
  302. package/src/react/hooks/{useGenerateCancelTransaction.tsx → transactions/useGenerateCancelTransaction.tsx} +5 -5
  303. package/src/react/hooks/{__tests__ → transactions}/useGenerateListingTransaction.test.tsx +2 -2
  304. package/src/react/hooks/{useGenerateListingTransaction.tsx → transactions/useGenerateListingTransaction.tsx} +5 -5
  305. package/src/react/hooks/{__tests__ → transactions}/useGenerateOfferTransaction.test.tsx +7 -45
  306. package/src/react/hooks/{useGenerateOfferTransaction.tsx → transactions/useGenerateOfferTransaction.tsx} +7 -7
  307. package/src/react/hooks/{__tests__ → transactions}/useGenerateSellTransaction.test.tsx +3 -7
  308. package/src/react/hooks/{useGenerateSellTransaction.tsx → transactions/useGenerateSellTransaction.tsx} +4 -4
  309. package/src/react/hooks/transactions/useOrderSteps.tsx +189 -0
  310. package/src/react/hooks/transactions/useProcessStep.test.tsx +272 -0
  311. package/src/react/hooks/transactions/useProcessStep.ts +95 -0
  312. package/src/react/hooks/{__tests__ → transactions}/useTransferTokens.test.tsx +2 -2
  313. package/src/react/hooks/{useTransferTokens.tsx → transactions/useTransferTokens.tsx} +3 -3
  314. package/src/react/hooks/ui/index.ts +3 -0
  315. package/src/react/hooks/{useFilterState.tsx → ui/useFilterState.tsx} +1 -1
  316. package/src/react/hooks/{__tests__ → ui}/useFilters.test.tsx +1 -2
  317. package/src/react/hooks/{useFilters.tsx → ui/useFilters.tsx} +3 -3
  318. package/src/react/hooks/{useOpenConnectModal.tsx → ui/useOpenConnectModal.tsx} +1 -1
  319. package/src/react/hooks/util/optimisticCancelUpdates.ts +1 -0
  320. package/src/react/hooks/utils/__tests__/useEnsureCorrectChain.test.tsx +75 -0
  321. package/src/react/hooks/utils/index.ts +8 -0
  322. package/src/react/hooks/{__tests__ → utils}/useAutoSelectFeeOption.test.tsx +7 -3
  323. package/src/react/hooks/{useAutoSelectFeeOption.tsx → utils/useAutoSelectFeeOption.tsx} +2 -2
  324. package/src/react/hooks/{__tests__ → utils}/useCheckoutOptions.test.tsx +9 -5
  325. package/src/react/hooks/{useCheckoutOptions.tsx → utils/useCheckoutOptions.tsx} +6 -4
  326. package/src/react/hooks/{__tests__ → utils}/useCheckoutOptionsSalesContract.test.tsx +8 -4
  327. package/src/react/hooks/{useCheckoutOptionsSalesContract.tsx → utils/useCheckoutOptionsSalesContract.tsx} +3 -3
  328. package/src/react/hooks/{__tests__ → utils}/useComparePrices.test.tsx +1 -1
  329. package/src/react/hooks/{useComparePrices.tsx → utils/useComparePrices.tsx} +3 -5
  330. package/src/react/hooks/{__tests__ → utils}/useConvertPriceToUSD.test.tsx +2 -2
  331. package/src/react/hooks/{useConvertPriceToUSD.tsx → utils/useConvertPriceToUSD.tsx} +3 -3
  332. package/src/react/hooks/utils/useEnsureCorrectChain.ts +71 -0
  333. package/src/react/hooks/{__tests__ → utils}/useRoyalty.test.tsx +1 -1
  334. package/src/react/hooks/{useRoyalty.tsx → utils/useRoyalty.tsx} +3 -3
  335. package/src/react/index.ts +1 -2
  336. package/src/react/{provider.tsx → providers/index.tsx} +18 -17
  337. package/src/react/providers/modal-provider.tsx +43 -0
  338. package/src/react/{__tests__ → providers}/provider.test.tsx +1 -1
  339. package/src/react/providers/shadow-root.tsx +63 -0
  340. package/src/react/providers/theme-provider.tsx +29 -0
  341. package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +3 -3
  342. package/src/react/queries/__tests__/inventory.laos.test.ts +6 -3
  343. package/src/react/queries/__tests__/tokenBalances.laos.test.ts +123 -0
  344. package/src/react/queries/balanceOfCollectible.ts +2 -1
  345. package/src/react/queries/filters.ts +23 -28
  346. package/src/react/queries/index.ts +20 -0
  347. package/src/react/queries/inventory.ts +63 -243
  348. package/src/react/queries/listCollectibles.ts +22 -48
  349. package/src/react/queries/listCollections.ts +10 -13
  350. package/src/react/queries/listOffersForCollectible.ts +101 -0
  351. package/src/react/queries/marketplaceConfig.ts +16 -3
  352. package/src/react/queries/primarySaleItems.ts +2 -7
  353. package/src/react/queries/searchTokenMetadata.ts +87 -0
  354. package/src/react/queries/tokenBalances.ts +85 -0
  355. package/src/react/queries/tokenSupplies.ts +26 -18
  356. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +10 -4
  357. package/src/react/ssr/__tests__/create-ssr-client.test.ts +1 -1
  358. package/src/react/ui/components/_internals/action-button/ActionButton.stories.tsx +296 -0
  359. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +6 -9
  360. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +34 -14
  361. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +8 -15
  362. package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +5 -12
  363. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +32 -16
  364. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +2 -3
  365. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +7 -7
  366. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +2 -3
  367. package/src/react/ui/components/_internals/custom-select/__tests__/CustomSelect.test.tsx +1 -1
  368. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +4 -3
  369. package/src/react/ui/components/marketplace-collectible-card/CollectibleCardSkeleton.tsx +13 -2
  370. package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +4 -7
  371. package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +18 -8
  372. package/src/react/ui/components/marketplace-collectible-card/components/footer/Footer.tsx +179 -0
  373. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/FooterName.tsx +103 -0
  374. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/PriceDisplay.tsx +80 -0
  375. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/SaleDetailsPill.tsx +29 -0
  376. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/TokenTypeBalancePill.tsx +30 -0
  377. package/src/react/ui/components/marketplace-collectible-card/components/footer/components/index.ts +4 -0
  378. package/src/react/ui/components/marketplace-collectible-card/components/footer/index.ts +2 -0
  379. package/src/react/ui/components/marketplace-collectible-card/types.ts +21 -8
  380. package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +11 -23
  381. package/src/react/ui/components/marketplace-collectible-card/variants/NonTradableInventoryCard.tsx +42 -0
  382. package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +19 -13
  383. package/src/react/ui/index.ts +1 -1
  384. package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +20 -35
  385. package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +5 -5
  386. package/src/react/ui/modals/BuyModal/__tests__/ERC721ShopModal.test.tsx +1 -1
  387. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx.bak +3 -3
  388. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +6 -6
  389. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +3 -3
  390. package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +10 -10
  391. package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +10 -10
  392. package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +40 -22
  393. package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +2 -2
  394. package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +4 -4
  395. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +18 -30
  396. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +14 -1
  397. package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +13 -2
  398. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +5 -5
  399. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +19 -3
  400. package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +18 -7
  401. package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +5 -9
  402. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +16 -15
  403. package/src/react/ui/modals/BuyModal/store.ts +8 -6
  404. package/src/react/ui/modals/CreateListingModal/Modal.tsx +11 -5
  405. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +3 -24
  406. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +2 -1
  407. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +5 -9
  408. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +44 -84
  409. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +91 -93
  410. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +88 -62
  411. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +9 -7
  412. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +4 -3
  413. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +48 -85
  414. package/src/react/ui/modals/SellModal/Modal.tsx +7 -9
  415. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +8 -30
  416. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +9 -8
  417. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +2 -1
  418. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +39 -65
  419. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +28 -18
  420. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +33 -15
  421. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +3 -3
  422. package/src/react/ui/modals/TransferModal/index.tsx +9 -23
  423. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +130 -139
  424. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +15 -44
  425. package/src/react/ui/modals/_internal/components/actionModal/index.ts +0 -1
  426. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +9 -3
  427. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +1 -1
  428. package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +2 -2
  429. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +3 -3
  430. package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +97 -7
  431. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +30 -11
  432. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +2 -2
  433. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +1 -1
  434. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +1 -1
  435. package/src/react/ui/modals/_internal/components/switchChainErrorModal/__tests__/SwitchChainErrorModal.test.tsx +80 -0
  436. package/src/react/ui/modals/_internal/components/switchChainErrorModal/index.tsx +64 -0
  437. package/src/react/ui/modals/_internal/components/switchChainErrorModal/store.ts +42 -0
  438. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +25 -26
  439. package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +3 -1
  440. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +19 -4
  441. package/src/react/ui/modals/_internal/hooks/useSelectWaasFeeOptions.ts +3 -5
  442. package/src/react/ui/modals/_internal/types.ts +6 -1
  443. package/src/react/utils/index.ts +1 -0
  444. package/src/react/utils/waitForTransactionReceipt.ts +49 -0
  445. package/src/{index.css → styles/index.css} +1 -1
  446. package/src/styles/styles.ts +3297 -0
  447. package/src/types/new-marketplace-types.ts +9 -18
  448. package/src/types/sdk-config.ts +2 -0
  449. package/src/types/types.ts +1 -1
  450. package/src/utils/_internal/error/transaction.ts +0 -10
  451. package/src/utils/abi/primary-sale/index.ts +4 -2
  452. package/src/utils/abi/primary-sale/{sequence-1155-sales-contract.ts → sequence-1155-sales-contract-v0.ts} +67 -58
  453. package/src/utils/abi/primary-sale/sequence-1155-sales-contract-v1.ts +546 -0
  454. package/src/utils/abi/primary-sale/{sequence-721-sales-contract.ts → sequence-721-sales-contract-v0.ts} +1 -1
  455. package/src/utils/abi/primary-sale/sequence-721-sales-contract-v1.ts +394 -0
  456. package/test/const.ts +1 -1
  457. package/test/globalSetup.ts +39 -11
  458. package/test/handlers.ts +465 -0
  459. package/test/index.ts +1 -0
  460. package/test/server-setup.ts +23 -0
  461. package/test/setup.ts +1 -1
  462. package/test/test-utils.tsx +47 -38
  463. package/tsconfig.json +1 -1
  464. package/tsdown.config.ts +12 -7
  465. package/.storybook/preview.ts +0 -24
  466. package/dist/CalendarIcon-CqsuAuCm.js.map +0 -1
  467. package/dist/InfoIcon-v0w_Lu7t.js +0 -53
  468. package/dist/InfoIcon-v0w_Lu7t.js.map +0 -1
  469. package/dist/_internal-C75gOSNo.js.map +0 -1
  470. package/dist/actionModal-CMUeVsFX.js +0 -116
  471. package/dist/actionModal-CMUeVsFX.js.map +0 -1
  472. package/dist/api-BiMGqWdz.js.map +0 -1
  473. package/dist/base-DqaJPvfN.js +0 -22
  474. package/dist/base-DqaJPvfN.js.map +0 -1
  475. package/dist/create-config-fQ-jbJD1.js.map +0 -1
  476. package/dist/get-provider-CYYHfrlg.js +0 -10
  477. package/dist/get-provider-CYYHfrlg.js.map +0 -1
  478. package/dist/get-query-client-D19vvfJo.js +0 -23
  479. package/dist/get-query-client-D19vvfJo.js.map +0 -1
  480. package/dist/hooks-4pxIbLbM.js +0 -4044
  481. package/dist/hooks-4pxIbLbM.js.map +0 -1
  482. package/dist/index-BKBin-rq.d.ts +0 -979
  483. package/dist/index-BUWB_RXp.d.ts +0 -3144
  484. package/dist/index-Cu70Lw-w.d.ts +0 -1057
  485. package/dist/index-DvpBZgor.d.ts +0 -1
  486. package/dist/marketplace-logos-Cd6W-qOq.js.map +0 -1
  487. package/dist/marketplace.gen-HpnpL5xU.js.map +0 -1
  488. package/dist/marketplaceConfig-GQTTmihy.js.map +0 -1
  489. package/dist/network-CGD0oKtS.js.map +0 -1
  490. package/dist/primary-sale-CmWxSfFQ.js +0 -1264
  491. package/dist/primary-sale-CmWxSfFQ.js.map +0 -1
  492. package/dist/provider-DPGUA10G.js +0 -125
  493. package/dist/provider-DPGUA10G.js.map +0 -1
  494. package/dist/queries-Ce_2othB.js +0 -757
  495. package/dist/queries-Ce_2othB.js.map +0 -1
  496. package/dist/react/hooks/options/index.d.ts +0 -3
  497. package/dist/react/hooks/options/index.js +0 -16
  498. package/dist/react-DP0M2Wfm.js +0 -5431
  499. package/dist/react-DP0M2Wfm.js.map +0 -1
  500. package/dist/transaction-CnctdNzS.js.map +0 -1
  501. package/dist/types-Yw2ywj6j.js.map +0 -1
  502. package/dist/utils-9RXDgcBl.js.map +0 -1
  503. package/dist/utils-DjVJ9tov.js.map +0 -1
  504. package/dist/wagmi-Do_KW5ke.js +0 -0
  505. package/src/react/_internal/wallet/__tests__/wallet.test.ts +0 -416
  506. package/src/react/_internal/wallet/useWallet.ts +0 -52
  507. package/src/react/_internal/wallet/wallet.ts +0 -313
  508. package/src/react/hooks/options/index.ts +0 -1
  509. package/src/react/hooks/useCancelTransactionSteps.tsx +0 -249
  510. package/src/react/hooks/useERC721SaleMintedTokens.tsx +0 -70
  511. package/src/react/hooks/useInventory.tsx +0 -18
  512. package/src/react/hooks/useList1155SaleSupplies.tsx +0 -62
  513. package/src/react/hooks/useList721ShopCardData.tsx +0 -165
  514. package/src/react/hooks/useListOffersForCollectible.tsx +0 -55
  515. package/src/react/hooks/useListShopCardData.tsx +0 -70
  516. package/src/react/hooks/useListTokenMetadata.ts +0 -71
  517. package/src/react/hooks/useShopCollectibleSaleData.tsx +0 -349
  518. package/src/react/hooks/useTokenSaleDetailsBatch.tsx +0 -130
  519. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +0 -238
  520. package/src/react/ui/modals/_internal/components/actionModal/store.ts +0 -57
  521. package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +0 -117
  522. package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +0 -124
  523. package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +0 -71
  524. package/src/react/ui/modals/modal-provider.tsx +0 -25
  525. package/test/mocks/wallet.ts +0 -63
  526. /package/dist/{abi-BMvgNbKQ.js → abi-DYsUABe6.js} +0 -0
  527. /package/dist/{index-CD2bj_xW.d.ts → index-Cg5cFzs-.d.ts} +0 -0
  528. /package/dist/{options-BBBR8u_4.js → wagmi-Bseovd6Q.js} +0 -0
  529. /package/src/react/hooks/{useCurrencyBalance.tsx → data/tokens/useCurrencyBalance.tsx} +0 -0
  530. /package/src/react/hooks/{useGetReceiptFromHash.tsx → utils/useGetReceiptFromHash.tsx} +0 -0
@@ -0,0 +1,289 @@
1
+ 'use client';
2
+
3
+ import type React from 'react';
4
+ import { useEffect, useState } from 'react';
5
+ import { useAccount, useConnect, useDisconnect } from 'wagmi';
6
+ import { useConnectorMetadata } from '../src/react/hooks/config/useConnectorMetadata';
7
+ import { TEST_ACCOUNTS } from '../test/const';
8
+
9
+ type ConnectorType = 'mock' | 'waas' | 'sequence' | 'auto';
10
+
11
+ export const ConnectionStatus: React.FC = () => {
12
+ const {
13
+ connect,
14
+ connectors,
15
+ error: connectError,
16
+ isPending: isConnecting,
17
+ } = useConnect();
18
+ const { disconnect } = useDisconnect();
19
+ const {
20
+ isConnected: wagmiConnected,
21
+ address: walletAddress,
22
+ chainId: walletChainId,
23
+ isConnecting: isReconnecting,
24
+ } = useAccount();
25
+ const { isWaaS, walletKind } = useConnectorMetadata();
26
+ const [debugInfo, setDebugInfo] = useState<string>('');
27
+ const [preferredConnector, setPreferredConnector] =
28
+ useState<ConnectorType>('auto');
29
+ const [manuallyDisconnected, setManuallyDisconnected] =
30
+ useState<boolean>(false);
31
+
32
+ const walletLoading = isConnecting || isReconnecting;
33
+ const walletError = false; // wagmi handles errors differently
34
+
35
+ useEffect(() => {
36
+ const storedConnector = localStorage.getItem(
37
+ 'storybook-connector',
38
+ ) as ConnectorType;
39
+ const defaultConnector = storedConnector || 'auto';
40
+ setPreferredConnector(defaultConnector);
41
+ }, []);
42
+
43
+ useEffect(() => {
44
+ if (preferredConnector !== 'auto') {
45
+ localStorage.setItem('storybook-connector', preferredConnector);
46
+ }
47
+ }, [preferredConnector]);
48
+
49
+ useEffect(() => {
50
+ if (wagmiConnected) {
51
+ setManuallyDisconnected(false);
52
+ }
53
+ }, [wagmiConnected]);
54
+
55
+ useEffect(() => {
56
+ if (connectors.length > 0) {
57
+ const connectorInfo = connectors
58
+ .map((c) => `${c.name || 'unnamed'} (${c.id || 'no-id'})`)
59
+ .join(', ');
60
+ setDebugInfo(`Available: ${connectorInfo}`);
61
+ }
62
+
63
+ // Only try to connect if not connected and not connecting and not manually disconnected
64
+ if (
65
+ !wagmiConnected &&
66
+ !isConnecting &&
67
+ !manuallyDisconnected &&
68
+ connectors.length > 0
69
+ ) {
70
+ let targetConnector: (typeof connectors)[0] | undefined;
71
+
72
+ if (preferredConnector === 'auto') {
73
+ targetConnector = connectors[0];
74
+ } else {
75
+ targetConnector = connectors.find((c) => c.id === preferredConnector);
76
+
77
+ // Fallback to any connector with the preferred type in name
78
+ if (!targetConnector) {
79
+ targetConnector = connectors.find(
80
+ (c) =>
81
+ c.name?.toLowerCase().includes(preferredConnector) ||
82
+ c.id?.toLowerCase().includes(preferredConnector),
83
+ );
84
+ }
85
+ }
86
+
87
+ // Final fallback to first available connector
88
+ if (!targetConnector && connectors.length > 0) {
89
+ targetConnector = connectors[0];
90
+ }
91
+
92
+ if (targetConnector) {
93
+ console.log(
94
+ `Auto-connecting to ${preferredConnector} connector:`,
95
+ targetConnector.name || 'unnamed',
96
+ targetConnector.id || 'no-id',
97
+ );
98
+ try {
99
+ connect({ connector: targetConnector });
100
+ } catch (error) {
101
+ console.error('Failed to connect to connector:', error);
102
+ setDebugInfo(
103
+ `Connection failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
104
+ );
105
+ }
106
+ }
107
+ }
108
+ }, [
109
+ wagmiConnected,
110
+ isConnecting,
111
+ manuallyDisconnected,
112
+ connectors,
113
+ connect,
114
+ preferredConnector,
115
+ ]);
116
+
117
+ const getConnectionStatus = () => {
118
+ if (isConnecting || walletLoading) {
119
+ return { status: 'Connecting to Anvil...', color: '#f59e0b' };
120
+ }
121
+
122
+ if (walletAddress && wagmiConnected) {
123
+ const accountIndex = TEST_ACCOUNTS.findIndex(
124
+ (acc) => acc.toLowerCase() === walletAddress.toLowerCase(),
125
+ );
126
+ const accountLabel =
127
+ accountIndex >= 0 ? `Account ${accountIndex}` : 'Custom';
128
+
129
+ return {
130
+ status: `${walletAddress.slice(0, 6)}...${walletAddress.slice(-4)} (${accountLabel})`,
131
+ color: '#10b981',
132
+ };
133
+ }
134
+
135
+ if (walletError || connectError) {
136
+ return {
137
+ status: `Error: ${connectError?.message || 'Connection failed'}`,
138
+ color: '#ef4444',
139
+ };
140
+ }
141
+
142
+ return { status: 'Disconnected from Anvil', color: '#ef4444' };
143
+ };
144
+
145
+ const { status, color } = getConnectionStatus();
146
+
147
+ const getWalletInfo = () => {
148
+ if (!wagmiConnected) return null;
149
+
150
+ const walletType = isWaaS ? 'WaaS' : 'External';
151
+ const kind = walletKind || 'Unknown';
152
+ return `${walletType} (${kind})`;
153
+ };
154
+
155
+ const getAnvilInfo = () => {
156
+ if (!walletChainId && !wagmiConnected) return null;
157
+
158
+ const displayChainId = walletChainId || 'Unknown';
159
+ return `Anvil Chain: ${displayChainId}`;
160
+ };
161
+
162
+ const handleConnectorChange = (newConnector: ConnectorType) => {
163
+ setPreferredConnector(newConnector);
164
+ setManuallyDisconnected(false);
165
+ if (wagmiConnected) {
166
+ disconnect();
167
+ }
168
+ };
169
+
170
+ const handleDisconnect = () => {
171
+ setManuallyDisconnected(true);
172
+ disconnect();
173
+ };
174
+
175
+ return (
176
+ <div
177
+ style={{
178
+ position: 'fixed',
179
+ top: '16px',
180
+ right: '16px',
181
+ zIndex: 9999,
182
+ backgroundColor: '#1f2937',
183
+ color: 'white',
184
+ padding: '8px 12px',
185
+ borderRadius: '8px',
186
+ fontSize: '12px',
187
+ fontFamily: 'monospace',
188
+ border: `2px solid ${color}`,
189
+ boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',
190
+ display: 'flex',
191
+ flexDirection: 'column',
192
+ alignItems: 'flex-start',
193
+ gap: '4px',
194
+ maxWidth: '320px',
195
+ }}
196
+ >
197
+ <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
198
+ <div
199
+ style={{
200
+ width: '8px',
201
+ height: '8px',
202
+ borderRadius: '50%',
203
+ backgroundColor: color,
204
+ }}
205
+ />
206
+ <span>{status}</span>
207
+ </div>
208
+
209
+ <div
210
+ style={{
211
+ display: 'flex',
212
+ alignItems: 'center',
213
+ gap: '8px',
214
+ width: '100%',
215
+ }}
216
+ >
217
+ <span style={{ fontSize: '10px', color: '#9ca3af' }}>Connector:</span>
218
+ <select
219
+ value={preferredConnector}
220
+ onChange={(e) =>
221
+ handleConnectorChange(e.target.value as ConnectorType)
222
+ }
223
+ style={{
224
+ background: '#374151',
225
+ color: 'white',
226
+ border: '1px solid #4b5563',
227
+ borderRadius: '4px',
228
+ fontSize: '10px',
229
+ padding: '2px 4px',
230
+ flex: 1,
231
+ }}
232
+ >
233
+ <option value="auto">Auto</option>
234
+ <option value="mock">Mock</option>
235
+ <option value="waas">WaaS</option>
236
+ <option value="sequence">Sequence</option>
237
+ </select>
238
+ </div>
239
+
240
+ {wagmiConnected && (
241
+ <button
242
+ type="button"
243
+ onClick={handleDisconnect}
244
+ style={{
245
+ background: '#dc2626',
246
+ color: 'white',
247
+ border: 'none',
248
+ borderRadius: '4px',
249
+ fontSize: '10px',
250
+ padding: '4px 8px',
251
+ cursor: 'pointer',
252
+ width: '100%',
253
+ marginTop: '4px',
254
+ }}
255
+ >
256
+ Disconnect
257
+ </button>
258
+ )}
259
+
260
+ {getWalletInfo() && (
261
+ <div style={{ fontSize: '10px', color: '#9ca3af' }}>
262
+ Type: {getWalletInfo()}
263
+ </div>
264
+ )}
265
+
266
+ {getAnvilInfo() && (
267
+ <div style={{ fontSize: '10px', color: '#9ca3af' }}>
268
+ {getAnvilInfo()}
269
+ </div>
270
+ )}
271
+
272
+ {debugInfo && (
273
+ <div style={{ fontSize: '10px', color: '#9ca3af' }}>{debugInfo}</div>
274
+ )}
275
+
276
+ {(walletError || connectError) && (
277
+ <div
278
+ style={{
279
+ fontSize: '10px',
280
+ color: '#ef4444',
281
+ wordBreak: 'break-word',
282
+ }}
283
+ >
284
+ {connectError?.message || 'Wallet connection failed'}
285
+ </div>
286
+ )}
287
+ </div>
288
+ );
289
+ };
@@ -1,13 +1,19 @@
1
+ import path from 'node:path';
1
2
  import type { StorybookConfig } from '@storybook/react-vite';
2
3
  import tailwindcssPostcss from '@tailwindcss/postcss';
3
4
 
4
5
  const config: StorybookConfig = {
5
6
  stories: ['../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
6
- addons: ['@storybook/addon-docs', '@storybook/addon-vitest'],
7
+ addons: [
8
+ '@storybook/addon-docs',
9
+ '@storybook/addon-vitest',
10
+ 'msw-storybook-addon',
11
+ ],
7
12
  framework: {
8
13
  name: '@storybook/react-vite',
9
14
  options: {},
10
15
  },
16
+ staticDirs: ['../public'],
11
17
  typescript: {
12
18
  reactDocgen: 'react-docgen-typescript',
13
19
  reactDocgenTypescriptOptions: {
@@ -33,6 +39,19 @@ const config: StorybookConfig = {
33
39
  plugins: [tailwindcssPostcss()],
34
40
  };
35
41
 
42
+ // Set unique cache directory to prevent conflicts
43
+ config.cacheDir = path.join(
44
+ __dirname,
45
+ '../node_modules/.vite-storybook-sdk',
46
+ );
47
+
48
+ // Configure path aliases to match tsconfig.json
49
+ config.resolve = config.resolve || {};
50
+ config.resolve.alias = {
51
+ ...config.resolve.alias,
52
+ '@test': path.resolve(__dirname, '../test'),
53
+ };
54
+
36
55
  // Exclude generated files from react-docgen processing
37
56
  if (config.plugins) {
38
57
  for (const plugin of config.plugins) {
@@ -0,0 +1,105 @@
1
+ import { SequenceConnectProvider } from '@0xsequence/connect';
2
+ import type { Preview } from '@storybook/react-vite';
3
+ import { QueryClientProvider } from '@tanstack/react-query';
4
+
5
+ import { WagmiProvider } from 'wagmi';
6
+ import { MarketplaceProvider } from '../src/react/provider';
7
+ import { ModalProvider } from '../src/react/ui/modals/modal-provider';
8
+ import '../src/index.css';
9
+ import { initialize, mswLoader } from 'msw-storybook-addon';
10
+ import {
11
+ createTestQueryClient,
12
+ sequenceConnectConfig,
13
+ wagmiConfig,
14
+ wagmiConfigEmbedded,
15
+ wagmiConfigSequence,
16
+ } from '../test/test-utils';
17
+ import { ConnectionStatus } from './ConnectionStatus';
18
+
19
+ const testQueryClient = createTestQueryClient();
20
+
21
+ // Initialize MSW
22
+ initialize({
23
+ onUnhandledRequest: ({ url, method }) => {
24
+ // Only warn about unhandled requests to our specific API paths
25
+ const pathname = new URL(url).pathname;
26
+ if (pathname.startsWith('/rpc/')) {
27
+ console.warn(`Unhandled ${method} request to ${url}.`);
28
+ }
29
+ // Bypass all other requests (fonts, static assets, etc.)
30
+ },
31
+ });
32
+
33
+ // Mock marketplace SDK config for Storybook
34
+ const mockSdkConfig = {
35
+ projectAccessKey: 'storybook-test-key',
36
+ projectId: '1',
37
+ };
38
+
39
+ // Get wagmi config based on localStorage
40
+ const getWagmiConfig = () => {
41
+ if (typeof window === 'undefined') {
42
+ return wagmiConfig; // Default for SSR
43
+ }
44
+
45
+ const storedConnector = localStorage.getItem('storybook-connector');
46
+ const connectorType = storedConnector || 'auto';
47
+
48
+ switch (connectorType) {
49
+ case 'waas':
50
+ console.log('Using WaaS connector configuration');
51
+ return wagmiConfigEmbedded;
52
+ case 'sequence':
53
+ console.log('Using Sequence connector configuration');
54
+ return wagmiConfigSequence;
55
+ default:
56
+ console.log('Using standard mock connector configuration');
57
+ return wagmiConfig;
58
+ }
59
+ };
60
+
61
+ const preview: Preview = {
62
+ parameters: {
63
+ backgrounds: {
64
+ options: {
65
+ dark: { name: 'Dark', value: '#333' },
66
+ light: { name: 'Light', value: '#F7F9F2' },
67
+ },
68
+ },
69
+ controls: {
70
+ matchers: {
71
+ color: /(background|color)$/i,
72
+ date: /Date$/i,
73
+ },
74
+ },
75
+ },
76
+ initialGlobals: {
77
+ backgrounds: { value: 'dark' },
78
+ },
79
+ loaders: [mswLoader],
80
+ decorators: [
81
+ (Story) => {
82
+ const currentWagmiConfig = getWagmiConfig();
83
+
84
+ return (
85
+ <WagmiProvider config={currentWagmiConfig}>
86
+ <QueryClientProvider client={testQueryClient}>
87
+ <SequenceConnectProvider
88
+ config={sequenceConnectConfig.connectConfig}
89
+ >
90
+ <MarketplaceProvider config={mockSdkConfig}>
91
+ <ConnectionStatus />
92
+ <div style={{ padding: '1rem', minHeight: '100vh' }}>
93
+ <Story />
94
+ </div>
95
+ <ModalProvider />
96
+ </MarketplaceProvider>
97
+ </SequenceConnectProvider>
98
+ </QueryClientProvider>
99
+ </WagmiProvider>
100
+ );
101
+ },
102
+ ],
103
+ };
104
+
105
+ export default preview;
package/CHANGELOG.md CHANGED
@@ -1,41 +1,144 @@
1
1
  # @0xsequence/marketplace-sdk
2
2
 
3
+ ## 1.1.0
4
+
5
+
6
+ ### ✨ Improvements
7
+
8
+ - Enhanced FooterName component with improved offer acceptance logic and balance-based behavior ([#533](https://github.com/0xsequence/marketplace-sdk/pull/533))
9
+ - Improved PriceInput component styling and user experience ([#532](https://github.com/0xsequence/marketplace-sdk/pull/532))
10
+ - Better event handling in collectible card components ([#528](https://github.com/0xsequence/marketplace-sdk/pull/528))
11
+ - Enhanced loading states and visual feedback across UI components
12
+ - Always import all available networks, even if not used in a collection, to improve swap options from chains not used in the marketplace ([#526](https://github.com/0xsequence/marketplace-sdk/pull/526))
13
+ - Improved chain switching logic with optimistic chain switching ([#521](https://github.com/0xsequence/marketplace-sdk/pull/521))
14
+ - Moved sort parameter outside page object in `useListOffersForCollectible` hook while maintaining backward compatibility ([#531](https://github.com/0xsequence/marketplace-sdk/pull/531))
15
+ - Better TypeScript support and type safety improvements
16
+ - Enhanced documentation and JSDoc comments
17
+ - Enhanced query invalidation in ERC1155 checkout flow
18
+ - Improved cache management for user balances with inactive refetch types
19
+ - Better synchronization between different data sources
20
+ - Enhanced switch chain error modal with current chain detection
21
+ - Improved modal state management and error handling
22
+ - Optimized data fetching patterns in shop card components ([#527](https://github.com/0xsequence/marketplace-sdk/pull/527))
23
+ - Reduced unnecessary re-renders in collectible card variants
24
+ - Improved loading states and skeleton components
25
+
26
+ ### 🐛 Bug Fixes
27
+
28
+ - Fixed ERC1155 shop pagination where items beyond the first page were missing metadata and sale information
29
+ - Fixed bug in useSearchTokenMetadata to ensure collectionAddress is defined before doing checks for minted tokens
30
+ - Fixed window error when initializing analytics provider in server-side rendering ([#509](https://github.com/0xsequence/marketplace-sdk/pull/509))
31
+
32
+
33
+ ### 🔧 Internal Improvements
34
+
35
+ - Updated all workspace dependencies to latest versions ([#530](https://github.com/0xsequence/marketplace-sdk/pull/530))
36
+
37
+ - Added complexity rules to Biome configuration for better code quality ([#535](https://github.com/0xsequence/marketplace-sdk/pull/535))
38
+
39
+ - Enhanced formatting and style consistency across the codebase
40
+ - Improved test coverage for critical components
41
+ - Enhanced test utilities and mocking capabilities
42
+ - Dynamic network configuration in tests for better reliability
43
+ - Better error handling in test scenarios
44
+
45
+ ## 1.0.0
46
+
47
+ 🎉 **Production Release** - Sequence Marketplace SDK 1.0! 🎉
48
+
49
+ #### Complete Marketplace Solution
50
+
51
+ - **Primary Sales (Shop)**: Full support for Sequence sales contracts (ERC721 v0 and ERC1155 v0 and v1)
52
+ - **Secondary Sales (Market)**: Comprehensive listing and offer management
53
+
54
+ ### 🚀 New features
55
+
56
+ - Support for Sequence sales contracts (ERC721 v0 and ERC1155 v0 and v1)
57
+ - **New `useProcessStep` hook**: For transaction marketplace api transaction step handling
58
+ - **New buy checkout flow UI**: New checkout flow for buying collectibles, from @0xsequence/checkout
59
+ - Custom wallet class replaced with wagmi hooks and new hooks for wallet operations (useEnsureCorrectChain, useConnectorMetadata, useProcessStep), see breaking changes below
60
+ - All fetching hooks now have a separated query function that can be used with other data fetching libraries or SSR/SSG frameworks
61
+ - All fetching hooks only fetch data when all required parameters are provided
62
+ - Modal style isolation with shadow DOM, preventing global styles from leaking into the document body
63
+ - useSearchTokenMetadata now have an option to only return token metadata for minted tokens `onlyMinted: true`
64
+ - MarketplaceConfig is by now by default never invalidated, allow fetching only serverside
65
+
66
+ - **UI/UX Improvements**:
67
+ - Added optional action buttons to buy flow success modal
68
+ - Fixed ERC1155 quantity modal decimal precision handling
69
+ - Fixed collectible card image opacity issues
70
+ - Improved media display with object-contain for collectible cards
71
+
72
+ ### ⚠️ Breaking Changes
73
+
74
+ By default, the SDK now uses shadow DOM for all modals. To disable this, you can set the `useShadowDOM` flag to `false` in the `SdkConfig`. Other components (media, collectible card etc) are rendered to the document body and requires Tailwind.
75
+ `useShopCollectibleSaleData` hook has been removed. Instead, use `useErc721SaleDetails` and `useErc1155SaleDetails` hooks leveraging marketplace-api
76
+
77
+ - **Wallet**: Complete removal of custom wallet client in favor of wagmi hooks
78
+ - Replace `wallet.address` with `useAccount()` hook from wagmi
79
+ - Replace `wallet.isWaaS` with `useConnectorMetadata().isWaaS`
80
+ - Replace `wallet.kind` with `useConnectorMetadata().walletKind`
81
+ - Replace `wallet.switchChain` with `useEnsureCorrectChain` hook
82
+ - Replace `wallet.signTransactionStep` and `wallet.transferStep` with `useProcessStep` hook
83
+
84
+ ### 🐛 Bug Fixes
85
+
86
+ - Fixed ERC1155 quantity modal decimal handling with proper min/max calculations
87
+ - Fixed pagination issues with minted ERC721 sale tokens
88
+ - Resolved potential state management race conditions in action modals
89
+ - Fixed decimal handling in quantity inputs
90
+ - Fixed collectible card image opacity issues
91
+ - Fixed ERC721 sale contract quantity tracking for V1 contracts
92
+ - Fixed negative remaining supply display in shop cards
93
+ - Improved error handling when quantity values are 0
94
+ - Fixed token approval reset when transaction steps don't exist
95
+ - Auto fee selection for embedded wallets bug fix, now only applies for cancelling orders
96
+
97
+ ### 🔧 Internal Improvements
98
+
99
+ #### Code Organization
100
+
101
+ - Reorganized hooks into logical subdirectories (data, transactions, ui, config)
102
+ - Removed duplicate hooks and consolidated functionality
103
+ - Increased test coverage
104
+ - Some internal hooks have been renamed for consistency
105
+
3
106
  ## 0.10.0
4
107
 
5
108
  ### New Features
6
109
 
7
110
  **Alternative Wallet integration Support**
111
+
8
112
  - Added support for using any wallet connection library (e.g., Privy, Rainbowkit, Dynamic Labs etc.) instead of Sequence Connect
9
113
  - You can now provide a custom `openConnectModal` function to the `MarketplaceProvider` to integrate with your preferred wallet connection flow.
10
114
 
11
-
12
115
  Example with any wallet provider:
116
+
13
117
  ```tsx
14
- import { MarketplaceProvider } from '@0xsequence/marketplace-sdk/react';
15
- import { useConnectModal } from '@my-wallet-provider/connect-modal';
118
+ import { MarketplaceProvider } from "@0xsequence/marketplace-sdk/react";
119
+ import { useConnectModal } from "@my-wallet-provider/connect-modal";
16
120
 
17
121
  function App() {
18
122
  const { openConnectModal } = useConnectModal();
19
-
123
+
20
124
  return (
21
- <MarketplaceProvider
22
- config={sdkConfig}
23
- openConnectModal={openConnectModal}
24
- >
125
+ <MarketplaceProvider config={sdkConfig} openConnectModal={openConnectModal}>
25
126
  {/* Your marketplace app */}
26
127
  </MarketplaceProvider>
27
128
  );
28
129
  }
29
130
  ```
30
131
 
31
- See the [Alternative Wallet Integration Playground](https://github.com/0xsequence/marketplace-sdk/tree/master/playgrounds/alternative-wallets) for a complete example with Dynamic Labs
132
+ See the [Alternative Wallet Integration Playground](https://github.com/0xsequence/marketplace-sdk/tree/master/playgrounds/alternative-wallets) for a complete example with Dynamic Labs
32
133
 
33
134
  **Enhanced Media Component**
135
+
34
136
  - Added `shouldListenForLoad` prop for controlling asset load event handling
35
137
  - Introduced `mediaClassName` prop for controlling the inner media element
36
138
  - Improved asset loading behavior with conditional handling
37
139
 
38
140
  **Shop & Market Improvements**
141
+
39
142
  - Added `ShopActions` component for handling collectible purchase interactions
40
143
  - Enhanced `CollectibleDetails` to conditionally display information based on marketplace type
41
144
  - Improved ERC1155 sale item handling - buy button now hidden when out of stock
@@ -44,19 +147,23 @@ See the [Alternative Wallet Integration Playground](https://github.com/0xsequenc
44
147
  ### API Updates
45
148
 
46
149
  **New Hooks & Queries**
150
+
47
151
  - `useGetCountOfPrimarySaleItems` - Now uses `useQuery` instead of `useInfiniteQuery`
48
152
  - Added `contractAddress` parameter to `TokenBalancesParams` for more precise balance queries
49
153
 
50
154
  **Analytics & Tracking**
155
+
51
156
  - Enhanced buy modal tracking to track cart abandonment
52
157
 
53
158
  ### Developer Experience
54
159
 
55
160
  **Testing & Documentation**
161
+
56
162
  - Expanded test coverage for critical components
57
163
  - Added JSDoc documentation improvements
58
164
 
59
165
  **Build & Configuration**
166
+
60
167
  - Fixed SSR issues with React Day Picker in React-Router V7
61
168
 
62
169
  ### Bug Fixes
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'node:fs/promises';
3
+ import { dirname, join } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import postcss from 'postcss';
6
+ import postcssConfig from './postcss.config.mjs';
7
+
8
+ const __dirname = dirname(fileURLToPath(import.meta.url));
9
+
10
+ /**
11
+ * @param {Object} options
12
+ * @param {boolean} options.copyCSS - Whether to copy CSS to dist
13
+ */
14
+ export async function generateStyles(options = {}) {
15
+ const copyCSS = options.copyCSS ?? false;
16
+
17
+ const sdkPath = join(__dirname, './');
18
+ const inputCSSRelative = 'src/styles/index.css';
19
+ const outputTSPath = join(sdkPath, 'src/styles/styles.ts');
20
+ const outputCSSDir = join(sdkPath, 'dist/styles');
21
+ const outputCSSPath = join(outputCSSDir, 'index.css');
22
+
23
+ try {
24
+ const inputCSSPath = join(sdkPath, inputCSSRelative);
25
+ const cssContent = await fs.readFile(inputCSSPath, 'utf-8');
26
+
27
+ const result = await postcss(postcssConfig.plugins).process(cssContent, {
28
+ from: inputCSSPath,
29
+ });
30
+
31
+ const css = `/* Modified Tailwind CSS, to avoid issues with shadow DOM, see Marketplace SDK - compile-tailwind.js and postcss.config.mjs */
32
+ ${result.css}`;
33
+
34
+ const tsContent = `export const styles = String.raw\`${css}\`;`;
35
+
36
+ await fs.writeFile(outputTSPath, tsContent);
37
+
38
+ if (copyCSS) {
39
+ await fs.mkdir(outputCSSDir, { recursive: true });
40
+ await fs.writeFile(outputCSSPath, css);
41
+ }
42
+
43
+ console.log('✅ Styles compiled successfully');
44
+ return { css, tsContent };
45
+ } catch (error) {
46
+ console.error('❌ Failed to compile styles:', error.message);
47
+ throw error;
48
+ }
49
+ }
50
+
51
+ // Execute, if run as standalone script
52
+ if (import.meta.url === `file://${process.argv[1]}`) {
53
+ generateStyles();
54
+ }