@tiledev/sdk-apptile-live-selling 0.16.0 → 0.16.1

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 (410) hide show
  1. package/dist/attribution.d.ts +2 -16
  2. package/dist/attribution.d.ts.map +1 -1
  3. package/dist/attribution.js +4 -10
  4. package/dist/attribution.js.map +1 -1
  5. package/dist/auctions.d.ts.map +1 -1
  6. package/dist/auctions.js +11 -42
  7. package/dist/auctions.js.map +1 -1
  8. package/dist/cartAttributes.d.ts +0 -10
  9. package/dist/cartAttributes.d.ts.map +1 -1
  10. package/dist/cartAttributes.js +1 -20
  11. package/dist/cartAttributes.js.map +1 -1
  12. package/dist/client.d.ts +2 -51
  13. package/dist/client.d.ts.map +1 -1
  14. package/dist/client.js +23 -123
  15. package/dist/client.js.map +1 -1
  16. package/dist/clips.d.ts +1 -12
  17. package/dist/clips.d.ts.map +1 -1
  18. package/dist/clips.js +6 -114
  19. package/dist/clips.js.map +1 -1
  20. package/dist/commentLinks.d.ts +0 -29
  21. package/dist/commentLinks.d.ts.map +1 -1
  22. package/dist/commentLinks.js.map +1 -1
  23. package/dist/engine.native.d.ts.map +1 -1
  24. package/dist/engine.native.js +845 -17
  25. package/dist/engine.native.js.map +1 -1
  26. package/dist/index.d.ts +4 -48
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +3 -240
  29. package/dist/index.js.map +1 -1
  30. package/dist/polls.d.ts.map +1 -1
  31. package/dist/polls.js +0 -3
  32. package/dist/polls.js.map +1 -1
  33. package/dist/react/LiveSellingProvider.d.ts +1 -54
  34. package/dist/react/LiveSellingProvider.d.ts.map +1 -1
  35. package/dist/react/LiveSellingProvider.js +3 -60
  36. package/dist/react/LiveSellingProvider.js.map +1 -1
  37. package/dist/react/LiveVideoTarget.d.ts.map +1 -1
  38. package/dist/react/LiveVideoTarget.js +3 -41
  39. package/dist/react/LiveVideoTarget.js.map +1 -1
  40. package/dist/react/index.d.ts +3 -30
  41. package/dist/react/index.d.ts.map +1 -1
  42. package/dist/react/index.js +1 -79
  43. package/dist/react/index.js.map +1 -1
  44. package/dist/react/index.web.d.ts +32 -36
  45. package/dist/react/index.web.d.ts.map +1 -1
  46. package/dist/react/index.web.js +122 -102
  47. package/dist/react/index.web.js.map +1 -1
  48. package/dist/react/useAuctionBidGate.d.ts +6 -62
  49. package/dist/react/useAuctionBidGate.d.ts.map +1 -1
  50. package/dist/react/useAuctionBidGate.js +27 -228
  51. package/dist/react/useAuctionBidGate.js.map +1 -1
  52. package/dist/react/useAuctionWins.d.ts +4 -14
  53. package/dist/react/useAuctionWins.d.ts.map +1 -1
  54. package/dist/react/useAuctionWins.js +5 -16
  55. package/dist/react/useAuctionWins.js.map +1 -1
  56. package/dist/react/useClips.d.ts +1 -7
  57. package/dist/react/useClips.d.ts.map +1 -1
  58. package/dist/react/useClips.js +7 -20
  59. package/dist/react/useClips.js.map +1 -1
  60. package/dist/react/useLiveSession.d.ts +3 -15
  61. package/dist/react/useLiveSession.d.ts.map +1 -1
  62. package/dist/react/useLiveSession.js +199 -612
  63. package/dist/react/useLiveSession.js.map +1 -1
  64. package/dist/react/useLiveStreams.d.ts.map +1 -1
  65. package/dist/react/useLiveStreams.js +2 -6
  66. package/dist/react/useLiveStreams.js.map +1 -1
  67. package/dist/react/useOngoingLive.d.ts +0 -1
  68. package/dist/react/useOngoingLive.d.ts.map +1 -1
  69. package/dist/react/useOngoingLive.js +1 -7
  70. package/dist/react/useOngoingLive.js.map +1 -1
  71. package/dist/react/useReplays.d.ts +0 -12
  72. package/dist/react/useReplays.d.ts.map +1 -1
  73. package/dist/react/useReplays.js +24 -56
  74. package/dist/react/useReplays.js.map +1 -1
  75. package/dist/react/useStreamInfo.d.ts +2 -13
  76. package/dist/react/useStreamInfo.d.ts.map +1 -1
  77. package/dist/react/useStreamInfo.js +8 -36
  78. package/dist/react/useStreamInfo.js.map +1 -1
  79. package/dist/replays.d.ts +0 -14
  80. package/dist/replays.d.ts.map +1 -1
  81. package/dist/replays.js +22 -68
  82. package/dist/replays.js.map +1 -1
  83. package/dist/session.d.ts +6 -39
  84. package/dist/session.d.ts.map +1 -1
  85. package/dist/session.js +22 -209
  86. package/dist/session.js.map +1 -1
  87. package/dist/sessionTypes.d.ts +18 -217
  88. package/dist/sessionTypes.d.ts.map +1 -1
  89. package/dist/sessionTypes.js +1 -2
  90. package/dist/sessionTypes.js.map +1 -1
  91. package/dist/streams.d.ts +1 -27
  92. package/dist/streams.d.ts.map +1 -1
  93. package/dist/streams.js +21 -84
  94. package/dist/streams.js.map +1 -1
  95. package/dist/types.d.ts +10 -288
  96. package/dist/types.d.ts.map +1 -1
  97. package/dist/types.js +1 -2
  98. package/dist/types.js.map +1 -1
  99. package/dist/wire.d.ts +0 -31
  100. package/dist/wire.d.ts.map +1 -1
  101. package/dist/wire.js +0 -25
  102. package/dist/wire.js.map +1 -1
  103. package/dist/zego.d.ts +1 -3
  104. package/dist/zego.d.ts.map +1 -1
  105. package/dist/zego.js +1 -1
  106. package/package.json +1 -1
  107. package/dist/auctionComments.d.ts +0 -25
  108. package/dist/auctionComments.d.ts.map +0 -1
  109. package/dist/auctionComments.js +0 -28
  110. package/dist/auctionComments.js.map +0 -1
  111. package/dist/auctionRules.d.ts +0 -77
  112. package/dist/auctionRules.d.ts.map +0 -1
  113. package/dist/auctionRules.js +0 -107
  114. package/dist/auctionRules.js.map +0 -1
  115. package/dist/cartExtension.d.ts +0 -39
  116. package/dist/cartExtension.d.ts.map +0 -1
  117. package/dist/cartExtension.js +0 -51
  118. package/dist/cartExtension.js.map +0 -1
  119. package/dist/checkoutRefused.d.ts +0 -9
  120. package/dist/checkoutRefused.d.ts.map +0 -1
  121. package/dist/checkoutRefused.js +0 -16
  122. package/dist/checkoutRefused.js.map +0 -1
  123. package/dist/clipsPage.d.ts +0 -29
  124. package/dist/clipsPage.d.ts.map +0 -1
  125. package/dist/clipsPage.js +0 -49
  126. package/dist/clipsPage.js.map +0 -1
  127. package/dist/commentHistory.d.ts +0 -70
  128. package/dist/commentHistory.d.ts.map +0 -1
  129. package/dist/commentHistory.js +0 -133
  130. package/dist/commentHistory.js.map +0 -1
  131. package/dist/commentLinkCards.d.ts +0 -11
  132. package/dist/commentLinkCards.d.ts.map +0 -1
  133. package/dist/commentLinkCards.js +0 -70
  134. package/dist/commentLinkCards.js.map +0 -1
  135. package/dist/giveawayPrize.d.ts +0 -13
  136. package/dist/giveawayPrize.d.ts.map +0 -1
  137. package/dist/giveawayPrize.js +0 -18
  138. package/dist/giveawayPrize.js.map +0 -1
  139. package/dist/giveawayPrizeLines.d.ts +0 -120
  140. package/dist/giveawayPrizeLines.d.ts.map +0 -1
  141. package/dist/giveawayPrizeLines.js +0 -97
  142. package/dist/giveawayPrizeLines.js.map +0 -1
  143. package/dist/giveawayPrizes.d.ts +0 -20
  144. package/dist/giveawayPrizes.d.ts.map +0 -1
  145. package/dist/giveawayPrizes.js +0 -50
  146. package/dist/giveawayPrizes.js.map +0 -1
  147. package/dist/giveawayRoster.d.ts +0 -53
  148. package/dist/giveawayRoster.d.ts.map +0 -1
  149. package/dist/giveawayRoster.js +0 -93
  150. package/dist/giveawayRoster.js.map +0 -1
  151. package/dist/heldComments.d.ts +0 -40
  152. package/dist/heldComments.d.ts.map +0 -1
  153. package/dist/heldComments.js +0 -75
  154. package/dist/heldComments.js.map +0 -1
  155. package/dist/hiddenShows.d.ts +0 -44
  156. package/dist/hiddenShows.d.ts.map +0 -1
  157. package/dist/hiddenShows.js +0 -53
  158. package/dist/hiddenShows.js.map +0 -1
  159. package/dist/linkLots.d.ts +0 -64
  160. package/dist/linkLots.d.ts.map +0 -1
  161. package/dist/linkLots.js +0 -84
  162. package/dist/linkLots.js.map +0 -1
  163. package/dist/liveHaptics.d.ts +0 -7
  164. package/dist/liveHaptics.d.ts.map +0 -1
  165. package/dist/liveHaptics.js +0 -11
  166. package/dist/liveHaptics.js.map +0 -1
  167. package/dist/liveHaptics.native.d.ts +0 -7
  168. package/dist/liveHaptics.native.d.ts.map +0 -1
  169. package/dist/liveHaptics.native.js +0 -12
  170. package/dist/liveHaptics.native.js.map +0 -1
  171. package/dist/livePages.d.ts +0 -176
  172. package/dist/livePages.d.ts.map +0 -1
  173. package/dist/livePages.js +0 -216
  174. package/dist/livePages.js.map +0 -1
  175. package/dist/liveRoom.d.ts +0 -21
  176. package/dist/liveRoom.d.ts.map +0 -1
  177. package/dist/liveRoom.js +0 -28
  178. package/dist/liveRoom.js.map +0 -1
  179. package/dist/liveShow.d.ts +0 -65
  180. package/dist/liveShow.d.ts.map +0 -1
  181. package/dist/liveShow.js +0 -65
  182. package/dist/liveShow.js.map +0 -1
  183. package/dist/missedPolls.d.ts +0 -27
  184. package/dist/missedPolls.d.ts.map +0 -1
  185. package/dist/missedPolls.js +0 -16
  186. package/dist/missedPolls.js.map +0 -1
  187. package/dist/pageOptions.d.ts +0 -149
  188. package/dist/pageOptions.d.ts.map +0 -1
  189. package/dist/pageOptions.js +0 -123
  190. package/dist/pageOptions.js.map +0 -1
  191. package/dist/pageTypes.d.ts +0 -185
  192. package/dist/pageTypes.d.ts.map +0 -1
  193. package/dist/pageTypes.js +0 -3
  194. package/dist/pageTypes.js.map +0 -1
  195. package/dist/phoneTaps.d.ts +0 -25
  196. package/dist/phoneTaps.d.ts.map +0 -1
  197. package/dist/phoneTaps.js +0 -47
  198. package/dist/phoneTaps.js.map +0 -1
  199. package/dist/pipWindow.d.ts +0 -85
  200. package/dist/pipWindow.d.ts.map +0 -1
  201. package/dist/pipWindow.js +0 -88
  202. package/dist/pipWindow.js.map +0 -1
  203. package/dist/react/clocks.d.ts +0 -29
  204. package/dist/react/clocks.d.ts.map +0 -1
  205. package/dist/react/clocks.js +0 -124
  206. package/dist/react/clocks.js.map +0 -1
  207. package/dist/react/navigation.d.ts +0 -13
  208. package/dist/react/navigation.d.ts.map +0 -1
  209. package/dist/react/navigation.js +0 -7
  210. package/dist/react/navigation.js.map +0 -1
  211. package/dist/react/platformSession.d.ts +0 -16
  212. package/dist/react/platformSession.d.ts.map +0 -1
  213. package/dist/react/platformSession.js +0 -28
  214. package/dist/react/platformSession.js.map +0 -1
  215. package/dist/react/platformSession.web.d.ts +0 -35
  216. package/dist/react/platformSession.web.d.ts.map +0 -1
  217. package/dist/react/platformSession.web.js +0 -148
  218. package/dist/react/platformSession.web.js.map +0 -1
  219. package/dist/react/replayPlayer.d.ts +0 -83
  220. package/dist/react/replayPlayer.d.ts.map +0 -1
  221. package/dist/react/replayPlayer.js +0 -315
  222. package/dist/react/replayPlayer.js.map +0 -1
  223. package/dist/react/share.d.ts +0 -22
  224. package/dist/react/share.d.ts.map +0 -1
  225. package/dist/react/share.js +0 -45
  226. package/dist/react/share.js.map +0 -1
  227. package/dist/react/shopifyProviders.d.ts +0 -82
  228. package/dist/react/shopifyProviders.d.ts.map +0 -1
  229. package/dist/react/shopifyProviders.js +0 -113
  230. package/dist/react/shopifyProviders.js.map +0 -1
  231. package/dist/react/showPages.d.ts +0 -106
  232. package/dist/react/showPages.d.ts.map +0 -1
  233. package/dist/react/showPages.js +0 -166
  234. package/dist/react/showPages.js.map +0 -1
  235. package/dist/react/showPagesOnDevice.d.ts +0 -18
  236. package/dist/react/showPagesOnDevice.d.ts.map +0 -1
  237. package/dist/react/showPagesOnDevice.js +0 -31
  238. package/dist/react/showPagesOnDevice.js.map +0 -1
  239. package/dist/react/startSignIn.d.ts +0 -3
  240. package/dist/react/startSignIn.d.ts.map +0 -1
  241. package/dist/react/startSignIn.js +0 -19
  242. package/dist/react/startSignIn.js.map +0 -1
  243. package/dist/react/systemPictureInPicture.d.ts +0 -34
  244. package/dist/react/systemPictureInPicture.d.ts.map +0 -1
  245. package/dist/react/systemPictureInPicture.js +0 -93
  246. package/dist/react/systemPictureInPicture.js.map +0 -1
  247. package/dist/react/useAccountName.d.ts +0 -8
  248. package/dist/react/useAccountName.d.ts.map +0 -1
  249. package/dist/react/useAccountName.js +0 -49
  250. package/dist/react/useAccountName.js.map +0 -1
  251. package/dist/react/useClipsPage.d.ts +0 -47
  252. package/dist/react/useClipsPage.d.ts.map +0 -1
  253. package/dist/react/useClipsPage.js +0 -130
  254. package/dist/react/useClipsPage.js.map +0 -1
  255. package/dist/react/useCommentLinkCards.d.ts +0 -6
  256. package/dist/react/useCommentLinkCards.d.ts.map +0 -1
  257. package/dist/react/useCommentLinkCards.js +0 -67
  258. package/dist/react/useCommentLinkCards.js.map +0 -1
  259. package/dist/react/useFeaturedClip.d.ts +0 -15
  260. package/dist/react/useFeaturedClip.d.ts.map +0 -1
  261. package/dist/react/useFeaturedClip.js +0 -52
  262. package/dist/react/useFeaturedClip.js.map +0 -1
  263. package/dist/react/useGiveawayEntry.d.ts +0 -59
  264. package/dist/react/useGiveawayEntry.d.ts.map +0 -1
  265. package/dist/react/useGiveawayEntry.js +0 -170
  266. package/dist/react/useGiveawayEntry.js.map +0 -1
  267. package/dist/react/useGiveawayPrize.d.ts +0 -12
  268. package/dist/react/useGiveawayPrize.d.ts.map +0 -1
  269. package/dist/react/useGiveawayPrize.js +0 -53
  270. package/dist/react/useGiveawayPrize.js.map +0 -1
  271. package/dist/react/useGiveawayPrizes.d.ts +0 -4
  272. package/dist/react/useGiveawayPrizes.d.ts.map +0 -1
  273. package/dist/react/useGiveawayPrizes.js +0 -58
  274. package/dist/react/useGiveawayPrizes.js.map +0 -1
  275. package/dist/react/useHiddenShows.d.ts +0 -10
  276. package/dist/react/useHiddenShows.d.ts.map +0 -1
  277. package/dist/react/useHiddenShows.js +0 -30
  278. package/dist/react/useHiddenShows.js.map +0 -1
  279. package/dist/react/useKeepScreenAwake.d.ts +0 -2
  280. package/dist/react/useKeepScreenAwake.d.ts.map +0 -1
  281. package/dist/react/useKeepScreenAwake.js +0 -34
  282. package/dist/react/useKeepScreenAwake.js.map +0 -1
  283. package/dist/react/useLiveAuction.d.ts +0 -106
  284. package/dist/react/useLiveAuction.d.ts.map +0 -1
  285. package/dist/react/useLiveAuction.js +0 -255
  286. package/dist/react/useLiveAuction.js.map +0 -1
  287. package/dist/react/useLiveChat.d.ts +0 -110
  288. package/dist/react/useLiveChat.d.ts.map +0 -1
  289. package/dist/react/useLiveChat.js +0 -230
  290. package/dist/react/useLiveChat.js.map +0 -1
  291. package/dist/react/useLiveGiveawaysAndPolls.d.ts +0 -95
  292. package/dist/react/useLiveGiveawaysAndPolls.d.ts.map +0 -1
  293. package/dist/react/useLiveGiveawaysAndPolls.js +0 -225
  294. package/dist/react/useLiveGiveawaysAndPolls.js.map +0 -1
  295. package/dist/react/useLivePage.d.ts +0 -136
  296. package/dist/react/useLivePage.d.ts.map +0 -1
  297. package/dist/react/useLivePage.js +0 -319
  298. package/dist/react/useLivePage.js.map +0 -1
  299. package/dist/react/useLiveShop.d.ts +0 -97
  300. package/dist/react/useLiveShop.d.ts.map +0 -1
  301. package/dist/react/useLiveShop.js +0 -197
  302. package/dist/react/useLiveShop.js.map +0 -1
  303. package/dist/react/useLiveShow.d.ts +0 -3
  304. package/dist/react/useLiveShow.d.ts.map +0 -1
  305. package/dist/react/useLiveShow.js +0 -21
  306. package/dist/react/useLiveShow.js.map +0 -1
  307. package/dist/react/useMySilentAuctionBids.d.ts +0 -29
  308. package/dist/react/useMySilentAuctionBids.d.ts.map +0 -1
  309. package/dist/react/useMySilentAuctionBids.js +0 -157
  310. package/dist/react/useMySilentAuctionBids.js.map +0 -1
  311. package/dist/react/useReplayPage.d.ts +0 -155
  312. package/dist/react/useReplayPage.d.ts.map +0 -1
  313. package/dist/react/useReplayPage.js +0 -580
  314. package/dist/react/useReplayPage.js.map +0 -1
  315. package/dist/react/useSilentAuctionLot.d.ts +0 -44
  316. package/dist/react/useSilentAuctionLot.d.ts.map +0 -1
  317. package/dist/react/useSilentAuctionLot.js +0 -168
  318. package/dist/react/useSilentAuctionLot.js.map +0 -1
  319. package/dist/react/useSilentAuctionLots.d.ts +0 -41
  320. package/dist/react/useSilentAuctionLots.d.ts.map +0 -1
  321. package/dist/react/useSilentAuctionLots.js +0 -64
  322. package/dist/react/useSilentAuctionLots.js.map +0 -1
  323. package/dist/react/useSilentAuctionRounds.d.ts +0 -15
  324. package/dist/react/useSilentAuctionRounds.d.ts.map +0 -1
  325. package/dist/react/useSilentAuctionRounds.js +0 -44
  326. package/dist/react/useSilentAuctionRounds.js.map +0 -1
  327. package/dist/replayPages.d.ts +0 -31
  328. package/dist/replayPages.d.ts.map +0 -1
  329. package/dist/replayPages.js +0 -34
  330. package/dist/replayPages.js.map +0 -1
  331. package/dist/shopifyCommerce.d.ts +0 -204
  332. package/dist/shopifyCommerce.d.ts.map +0 -1
  333. package/dist/shopifyCommerce.js +0 -217
  334. package/dist/shopifyCommerce.js.map +0 -1
  335. package/dist/shopifyIdentity.d.ts +0 -61
  336. package/dist/shopifyIdentity.d.ts.map +0 -1
  337. package/dist/shopifyIdentity.js +0 -61
  338. package/dist/shopifyIdentity.js.map +0 -1
  339. package/dist/shopifyIds.d.ts +0 -9
  340. package/dist/shopifyIds.d.ts.map +0 -1
  341. package/dist/shopifyIds.js +0 -18
  342. package/dist/shopifyIds.js.map +0 -1
  343. package/dist/showCredit.d.ts +0 -89
  344. package/dist/showCredit.d.ts.map +0 -1
  345. package/dist/showCredit.js +0 -120
  346. package/dist/showCredit.js.map +0 -1
  347. package/dist/showLinks.d.ts +0 -24
  348. package/dist/showLinks.d.ts.map +0 -1
  349. package/dist/showLinks.js +0 -23
  350. package/dist/showLinks.js.map +0 -1
  351. package/dist/showLots.d.ts +0 -44
  352. package/dist/showLots.d.ts.map +0 -1
  353. package/dist/showLots.js +0 -70
  354. package/dist/showLots.js.map +0 -1
  355. package/dist/showNames.d.ts +0 -77
  356. package/dist/showNames.d.ts.map +0 -1
  357. package/dist/showNames.js +0 -143
  358. package/dist/showNames.js.map +0 -1
  359. package/dist/showPages.d.ts +0 -56
  360. package/dist/showPages.d.ts.map +0 -1
  361. package/dist/showPages.js +0 -48
  362. package/dist/showPages.js.map +0 -1
  363. package/dist/silentAuctionFeed.d.ts +0 -49
  364. package/dist/silentAuctionFeed.d.ts.map +0 -1
  365. package/dist/silentAuctionFeed.js +0 -242
  366. package/dist/silentAuctionFeed.js.map +0 -1
  367. package/dist/silentAuctionRules.d.ts +0 -253
  368. package/dist/silentAuctionRules.d.ts.map +0 -1
  369. package/dist/silentAuctionRules.js +0 -489
  370. package/dist/silentAuctionRules.js.map +0 -1
  371. package/dist/silentAuctions.d.ts +0 -65
  372. package/dist/silentAuctions.d.ts.map +0 -1
  373. package/dist/silentAuctions.js +0 -272
  374. package/dist/silentAuctions.js.map +0 -1
  375. package/dist/storeData.d.ts +0 -16
  376. package/dist/storeData.d.ts.map +0 -1
  377. package/dist/storeData.js +0 -19
  378. package/dist/storeData.js.map +0 -1
  379. package/dist/ui/BubbleFrame.d.ts +0 -38
  380. package/dist/ui/BubbleFrame.d.ts.map +0 -1
  381. package/dist/ui/BubbleFrame.js +0 -181
  382. package/dist/ui/BubbleFrame.js.map +0 -1
  383. package/dist/ui/LiveBubble.d.ts +0 -43
  384. package/dist/ui/LiveBubble.d.ts.map +0 -1
  385. package/dist/ui/LiveBubble.js +0 -116
  386. package/dist/ui/LiveBubble.js.map +0 -1
  387. package/dist/ui/ReplayBubble.d.ts +0 -23
  388. package/dist/ui/ReplayBubble.d.ts.map +0 -1
  389. package/dist/ui/ReplayBubble.js +0 -71
  390. package/dist/ui/ReplayBubble.js.map +0 -1
  391. package/dist/ui.d.ts +0 -27
  392. package/dist/ui.d.ts.map +0 -1
  393. package/dist/ui.js +0 -34
  394. package/dist/ui.js.map +0 -1
  395. package/dist/unreadRoomMessages.d.ts +0 -26
  396. package/dist/unreadRoomMessages.d.ts.map +0 -1
  397. package/dist/unreadRoomMessages.js +0 -62
  398. package/dist/unreadRoomMessages.js.map +0 -1
  399. package/dist/viewerRules.d.ts +0 -38
  400. package/dist/viewerRules.d.ts.map +0 -1
  401. package/dist/viewerRules.js +0 -46
  402. package/dist/viewerRules.js.map +0 -1
  403. package/dist/winsAttribution.d.ts +0 -22
  404. package/dist/winsAttribution.d.ts.map +0 -1
  405. package/dist/winsAttribution.js +0 -49
  406. package/dist/winsAttribution.js.map +0 -1
  407. package/dist/zegoEngine.d.ts +0 -173
  408. package/dist/zegoEngine.d.ts.map +0 -1
  409. package/dist/zegoEngine.js +0 -1069
  410. package/dist/zegoEngine.js.map +0 -1
@@ -1,272 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.silentAuctions = exports.BID_RECORD_BATCH_SIZE = exports.SILENT_AUCTION_API_URL = void 0;
4
- /**
5
- * Silent auctions' calls (0.12.0, moved from Sparkl's app on 2026-10-17): the lots on Apptile's auction
6
- * service, a bid, the customer's bid record, and the store's rounds. The rules that read the answers are
7
- * in `silentAuctionRules.ts`; the page models in `react/useSilentAuction*.ts`.
8
- *
9
- * The auction service (`silentAuctions.apiUrl`, `https://auction.apptile.io`) files a store's lots under
10
- * its Apptile app id (`silentAuctions.appId`). The rounds come from the live-selling gateway. The bid
11
- * record is a customer metafield, read and written with the app's `customerAccountRequest`. Every call
12
- * is time-boxed like the gateway's (`requestTimeoutMs`).
13
- */
14
- const client_1 = require("./client");
15
- const silentAuctionRules_1 = require("./silentAuctionRules");
16
- const shopifyIds_1 = require("./shopifyIds");
17
- exports.SILENT_AUCTION_API_URL = 'https://auction.apptile.io';
18
- /** Bid record entries per bulk read (Sparkl's batch). */
19
- exports.BID_RECORD_BATCH_SIZE = 90;
20
- function service() {
21
- var _a;
22
- if (!(0, client_1.isConfigured)())
23
- return null;
24
- const settings = (0, client_1.getConfig)().silentAuctions;
25
- const appId = (_a = settings === null || settings === void 0 ? void 0 : settings.appId) === null || _a === void 0 ? void 0 : _a.trim();
26
- if (!appId)
27
- return null;
28
- return { appId, apiUrl: ((settings === null || settings === void 0 ? void 0 : settings.apiUrl) || exports.SILENT_AUCTION_API_URL).replace(/\/$/, '') };
29
- }
30
- /** A GET to the auction service: the status and, when ok, the body. */
31
- async function read(url) {
32
- return (0, client_1.withRequestTimeout)(url, async (signal) => {
33
- const response = await fetch(url, { method: 'GET', signal });
34
- return { status: response.status, body: response.ok ? await response.json() : null };
35
- });
36
- }
37
- // ─── The customer's bid record ────────────────────────────────────────────────
38
- const BID_RECORD_QUERY = /* GraphQL */ `
39
- query SilentAuctionBidRecord {
40
- customer {
41
- id
42
- metafield(namespace: "${silentAuctionRules_1.BID_RECORD_NAMESPACE}", key: "${silentAuctionRules_1.BID_RECORD_KEY}") {
43
- value
44
- type
45
- }
46
- }
47
- }
48
- `;
49
- const BID_RECORD_WRITE = /* GraphQL */ `
50
- mutation SilentAuctionBidRecordWrite($metafields: [MetafieldsSetInput!]!) {
51
- metafieldsSet(metafields: $metafields) {
52
- userErrors {
53
- field
54
- message
55
- }
56
- }
57
- }
58
- `;
59
- /** One record append at a time: each is a read-modify-write of the whole list. */
60
- let recordWrites = Promise.resolve();
61
- async function appendToBidRecord(entry) {
62
- var _a, _b, _c, _d;
63
- const request = (0, client_1.getCustomerAccountRequest)();
64
- if (!request)
65
- return false;
66
- const data = await request(BID_RECORD_QUERY);
67
- const customerId = (_a = data.customer) === null || _a === void 0 ? void 0 : _a.id;
68
- if (!customerId)
69
- return false;
70
- const field = (_c = (_b = data.customer) === null || _b === void 0 ? void 0 : _b.metafield) !== null && _c !== void 0 ? _c : null;
71
- const existing = (0, silentAuctionRules_1.bidRecordEntries)(field === null || field === void 0 ? void 0 : field.value);
72
- // Raising your own bid on a lot you already bid on is the common case.
73
- if (existing.includes(entry))
74
- return true;
75
- const written = await request(BID_RECORD_WRITE, {
76
- metafields: [
77
- {
78
- ownerId: customerId,
79
- namespace: silentAuctionRules_1.BID_RECORD_NAMESPACE,
80
- key: silentAuctionRules_1.BID_RECORD_KEY,
81
- // The type the field already has, so this can't fight a `list.single_line_text_field`
82
- // definition; both serialise as a JSON array. `json` when there is none yet.
83
- type: (field === null || field === void 0 ? void 0 : field.type) || 'json',
84
- value: JSON.stringify([...existing, entry]),
85
- },
86
- ],
87
- });
88
- const errors = (_d = written.metafieldsSet) === null || _d === void 0 ? void 0 : _d.userErrors;
89
- if (errors === null || errors === void 0 ? void 0 : errors.length)
90
- throw new Error(errors[0].message);
91
- return true;
92
- }
93
- // ─── Namespace ────────────────────────────────────────────────────────────────
94
- exports.silentAuctions = {
95
- /** Whether silent auctions are set up (`silentAuctions.appId` in the config). */
96
- isConfigured() {
97
- return service() !== null;
98
- },
99
- /**
100
- * The store's lots: `current` (open and closed lots of the running rounds) or `upcoming`. A 404 is
101
- * "none": the service says it for a store with nothing scheduled (and for an app id it doesn't know).
102
- */
103
- async lots(filter = 'current') {
104
- const settings = service();
105
- if (!settings)
106
- return [];
107
- const query = filter === 'upcoming' ? '?filter=upcoming' : '';
108
- const { status, body } = await read(`${settings.apiUrl}/auction-products/${encodeURIComponent(settings.appId)}${query}`);
109
- if (status === 404)
110
- return [];
111
- if (status < 200 || status >= 300)
112
- throw new client_1.LiveSellingError(status);
113
- return (0, silentAuctionRules_1.lotsFromResponse)(body);
114
- },
115
- /**
116
- * One product's lot, for its product page. Null when the product isn't in a round: a 404, or a lot
117
- * with no close time (nothing to count down, no round to be in).
118
- */
119
- async lot(productId) {
120
- var _a;
121
- const settings = service();
122
- const id = productId ? (0, shopifyIds_1.bareId)(productId) : '';
123
- if (!settings || !id)
124
- return null;
125
- const { status, body } = await read(`${settings.apiUrl}/product/${encodeURIComponent(id)}`);
126
- if (status === 404)
127
- return null;
128
- if (status < 200 || status >= 300)
129
- throw new client_1.LiveSellingError(status);
130
- // Bare from this endpoint, wrapped from the list one: either, so a wrapper appearing doesn't blank it.
131
- const row = (_a = body === null || body === void 0 ? void 0 : body.data) !== null && _a !== void 0 ? _a : body;
132
- if (!row || typeof row !== 'object')
133
- return null;
134
- const lot = (0, silentAuctionRules_1.toSilentAuctionLot)(row);
135
- return lot.endsAt === null ? null : lot;
136
- },
137
- /**
138
- * A bid. Ids may be GIDs or bare; the service is sent bare ones. Throws when the service refuses or
139
- * doesn't answer. Doesn't record it: `recordBid` does, after.
140
- */
141
- async bid(params) {
142
- const settings = service();
143
- if (!settings)
144
- throw new Error('silentAuctions.bid: silent auctions are not configured');
145
- const url = `${settings.apiUrl}/bid`;
146
- await (0, client_1.withRequestTimeout)(url, async (signal) => {
147
- var _a;
148
- const response = await fetch(url, {
149
- method: 'POST',
150
- headers: { 'Content-Type': 'application/json' },
151
- body: JSON.stringify({
152
- productId: (0, shopifyIds_1.bareId)(params.productId),
153
- bidderId: (0, shopifyIds_1.bareId)(params.customerId),
154
- bidAmount: params.amount,
155
- email: (_a = params.email) !== null && _a !== void 0 ? _a : undefined,
156
- variantId: params.variantId ? (0, shopifyIds_1.bareId)(params.variantId) : undefined,
157
- }),
158
- signal,
159
- });
160
- if (!response.ok)
161
- throw new client_1.LiveSellingError(response.status);
162
- });
163
- },
164
- /**
165
- * The lots behind bid record entries (`<product>-<auction>`), 90 to a request, all at once. A batch
166
- * that fails is counted, not thrown, so the rest still show.
167
- */
168
- async lotsForBidEntries(entries) {
169
- const settings = service();
170
- if (!settings || entries.length === 0)
171
- return { lots: [], failedBatches: 0, totalBatches: 0 };
172
- const batches = [];
173
- for (let index = 0; index < entries.length; index += exports.BID_RECORD_BATCH_SIZE)
174
- batches.push(entries.slice(index, index + exports.BID_RECORD_BATCH_SIZE));
175
- let failedBatches = 0;
176
- const answers = await Promise.all(batches.map(async (batch) => {
177
- try {
178
- const query = `appId=${encodeURIComponent(settings.appId)}&productIds=${encodeURIComponent(batch.join(','))}`;
179
- const { status, body } = await read(`${settings.apiUrl}/bulk-auction-product-info?${query}`);
180
- if (status < 200 || status >= 300) {
181
- failedBatches += 1;
182
- return [];
183
- }
184
- return (0, silentAuctionRules_1.lotsFromResponse)(body);
185
- }
186
- catch {
187
- failedBatches += 1;
188
- return [];
189
- }
190
- }));
191
- return { lots: answers.flat(), failedBatches, totalBatches: batches.length };
192
- },
193
- /** The store's rounds, from the live-selling gateway: `active` (bidding open) or `upcoming`. */
194
- async rounds(filter = 'active') {
195
- var _a;
196
- const companyId = ((_a = (0, client_1.getCompanyId)()) !== null && _a !== void 0 ? _a : '').trim();
197
- if (!companyId)
198
- return [];
199
- const body = await (0, client_1.liveSellingRequest)(`/silent-auction/plugin/${encodeURIComponent(companyId)}`, filter === 'upcoming' ? { params: { status: 1 } } : undefined);
200
- return Array.isArray(body === null || body === void 0 ? void 0 : body.auctions) ? body.auctions.map(silentAuctionRules_1.toSilentAuctionRound) : [];
201
- },
202
- /**
203
- * The signed-in customer's bid record: their id, the entries the service can be asked about, and how
204
- * many it can't. Null without `customerAccountRequest`. Throws when the read fails, so a failed read
205
- * isn't shown as "no bids".
206
- */
207
- async bidRecord() {
208
- var _a, _b, _c, _d, _e;
209
- const request = (0, client_1.getCustomerAccountRequest)();
210
- if (!request)
211
- return null;
212
- const data = await request(BID_RECORD_QUERY);
213
- const { entries, skipped } = (0, silentAuctionRules_1.queryableBidEntries)((_c = (_b = (_a = data.customer) === null || _a === void 0 ? void 0 : _a.metafield) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : null);
214
- return { customerId: (_e = (_d = data.customer) === null || _d === void 0 ? void 0 : _d.id) !== null && _e !== void 0 ? _e : null, entries, skipped };
215
- },
216
- /**
217
- * Adds a placed bid to the customer's record, which My Bids reads (the service keeps no per-bidder
218
- * index). False when it couldn't be recorded. Never throws: the bid is already placed, and a failure
219
- * here mustn't read as a failed bid; it is retried once and reported. One append at a time, or two
220
- * bids within one round trip each read the same list and the second write drops the first.
221
- */
222
- recordBid(productId, auctionId) {
223
- const entry = (0, silentAuctionRules_1.bidRecordEntry)(productId, auctionId);
224
- if (!entry)
225
- return Promise.resolve(false);
226
- const run = recordWrites.then(async () => {
227
- let lastError = null;
228
- for (let attempt = 0; attempt < 2; attempt += 1) {
229
- try {
230
- return await appendToBidRecord(entry);
231
- }
232
- catch (caught) {
233
- lastError = caught;
234
- }
235
- }
236
- (0, client_1.getLogger)().error(lastError, { at: 'silentAuctions.recordBid', entry });
237
- return false;
238
- });
239
- recordWrites = run.catch(() => undefined);
240
- return run;
241
- },
242
- /**
243
- * The variant this device last bid on for a product, so its page opens on that size. Null when none.
244
- * Sparkl's key (`pdp.bidVariant.<product id>`), so what its app remembered is still read.
245
- */
246
- async bidVariant(productId) {
247
- const id = productId ? (0, shopifyIds_1.bareId)(productId) : '';
248
- if (!id)
249
- return null;
250
- try {
251
- return await (0, client_1.storageGet)(`${BID_VARIANT_KEY_PREFIX}${id}`);
252
- }
253
- catch {
254
- return null;
255
- }
256
- },
257
- /** Remember the variant a bid was placed on. Never throws. */
258
- async rememberBidVariant(productId, variantId) {
259
- const id = productId ? (0, shopifyIds_1.bareId)(productId) : '';
260
- if (!id || !variantId)
261
- return;
262
- try {
263
- await (0, client_1.storageSet)(`${BID_VARIANT_KEY_PREFIX}${id}`, variantId);
264
- }
265
- catch (caught) {
266
- (0, client_1.getLogger)().error(caught, { at: 'silentAuctions.rememberBidVariant', productId: id });
267
- }
268
- },
269
- };
270
- /** Where the variant a bid was placed on is kept, per product. */
271
- const BID_VARIANT_KEY_PREFIX = 'pdp.bidVariant.';
272
- //# sourceMappingURL=silentAuctions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"silentAuctions.js","sourceRoot":"","sources":["../src/silentAuctions.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,qCAWkB;AAClB,6DAW8B;AAC9B,6CAAsC;AAEzB,QAAA,sBAAsB,GAAG,4BAA4B,CAAC;AACnE,yDAAyD;AAC5C,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAExC,SAAS,OAAO;;IACd,IAAI,CAAC,IAAA,qBAAY,GAAE;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAA,kBAAS,GAAE,CAAC,cAAc,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,KAAI,8BAAsB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED,uEAAuE;AACvE,KAAK,UAAU,IAAI,CAAC,GAAW;IAC7B,OAAO,IAAA,2BAAkB,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iFAAiF;AAEjF,MAAM,gBAAgB,GAAG,aAAa,CAAC;;;;8BAIT,yCAAoB,YAAY,mCAAc;;;;;;CAM3E,CAAC;AAEF,MAAM,gBAAgB,GAAG,aAAa,CAAC;;;;;;;;;CAStC,CAAC;AAIF,kFAAkF;AAClF,IAAI,YAAY,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;AAEvD,KAAK,UAAU,iBAAiB,CAAC,KAAa;;IAC5C,MAAM,OAAO,GAAG,IAAA,kCAAyB,GAAE,CAAC;IAC5C,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAe,gBAAgB,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,EAAE,CAAC;IACrC,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,SAAS,mCAAI,IAAI,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAA,qCAAgB,EAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,CAAC;IAChD,uEAAuE;IACvE,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,gBAAgB,EAChB;QACE,UAAU,EAAE;YACV;gBACE,OAAO,EAAE,UAAU;gBACnB,SAAS,EAAE,yCAAoB;gBAC/B,GAAG,EAAE,mCAAc;gBACnB,sFAAsF;gBACtF,6EAA6E;gBAC7E,IAAI,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,KAAI,MAAM;gBAC3B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC5C;SACF;KACF,CACF,CAAC;IACF,MAAM,MAAM,GAAG,MAAA,OAAO,CAAC,aAAa,0CAAE,UAAU,CAAC;IACjD,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iFAAiF;AAEpE,QAAA,cAAc,GAAG;IAC5B,iFAAiF;IACjF,YAAY;QACV,OAAO,OAAO,EAAE,KAAK,IAAI,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,SAAiC,SAAS;QACnD,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,qBAAqB,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC;QACzH,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG;YAAE,MAAM,IAAI,yBAAgB,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,IAAA,qCAAgB,EAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,SAAiB;;QACzB,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;QAC3B,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAA,mBAAM,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,YAAY,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5F,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG;YAAE,MAAM,IAAI,yBAAgB,CAAC,MAAM,CAAC,CAAC;QACtE,uGAAuG;QACvG,MAAM,GAAG,GAAG,MAAC,IAAkC,aAAlC,IAAI,uBAAJ,IAAI,CAAgC,IAAI,mCAAI,IAAI,CAAC;QAC9D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjD,MAAM,GAAG,GAAG,IAAA,uCAAkB,EAAC,GAAG,CAAC,CAAC;QACpC,OAAO,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,CAAC,MAAmH;QAC3H,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACzF,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,MAAM,CAAC;QACrC,MAAM,IAAA,2BAAkB,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;;YAC7C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,SAAS,EAAE,IAAA,mBAAM,EAAC,MAAM,CAAC,SAAS,CAAC;oBACnC,QAAQ,EAAE,IAAA,mBAAM,EAAC,MAAM,CAAC,UAAU,CAAC;oBACnC,SAAS,EAAE,MAAM,CAAC,MAAM;oBACxB,KAAK,EAAE,MAAA,MAAM,CAAC,KAAK,mCAAI,SAAS;oBAChC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,mBAAM,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;iBACnE,CAAC;gBACF,MAAM;aACP,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,MAAM,IAAI,yBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAiB;QACvC,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAC9F,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,IAAI,6BAAqB;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,6BAAqB,CAAC,CAAC,CAAC;QAC9I,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,SAAS,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC9G,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,8BAA8B,KAAK,EAAE,CAAC,CAAC;gBAC7F,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;oBAClC,aAAa,IAAI,CAAC,CAAC;oBACnB,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,OAAO,IAAA,qCAAgB,EAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa,IAAI,CAAC,CAAC;gBACnB,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/E,CAAC;IAED,gGAAgG;IAChG,KAAK,CAAC,MAAM,CAAC,SAAgC,QAAQ;;QACnD,MAAM,SAAS,GAAG,CAAC,MAAA,IAAA,qBAAY,GAAE,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,IAAA,2BAAkB,EACnC,0BAA0B,kBAAkB,CAAC,SAAS,CAAC,EAAE,EACzD,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC;QACF,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,yCAAoB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS;;QACb,MAAM,OAAO,GAAG,IAAA,kCAAyB,GAAE,CAAC;QAC5C,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,OAAO,CAAe,gBAAgB,CAAC,CAAC;QAC3D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAA,wCAAmB,EAAC,MAAA,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,SAAS,0CAAE,KAAK,mCAAI,IAAI,CAAC,CAAC;QAC1F,OAAO,EAAE,UAAU,EAAE,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,EAAE,mCAAI,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACrE,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,SAAoC,EAAE,SAAoC;QAClF,MAAM,KAAK,GAAG,IAAA,mCAAc,EAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACvC,IAAI,SAAS,GAAY,IAAI,CAAC;YAC9B,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,OAAO,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACxC,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,SAAS,GAAG,MAAM,CAAC;gBACrB,CAAC;YACH,CAAC;YACD,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,0BAA0B,EAAE,KAAK,EAAE,CAAC,CAAC;YACxE,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAA,mBAAM,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,MAAM,IAAA,mBAAU,EAAC,GAAG,sBAAsB,GAAG,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,kBAAkB,CAAC,SAAiB,EAAE,SAAiB;QAC3D,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAA,mBAAM,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS;YAAE,OAAO;QAC9B,IAAI,CAAC;YACH,MAAM,IAAA,mBAAU,EAAC,GAAG,sBAAsB,GAAG,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,mCAAmC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;CACF,CAAC;AAEF,kEAAkE;AAClE,MAAM,sBAAsB,GAAG,iBAAiB,CAAC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * The store-data standard live selling owns (decided 2026-10-22; held here, not in sdk-shopify, since
3
- * 2026-10-24): the names a store's Shopify data uses for live selling and auctions. Every store sets its data
4
- * up to match; sdk-shopify reads what the app passes it and names none of these itself.
5
- *
6
- * - Customer tags: `BID_BLOCKED_TAG` (`BIDBLOCKED`) stops bidding; `APP_BLOCKED_TAG` (`APPBLOCKED`) stops
7
- * bidding and mutes the customer's comments: `viewerRestrictionsFromTags` (pageOptions.ts, Sahil's PR #20),
8
- * fed from sdk-shopify's `useCustomerTags` by `ShopifyLiveSellingProvider`.
9
- * - Product and variant metafields: `auction.winners` and `auction.allowedQty`, the per-size auction gates:
10
- * `AUCTION_GATE_METAFIELDS` (silentAuctionRules.ts), which the app lists for the product page's read.
11
- * - Product tag: `SEARCH-BLOCKED` on a lot in a live auction (`LOT_TAG`, here; sdk-shopify's `AUCTION_TAG` has
12
- * the same value), which an app may leave out of search with sdk-shopify's `queryTemplate`.
13
- */
14
- /** A product carrying this tag is a lot in a live auction. */
15
- export declare const LOT_TAG = "SEARCH-BLOCKED";
16
- //# sourceMappingURL=storeData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storeData.d.ts","sourceRoot":"","sources":["../src/storeData.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,8DAA8D;AAC9D,eAAO,MAAM,OAAO,mBAAmB,CAAC"}
package/dist/storeData.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
- /**
3
- * The store-data standard live selling owns (decided 2026-10-22; held here, not in sdk-shopify, since
4
- * 2026-10-24): the names a store's Shopify data uses for live selling and auctions. Every store sets its data
5
- * up to match; sdk-shopify reads what the app passes it and names none of these itself.
6
- *
7
- * - Customer tags: `BID_BLOCKED_TAG` (`BIDBLOCKED`) stops bidding; `APP_BLOCKED_TAG` (`APPBLOCKED`) stops
8
- * bidding and mutes the customer's comments: `viewerRestrictionsFromTags` (pageOptions.ts, Sahil's PR #20),
9
- * fed from sdk-shopify's `useCustomerTags` by `ShopifyLiveSellingProvider`.
10
- * - Product and variant metafields: `auction.winners` and `auction.allowedQty`, the per-size auction gates:
11
- * `AUCTION_GATE_METAFIELDS` (silentAuctionRules.ts), which the app lists for the product page's read.
12
- * - Product tag: `SEARCH-BLOCKED` on a lot in a live auction (`LOT_TAG`, here; sdk-shopify's `AUCTION_TAG` has
13
- * the same value), which an app may leave out of search with sdk-shopify's `queryTemplate`.
14
- */
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.LOT_TAG = void 0;
17
- /** A product carrying this tag is a lot in a live auction. */
18
- exports.LOT_TAG = 'SEARCH-BLOCKED';
19
- //# sourceMappingURL=storeData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storeData.js","sourceRoot":"","sources":["../src/storeData.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;AAEH,8DAA8D;AACjD,QAAA,OAAO,GAAG,gBAAgB,CAAC"}
@@ -1,38 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- import { View } from 'react-native';
3
- /**
4
- * The ✕ and expand chips' backing when the app passes none: a dark wash. amore-v2 drew its theme's
5
- * `colors.scrim` (Amore's warm `rgba(28,23,20,0.45)`; K-Marie's and Sparkl's are this one), so an app
6
- * passes its own to keep its look.
7
- */
8
- export declare const BUBBLE_CHIP_COLOR = "rgba(0,0,0,0.45)";
9
- export interface BubbleFrameProps {
10
- /** The show's poster, under the video, so the bubble isn't black while the picture arrives. */
11
- posterUrl: string | null;
12
- /** A tap on the bubble: back to the show's screen. */
13
- onOpen: () => void;
14
- /** ✕: the show stops and the bubble closes. */
15
- onClose: () => void;
16
- /** Screen-reader words for the tap and for ✕. */
17
- openLabel: string;
18
- closeLabel: string;
19
- /** Behind the ✕ and the expand mark: the app's scrim colour (amore-v2's theme `colors.scrim`). Default `BUBBLE_CHIP_COLOR`. */
20
- chipColor?: string;
21
- /** The video. Drawn under the tap, which it must not take (it is wrapped in a view that lets touches through). */
22
- children: ReactNode;
23
- }
24
- /**
25
- * The floating bubble's frame. Each bubble draws its own video inside it and says what a tap and ✕
26
- * do; the frame does the rest, the same for both. An app overlay beside the navigator, not a tile:
27
- * mount it over the whole app (a full-screen parent), inside `SafeAreaProvider`.
28
- *
29
- * - **Draggable**, and on release it snaps to the nearer side, kept clear of the safe areas and the
30
- * tab bar. It starts at the bottom right each time it opens: mount it only while the bubble is up.
31
- * - **A tap** calls `onOpen`; **✕** calls `onClose`. An expand mark in the opposite corner says the
32
- * whole bubble opens the show.
33
- * - The poster sits under the video, so the bubble isn't black while it loads.
34
- * - Hidden, and letting touches through, until the overlay has been measured and the bubble is in its
35
- * corner.
36
- */
37
- export declare function BubbleFrame({ posterUrl, onOpen, onClose, openLabel, closeLabel, chipColor, children }: BubbleFrameProps): import("react").CElement<import("react-native").ViewProps, View>;
38
- //# sourceMappingURL=BubbleFrame.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BubbleFrame.d.ts","sourceRoot":"","sources":["../../src/ui/BubbleFrame.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAiD,IAAI,EAAE,MAAM,cAAc,CAAC;AAenF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AAIpD,MAAM,WAAW,gBAAgB;IAC/B,+FAA+F;IAC/F,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,sDAAsD;IACtD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,+HAA+H;IAC/H,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kHAAkH;IAClH,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAA6B,EAAE,QAAQ,EAAE,EAAE,gBAAgB,oEAyI3I"}
@@ -1,181 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BUBBLE_CHIP_COLOR = void 0;
4
- exports.BubbleFrame = BubbleFrame;
5
- /**
6
- * The floating bubble's frame (0.14.0, moved from amore-v2's `src/core/overlays/bubbleFrame.tsx`: the
7
- * old app's `PipBubbleFrame`, rebuilt), shared by `ReplayBubble` and `LiveBubble`.
8
- *
9
- * `createElement` rather than JSX, like the rest of the package, so this stays a plain `.ts`.
10
- */
11
- const vector_icons_1 = require("@expo/vector-icons");
12
- const react_native_performant_image_1 = require("@tiledev/react-native-performant-image");
13
- const react_1 = require("react");
14
- const react_native_1 = require("react-native");
15
- const react_native_safe_area_context_1 = require("react-native-safe-area-context");
16
- /** The bubble: 128 wide, portrait 9:16, the shape the hosts record in. */
17
- const WIDTH = 128;
18
- const HEIGHT = Math.round((WIDTH * 16) / 9);
19
- /** From the screen's edges, the safe areas and the tab bar. */
20
- const MARGIN = 12;
21
- /** Room kept for the tab bar at the bottom (the safe area's inset doesn't include it). */
22
- const TAB_BAR_ROOM = 56;
23
- /** A finger that moves this far is dragging the bubble, not tapping it. */
24
- const DRAG_START = 6;
25
- /** White on the video, as the Replay and Live screens' buttons. */
26
- const ON_VIDEO = '#FFFFFF';
27
- /**
28
- * The ✕ and expand chips' backing when the app passes none: a dark wash. amore-v2 drew its theme's
29
- * `colors.scrim` (Amore's warm `rgba(28,23,20,0.45)`; K-Marie's and Sparkl's are this one), so an app
30
- * passes its own to keep its look.
31
- */
32
- exports.BUBBLE_CHIP_COLOR = 'rgba(0,0,0,0.45)';
33
- const clamp = (value, low, high) => Math.min(Math.max(value, low), high);
34
- /**
35
- * The floating bubble's frame. Each bubble draws its own video inside it and says what a tap and ✕
36
- * do; the frame does the rest, the same for both. An app overlay beside the navigator, not a tile:
37
- * mount it over the whole app (a full-screen parent), inside `SafeAreaProvider`.
38
- *
39
- * - **Draggable**, and on release it snaps to the nearer side, kept clear of the safe areas and the
40
- * tab bar. It starts at the bottom right each time it opens: mount it only while the bubble is up.
41
- * - **A tap** calls `onOpen`; **✕** calls `onClose`. An expand mark in the opposite corner says the
42
- * whole bubble opens the show.
43
- * - The poster sits under the video, so the bubble isn't black while it loads.
44
- * - Hidden, and letting touches through, until the overlay has been measured and the bubble is in its
45
- * corner.
46
- */
47
- function BubbleFrame({ posterUrl, onOpen, onClose, openLabel, closeLabel, chipColor = exports.BUBBLE_CHIP_COLOR, children }) {
48
- const insets = (0, react_native_safe_area_context_1.useSafeAreaInsets)();
49
- /**
50
- * The room the bubble moves in, from the overlay's own layout rather than `Dimensions` (production
51
- * found `Dimensions` stale after a system picture-in-picture window on Android). None until the first
52
- * layout, and the bubble stays hidden till then.
53
- */
54
- const [frame, setFrame] = (0, react_1.useState)(null);
55
- const edges = (0, react_1.useMemo)(() => {
56
- var _a, _b;
57
- const top = insets.top + MARGIN;
58
- const right = ((_a = frame === null || frame === void 0 ? void 0 : frame.width) !== null && _a !== void 0 ? _a : 0) - WIDTH - MARGIN;
59
- const bottom = ((_b = frame === null || frame === void 0 ? void 0 : frame.height) !== null && _b !== void 0 ? _b : 0) - insets.bottom - TAB_BAR_ROOM - HEIGHT - MARGIN;
60
- // Never inverted, so the clamps below stay sane on a window smaller than the bubble.
61
- return { left: MARGIN, right: Math.max(MARGIN, right), top, bottom: Math.max(top, bottom) };
62
- }, [frame === null || frame === void 0 ? void 0 : frame.width, frame === null || frame === void 0 ? void 0 : frame.height, insets.top, insets.bottom]);
63
- // Where the bubble rests: held here as well as in the animated value, which can't be read back.
64
- const resting = (0, react_1.useRef)({ x: edges.right, y: edges.bottom });
65
- const position = (0, react_1.useRef)(new react_native_1.Animated.ValueXY(resting.current)).current;
66
- // The gesture is made once; it reads the edges from here, at the moment it fires.
67
- const edgesNow = (0, react_1.useRef)(edges);
68
- edgesNow.current = edges;
69
- /** The shopper has put it somewhere: a new layout keeps it there, pulled inside the new edges. */
70
- const moved = (0, react_1.useRef)(false);
71
- /**
72
- * A drag is under way or has just ended. On web the mouse's release over the bubble, which followed
73
- * it, is also a click on it, and opened the show at the end of every drag (seen in the preview).
74
- */
75
- const dragging = (0, react_1.useRef)(false);
76
- // A new layout (the first one, a rotation): the bubble goes to its corner, or stays where the shopper
77
- // put it. Before paint, so it is never seen where it was.
78
- (0, react_1.useLayoutEffect)(() => {
79
- const next = moved.current
80
- ? { x: clamp(resting.current.x, edges.left, edges.right), y: clamp(resting.current.y, edges.top, edges.bottom) }
81
- : { x: edges.right, y: edges.bottom };
82
- if (next.x === resting.current.x && next.y === resting.current.y)
83
- return;
84
- resting.current = next;
85
- position.setValue(next);
86
- }, [edges, position]);
87
- const drag = (0, react_1.useMemo)(() => {
88
- // After the click that may follow the release, which comes in the same turn.
89
- const dragEnded = () => setTimeout(() => {
90
- dragging.current = false;
91
- }, 0);
92
- return react_native_1.PanResponder.create({
93
- // Only once it is clearly a drag, so a tap still reaches the bubble's button.
94
- onMoveShouldSetPanResponder: (_event, gesture) => Math.abs(gesture.dx) > DRAG_START || Math.abs(gesture.dy) > DRAG_START,
95
- onPanResponderGrant: () => {
96
- dragging.current = true;
97
- position.setOffset(resting.current);
98
- position.setValue({ x: 0, y: 0 });
99
- },
100
- onPanResponderMove: react_native_1.Animated.event([null, { dx: position.x, dy: position.y }], { useNativeDriver: false }),
101
- onPanResponderRelease: (_event, gesture) => {
102
- position.flattenOffset();
103
- moved.current = true;
104
- const { left, right, top, bottom } = edgesNow.current;
105
- const x = resting.current.x + gesture.dx;
106
- const y = resting.current.y + gesture.dy;
107
- // The nearer side: the bubble's middle against the middle of the room it moves in.
108
- const snapped = { x: x + WIDTH / 2 < (left + right + WIDTH) / 2 ? left : right, y: clamp(y, top, bottom) };
109
- resting.current = snapped;
110
- react_native_1.Animated.spring(position, { toValue: snapped, useNativeDriver: false, friction: 8, tension: 70 }).start();
111
- dragEnded();
112
- },
113
- onPanResponderTerminate: () => {
114
- dragEnded();
115
- position.flattenOffset();
116
- react_native_1.Animated.spring(position, { toValue: resting.current, useNativeDriver: false, friction: 8, tension: 70 }).start();
117
- },
118
- });
119
- }, [position]);
120
- // The picture is clipped to the rounded corners inside; the shadow is drawn outside, where a clip would cut it off.
121
- const picture = (0, react_1.createElement)(react_native_1.View, { style: styles.picture }, posterUrl ? (0, react_1.createElement)(react_native_performant_image_1.Image, { source: { uri: posterUrl }, style: react_native_1.StyleSheet.absoluteFill, resizeMode: 'cover', transition: 0 }) : null, (0, react_1.createElement)(react_native_1.Pressable, {
122
- accessibilityRole: 'button',
123
- accessibilityLabel: openLabel,
124
- onPress: () => {
125
- if (!dragging.current)
126
- onOpen();
127
- },
128
- style: react_native_1.StyleSheet.absoluteFill,
129
- },
130
- // Not touchable, or the native video view keeps the tap meant for the bubble.
131
- (0, react_1.createElement)(react_native_1.View, { pointerEvents: 'none', style: react_native_1.StyleSheet.absoluteFill }, children)), (0, react_1.createElement)(react_native_1.Pressable, {
132
- accessibilityRole: 'button',
133
- accessibilityLabel: closeLabel,
134
- hitSlop: 8,
135
- onPress: onClose,
136
- style: ({ pressed }) => [styles.chip, styles.close, { backgroundColor: chipColor }, pressed && styles.pressed],
137
- }, (0, react_1.createElement)(vector_icons_1.Ionicons, { name: 'close', size: 14, color: ON_VIDEO })),
138
- // Says a tap opens it; not a button of its own, as the whole bubble is.
139
- (0, react_1.createElement)(react_native_1.View, { pointerEvents: 'none', style: [styles.chip, styles.openHint, { backgroundColor: chipColor }] }, (0, react_1.createElement)(vector_icons_1.Ionicons, { name: 'expand', size: 13, color: ON_VIDEO })));
140
- return (0, react_1.createElement)(react_native_1.View, {
141
- pointerEvents: 'box-none',
142
- style: react_native_1.StyleSheet.absoluteFill,
143
- onLayout: (event) => {
144
- const next = event.nativeEvent.layout;
145
- setFrame((current) => ((current === null || current === void 0 ? void 0 : current.width) === next.width && (current === null || current === void 0 ? void 0 : current.height) === next.height ? current : next));
146
- },
147
- },
148
- // Drawn from the first render, so the video view is up in the same commit as the bubble (on web the
149
- // replay player seeks and plays the views it has then); hidden until the room is measured and it is
150
- // in its corner.
151
- (0, react_1.createElement)(react_native_1.Animated.View, {
152
- ...drag.panHandlers,
153
- pointerEvents: frame ? 'auto' : 'none',
154
- style: [styles.bubble, !frame && styles.notPlacedYet, { transform: position.getTranslateTransform() }],
155
- }, picture));
156
- }
157
- const styles = react_native_1.StyleSheet.create({
158
- bubble: {
159
- position: 'absolute',
160
- top: 0,
161
- left: 0,
162
- width: WIDTH,
163
- height: HEIGHT,
164
- borderRadius: 12,
165
- backgroundColor: '#000000',
166
- // Production's, tuned on a device: any lighter and the bubble reads as part of the screen behind it.
167
- shadowColor: '#000000',
168
- shadowOpacity: 0.35,
169
- shadowRadius: 12,
170
- shadowOffset: { width: 0, height: 4 },
171
- elevation: 8,
172
- },
173
- picture: { ...react_native_1.StyleSheet.absoluteFillObject, borderRadius: 12, overflow: 'hidden', backgroundColor: '#000000' },
174
- chip: { position: 'absolute', width: 22, height: 22, borderRadius: 11, alignItems: 'center', justifyContent: 'center' },
175
- // Opposite corners, so a thumb reaching for one is nowhere near the other.
176
- close: { top: 4, right: 4 },
177
- openHint: { bottom: 4, right: 4 },
178
- pressed: { opacity: 0.5 },
179
- notPlacedYet: { opacity: 0 },
180
- });
181
- //# sourceMappingURL=BubbleFrame.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BubbleFrame.js","sourceRoot":"","sources":["../../src/ui/BubbleFrame.ts"],"names":[],"mappings":"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"}
@@ -1,43 +0,0 @@
1
- import { View } from 'react-native';
2
- export interface LiveBubbleProps {
3
- /** A tap on the bubble. Default: back to the Live screen for the show (`LiveSellingProvider`'s `routes.openLive`). */
4
- onOpen?: (streamId: string) => void;
5
- /** Behind the ✕ and the expand mark: the app's scrim colour. Default `BUBBLE_CHIP_COLOR`. */
6
- chipColor?: string;
7
- /** Screen-reader words for the tap and for ✕. Default "Back to the live show", "Close the live show". */
8
- openLabel?: string;
9
- closeLabel?: string;
10
- /** Over the picture while the host's camera is off (`hostIsAway`). Default "Waiting for the host". */
11
- waitingLabel?: string;
12
- }
13
- /**
14
- * The live show's floating bubble. An app overlay beside the navigator, not a tile, so it outlives the
15
- * Live screen that shrank the show: mount it once over the whole app, inside `LiveSessionProvider`
16
- * (`ShopifyLiveSessionProvider`) and `SafeAreaProvider`. Shown while the session's picture is in the
17
- * app's bubble (`pipMode` `inapp`): the Live screen's back (while the show plays or waits for the
18
- * host), picture-in-picture and cart buttons put it there.
19
- *
20
- * - **The show's own picture**: `LiveVideoTarget`, which claims the room's video while the bubble is
21
- * up, at the shopper's own sound setting, over the show's poster.
22
- * - **A tap** goes back to the Live screen already open, or a new one (`routes.openLive`, or `onOpen`),
23
- * which ends the bubble as it arrives. **✕** stops the show and lets the session follow whatever is
24
- * on air again. The show ending closes it (the session leaves `inapp` itself).
25
- * - **The screen stays on** while it shows, under its own hold (`useKeepScreenAwake`'s tag).
26
- * - **One shrunk show at a time**: the Live screen stops a replay's bubble as it opens, and the Replay
27
- * screen this one.
28
- * - **The phone's own floating window** (`pipMode` `system`). Putting the app away with the bubble up
29
- * hands the show to it (the session arms it while the bubble shows a playing show), and coming back
30
- * puts it in the bubble again.
31
- * - **iOS** draws that window itself. When it came from the bubble, the bubble stays drawn behind it,
32
- * its video view still bound, so coming back finds the same picture with no new binding and no
33
- * black frame. When it came from the Live screen, nothing is drawn here.
34
- * - **Android**'s window is the app, scaled down, so the picture fills it here, over the show's
35
- * poster (Freckled Poppy's), whichever surface it came from.
36
- * - **The host's camera off** (`hostIsAway`, 0.16.0, ENG-969): the room's video draws black, so the
37
- * show's poster and `waitingLabel` cover it, in the bubble and in Android's window. Over the video,
38
- * never instead of it: the video view stays bound (iOS's window needs it, above), and the host's
39
- * picture shows again the moment they come back.
40
- * - **On the web** the session is idle, so nothing is ever drawn.
41
- */
42
- export declare function LiveBubble({ onOpen, chipColor, openLabel, closeLabel, waitingLabel, }?: LiveBubbleProps): import("react").CElement<import("react-native").ViewProps, View> | import("react").FunctionComponentElement<import("./BubbleFrame").BubbleFrameProps> | null;
43
- //# sourceMappingURL=LiveBubble.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiveBubble.d.ts","sourceRoot":"","sources":["../../src/ui/LiveBubble.ts"],"names":[],"mappings":"AAQA,OAAO,EAA8B,IAAI,EAAE,MAAM,cAAc,CAAC;AAgBhE,MAAM,WAAW,eAAe;IAC9B,sHAAsH;IACtH,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yGAAyG;IACzG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sGAAsG;IACtG,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,SAAS,EACT,SAAsB,EACtB,UAAwB,EACxB,YAA4B,GAC7B,GAAE,eAAoB,gKAwDtB"}