@shopify/hydrogen-react 0.0.0-next-5c16c78 → 0.0.0-next-dada720

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 (567) hide show
  1. package/README.md +21 -21
  2. package/dist/browser-dev/AddToCartButton.mjs +43 -40
  3. package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
  4. package/dist/browser-dev/BaseButton.mjs +13 -15
  5. package/dist/browser-dev/BaseButton.mjs.map +1 -1
  6. package/dist/browser-dev/BuyNowButton.mjs +19 -17
  7. package/dist/browser-dev/BuyNowButton.mjs.map +1 -1
  8. package/dist/browser-dev/CartCheckoutButton.mjs +12 -15
  9. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
  10. package/dist/browser-dev/CartCost.mjs +25 -0
  11. package/dist/browser-dev/CartCost.mjs.map +1 -0
  12. package/dist/browser-dev/CartLinePrice.mjs +18 -0
  13. package/dist/browser-dev/CartLinePrice.mjs.map +1 -0
  14. package/dist/browser-dev/CartLineProvider.mjs +19 -0
  15. package/dist/browser-dev/CartLineProvider.mjs.map +1 -0
  16. package/dist/browser-dev/CartProvider.mjs +73 -67
  17. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  18. package/dist/browser-dev/ExternalVideo.mjs +13 -11
  19. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  20. package/dist/browser-dev/Image.mjs +41 -30
  21. package/dist/browser-dev/Image.mjs.map +1 -1
  22. package/dist/browser-dev/MediaFile.mjs +29 -21
  23. package/dist/browser-dev/MediaFile.mjs.map +1 -1
  24. package/dist/browser-dev/ModelViewer.mjs +138 -76
  25. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  26. package/dist/browser-dev/Money.mjs +12 -9
  27. package/dist/browser-dev/Money.mjs.map +1 -1
  28. package/dist/browser-dev/ProductPrice.mjs +12 -17
  29. package/dist/browser-dev/ProductPrice.mjs.map +1 -1
  30. package/dist/browser-dev/ProductProvider.mjs +102 -73
  31. package/dist/browser-dev/ProductProvider.mjs.map +1 -1
  32. package/dist/browser-dev/ShopPayButton.mjs +14 -24
  33. package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
  34. package/dist/browser-dev/ShopifyProvider.mjs +22 -29
  35. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
  36. package/dist/browser-dev/Video.mjs +30 -21
  37. package/dist/browser-dev/Video.mjs.map +1 -1
  38. package/dist/browser-dev/_virtual/index.mjs +11 -2
  39. package/dist/browser-dev/_virtual/index.mjs.map +1 -1
  40. package/dist/browser-dev/_virtual/with-selector.mjs +11 -2
  41. package/dist/browser-dev/_virtual/with-selector.mjs.map +1 -1
  42. package/dist/browser-dev/analytics-constants.mjs +43 -0
  43. package/dist/browser-dev/analytics-constants.mjs.map +1 -0
  44. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  45. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  46. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  47. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  48. package/dist/browser-dev/analytics-utils.mjs +49 -0
  49. package/dist/browser-dev/analytics-utils.mjs.map +1 -0
  50. package/dist/browser-dev/analytics.mjs +159 -0
  51. package/dist/browser-dev/analytics.mjs.map +1 -0
  52. package/dist/browser-dev/cart-hooks.mjs +29 -34
  53. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  54. package/dist/browser-dev/cart-queries.mjs +50 -20
  55. package/dist/browser-dev/cart-queries.mjs.map +1 -1
  56. package/dist/browser-dev/codegen.helpers.mjs +1 -0
  57. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  58. package/dist/browser-dev/cookies-utils.mjs +50 -0
  59. package/dist/browser-dev/cookies-utils.mjs.map +1 -0
  60. package/dist/browser-dev/image-size.mjs +8 -8
  61. package/dist/browser-dev/image-size.mjs.map +1 -1
  62. package/dist/browser-dev/index.mjs +20 -2
  63. package/dist/browser-dev/index.mjs.map +1 -1
  64. package/dist/browser-dev/load-script.mjs.map +1 -1
  65. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  66. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  67. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  68. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  69. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  70. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  71. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  72. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  73. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  74. package/dist/browser-dev/parse-metafield.mjs +4 -5
  75. package/dist/browser-dev/parse-metafield.mjs.map +1 -1
  76. package/dist/browser-dev/storefront-client.mjs +19 -20
  77. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  78. package/dist/browser-dev/useCartAPIStateMachine.mjs +111 -80
  79. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  80. package/dist/browser-dev/useCartActions.mjs +150 -109
  81. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  82. package/dist/browser-dev/useMoney.mjs +62 -36
  83. package/dist/browser-dev/useMoney.mjs.map +1 -1
  84. package/dist/browser-dev/useShopifyCookies.mjs +41 -0
  85. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -0
  86. package/dist/browser-prod/AddToCartButton.mjs +43 -40
  87. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  88. package/dist/browser-prod/BaseButton.mjs +13 -15
  89. package/dist/browser-prod/BaseButton.mjs.map +1 -1
  90. package/dist/browser-prod/BuyNowButton.mjs +19 -17
  91. package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
  92. package/dist/browser-prod/CartCheckoutButton.mjs +12 -15
  93. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  94. package/dist/browser-prod/CartCost.mjs +25 -0
  95. package/dist/browser-prod/CartCost.mjs.map +1 -0
  96. package/dist/browser-prod/CartLinePrice.mjs +18 -0
  97. package/dist/browser-prod/CartLinePrice.mjs.map +1 -0
  98. package/dist/browser-prod/CartLineProvider.mjs +19 -0
  99. package/dist/browser-prod/CartLineProvider.mjs.map +1 -0
  100. package/dist/browser-prod/CartProvider.mjs +73 -67
  101. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  102. package/dist/browser-prod/ExternalVideo.mjs +13 -11
  103. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  104. package/dist/browser-prod/Image.mjs +35 -28
  105. package/dist/browser-prod/Image.mjs.map +1 -1
  106. package/dist/browser-prod/MediaFile.mjs +29 -21
  107. package/dist/browser-prod/MediaFile.mjs.map +1 -1
  108. package/dist/browser-prod/ModelViewer.mjs +135 -75
  109. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  110. package/dist/browser-prod/Money.mjs +12 -9
  111. package/dist/browser-prod/Money.mjs.map +1 -1
  112. package/dist/browser-prod/ProductPrice.mjs +12 -17
  113. package/dist/browser-prod/ProductPrice.mjs.map +1 -1
  114. package/dist/browser-prod/ProductProvider.mjs +102 -73
  115. package/dist/browser-prod/ProductProvider.mjs.map +1 -1
  116. package/dist/browser-prod/ShopPayButton.mjs +14 -24
  117. package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
  118. package/dist/browser-prod/ShopifyProvider.mjs +22 -26
  119. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
  120. package/dist/browser-prod/Video.mjs +30 -21
  121. package/dist/browser-prod/Video.mjs.map +1 -1
  122. package/dist/browser-prod/_virtual/index.mjs +11 -2
  123. package/dist/browser-prod/_virtual/index.mjs.map +1 -1
  124. package/dist/browser-prod/_virtual/with-selector.mjs +11 -2
  125. package/dist/browser-prod/_virtual/with-selector.mjs.map +1 -1
  126. package/dist/browser-prod/analytics-constants.mjs +43 -0
  127. package/dist/browser-prod/analytics-constants.mjs.map +1 -0
  128. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  129. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  130. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  131. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  132. package/dist/browser-prod/analytics-utils.mjs +49 -0
  133. package/dist/browser-prod/analytics-utils.mjs.map +1 -0
  134. package/dist/browser-prod/analytics.mjs +158 -0
  135. package/dist/browser-prod/analytics.mjs.map +1 -0
  136. package/dist/browser-prod/cart-hooks.mjs +29 -34
  137. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  138. package/dist/browser-prod/cart-queries.mjs +50 -20
  139. package/dist/browser-prod/cart-queries.mjs.map +1 -1
  140. package/dist/browser-prod/codegen.helpers.mjs +1 -0
  141. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  142. package/dist/browser-prod/cookies-utils.mjs +50 -0
  143. package/dist/browser-prod/cookies-utils.mjs.map +1 -0
  144. package/dist/browser-prod/image-size.mjs +8 -8
  145. package/dist/browser-prod/image-size.mjs.map +1 -1
  146. package/dist/browser-prod/index.mjs +20 -2
  147. package/dist/browser-prod/index.mjs.map +1 -1
  148. package/dist/browser-prod/load-script.mjs.map +1 -1
  149. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  150. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  151. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  152. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  153. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  154. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  155. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  156. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  157. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  158. package/dist/browser-prod/parse-metafield.mjs +4 -5
  159. package/dist/browser-prod/parse-metafield.mjs.map +1 -1
  160. package/dist/browser-prod/storefront-client.mjs +19 -20
  161. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  162. package/dist/browser-prod/useCartAPIStateMachine.mjs +111 -80
  163. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  164. package/dist/browser-prod/useCartActions.mjs +150 -109
  165. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  166. package/dist/browser-prod/useMoney.mjs +62 -36
  167. package/dist/browser-prod/useMoney.mjs.map +1 -1
  168. package/dist/browser-prod/useShopifyCookies.mjs +41 -0
  169. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -0
  170. package/dist/node-dev/AddToCartButton.js +44 -41
  171. package/dist/node-dev/AddToCartButton.js.map +1 -1
  172. package/dist/node-dev/AddToCartButton.mjs +43 -40
  173. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  174. package/dist/node-dev/BaseButton.js +14 -16
  175. package/dist/node-dev/BaseButton.js.map +1 -1
  176. package/dist/node-dev/BaseButton.mjs +13 -15
  177. package/dist/node-dev/BaseButton.mjs.map +1 -1
  178. package/dist/node-dev/BuyNowButton.js +20 -18
  179. package/dist/node-dev/BuyNowButton.js.map +1 -1
  180. package/dist/node-dev/BuyNowButton.mjs +19 -17
  181. package/dist/node-dev/BuyNowButton.mjs.map +1 -1
  182. package/dist/node-dev/CartCheckoutButton.js +13 -16
  183. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  184. package/dist/node-dev/CartCheckoutButton.mjs +12 -15
  185. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  186. package/dist/node-dev/CartCost.js +25 -0
  187. package/dist/node-dev/CartCost.js.map +1 -0
  188. package/dist/node-dev/CartCost.mjs +25 -0
  189. package/dist/node-dev/CartCost.mjs.map +1 -0
  190. package/dist/node-dev/CartLinePrice.js +18 -0
  191. package/dist/node-dev/CartLinePrice.js.map +1 -0
  192. package/dist/node-dev/CartLinePrice.mjs +18 -0
  193. package/dist/node-dev/CartLinePrice.mjs.map +1 -0
  194. package/dist/node-dev/CartLineProvider.js +19 -0
  195. package/dist/node-dev/CartLineProvider.js.map +1 -0
  196. package/dist/node-dev/CartLineProvider.mjs +19 -0
  197. package/dist/node-dev/CartLineProvider.mjs.map +1 -0
  198. package/dist/node-dev/CartProvider.js +74 -68
  199. package/dist/node-dev/CartProvider.js.map +1 -1
  200. package/dist/node-dev/CartProvider.mjs +73 -67
  201. package/dist/node-dev/CartProvider.mjs.map +1 -1
  202. package/dist/node-dev/ExternalVideo.js +14 -12
  203. package/dist/node-dev/ExternalVideo.js.map +1 -1
  204. package/dist/node-dev/ExternalVideo.mjs +13 -11
  205. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  206. package/dist/node-dev/Image.js +42 -31
  207. package/dist/node-dev/Image.js.map +1 -1
  208. package/dist/node-dev/Image.mjs +41 -30
  209. package/dist/node-dev/Image.mjs.map +1 -1
  210. package/dist/node-dev/MediaFile.js +30 -22
  211. package/dist/node-dev/MediaFile.js.map +1 -1
  212. package/dist/node-dev/MediaFile.mjs +29 -21
  213. package/dist/node-dev/MediaFile.mjs.map +1 -1
  214. package/dist/node-dev/ModelViewer.js +139 -77
  215. package/dist/node-dev/ModelViewer.js.map +1 -1
  216. package/dist/node-dev/ModelViewer.mjs +138 -76
  217. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  218. package/dist/node-dev/Money.js +13 -10
  219. package/dist/node-dev/Money.js.map +1 -1
  220. package/dist/node-dev/Money.mjs +12 -9
  221. package/dist/node-dev/Money.mjs.map +1 -1
  222. package/dist/node-dev/ProductPrice.js +13 -18
  223. package/dist/node-dev/ProductPrice.js.map +1 -1
  224. package/dist/node-dev/ProductPrice.mjs +12 -17
  225. package/dist/node-dev/ProductPrice.mjs.map +1 -1
  226. package/dist/node-dev/ProductProvider.js +103 -74
  227. package/dist/node-dev/ProductProvider.js.map +1 -1
  228. package/dist/node-dev/ProductProvider.mjs +102 -73
  229. package/dist/node-dev/ProductProvider.mjs.map +1 -1
  230. package/dist/node-dev/ShopPayButton.js +14 -24
  231. package/dist/node-dev/ShopPayButton.js.map +1 -1
  232. package/dist/node-dev/ShopPayButton.mjs +14 -24
  233. package/dist/node-dev/ShopPayButton.mjs.map +1 -1
  234. package/dist/node-dev/ShopifyProvider.js +23 -30
  235. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  236. package/dist/node-dev/ShopifyProvider.mjs +22 -29
  237. package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
  238. package/dist/node-dev/Video.js +31 -22
  239. package/dist/node-dev/Video.js.map +1 -1
  240. package/dist/node-dev/Video.mjs +30 -21
  241. package/dist/node-dev/Video.mjs.map +1 -1
  242. package/dist/node-dev/_virtual/index.js +11 -3
  243. package/dist/node-dev/_virtual/index.js.map +1 -1
  244. package/dist/node-dev/_virtual/index.mjs +11 -2
  245. package/dist/node-dev/_virtual/index.mjs.map +1 -1
  246. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.js +1 -1
  247. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  248. package/dist/node-dev/_virtual/with-selector.development.js +1 -1
  249. package/dist/node-dev/_virtual/with-selector.js +11 -3
  250. package/dist/node-dev/_virtual/with-selector.js.map +1 -1
  251. package/dist/node-dev/_virtual/with-selector.mjs +11 -2
  252. package/dist/node-dev/_virtual/with-selector.mjs.map +1 -1
  253. package/dist/node-dev/_virtual/with-selector.production.min.js +1 -1
  254. package/dist/node-dev/analytics-constants.js +43 -0
  255. package/dist/node-dev/analytics-constants.js.map +1 -0
  256. package/dist/node-dev/analytics-constants.mjs +43 -0
  257. package/dist/node-dev/analytics-constants.mjs.map +1 -0
  258. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  259. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  260. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  261. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  262. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js +58 -0
  263. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  264. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  265. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  266. package/dist/node-dev/analytics-utils.js +49 -0
  267. package/dist/node-dev/analytics-utils.js.map +1 -0
  268. package/dist/node-dev/analytics-utils.mjs +49 -0
  269. package/dist/node-dev/analytics-utils.mjs.map +1 -0
  270. package/dist/node-dev/analytics.js +159 -0
  271. package/dist/node-dev/analytics.js.map +1 -0
  272. package/dist/node-dev/analytics.mjs +159 -0
  273. package/dist/node-dev/analytics.mjs.map +1 -0
  274. package/dist/node-dev/cart-constants.js +1 -1
  275. package/dist/node-dev/cart-hooks.js +29 -34
  276. package/dist/node-dev/cart-hooks.js.map +1 -1
  277. package/dist/node-dev/cart-hooks.mjs +29 -34
  278. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  279. package/dist/node-dev/cart-queries.js +51 -21
  280. package/dist/node-dev/cart-queries.js.map +1 -1
  281. package/dist/node-dev/cart-queries.mjs +50 -20
  282. package/dist/node-dev/cart-queries.mjs.map +1 -1
  283. package/dist/node-dev/codegen.helpers.js +2 -1
  284. package/dist/node-dev/codegen.helpers.js.map +1 -1
  285. package/dist/node-dev/codegen.helpers.mjs +1 -0
  286. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  287. package/dist/node-dev/cookies-utils.js +50 -0
  288. package/dist/node-dev/cookies-utils.js.map +1 -0
  289. package/dist/node-dev/cookies-utils.mjs +50 -0
  290. package/dist/node-dev/cookies-utils.mjs.map +1 -0
  291. package/dist/node-dev/flatten-connection.js +1 -1
  292. package/dist/node-dev/image-size.js +9 -9
  293. package/dist/node-dev/image-size.js.map +1 -1
  294. package/dist/node-dev/image-size.mjs +8 -8
  295. package/dist/node-dev/image-size.mjs.map +1 -1
  296. package/dist/node-dev/index.js +21 -3
  297. package/dist/node-dev/index.js.map +1 -1
  298. package/dist/node-dev/index.mjs +20 -2
  299. package/dist/node-dev/index.mjs.map +1 -1
  300. package/dist/node-dev/load-script.js +1 -1
  301. package/dist/node-dev/load-script.js.map +1 -1
  302. package/dist/node-dev/load-script.mjs.map +1 -1
  303. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js +1 -1
  304. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js.map +1 -1
  305. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  306. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js +2 -2
  307. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js.map +1 -1
  308. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  309. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  310. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js +2 -4
  311. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  312. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  313. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  314. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  315. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  316. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  317. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  318. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  319. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  320. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  321. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  322. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  323. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  324. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js +4 -4
  325. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  326. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  327. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  328. package/dist/node-dev/parse-metafield.js +5 -6
  329. package/dist/node-dev/parse-metafield.js.map +1 -1
  330. package/dist/node-dev/parse-metafield.mjs +4 -5
  331. package/dist/node-dev/parse-metafield.mjs.map +1 -1
  332. package/dist/node-dev/storefront-api-constants.js +1 -1
  333. package/dist/node-dev/storefront-client.js +20 -21
  334. package/dist/node-dev/storefront-client.js.map +1 -1
  335. package/dist/node-dev/storefront-client.mjs +19 -20
  336. package/dist/node-dev/storefront-client.mjs.map +1 -1
  337. package/dist/node-dev/useCartAPIStateMachine.js +112 -81
  338. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  339. package/dist/node-dev/useCartAPIStateMachine.mjs +111 -80
  340. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  341. package/dist/node-dev/useCartActions.js +151 -110
  342. package/dist/node-dev/useCartActions.js.map +1 -1
  343. package/dist/node-dev/useCartActions.mjs +150 -109
  344. package/dist/node-dev/useCartActions.mjs.map +1 -1
  345. package/dist/node-dev/useMoney.js +63 -37
  346. package/dist/node-dev/useMoney.js.map +1 -1
  347. package/dist/node-dev/useMoney.mjs +62 -36
  348. package/dist/node-dev/useMoney.mjs.map +1 -1
  349. package/dist/node-dev/useShopifyCookies.js +41 -0
  350. package/dist/node-dev/useShopifyCookies.js.map +1 -0
  351. package/dist/node-dev/useShopifyCookies.mjs +41 -0
  352. package/dist/node-dev/useShopifyCookies.mjs.map +1 -0
  353. package/dist/node-prod/AddToCartButton.js +44 -41
  354. package/dist/node-prod/AddToCartButton.js.map +1 -1
  355. package/dist/node-prod/AddToCartButton.mjs +43 -40
  356. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  357. package/dist/node-prod/BaseButton.js +14 -16
  358. package/dist/node-prod/BaseButton.js.map +1 -1
  359. package/dist/node-prod/BaseButton.mjs +13 -15
  360. package/dist/node-prod/BaseButton.mjs.map +1 -1
  361. package/dist/node-prod/BuyNowButton.js +20 -18
  362. package/dist/node-prod/BuyNowButton.js.map +1 -1
  363. package/dist/node-prod/BuyNowButton.mjs +19 -17
  364. package/dist/node-prod/BuyNowButton.mjs.map +1 -1
  365. package/dist/node-prod/CartCheckoutButton.js +13 -16
  366. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  367. package/dist/node-prod/CartCheckoutButton.mjs +12 -15
  368. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  369. package/dist/node-prod/CartCost.js +25 -0
  370. package/dist/node-prod/CartCost.js.map +1 -0
  371. package/dist/node-prod/CartCost.mjs +25 -0
  372. package/dist/node-prod/CartCost.mjs.map +1 -0
  373. package/dist/node-prod/CartLinePrice.js +18 -0
  374. package/dist/node-prod/CartLinePrice.js.map +1 -0
  375. package/dist/node-prod/CartLinePrice.mjs +18 -0
  376. package/dist/node-prod/CartLinePrice.mjs.map +1 -0
  377. package/dist/node-prod/CartLineProvider.js +19 -0
  378. package/dist/node-prod/CartLineProvider.js.map +1 -0
  379. package/dist/node-prod/CartLineProvider.mjs +19 -0
  380. package/dist/node-prod/CartLineProvider.mjs.map +1 -0
  381. package/dist/node-prod/CartProvider.js +74 -68
  382. package/dist/node-prod/CartProvider.js.map +1 -1
  383. package/dist/node-prod/CartProvider.mjs +73 -67
  384. package/dist/node-prod/CartProvider.mjs.map +1 -1
  385. package/dist/node-prod/ExternalVideo.js +14 -12
  386. package/dist/node-prod/ExternalVideo.js.map +1 -1
  387. package/dist/node-prod/ExternalVideo.mjs +13 -11
  388. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  389. package/dist/node-prod/Image.js +36 -29
  390. package/dist/node-prod/Image.js.map +1 -1
  391. package/dist/node-prod/Image.mjs +35 -28
  392. package/dist/node-prod/Image.mjs.map +1 -1
  393. package/dist/node-prod/MediaFile.js +30 -22
  394. package/dist/node-prod/MediaFile.js.map +1 -1
  395. package/dist/node-prod/MediaFile.mjs +29 -21
  396. package/dist/node-prod/MediaFile.mjs.map +1 -1
  397. package/dist/node-prod/ModelViewer.js +136 -76
  398. package/dist/node-prod/ModelViewer.js.map +1 -1
  399. package/dist/node-prod/ModelViewer.mjs +135 -75
  400. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  401. package/dist/node-prod/Money.js +13 -10
  402. package/dist/node-prod/Money.js.map +1 -1
  403. package/dist/node-prod/Money.mjs +12 -9
  404. package/dist/node-prod/Money.mjs.map +1 -1
  405. package/dist/node-prod/ProductPrice.js +13 -18
  406. package/dist/node-prod/ProductPrice.js.map +1 -1
  407. package/dist/node-prod/ProductPrice.mjs +12 -17
  408. package/dist/node-prod/ProductPrice.mjs.map +1 -1
  409. package/dist/node-prod/ProductProvider.js +103 -74
  410. package/dist/node-prod/ProductProvider.js.map +1 -1
  411. package/dist/node-prod/ProductProvider.mjs +102 -73
  412. package/dist/node-prod/ProductProvider.mjs.map +1 -1
  413. package/dist/node-prod/ShopPayButton.js +14 -24
  414. package/dist/node-prod/ShopPayButton.js.map +1 -1
  415. package/dist/node-prod/ShopPayButton.mjs +14 -24
  416. package/dist/node-prod/ShopPayButton.mjs.map +1 -1
  417. package/dist/node-prod/ShopifyProvider.js +23 -27
  418. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  419. package/dist/node-prod/ShopifyProvider.mjs +22 -26
  420. package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
  421. package/dist/node-prod/Video.js +31 -22
  422. package/dist/node-prod/Video.js.map +1 -1
  423. package/dist/node-prod/Video.mjs +30 -21
  424. package/dist/node-prod/Video.mjs.map +1 -1
  425. package/dist/node-prod/_virtual/index.js +11 -3
  426. package/dist/node-prod/_virtual/index.js.map +1 -1
  427. package/dist/node-prod/_virtual/index.mjs +11 -2
  428. package/dist/node-prod/_virtual/index.mjs.map +1 -1
  429. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.js +1 -1
  430. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  431. package/dist/node-prod/_virtual/with-selector.development.js +1 -1
  432. package/dist/node-prod/_virtual/with-selector.js +11 -3
  433. package/dist/node-prod/_virtual/with-selector.js.map +1 -1
  434. package/dist/node-prod/_virtual/with-selector.mjs +11 -2
  435. package/dist/node-prod/_virtual/with-selector.mjs.map +1 -1
  436. package/dist/node-prod/_virtual/with-selector.production.min.js +1 -1
  437. package/dist/node-prod/analytics-constants.js +43 -0
  438. package/dist/node-prod/analytics-constants.js.map +1 -0
  439. package/dist/node-prod/analytics-constants.mjs +43 -0
  440. package/dist/node-prod/analytics-constants.mjs.map +1 -0
  441. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  442. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  443. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  444. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  445. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js +58 -0
  446. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  447. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  448. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  449. package/dist/node-prod/analytics-utils.js +49 -0
  450. package/dist/node-prod/analytics-utils.js.map +1 -0
  451. package/dist/node-prod/analytics-utils.mjs +49 -0
  452. package/dist/node-prod/analytics-utils.mjs.map +1 -0
  453. package/dist/node-prod/analytics.js +158 -0
  454. package/dist/node-prod/analytics.js.map +1 -0
  455. package/dist/node-prod/analytics.mjs +158 -0
  456. package/dist/node-prod/analytics.mjs.map +1 -0
  457. package/dist/node-prod/cart-constants.js +1 -1
  458. package/dist/node-prod/cart-hooks.js +29 -34
  459. package/dist/node-prod/cart-hooks.js.map +1 -1
  460. package/dist/node-prod/cart-hooks.mjs +29 -34
  461. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  462. package/dist/node-prod/cart-queries.js +51 -21
  463. package/dist/node-prod/cart-queries.js.map +1 -1
  464. package/dist/node-prod/cart-queries.mjs +50 -20
  465. package/dist/node-prod/cart-queries.mjs.map +1 -1
  466. package/dist/node-prod/codegen.helpers.js +2 -1
  467. package/dist/node-prod/codegen.helpers.js.map +1 -1
  468. package/dist/node-prod/codegen.helpers.mjs +1 -0
  469. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  470. package/dist/node-prod/cookies-utils.js +50 -0
  471. package/dist/node-prod/cookies-utils.js.map +1 -0
  472. package/dist/node-prod/cookies-utils.mjs +50 -0
  473. package/dist/node-prod/cookies-utils.mjs.map +1 -0
  474. package/dist/node-prod/flatten-connection.js +1 -1
  475. package/dist/node-prod/image-size.js +9 -9
  476. package/dist/node-prod/image-size.js.map +1 -1
  477. package/dist/node-prod/image-size.mjs +8 -8
  478. package/dist/node-prod/image-size.mjs.map +1 -1
  479. package/dist/node-prod/index.js +21 -3
  480. package/dist/node-prod/index.js.map +1 -1
  481. package/dist/node-prod/index.mjs +20 -2
  482. package/dist/node-prod/index.mjs.map +1 -1
  483. package/dist/node-prod/load-script.js +1 -1
  484. package/dist/node-prod/load-script.js.map +1 -1
  485. package/dist/node-prod/load-script.mjs.map +1 -1
  486. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js +1 -1
  487. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js.map +1 -1
  488. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  489. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js +2 -2
  490. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js.map +1 -1
  491. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  492. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  493. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js +2 -4
  494. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  495. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  496. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  497. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  498. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  499. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  500. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  501. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  502. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  503. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  504. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  505. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  506. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  507. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js +4 -4
  508. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  509. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  510. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  511. package/dist/node-prod/parse-metafield.js +5 -6
  512. package/dist/node-prod/parse-metafield.js.map +1 -1
  513. package/dist/node-prod/parse-metafield.mjs +4 -5
  514. package/dist/node-prod/parse-metafield.mjs.map +1 -1
  515. package/dist/node-prod/storefront-api-constants.js +1 -1
  516. package/dist/node-prod/storefront-client.js +20 -21
  517. package/dist/node-prod/storefront-client.js.map +1 -1
  518. package/dist/node-prod/storefront-client.mjs +19 -20
  519. package/dist/node-prod/storefront-client.mjs.map +1 -1
  520. package/dist/node-prod/useCartAPIStateMachine.js +112 -81
  521. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  522. package/dist/node-prod/useCartAPIStateMachine.mjs +111 -80
  523. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  524. package/dist/node-prod/useCartActions.js +151 -110
  525. package/dist/node-prod/useCartActions.js.map +1 -1
  526. package/dist/node-prod/useCartActions.mjs +150 -109
  527. package/dist/node-prod/useCartActions.mjs.map +1 -1
  528. package/dist/node-prod/useMoney.js +63 -37
  529. package/dist/node-prod/useMoney.js.map +1 -1
  530. package/dist/node-prod/useMoney.mjs +62 -36
  531. package/dist/node-prod/useMoney.mjs.map +1 -1
  532. package/dist/node-prod/useShopifyCookies.js +41 -0
  533. package/dist/node-prod/useShopifyCookies.js.map +1 -0
  534. package/dist/node-prod/useShopifyCookies.mjs +41 -0
  535. package/dist/node-prod/useShopifyCookies.mjs.map +1 -0
  536. package/dist/types/AddToCartButton.d.ts +3 -2
  537. package/dist/types/BuyNowButton.d.ts +7 -3
  538. package/dist/types/CartCheckoutButton.d.ts +6 -5
  539. package/dist/types/CartCost.d.ts +7 -5
  540. package/dist/types/CartLinePrice.d.ts +4 -4
  541. package/dist/types/CartLineProvider.d.ts +8 -6
  542. package/dist/types/CartProvider.d.ts +12 -2
  543. package/dist/types/ExternalVideo.d.ts +1 -2
  544. package/dist/types/Image.d.ts +5 -3
  545. package/dist/types/MediaFile.d.ts +12 -11
  546. package/dist/types/ModelViewer.d.ts +2 -2
  547. package/dist/types/ProductPrice.d.ts +1 -1
  548. package/dist/types/ProductProvider.d.ts +1 -1
  549. package/dist/types/ShopPayButton.d.ts +10 -10
  550. package/dist/types/ShopifyProvider.d.ts +35 -39
  551. package/dist/types/analytics-constants.d.ts +48 -0
  552. package/dist/types/analytics-schema-custom-storefront-customer-tracking.d.ts +3 -0
  553. package/dist/types/analytics-schema-trekkie-storefront-page-view.d.ts +2 -0
  554. package/dist/types/analytics-types.d.ts +108 -0
  555. package/dist/types/analytics-utils.d.ts +36 -0
  556. package/dist/types/analytics.d.ts +9 -0
  557. package/dist/types/cookies-utils.d.ts +4 -0
  558. package/dist/types/index.d.cts +11 -3
  559. package/dist/types/index.d.ts +11 -3
  560. package/dist/types/parse-metafield.d.ts +2 -4
  561. package/dist/types/storefront-client.d.ts +14 -14
  562. package/dist/types/useShopifyCookies.d.ts +14 -0
  563. package/dist/umd/hydrogen-react.dev.js +1625 -979
  564. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  565. package/dist/umd/hydrogen-react.prod.js +18 -16
  566. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  567. package/package.json +24 -19
@@ -1,23 +1,23 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
3
4
  const require$$0 = require("react");
4
5
  const loadScript = require("./load-script.js");
5
- const jsxRuntime = require("react/jsx-runtime");
6
6
  function ModelViewer(props) {
7
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
8
- const [modelViewer, setModelViewer] = require$$0.useState(void 0);
7
+ var _a, _b, _c;
8
+ const [modelViewer, setModelViewer] = require$$0.useState(
9
+ void 0
10
+ );
9
11
  const callbackRef = require$$0.useCallback((node) => {
10
12
  setModelViewer(node);
11
13
  }, []);
12
- const {
13
- data,
14
- children,
15
- className,
16
- ...passthroughProps
17
- } = props;
18
- const modelViewerLoadedStatus = loadScript.useLoadScript("https://unpkg.com/@google/model-viewer@v1.12.1/dist/model-viewer.min.js", {
19
- module: true
20
- });
14
+ const { data, children, className, ...passthroughProps } = props;
15
+ const modelViewerLoadedStatus = loadScript.useLoadScript(
16
+ "https://unpkg.com/@google/model-viewer@v1.12.1/dist/model-viewer.min.js",
17
+ {
18
+ module: true
19
+ }
20
+ );
21
21
  require$$0.useEffect(() => {
22
22
  if (!modelViewer) {
23
23
  return;
@@ -29,25 +29,43 @@ function ModelViewer(props) {
29
29
  if (passthroughProps.onPreload)
30
30
  modelViewer.addEventListener("preload", passthroughProps.onPreload);
31
31
  if (passthroughProps.onModelVisibility)
32
- modelViewer.addEventListener("model-visibility", passthroughProps.onModelVisibility);
32
+ modelViewer.addEventListener(
33
+ "model-visibility",
34
+ passthroughProps.onModelVisibility
35
+ );
33
36
  if (passthroughProps.onProgress)
34
37
  modelViewer.addEventListener("progress", passthroughProps.onProgress);
35
38
  if (passthroughProps.onArStatus)
36
39
  modelViewer.addEventListener("ar-status", passthroughProps.onArStatus);
37
40
  if (passthroughProps.onArTracking)
38
- modelViewer.addEventListener("ar-tracking", passthroughProps.onArTracking);
41
+ modelViewer.addEventListener(
42
+ "ar-tracking",
43
+ passthroughProps.onArTracking
44
+ );
39
45
  if (passthroughProps.onQuickLookButtonTapped)
40
- modelViewer.addEventListener("quick-look-button-tapped", passthroughProps.onQuickLookButtonTapped);
46
+ modelViewer.addEventListener(
47
+ "quick-look-button-tapped",
48
+ passthroughProps.onQuickLookButtonTapped
49
+ );
41
50
  if (passthroughProps.onCameraChange)
42
- modelViewer.addEventListener("camera-change", passthroughProps.onCameraChange);
51
+ modelViewer.addEventListener(
52
+ "camera-change",
53
+ passthroughProps.onCameraChange
54
+ );
43
55
  if (passthroughProps.onEnvironmentChange)
44
- modelViewer.addEventListener("environment-change", passthroughProps.onEnvironmentChange);
56
+ modelViewer.addEventListener(
57
+ "environment-change",
58
+ passthroughProps.onEnvironmentChange
59
+ );
45
60
  if (passthroughProps.onPlay)
46
61
  modelViewer.addEventListener("play", passthroughProps.onPlay);
47
62
  if (passthroughProps.onPause)
48
63
  modelViewer.addEventListener("ar-status", passthroughProps.onPause);
49
64
  if (passthroughProps.onSceneGraphReady)
50
- modelViewer.addEventListener("scene-graph-ready", passthroughProps.onSceneGraphReady);
65
+ modelViewer.addEventListener(
66
+ "scene-graph-ready",
67
+ passthroughProps.onSceneGraphReady
68
+ );
51
69
  return () => {
52
70
  if (modelViewer == null) {
53
71
  return;
@@ -59,27 +77,66 @@ function ModelViewer(props) {
59
77
  if (passthroughProps.onPreload)
60
78
  modelViewer.removeEventListener("preload", passthroughProps.onPreload);
61
79
  if (passthroughProps.onModelVisibility)
62
- modelViewer.removeEventListener("model-visibility", passthroughProps.onModelVisibility);
80
+ modelViewer.removeEventListener(
81
+ "model-visibility",
82
+ passthroughProps.onModelVisibility
83
+ );
63
84
  if (passthroughProps.onProgress)
64
- modelViewer.removeEventListener("progress", passthroughProps.onProgress);
85
+ modelViewer.removeEventListener(
86
+ "progress",
87
+ passthroughProps.onProgress
88
+ );
65
89
  if (passthroughProps.onArStatus)
66
- modelViewer.removeEventListener("ar-status", passthroughProps.onArStatus);
90
+ modelViewer.removeEventListener(
91
+ "ar-status",
92
+ passthroughProps.onArStatus
93
+ );
67
94
  if (passthroughProps.onArTracking)
68
- modelViewer.removeEventListener("ar-tracking", passthroughProps.onArTracking);
95
+ modelViewer.removeEventListener(
96
+ "ar-tracking",
97
+ passthroughProps.onArTracking
98
+ );
69
99
  if (passthroughProps.onQuickLookButtonTapped)
70
- modelViewer.removeEventListener("quick-look-button-tapped", passthroughProps.onQuickLookButtonTapped);
100
+ modelViewer.removeEventListener(
101
+ "quick-look-button-tapped",
102
+ passthroughProps.onQuickLookButtonTapped
103
+ );
71
104
  if (passthroughProps.onCameraChange)
72
- modelViewer.removeEventListener("camera-change", passthroughProps.onCameraChange);
105
+ modelViewer.removeEventListener(
106
+ "camera-change",
107
+ passthroughProps.onCameraChange
108
+ );
73
109
  if (passthroughProps.onEnvironmentChange)
74
- modelViewer.removeEventListener("environment-change", passthroughProps.onEnvironmentChange);
110
+ modelViewer.removeEventListener(
111
+ "environment-change",
112
+ passthroughProps.onEnvironmentChange
113
+ );
75
114
  if (passthroughProps.onPlay)
76
115
  modelViewer.removeEventListener("play", passthroughProps.onPlay);
77
116
  if (passthroughProps.onPause)
78
117
  modelViewer.removeEventListener("ar-status", passthroughProps.onPause);
79
118
  if (passthroughProps.onSceneGraphReady)
80
- modelViewer.removeEventListener("scene-graph-ready", passthroughProps.onSceneGraphReady);
119
+ modelViewer.removeEventListener(
120
+ "scene-graph-ready",
121
+ passthroughProps.onSceneGraphReady
122
+ );
81
123
  };
82
- }, [modelViewer, passthroughProps.onArStatus, passthroughProps.onArTracking, passthroughProps.onCameraChange, passthroughProps.onEnvironmentChange, passthroughProps.onError, passthroughProps.onLoad, passthroughProps.onModelVisibility, passthroughProps.onPause, passthroughProps.onPlay, passthroughProps.onPreload, passthroughProps.onProgress, passthroughProps.onQuickLookButtonTapped, passthroughProps.onSceneGraphReady]);
124
+ }, [
125
+ modelViewer,
126
+ passthroughProps.onArStatus,
127
+ passthroughProps.onArTracking,
128
+ passthroughProps.onCameraChange,
129
+ passthroughProps.onEnvironmentChange,
130
+ passthroughProps.onError,
131
+ passthroughProps.onLoad,
132
+ passthroughProps.onModelVisibility,
133
+ passthroughProps.onPause,
134
+ passthroughProps.onPlay,
135
+ passthroughProps.onPreload,
136
+ passthroughProps.onProgress,
137
+ passthroughProps.onQuickLookButtonTapped,
138
+ passthroughProps.onSceneGraphReady
139
+ ]);
83
140
  if (modelViewerLoadedStatus !== "done") {
84
141
  return null;
85
142
  }
@@ -90,56 +147,61 @@ function ModelViewer(props) {
90
147
  }
91
148
  }
92
149
  if (!data.alt) {
93
- console.warn(`<ModelViewer/> requires the 'data.alt' prop for accessibility`);
150
+ console.warn(
151
+ `<ModelViewer/> requires the 'data.alt' prop for accessibility`
152
+ );
94
153
  }
95
- return /* @__PURE__ */ jsxRuntime.jsx("model-viewer", {
96
- ref: callbackRef,
97
- ...passthroughProps,
98
- className,
99
- id: (_c = passthroughProps.id) != null ? _c : data.id,
100
- src: data.sources[0].url,
101
- alt: (_d = data.alt) != null ? _d : null,
102
- "camera-controls": (_e = passthroughProps.cameraControls) != null ? _e : true,
103
- poster: (_g = passthroughProps.poster || ((_f = data.previewImage) == null ? void 0 : _f.url)) != null ? _g : null,
104
- autoplay: (_h = passthroughProps.autoplay) != null ? _h : true,
105
- loading: passthroughProps.loading,
106
- reveal: passthroughProps.reveal,
107
- ar: passthroughProps.ar,
108
- "ar-modes": passthroughProps.arModes,
109
- "ar-scale": passthroughProps.arScale,
110
- "ar-placement": passthroughProps.arPlacement,
111
- "ios-src": passthroughProps.iosSrc,
112
- "touch-action": passthroughProps.touchAction,
113
- "disable-zoom": passthroughProps.disableZoom,
114
- "orbit-sensitivity": passthroughProps.orbitSensitivity,
115
- "auto-rotate": passthroughProps.autoRotate,
116
- "auto-rotate-delay": passthroughProps.autoRotateDelay,
117
- "rotation-per-second": passthroughProps.rotationPerSecond,
118
- "interaction-policy": passthroughProps.interactionPolicy,
119
- "interaction-prompt": passthroughProps.interactionPrompt,
120
- "interaction-prompt-style": passthroughProps.interactionPromptStyle,
121
- "interaction-prompt-threshold": passthroughProps.interactionPromptThreshold,
122
- "camera-orbit": passthroughProps.cameraOrbit,
123
- "camera-target": passthroughProps.cameraTarget,
124
- "field-of-view": passthroughProps.fieldOfView,
125
- "max-camera-orbit": passthroughProps.maxCameraOrbit,
126
- "min-camera-orbit": passthroughProps.minCameraOrbit,
127
- "max-field-of-view": passthroughProps.maxFieldOfView,
128
- "min-field-of-view": passthroughProps.minFieldOfView,
129
- bounds: passthroughProps.bounds,
130
- "interpolation-decay": (_i = passthroughProps.interpolationDecay) != null ? _i : 100,
131
- "skybox-image": passthroughProps.skyboxImage,
132
- "environment-image": passthroughProps.environmentImage,
133
- exposure: passthroughProps.exposure,
134
- "shadow-intensity": (_j = passthroughProps.shadowIntensity) != null ? _j : 0,
135
- "shadow-softness": (_k = passthroughProps.shadowSoftness) != null ? _k : 0,
136
- "animation-name": passthroughProps.animationName,
137
- "animation-crossfade-duration": passthroughProps.animationCrossfadeDuration,
138
- "variant-name": passthroughProps.variantName,
139
- orientation: passthroughProps.orientation,
140
- scale: passthroughProps.scale,
141
- children
142
- });
154
+ return /* @__PURE__ */ jsxRuntime.jsx(
155
+ "model-viewer",
156
+ {
157
+ ref: callbackRef,
158
+ ...passthroughProps,
159
+ className,
160
+ id: passthroughProps.id ?? data.id,
161
+ src: data.sources[0].url,
162
+ alt: data.alt ?? null,
163
+ "camera-controls": passthroughProps.cameraControls ?? true,
164
+ poster: (passthroughProps.poster || ((_c = data.previewImage) == null ? void 0 : _c.url)) ?? null,
165
+ autoplay: passthroughProps.autoplay ?? true,
166
+ loading: passthroughProps.loading,
167
+ reveal: passthroughProps.reveal,
168
+ ar: passthroughProps.ar,
169
+ "ar-modes": passthroughProps.arModes,
170
+ "ar-scale": passthroughProps.arScale,
171
+ "ar-placement": passthroughProps.arPlacement,
172
+ "ios-src": passthroughProps.iosSrc,
173
+ "touch-action": passthroughProps.touchAction,
174
+ "disable-zoom": passthroughProps.disableZoom,
175
+ "orbit-sensitivity": passthroughProps.orbitSensitivity,
176
+ "auto-rotate": passthroughProps.autoRotate,
177
+ "auto-rotate-delay": passthroughProps.autoRotateDelay,
178
+ "rotation-per-second": passthroughProps.rotationPerSecond,
179
+ "interaction-policy": passthroughProps.interactionPolicy,
180
+ "interaction-prompt": passthroughProps.interactionPrompt,
181
+ "interaction-prompt-style": passthroughProps.interactionPromptStyle,
182
+ "interaction-prompt-threshold": passthroughProps.interactionPromptThreshold,
183
+ "camera-orbit": passthroughProps.cameraOrbit,
184
+ "camera-target": passthroughProps.cameraTarget,
185
+ "field-of-view": passthroughProps.fieldOfView,
186
+ "max-camera-orbit": passthroughProps.maxCameraOrbit,
187
+ "min-camera-orbit": passthroughProps.minCameraOrbit,
188
+ "max-field-of-view": passthroughProps.maxFieldOfView,
189
+ "min-field-of-view": passthroughProps.minFieldOfView,
190
+ bounds: passthroughProps.bounds,
191
+ "interpolation-decay": passthroughProps.interpolationDecay ?? 100,
192
+ "skybox-image": passthroughProps.skyboxImage,
193
+ "environment-image": passthroughProps.environmentImage,
194
+ exposure: passthroughProps.exposure,
195
+ "shadow-intensity": passthroughProps.shadowIntensity ?? 0,
196
+ "shadow-softness": passthroughProps.shadowSoftness ?? 0,
197
+ "animation-name": passthroughProps.animationName,
198
+ "animation-crossfade-duration": passthroughProps.animationCrossfadeDuration,
199
+ "variant-name": passthroughProps.variantName,
200
+ orientation: passthroughProps.orientation,
201
+ scale: passthroughProps.scale,
202
+ children
203
+ }
204
+ );
143
205
  }
144
206
  exports.ModelViewer = ModelViewer;
145
207
  //# sourceMappingURL=ModelViewer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelViewer.js","sources":["../../src/ModelViewer.tsx"],"sourcesContent":["import {useState, useEffect, useCallback} from 'react';\nimport {useLoadScript} from './load-script.js';\nimport type {Model3d} from './storefront-api-types.js';\nimport type {PartialDeep} from 'type-fest';\nimport type {ModelViewerElement} from '@google/model-viewer/lib/model-viewer.js';\n\ntype PropsWeControl = 'src';\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n 'model-viewer': PartialDeep<\n ModelViewerElement,\n {recurseIntoArrays: true}\n >;\n }\n }\n}\n\ntype ModelViewerProps = Omit<\n PartialDeep<JSX.IntrinsicElements['model-viewer'], {recurseIntoArrays: true}>,\n PropsWeControl\n> & {\n /** An object with fields that correspond to the Storefront API's [Model3D object](https://shopify.dev/api/storefront/latest/objects/model3d). */\n data: PartialDeep<Model3d, {recurseIntoArrays: true}>;\n /** The callback to invoke when the 'error' event is triggered. Refer to [error in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-loading-events-error). */\n onError?: (event: Event) => void;\n /** The callback to invoke when the `load` event is triggered. Refer to [load in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-loading-events-load). */\n onLoad?: (event: Event) => void;\n /** The callback to invoke when the 'preload' event is triggered. Refer to [preload in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-loading-events-preload). */\n onPreload?: (event: Event) => void;\n /** The callback to invoke when the 'model-visibility' event is triggered. Refer to [model-visibility in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-loading-events-modelVisibility). */\n onModelVisibility?: (event: Event) => void;\n /** The callback to invoke when the 'progress' event is triggered. Refer to [progress in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-loading-events-progress). */\n onProgress?: (event: Event) => void;\n /** The callback to invoke when the 'ar-status' event is triggered. Refer to [ar-status in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-augmentedreality-events-arStatus). */\n onArStatus?: (event: Event) => void;\n /** The callback to invoke when the 'ar-tracking' event is triggered. Refer to [ar-tracking in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-augmentedreality-events-arTracking). */\n onArTracking?: (event: Event) => void;\n /** The callback to invoke when the 'quick-look-button-tapped' event is triggered. Refer to [quick-look-button-tapped in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-augmentedreality-events-quickLookButtonTapped). */\n onQuickLookButtonTapped?: (event: Event) => void;\n /** The callback to invoke when the 'camera-change' event is triggered. Refer to [camera-change in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-stagingandcameras-events-cameraChange). */\n onCameraChange?: (event: Event) => void;\n /** The callback to invoke when the 'environment-change' event is triggered. Refer to [environment-change in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-lightingandenv-events-environmentChange). */\n onEnvironmentChange?: (event: Event) => void;\n /** The callback to invoke when the 'play' event is triggered. Refer to [play in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-animation-events-play). */\n onPlay?: (event: Event) => void;\n /** The callback to invoke when the 'pause' event is triggered. Refer to [pause in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-animation-events-pause). */\n onPause?: (event: Event) => void;\n /** The callback to invoke when the 'scene-graph-ready' event is triggered. Refer to [scene-graph-ready in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-scenegraph-events-sceneGraphReady). */\n onSceneGraphReady?: (event: Event) => void;\n};\n\n/**\n * The `ModelViewer` component renders a 3D model (with the `model-viewer` custom element) for\n * the Storefront API's [Model3d object](https://shopify.dev/api/storefront/reference/products/model3d).\n *\n * The `model-viewer` custom element is lazily downloaded through a dynamically-injected `<script type=\"module\">` tag when the `<ModelViewer />` component is rendered\n *\n * ModelViewer is using version `1.21.1` of the `@google/model-viewer` library.\n */\nexport function ModelViewer(props: ModelViewerProps) {\n const [modelViewer, setModelViewer] = useState<undefined | HTMLElement>(\n undefined\n );\n const callbackRef = useCallback((node: HTMLElement) => {\n setModelViewer(node);\n }, []);\n const {data, children, className, ...passthroughProps} = props;\n\n const modelViewerLoadedStatus = useLoadScript(\n 'https://unpkg.com/@google/model-viewer@v1.12.1/dist/model-viewer.min.js',\n {\n module: true,\n }\n );\n\n useEffect(() => {\n if (!modelViewer) {\n return;\n }\n if (passthroughProps.onError)\n modelViewer.addEventListener('error', passthroughProps.onError);\n if (passthroughProps.onLoad)\n modelViewer.addEventListener('load', passthroughProps.onLoad);\n if (passthroughProps.onPreload)\n modelViewer.addEventListener('preload', passthroughProps.onPreload);\n if (passthroughProps.onModelVisibility)\n modelViewer.addEventListener(\n 'model-visibility',\n passthroughProps.onModelVisibility\n );\n if (passthroughProps.onProgress)\n modelViewer.addEventListener('progress', passthroughProps.onProgress);\n if (passthroughProps.onArStatus)\n modelViewer.addEventListener('ar-status', passthroughProps.onArStatus);\n if (passthroughProps.onArTracking)\n modelViewer.addEventListener(\n 'ar-tracking',\n passthroughProps.onArTracking\n );\n if (passthroughProps.onQuickLookButtonTapped)\n modelViewer.addEventListener(\n 'quick-look-button-tapped',\n passthroughProps.onQuickLookButtonTapped\n );\n if (passthroughProps.onCameraChange)\n modelViewer.addEventListener(\n 'camera-change',\n passthroughProps.onCameraChange\n );\n if (passthroughProps.onEnvironmentChange)\n modelViewer.addEventListener(\n 'environment-change',\n passthroughProps.onEnvironmentChange\n );\n if (passthroughProps.onPlay)\n modelViewer.addEventListener('play', passthroughProps.onPlay);\n if (passthroughProps.onPause)\n modelViewer.addEventListener('ar-status', passthroughProps.onPause);\n if (passthroughProps.onSceneGraphReady)\n modelViewer.addEventListener(\n 'scene-graph-ready',\n passthroughProps.onSceneGraphReady\n );\n\n return () => {\n if (modelViewer == null) {\n return;\n }\n if (passthroughProps.onError)\n modelViewer.removeEventListener('error', passthroughProps.onError);\n if (passthroughProps.onLoad)\n modelViewer.removeEventListener('load', passthroughProps.onLoad);\n if (passthroughProps.onPreload)\n modelViewer.removeEventListener('preload', passthroughProps.onPreload);\n if (passthroughProps.onModelVisibility)\n modelViewer.removeEventListener(\n 'model-visibility',\n passthroughProps.onModelVisibility\n );\n if (passthroughProps.onProgress)\n modelViewer.removeEventListener(\n 'progress',\n passthroughProps.onProgress\n );\n if (passthroughProps.onArStatus)\n modelViewer.removeEventListener(\n 'ar-status',\n passthroughProps.onArStatus\n );\n if (passthroughProps.onArTracking)\n modelViewer.removeEventListener(\n 'ar-tracking',\n passthroughProps.onArTracking\n );\n if (passthroughProps.onQuickLookButtonTapped)\n modelViewer.removeEventListener(\n 'quick-look-button-tapped',\n passthroughProps.onQuickLookButtonTapped\n );\n if (passthroughProps.onCameraChange)\n modelViewer.removeEventListener(\n 'camera-change',\n passthroughProps.onCameraChange\n );\n if (passthroughProps.onEnvironmentChange)\n modelViewer.removeEventListener(\n 'environment-change',\n passthroughProps.onEnvironmentChange\n );\n if (passthroughProps.onPlay)\n modelViewer.removeEventListener('play', passthroughProps.onPlay);\n if (passthroughProps.onPause)\n modelViewer.removeEventListener('ar-status', passthroughProps.onPause);\n if (passthroughProps.onSceneGraphReady)\n modelViewer.removeEventListener(\n 'scene-graph-ready',\n passthroughProps.onSceneGraphReady\n );\n };\n }, [\n modelViewer,\n passthroughProps.onArStatus,\n passthroughProps.onArTracking,\n passthroughProps.onCameraChange,\n passthroughProps.onEnvironmentChange,\n passthroughProps.onError,\n passthroughProps.onLoad,\n passthroughProps.onModelVisibility,\n passthroughProps.onPause,\n passthroughProps.onPlay,\n passthroughProps.onPreload,\n passthroughProps.onProgress,\n passthroughProps.onQuickLookButtonTapped,\n passthroughProps.onSceneGraphReady,\n ]);\n\n if (modelViewerLoadedStatus !== 'done') {\n // TODO: What do we want to display while the model-viewer library loads?\n return null;\n }\n\n if (!data.sources?.[0]?.url) {\n const sourcesUrlError = `<ModelViewer/> requires 'data.sources' prop to be an array, with an object that has a property 'url' on it. Rendering 'null'`;\n if (__HYDROGEN_DEV__) {\n throw new Error(sourcesUrlError);\n } else {\n console.error(sourcesUrlError);\n return null;\n }\n }\n\n if (__HYDROGEN_DEV__ && !data.alt) {\n console.warn(\n `<ModelViewer/> requires the 'data.alt' prop for accessibility`\n );\n }\n\n return (\n <model-viewer\n // @ts-expect-error ref should exist\n ref={callbackRef}\n {...passthroughProps}\n className={className}\n id={passthroughProps.id ?? data.id}\n src={data.sources[0].url}\n alt={data.alt ?? null}\n camera-controls={passthroughProps.cameraControls ?? true}\n poster={(passthroughProps.poster || data.previewImage?.url) ?? null}\n autoplay={passthroughProps.autoplay ?? true}\n loading={passthroughProps.loading}\n reveal={passthroughProps.reveal}\n ar={passthroughProps.ar}\n ar-modes={passthroughProps.arModes}\n ar-scale={passthroughProps.arScale}\n // @ts-expect-error arPlacement should exist as a type, not sure why it doesn't. https://modelviewer.dev/docs/index.html#entrydocs-augmentedreality-attributes-arPlacement\n ar-placement={passthroughProps.arPlacement}\n ios-src={passthroughProps.iosSrc}\n touch-action={passthroughProps.touchAction}\n disable-zoom={passthroughProps.disableZoom}\n orbit-sensitivity={passthroughProps.orbitSensitivity}\n auto-rotate={passthroughProps.autoRotate}\n auto-rotate-delay={passthroughProps.autoRotateDelay}\n // @ts-expect-error rotationPerSecond should exist as a type, not sure why it doesn't. https://modelviewer.dev/docs/index.html#entrydocs-stagingandcameras-attributes-rotationPerSecond\n rotation-per-second={passthroughProps.rotationPerSecond}\n interaction-policy={passthroughProps.interactionPolicy}\n interaction-prompt={passthroughProps.interactionPrompt}\n interaction-prompt-style={passthroughProps.interactionPromptStyle}\n interaction-prompt-threshold={passthroughProps.interactionPromptThreshold}\n camera-orbit={passthroughProps.cameraOrbit}\n camera-target={passthroughProps.cameraTarget}\n field-of-view={passthroughProps.fieldOfView}\n max-camera-orbit={passthroughProps.maxCameraOrbit}\n min-camera-orbit={passthroughProps.minCameraOrbit}\n max-field-of-view={passthroughProps.maxFieldOfView}\n min-field-of-view={passthroughProps.minFieldOfView}\n bounds={passthroughProps.bounds}\n interpolation-decay={passthroughProps.interpolationDecay ?? 100}\n skybox-image={passthroughProps.skyboxImage}\n environment-image={passthroughProps.environmentImage}\n exposure={passthroughProps.exposure}\n shadow-intensity={passthroughProps.shadowIntensity ?? 0}\n shadow-softness={passthroughProps.shadowSoftness ?? 0}\n animation-name={passthroughProps.animationName}\n animation-crossfade-duration={passthroughProps.animationCrossfadeDuration}\n variant-name={passthroughProps.variantName}\n orientation={passthroughProps.orientation}\n scale={passthroughProps.scale}\n >\n {children}\n </model-viewer>\n );\n}\n"],"names":["ModelViewer","props","modelViewer","setModelViewer","useState","undefined","callbackRef","useCallback","node","data","children","className","passthroughProps","modelViewerLoadedStatus","useLoadScript","module","useEffect","onError","addEventListener","onLoad","onPreload","onModelVisibility","onProgress","onArStatus","onArTracking","onQuickLookButtonTapped","onCameraChange","onEnvironmentChange","onPlay","onPause","onSceneGraphReady","removeEventListener","sources","url","sourcesUrlError","Error","__HYDROGEN_DEV__","alt","console","warn","id","cameraControls","poster","previewImage","autoplay","loading","reveal","ar","arModes","arScale","arPlacement","iosSrc","touchAction","disableZoom","orbitSensitivity","autoRotate","autoRotateDelay","rotationPerSecond","interactionPolicy","interactionPrompt","interactionPromptStyle","interactionPromptThreshold","cameraOrbit","cameraTarget","fieldOfView","maxCameraOrbit","minCameraOrbit","maxFieldOfView","minFieldOfView","bounds","interpolationDecay","skyboxImage","environmentImage","exposure","shadowIntensity","shadowSoftness","animationName","animationCrossfadeDuration","variantName","orientation","scale"],"mappings":"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"}
1
+ {"version":3,"file":"ModelViewer.js","sources":["../../src/ModelViewer.tsx"],"sourcesContent":["import {useState, useEffect, useCallback} from 'react';\nimport {useLoadScript} from './load-script.js';\nimport type {Model3d} from './storefront-api-types.js';\nimport type {PartialDeep} from 'type-fest';\nimport type {ModelViewerElement} from '@google/model-viewer/lib/model-viewer.js';\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n 'model-viewer': PartialDeep<\n ModelViewerElement,\n {recurseIntoArrays: true}\n >;\n }\n }\n}\n\ntype ModelViewerProps = Omit<\n PartialDeep<JSX.IntrinsicElements['model-viewer'], {recurseIntoArrays: true}>,\n 'src'\n> &\n ModelViewerBaseProps;\n\ntype ModelViewerBaseProps = {\n /** An object with fields that correspond to the Storefront API's [Model3D object](https://shopify.dev/api/storefront/latest/objects/model3d). */\n data: PartialDeep<Model3d, {recurseIntoArrays: true}>;\n /** The callback to invoke when the 'error' event is triggered. Refer to [error in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-loading-events-error). */\n onError?: (event: Event) => void;\n /** The callback to invoke when the `load` event is triggered. Refer to [load in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-loading-events-load). */\n onLoad?: (event: Event) => void;\n /** The callback to invoke when the 'preload' event is triggered. Refer to [preload in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-loading-events-preload). */\n onPreload?: (event: Event) => void;\n /** The callback to invoke when the 'model-visibility' event is triggered. Refer to [model-visibility in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-loading-events-modelVisibility). */\n onModelVisibility?: (event: Event) => void;\n /** The callback to invoke when the 'progress' event is triggered. Refer to [progress in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-loading-events-progress). */\n onProgress?: (event: Event) => void;\n /** The callback to invoke when the 'ar-status' event is triggered. Refer to [ar-status in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-augmentedreality-events-arStatus). */\n onArStatus?: (event: Event) => void;\n /** The callback to invoke when the 'ar-tracking' event is triggered. Refer to [ar-tracking in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-augmentedreality-events-arTracking). */\n onArTracking?: (event: Event) => void;\n /** The callback to invoke when the 'quick-look-button-tapped' event is triggered. Refer to [quick-look-button-tapped in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-augmentedreality-events-quickLookButtonTapped). */\n onQuickLookButtonTapped?: (event: Event) => void;\n /** The callback to invoke when the 'camera-change' event is triggered. Refer to [camera-change in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-stagingandcameras-events-cameraChange). */\n onCameraChange?: (event: Event) => void;\n /** The callback to invoke when the 'environment-change' event is triggered. Refer to [environment-change in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-lightingandenv-events-environmentChange). */\n onEnvironmentChange?: (event: Event) => void;\n /** The callback to invoke when the 'play' event is triggered. Refer to [play in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-animation-events-play). */\n onPlay?: (event: Event) => void;\n /** The callback to invoke when the 'pause' event is triggered. Refer to [pause in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-animation-events-pause). */\n onPause?: (event: Event) => void;\n /** The callback to invoke when the 'scene-graph-ready' event is triggered. Refer to [scene-graph-ready in the <model-viewer> documentation](https://modelviewer.dev/docs/index.html#entrydocs-scenegraph-events-sceneGraphReady). */\n onSceneGraphReady?: (event: Event) => void;\n};\n\n/**\n * The `ModelViewer` component renders a 3D model (with the `model-viewer` custom element) for\n * the Storefront API's [Model3d object](https://shopify.dev/api/storefront/reference/products/model3d).\n *\n * The `model-viewer` custom element is lazily downloaded through a dynamically-injected `<script type=\"module\">` tag when the `<ModelViewer />` component is rendered\n *\n * ModelViewer is using version `1.21.1` of the `@google/model-viewer` library.\n */\nexport function ModelViewer(props: ModelViewerProps) {\n const [modelViewer, setModelViewer] = useState<undefined | HTMLElement>(\n undefined\n );\n const callbackRef = useCallback((node: HTMLElement) => {\n setModelViewer(node);\n }, []);\n const {data, children, className, ...passthroughProps} = props;\n\n const modelViewerLoadedStatus = useLoadScript(\n 'https://unpkg.com/@google/model-viewer@v1.12.1/dist/model-viewer.min.js',\n {\n module: true,\n }\n );\n\n useEffect(() => {\n if (!modelViewer) {\n return;\n }\n if (passthroughProps.onError)\n modelViewer.addEventListener('error', passthroughProps.onError);\n if (passthroughProps.onLoad)\n modelViewer.addEventListener('load', passthroughProps.onLoad);\n if (passthroughProps.onPreload)\n modelViewer.addEventListener('preload', passthroughProps.onPreload);\n if (passthroughProps.onModelVisibility)\n modelViewer.addEventListener(\n 'model-visibility',\n passthroughProps.onModelVisibility\n );\n if (passthroughProps.onProgress)\n modelViewer.addEventListener('progress', passthroughProps.onProgress);\n if (passthroughProps.onArStatus)\n modelViewer.addEventListener('ar-status', passthroughProps.onArStatus);\n if (passthroughProps.onArTracking)\n modelViewer.addEventListener(\n 'ar-tracking',\n passthroughProps.onArTracking\n );\n if (passthroughProps.onQuickLookButtonTapped)\n modelViewer.addEventListener(\n 'quick-look-button-tapped',\n passthroughProps.onQuickLookButtonTapped\n );\n if (passthroughProps.onCameraChange)\n modelViewer.addEventListener(\n 'camera-change',\n passthroughProps.onCameraChange\n );\n if (passthroughProps.onEnvironmentChange)\n modelViewer.addEventListener(\n 'environment-change',\n passthroughProps.onEnvironmentChange\n );\n if (passthroughProps.onPlay)\n modelViewer.addEventListener('play', passthroughProps.onPlay);\n if (passthroughProps.onPause)\n modelViewer.addEventListener('ar-status', passthroughProps.onPause);\n if (passthroughProps.onSceneGraphReady)\n modelViewer.addEventListener(\n 'scene-graph-ready',\n passthroughProps.onSceneGraphReady\n );\n\n return () => {\n if (modelViewer == null) {\n return;\n }\n if (passthroughProps.onError)\n modelViewer.removeEventListener('error', passthroughProps.onError);\n if (passthroughProps.onLoad)\n modelViewer.removeEventListener('load', passthroughProps.onLoad);\n if (passthroughProps.onPreload)\n modelViewer.removeEventListener('preload', passthroughProps.onPreload);\n if (passthroughProps.onModelVisibility)\n modelViewer.removeEventListener(\n 'model-visibility',\n passthroughProps.onModelVisibility\n );\n if (passthroughProps.onProgress)\n modelViewer.removeEventListener(\n 'progress',\n passthroughProps.onProgress\n );\n if (passthroughProps.onArStatus)\n modelViewer.removeEventListener(\n 'ar-status',\n passthroughProps.onArStatus\n );\n if (passthroughProps.onArTracking)\n modelViewer.removeEventListener(\n 'ar-tracking',\n passthroughProps.onArTracking\n );\n if (passthroughProps.onQuickLookButtonTapped)\n modelViewer.removeEventListener(\n 'quick-look-button-tapped',\n passthroughProps.onQuickLookButtonTapped\n );\n if (passthroughProps.onCameraChange)\n modelViewer.removeEventListener(\n 'camera-change',\n passthroughProps.onCameraChange\n );\n if (passthroughProps.onEnvironmentChange)\n modelViewer.removeEventListener(\n 'environment-change',\n passthroughProps.onEnvironmentChange\n );\n if (passthroughProps.onPlay)\n modelViewer.removeEventListener('play', passthroughProps.onPlay);\n if (passthroughProps.onPause)\n modelViewer.removeEventListener('ar-status', passthroughProps.onPause);\n if (passthroughProps.onSceneGraphReady)\n modelViewer.removeEventListener(\n 'scene-graph-ready',\n passthroughProps.onSceneGraphReady\n );\n };\n }, [\n modelViewer,\n passthroughProps.onArStatus,\n passthroughProps.onArTracking,\n passthroughProps.onCameraChange,\n passthroughProps.onEnvironmentChange,\n passthroughProps.onError,\n passthroughProps.onLoad,\n passthroughProps.onModelVisibility,\n passthroughProps.onPause,\n passthroughProps.onPlay,\n passthroughProps.onPreload,\n passthroughProps.onProgress,\n passthroughProps.onQuickLookButtonTapped,\n passthroughProps.onSceneGraphReady,\n ]);\n\n if (modelViewerLoadedStatus !== 'done') {\n // TODO: What do we want to display while the model-viewer library loads?\n return null;\n }\n\n if (!data.sources?.[0]?.url) {\n const sourcesUrlError = `<ModelViewer/> requires 'data.sources' prop to be an array, with an object that has a property 'url' on it. Rendering 'null'`;\n if (__HYDROGEN_DEV__) {\n throw new Error(sourcesUrlError);\n } else {\n console.error(sourcesUrlError);\n return null;\n }\n }\n\n if (__HYDROGEN_DEV__ && !data.alt) {\n console.warn(\n `<ModelViewer/> requires the 'data.alt' prop for accessibility`\n );\n }\n\n return (\n <model-viewer\n // @ts-expect-error ref should exist\n ref={callbackRef}\n {...passthroughProps}\n className={className}\n id={passthroughProps.id ?? data.id}\n src={data.sources[0].url}\n alt={data.alt ?? null}\n camera-controls={passthroughProps.cameraControls ?? true}\n poster={(passthroughProps.poster || data.previewImage?.url) ?? null}\n autoplay={passthroughProps.autoplay ?? true}\n loading={passthroughProps.loading}\n reveal={passthroughProps.reveal}\n ar={passthroughProps.ar}\n ar-modes={passthroughProps.arModes}\n ar-scale={passthroughProps.arScale}\n // @ts-expect-error arPlacement should exist as a type, not sure why it doesn't. https://modelviewer.dev/docs/index.html#entrydocs-augmentedreality-attributes-arPlacement\n ar-placement={passthroughProps.arPlacement}\n ios-src={passthroughProps.iosSrc}\n touch-action={passthroughProps.touchAction}\n disable-zoom={passthroughProps.disableZoom}\n orbit-sensitivity={passthroughProps.orbitSensitivity}\n auto-rotate={passthroughProps.autoRotate}\n auto-rotate-delay={passthroughProps.autoRotateDelay}\n // @ts-expect-error rotationPerSecond should exist as a type, not sure why it doesn't. https://modelviewer.dev/docs/index.html#entrydocs-stagingandcameras-attributes-rotationPerSecond\n rotation-per-second={passthroughProps.rotationPerSecond}\n interaction-policy={passthroughProps.interactionPolicy}\n interaction-prompt={passthroughProps.interactionPrompt}\n interaction-prompt-style={passthroughProps.interactionPromptStyle}\n interaction-prompt-threshold={passthroughProps.interactionPromptThreshold}\n camera-orbit={passthroughProps.cameraOrbit}\n camera-target={passthroughProps.cameraTarget}\n field-of-view={passthroughProps.fieldOfView}\n max-camera-orbit={passthroughProps.maxCameraOrbit}\n min-camera-orbit={passthroughProps.minCameraOrbit}\n max-field-of-view={passthroughProps.maxFieldOfView}\n min-field-of-view={passthroughProps.minFieldOfView}\n bounds={passthroughProps.bounds}\n interpolation-decay={passthroughProps.interpolationDecay ?? 100}\n skybox-image={passthroughProps.skyboxImage}\n environment-image={passthroughProps.environmentImage}\n exposure={passthroughProps.exposure}\n shadow-intensity={passthroughProps.shadowIntensity ?? 0}\n shadow-softness={passthroughProps.shadowSoftness ?? 0}\n animation-name={passthroughProps.animationName}\n animation-crossfade-duration={passthroughProps.animationCrossfadeDuration}\n variant-name={passthroughProps.variantName}\n orientation={passthroughProps.orientation}\n scale={passthroughProps.scale}\n >\n {children}\n </model-viewer>\n );\n}\n"],"names":["useState","useCallback","useLoadScript","useEffect","jsx"],"mappings":"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"}
@@ -1,21 +1,21 @@
1
+ import { jsx } from "react/jsx-runtime";
1
2
  import { useState, useCallback, useEffect } from "react";
2
3
  import { useLoadScript } from "./load-script.mjs";
3
- import { jsx } from "react/jsx-runtime";
4
4
  function ModelViewer(props) {
5
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
6
- const [modelViewer, setModelViewer] = useState(void 0);
5
+ var _a, _b, _c;
6
+ const [modelViewer, setModelViewer] = useState(
7
+ void 0
8
+ );
7
9
  const callbackRef = useCallback((node) => {
8
10
  setModelViewer(node);
9
11
  }, []);
10
- const {
11
- data,
12
- children,
13
- className,
14
- ...passthroughProps
15
- } = props;
16
- const modelViewerLoadedStatus = useLoadScript("https://unpkg.com/@google/model-viewer@v1.12.1/dist/model-viewer.min.js", {
17
- module: true
18
- });
12
+ const { data, children, className, ...passthroughProps } = props;
13
+ const modelViewerLoadedStatus = useLoadScript(
14
+ "https://unpkg.com/@google/model-viewer@v1.12.1/dist/model-viewer.min.js",
15
+ {
16
+ module: true
17
+ }
18
+ );
19
19
  useEffect(() => {
20
20
  if (!modelViewer) {
21
21
  return;
@@ -27,25 +27,43 @@ function ModelViewer(props) {
27
27
  if (passthroughProps.onPreload)
28
28
  modelViewer.addEventListener("preload", passthroughProps.onPreload);
29
29
  if (passthroughProps.onModelVisibility)
30
- modelViewer.addEventListener("model-visibility", passthroughProps.onModelVisibility);
30
+ modelViewer.addEventListener(
31
+ "model-visibility",
32
+ passthroughProps.onModelVisibility
33
+ );
31
34
  if (passthroughProps.onProgress)
32
35
  modelViewer.addEventListener("progress", passthroughProps.onProgress);
33
36
  if (passthroughProps.onArStatus)
34
37
  modelViewer.addEventListener("ar-status", passthroughProps.onArStatus);
35
38
  if (passthroughProps.onArTracking)
36
- modelViewer.addEventListener("ar-tracking", passthroughProps.onArTracking);
39
+ modelViewer.addEventListener(
40
+ "ar-tracking",
41
+ passthroughProps.onArTracking
42
+ );
37
43
  if (passthroughProps.onQuickLookButtonTapped)
38
- modelViewer.addEventListener("quick-look-button-tapped", passthroughProps.onQuickLookButtonTapped);
44
+ modelViewer.addEventListener(
45
+ "quick-look-button-tapped",
46
+ passthroughProps.onQuickLookButtonTapped
47
+ );
39
48
  if (passthroughProps.onCameraChange)
40
- modelViewer.addEventListener("camera-change", passthroughProps.onCameraChange);
49
+ modelViewer.addEventListener(
50
+ "camera-change",
51
+ passthroughProps.onCameraChange
52
+ );
41
53
  if (passthroughProps.onEnvironmentChange)
42
- modelViewer.addEventListener("environment-change", passthroughProps.onEnvironmentChange);
54
+ modelViewer.addEventListener(
55
+ "environment-change",
56
+ passthroughProps.onEnvironmentChange
57
+ );
43
58
  if (passthroughProps.onPlay)
44
59
  modelViewer.addEventListener("play", passthroughProps.onPlay);
45
60
  if (passthroughProps.onPause)
46
61
  modelViewer.addEventListener("ar-status", passthroughProps.onPause);
47
62
  if (passthroughProps.onSceneGraphReady)
48
- modelViewer.addEventListener("scene-graph-ready", passthroughProps.onSceneGraphReady);
63
+ modelViewer.addEventListener(
64
+ "scene-graph-ready",
65
+ passthroughProps.onSceneGraphReady
66
+ );
49
67
  return () => {
50
68
  if (modelViewer == null) {
51
69
  return;
@@ -57,27 +75,66 @@ function ModelViewer(props) {
57
75
  if (passthroughProps.onPreload)
58
76
  modelViewer.removeEventListener("preload", passthroughProps.onPreload);
59
77
  if (passthroughProps.onModelVisibility)
60
- modelViewer.removeEventListener("model-visibility", passthroughProps.onModelVisibility);
78
+ modelViewer.removeEventListener(
79
+ "model-visibility",
80
+ passthroughProps.onModelVisibility
81
+ );
61
82
  if (passthroughProps.onProgress)
62
- modelViewer.removeEventListener("progress", passthroughProps.onProgress);
83
+ modelViewer.removeEventListener(
84
+ "progress",
85
+ passthroughProps.onProgress
86
+ );
63
87
  if (passthroughProps.onArStatus)
64
- modelViewer.removeEventListener("ar-status", passthroughProps.onArStatus);
88
+ modelViewer.removeEventListener(
89
+ "ar-status",
90
+ passthroughProps.onArStatus
91
+ );
65
92
  if (passthroughProps.onArTracking)
66
- modelViewer.removeEventListener("ar-tracking", passthroughProps.onArTracking);
93
+ modelViewer.removeEventListener(
94
+ "ar-tracking",
95
+ passthroughProps.onArTracking
96
+ );
67
97
  if (passthroughProps.onQuickLookButtonTapped)
68
- modelViewer.removeEventListener("quick-look-button-tapped", passthroughProps.onQuickLookButtonTapped);
98
+ modelViewer.removeEventListener(
99
+ "quick-look-button-tapped",
100
+ passthroughProps.onQuickLookButtonTapped
101
+ );
69
102
  if (passthroughProps.onCameraChange)
70
- modelViewer.removeEventListener("camera-change", passthroughProps.onCameraChange);
103
+ modelViewer.removeEventListener(
104
+ "camera-change",
105
+ passthroughProps.onCameraChange
106
+ );
71
107
  if (passthroughProps.onEnvironmentChange)
72
- modelViewer.removeEventListener("environment-change", passthroughProps.onEnvironmentChange);
108
+ modelViewer.removeEventListener(
109
+ "environment-change",
110
+ passthroughProps.onEnvironmentChange
111
+ );
73
112
  if (passthroughProps.onPlay)
74
113
  modelViewer.removeEventListener("play", passthroughProps.onPlay);
75
114
  if (passthroughProps.onPause)
76
115
  modelViewer.removeEventListener("ar-status", passthroughProps.onPause);
77
116
  if (passthroughProps.onSceneGraphReady)
78
- modelViewer.removeEventListener("scene-graph-ready", passthroughProps.onSceneGraphReady);
117
+ modelViewer.removeEventListener(
118
+ "scene-graph-ready",
119
+ passthroughProps.onSceneGraphReady
120
+ );
79
121
  };
80
- }, [modelViewer, passthroughProps.onArStatus, passthroughProps.onArTracking, passthroughProps.onCameraChange, passthroughProps.onEnvironmentChange, passthroughProps.onError, passthroughProps.onLoad, passthroughProps.onModelVisibility, passthroughProps.onPause, passthroughProps.onPlay, passthroughProps.onPreload, passthroughProps.onProgress, passthroughProps.onQuickLookButtonTapped, passthroughProps.onSceneGraphReady]);
122
+ }, [
123
+ modelViewer,
124
+ passthroughProps.onArStatus,
125
+ passthroughProps.onArTracking,
126
+ passthroughProps.onCameraChange,
127
+ passthroughProps.onEnvironmentChange,
128
+ passthroughProps.onError,
129
+ passthroughProps.onLoad,
130
+ passthroughProps.onModelVisibility,
131
+ passthroughProps.onPause,
132
+ passthroughProps.onPlay,
133
+ passthroughProps.onPreload,
134
+ passthroughProps.onProgress,
135
+ passthroughProps.onQuickLookButtonTapped,
136
+ passthroughProps.onSceneGraphReady
137
+ ]);
81
138
  if (modelViewerLoadedStatus !== "done") {
82
139
  return null;
83
140
  }
@@ -88,56 +145,61 @@ function ModelViewer(props) {
88
145
  }
89
146
  }
90
147
  if (!data.alt) {
91
- console.warn(`<ModelViewer/> requires the 'data.alt' prop for accessibility`);
148
+ console.warn(
149
+ `<ModelViewer/> requires the 'data.alt' prop for accessibility`
150
+ );
92
151
  }
93
- return /* @__PURE__ */ jsx("model-viewer", {
94
- ref: callbackRef,
95
- ...passthroughProps,
96
- className,
97
- id: (_c = passthroughProps.id) != null ? _c : data.id,
98
- src: data.sources[0].url,
99
- alt: (_d = data.alt) != null ? _d : null,
100
- "camera-controls": (_e = passthroughProps.cameraControls) != null ? _e : true,
101
- poster: (_g = passthroughProps.poster || ((_f = data.previewImage) == null ? void 0 : _f.url)) != null ? _g : null,
102
- autoplay: (_h = passthroughProps.autoplay) != null ? _h : true,
103
- loading: passthroughProps.loading,
104
- reveal: passthroughProps.reveal,
105
- ar: passthroughProps.ar,
106
- "ar-modes": passthroughProps.arModes,
107
- "ar-scale": passthroughProps.arScale,
108
- "ar-placement": passthroughProps.arPlacement,
109
- "ios-src": passthroughProps.iosSrc,
110
- "touch-action": passthroughProps.touchAction,
111
- "disable-zoom": passthroughProps.disableZoom,
112
- "orbit-sensitivity": passthroughProps.orbitSensitivity,
113
- "auto-rotate": passthroughProps.autoRotate,
114
- "auto-rotate-delay": passthroughProps.autoRotateDelay,
115
- "rotation-per-second": passthroughProps.rotationPerSecond,
116
- "interaction-policy": passthroughProps.interactionPolicy,
117
- "interaction-prompt": passthroughProps.interactionPrompt,
118
- "interaction-prompt-style": passthroughProps.interactionPromptStyle,
119
- "interaction-prompt-threshold": passthroughProps.interactionPromptThreshold,
120
- "camera-orbit": passthroughProps.cameraOrbit,
121
- "camera-target": passthroughProps.cameraTarget,
122
- "field-of-view": passthroughProps.fieldOfView,
123
- "max-camera-orbit": passthroughProps.maxCameraOrbit,
124
- "min-camera-orbit": passthroughProps.minCameraOrbit,
125
- "max-field-of-view": passthroughProps.maxFieldOfView,
126
- "min-field-of-view": passthroughProps.minFieldOfView,
127
- bounds: passthroughProps.bounds,
128
- "interpolation-decay": (_i = passthroughProps.interpolationDecay) != null ? _i : 100,
129
- "skybox-image": passthroughProps.skyboxImage,
130
- "environment-image": passthroughProps.environmentImage,
131
- exposure: passthroughProps.exposure,
132
- "shadow-intensity": (_j = passthroughProps.shadowIntensity) != null ? _j : 0,
133
- "shadow-softness": (_k = passthroughProps.shadowSoftness) != null ? _k : 0,
134
- "animation-name": passthroughProps.animationName,
135
- "animation-crossfade-duration": passthroughProps.animationCrossfadeDuration,
136
- "variant-name": passthroughProps.variantName,
137
- orientation: passthroughProps.orientation,
138
- scale: passthroughProps.scale,
139
- children
140
- });
152
+ return /* @__PURE__ */ jsx(
153
+ "model-viewer",
154
+ {
155
+ ref: callbackRef,
156
+ ...passthroughProps,
157
+ className,
158
+ id: passthroughProps.id ?? data.id,
159
+ src: data.sources[0].url,
160
+ alt: data.alt ?? null,
161
+ "camera-controls": passthroughProps.cameraControls ?? true,
162
+ poster: (passthroughProps.poster || ((_c = data.previewImage) == null ? void 0 : _c.url)) ?? null,
163
+ autoplay: passthroughProps.autoplay ?? true,
164
+ loading: passthroughProps.loading,
165
+ reveal: passthroughProps.reveal,
166
+ ar: passthroughProps.ar,
167
+ "ar-modes": passthroughProps.arModes,
168
+ "ar-scale": passthroughProps.arScale,
169
+ "ar-placement": passthroughProps.arPlacement,
170
+ "ios-src": passthroughProps.iosSrc,
171
+ "touch-action": passthroughProps.touchAction,
172
+ "disable-zoom": passthroughProps.disableZoom,
173
+ "orbit-sensitivity": passthroughProps.orbitSensitivity,
174
+ "auto-rotate": passthroughProps.autoRotate,
175
+ "auto-rotate-delay": passthroughProps.autoRotateDelay,
176
+ "rotation-per-second": passthroughProps.rotationPerSecond,
177
+ "interaction-policy": passthroughProps.interactionPolicy,
178
+ "interaction-prompt": passthroughProps.interactionPrompt,
179
+ "interaction-prompt-style": passthroughProps.interactionPromptStyle,
180
+ "interaction-prompt-threshold": passthroughProps.interactionPromptThreshold,
181
+ "camera-orbit": passthroughProps.cameraOrbit,
182
+ "camera-target": passthroughProps.cameraTarget,
183
+ "field-of-view": passthroughProps.fieldOfView,
184
+ "max-camera-orbit": passthroughProps.maxCameraOrbit,
185
+ "min-camera-orbit": passthroughProps.minCameraOrbit,
186
+ "max-field-of-view": passthroughProps.maxFieldOfView,
187
+ "min-field-of-view": passthroughProps.minFieldOfView,
188
+ bounds: passthroughProps.bounds,
189
+ "interpolation-decay": passthroughProps.interpolationDecay ?? 100,
190
+ "skybox-image": passthroughProps.skyboxImage,
191
+ "environment-image": passthroughProps.environmentImage,
192
+ exposure: passthroughProps.exposure,
193
+ "shadow-intensity": passthroughProps.shadowIntensity ?? 0,
194
+ "shadow-softness": passthroughProps.shadowSoftness ?? 0,
195
+ "animation-name": passthroughProps.animationName,
196
+ "animation-crossfade-duration": passthroughProps.animationCrossfadeDuration,
197
+ "variant-name": passthroughProps.variantName,
198
+ orientation: passthroughProps.orientation,
199
+ scale: passthroughProps.scale,
200
+ children
201
+ }
202
+ );
141
203
  }
142
204
  export {
143
205
  ModelViewer