@audius/harmony 0.2.0 → 0.3.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 (610) hide show
  1. package/dist/_virtual/_tslib.js +1 -11
  2. package/dist/_virtual/_tslib.js.map +1 -1
  3. package/dist/assets/icons/Album.svg.js +5 -4
  4. package/dist/assets/icons/Album.svg.js.map +1 -1
  5. package/dist/assets/icons/AllTime.svg.js +5 -4
  6. package/dist/assets/icons/AllTime.svg.js.map +1 -1
  7. package/dist/assets/icons/Appearance.svg.js +5 -4
  8. package/dist/assets/icons/Appearance.svg.js.map +1 -1
  9. package/dist/assets/icons/ArrowLeft.svg.js +5 -4
  10. package/dist/assets/icons/ArrowLeft.svg.js.map +1 -1
  11. package/dist/assets/icons/ArrowRight.svg.js +5 -4
  12. package/dist/assets/icons/ArrowRight.svg.js.map +1 -1
  13. package/dist/assets/icons/ArtistBadge.svg.js +5 -4
  14. package/dist/assets/icons/ArtistBadge.svg.js.map +1 -1
  15. package/dist/assets/icons/AudiusLogo.svg.js +5 -4
  16. package/dist/assets/icons/AudiusLogo.svg.js.map +1 -1
  17. package/dist/assets/icons/AudiusLogoColor.svg.js +4 -3
  18. package/dist/assets/icons/AudiusLogoColor.svg.js.map +1 -1
  19. package/dist/assets/icons/AudiusLogoHorizontal.svg.js +6 -15
  20. package/dist/assets/icons/AudiusLogoHorizontal.svg.js.map +1 -1
  21. package/dist/assets/icons/AudiusLogoHorizontalColor.svg.js +4 -3
  22. package/dist/assets/icons/AudiusLogoHorizontalColor.svg.js.map +1 -1
  23. package/dist/assets/icons/AudiusLogoVertical.svg.js +9 -8
  24. package/dist/assets/icons/AudiusLogoVertical.svg.js.map +1 -1
  25. package/dist/assets/icons/Blog.svg.js +5 -4
  26. package/dist/assets/icons/Blog.svg.js.map +1 -1
  27. package/dist/assets/icons/BoxHeart.svg.js +5 -4
  28. package/dist/assets/icons/BoxHeart.svg.js.map +1 -1
  29. package/dist/assets/icons/CalendarDay.svg.js +5 -4
  30. package/dist/assets/icons/CalendarDay.svg.js.map +1 -1
  31. package/dist/assets/icons/CalendarMonth.svg.js +5 -4
  32. package/dist/assets/icons/CalendarMonth.svg.js.map +1 -1
  33. package/dist/assets/icons/CalendarWeek.svg.js +5 -4
  34. package/dist/assets/icons/CalendarWeek.svg.js.map +1 -1
  35. package/dist/assets/icons/Camera.svg.js +5 -4
  36. package/dist/assets/icons/Camera.svg.js.map +1 -1
  37. package/dist/assets/icons/Campfire.svg.js +5 -4
  38. package/dist/assets/icons/Campfire.svg.js.map +1 -1
  39. package/dist/assets/icons/CaretDown.svg.js +5 -4
  40. package/dist/assets/icons/CaretDown.svg.js.map +1 -1
  41. package/dist/assets/icons/CaretLeft.svg.js +5 -4
  42. package/dist/assets/icons/CaretLeft.svg.js.map +1 -1
  43. package/dist/assets/icons/CaretRight.svg.js +5 -4
  44. package/dist/assets/icons/CaretRight.svg.js.map +1 -1
  45. package/dist/assets/icons/CaretUp.svg.js +5 -4
  46. package/dist/assets/icons/CaretUp.svg.js.map +1 -1
  47. package/dist/assets/icons/Cart.svg.js +5 -4
  48. package/dist/assets/icons/Cart.svg.js.map +1 -1
  49. package/dist/assets/icons/CastAirplay.svg.js +5 -4
  50. package/dist/assets/icons/CastAirplay.svg.js.map +1 -1
  51. package/dist/assets/icons/CastChromecast.svg.js +5 -4
  52. package/dist/assets/icons/CastChromecast.svg.js.map +1 -1
  53. package/dist/assets/icons/Check.svg.js +5 -4
  54. package/dist/assets/icons/Check.svg.js.map +1 -1
  55. package/dist/assets/icons/Close.svg.js +5 -4
  56. package/dist/assets/icons/Close.svg.js.map +1 -1
  57. package/dist/assets/icons/CloseAlt.svg.js +5 -4
  58. package/dist/assets/icons/CloseAlt.svg.js.map +1 -1
  59. package/dist/assets/icons/CloudDownload.svg.js +5 -4
  60. package/dist/assets/icons/CloudDownload.svg.js.map +1 -1
  61. package/dist/assets/icons/CloudDownloadError.svg.js +6 -5
  62. package/dist/assets/icons/CloudDownloadError.svg.js.map +1 -1
  63. package/dist/assets/icons/CloudDownloadInactive.svg.js +5 -4
  64. package/dist/assets/icons/CloudDownloadInactive.svg.js.map +1 -1
  65. package/dist/assets/icons/CloudDownloadPaused.svg.js +6 -5
  66. package/dist/assets/icons/CloudDownloadPaused.svg.js.map +1 -1
  67. package/dist/assets/icons/CloudDownloadQueued.svg.js +6 -5
  68. package/dist/assets/icons/CloudDownloadQueued.svg.js.map +1 -1
  69. package/dist/assets/icons/CloudUpload.svg.js +5 -4
  70. package/dist/assets/icons/CloudUpload.svg.js.map +1 -1
  71. package/dist/assets/icons/Coinbase.svg.js +5 -4
  72. package/dist/assets/icons/Coinbase.svg.js.map +1 -1
  73. package/dist/assets/icons/CoinbasePay.svg.js +5 -4
  74. package/dist/assets/icons/CoinbasePay.svg.js.map +1 -1
  75. package/dist/assets/icons/Collectible.svg.js +5 -4
  76. package/dist/assets/icons/Collectible.svg.js.map +1 -1
  77. package/dist/assets/icons/Compose.svg.js +5 -4
  78. package/dist/assets/icons/Compose.svg.js.map +1 -1
  79. package/dist/assets/icons/Copy.svg.js +5 -4
  80. package/dist/assets/icons/Copy.svg.js.map +1 -1
  81. package/dist/assets/icons/Cosign.svg.js +5 -4
  82. package/dist/assets/icons/Cosign.svg.js.map +1 -1
  83. package/dist/assets/icons/CreatePlaylist.svg.js +5 -4
  84. package/dist/assets/icons/CreatePlaylist.svg.js.map +1 -1
  85. package/dist/assets/icons/CreditCard.svg.js +5 -4
  86. package/dist/assets/icons/CreditCard.svg.js.map +1 -1
  87. package/dist/assets/icons/Crown.svg.js +5 -4
  88. package/dist/assets/icons/Crown.svg.js.map +1 -1
  89. package/dist/assets/icons/Dashboard.svg.js +5 -4
  90. package/dist/assets/icons/Dashboard.svg.js.map +1 -1
  91. package/dist/assets/icons/Desktop.svg.js +5 -4
  92. package/dist/assets/icons/Desktop.svg.js.map +1 -1
  93. package/dist/assets/icons/Discord.svg.js +5 -4
  94. package/dist/assets/icons/Discord.svg.js.map +1 -1
  95. package/dist/assets/icons/Donate.svg.js +5 -4
  96. package/dist/assets/icons/Donate.svg.js.map +1 -1
  97. package/dist/assets/icons/Drag.svg.js +5 -4
  98. package/dist/assets/icons/Drag.svg.js.map +1 -1
  99. package/dist/assets/icons/Earnings.svg.js +5 -4
  100. package/dist/assets/icons/Earnings.svg.js.map +1 -1
  101. package/dist/assets/icons/EmailAddress.svg.js +5 -4
  102. package/dist/assets/icons/EmailAddress.svg.js.map +1 -1
  103. package/dist/assets/icons/Embed.svg.js +5 -4
  104. package/dist/assets/icons/Embed.svg.js.map +1 -1
  105. package/dist/assets/icons/Error.svg.js +5 -4
  106. package/dist/assets/icons/Error.svg.js.map +1 -1
  107. package/dist/assets/icons/Explore.svg.js +5 -4
  108. package/dist/assets/icons/Explore.svg.js.map +1 -1
  109. package/dist/assets/icons/ExternalLink.svg.js +5 -4
  110. package/dist/assets/icons/ExternalLink.svg.js.map +1 -1
  111. package/dist/assets/icons/Facebook.svg.js +5 -4
  112. package/dist/assets/icons/Facebook.svg.js.map +1 -1
  113. package/dist/assets/icons/Feed.svg.js +5 -4
  114. package/dist/assets/icons/Feed.svg.js.map +1 -1
  115. package/dist/assets/icons/Filter.svg.js +5 -4
  116. package/dist/assets/icons/Filter.svg.js.map +1 -1
  117. package/dist/assets/icons/Folder.svg.js +5 -4
  118. package/dist/assets/icons/Folder.svg.js.map +1 -1
  119. package/dist/assets/icons/Foundation.svg.js +5 -4
  120. package/dist/assets/icons/Foundation.svg.js.map +1 -1
  121. package/dist/assets/icons/Gift.svg.js +5 -4
  122. package/dist/assets/icons/Gift.svg.js.map +1 -1
  123. package/dist/assets/icons/Headphones.svg.js +5 -4
  124. package/dist/assets/icons/Headphones.svg.js.map +1 -1
  125. package/dist/assets/icons/Heart.svg.js +5 -4
  126. package/dist/assets/icons/Heart.svg.js.map +1 -1
  127. package/dist/assets/icons/Image.svg.js +5 -4
  128. package/dist/assets/icons/Image.svg.js.map +1 -1
  129. package/dist/assets/icons/Indent.svg.js +5 -4
  130. package/dist/assets/icons/Indent.svg.js.map +1 -1
  131. package/dist/assets/icons/Info.svg.js +5 -4
  132. package/dist/assets/icons/Info.svg.js.map +1 -1
  133. package/dist/assets/icons/Instagram.svg.js +5 -4
  134. package/dist/assets/icons/Instagram.svg.js.map +1 -1
  135. package/dist/assets/icons/KebabHorizontal.svg.js +5 -4
  136. package/dist/assets/icons/KebabHorizontal.svg.js.map +1 -1
  137. package/dist/assets/icons/Key.svg.js +5 -4
  138. package/dist/assets/icons/Key.svg.js.map +1 -1
  139. package/dist/assets/icons/Library.svg.js +5 -4
  140. package/dist/assets/icons/Library.svg.js.map +1 -1
  141. package/dist/assets/icons/LifeRing.svg.js +5 -4
  142. package/dist/assets/icons/LifeRing.svg.js.map +1 -1
  143. package/dist/assets/icons/Link.svg.js +5 -4
  144. package/dist/assets/icons/Link.svg.js.map +1 -1
  145. package/dist/assets/icons/LinkByStripe.svg.js +7 -6
  146. package/dist/assets/icons/LinkByStripe.svg.js.map +1 -1
  147. package/dist/assets/icons/ListeningHistory.svg.js +5 -4
  148. package/dist/assets/icons/ListeningHistory.svg.js.map +1 -1
  149. package/dist/assets/icons/Listens.svg.js +5 -4
  150. package/dist/assets/icons/Listens.svg.js.map +1 -1
  151. package/dist/assets/icons/Lock.svg.js +5 -4
  152. package/dist/assets/icons/Lock.svg.js.map +1 -1
  153. package/dist/assets/icons/LockUnlocked.svg.js +5 -4
  154. package/dist/assets/icons/LockUnlocked.svg.js.map +1 -1
  155. package/dist/assets/icons/LogoCircle.svg.js +5 -4
  156. package/dist/assets/icons/LogoCircle.svg.js.map +1 -1
  157. package/dist/assets/icons/LogoCircleCoinbase.svg.js +6 -5
  158. package/dist/assets/icons/LogoCircleCoinbase.svg.js.map +1 -1
  159. package/dist/assets/icons/LogoCircleETH.svg.js +10 -9
  160. package/dist/assets/icons/LogoCircleETH.svg.js.map +1 -1
  161. package/dist/assets/icons/LogoCircleSOL.svg.js +5 -4
  162. package/dist/assets/icons/LogoCircleSOL.svg.js.map +1 -1
  163. package/dist/assets/icons/LogoCircleSTR.svg.js +6 -5
  164. package/dist/assets/icons/LogoCircleSTR.svg.js.map +1 -1
  165. package/dist/assets/icons/LogoCircleUSD.svg.js +8 -7
  166. package/dist/assets/icons/LogoCircleUSD.svg.js.map +1 -1
  167. package/dist/assets/icons/LogoCircleUSDC.svg.js +5 -4
  168. package/dist/assets/icons/LogoCircleUSDC.svg.js.map +1 -1
  169. package/dist/assets/icons/LogoPhantom.svg.js +5 -4
  170. package/dist/assets/icons/LogoPhantom.svg.js.map +1 -1
  171. package/dist/assets/icons/LogoPhantomPlain.svg.js +5 -4
  172. package/dist/assets/icons/LogoPhantomPlain.svg.js.map +1 -1
  173. package/dist/assets/icons/LogoSolana.svg.js +5 -4
  174. package/dist/assets/icons/LogoSolana.svg.js.map +1 -1
  175. package/dist/assets/icons/Merch.svg.js +5 -4
  176. package/dist/assets/icons/Merch.svg.js.map +1 -1
  177. package/dist/assets/icons/Message.svg.js +5 -4
  178. package/dist/assets/icons/Message.svg.js.map +1 -1
  179. package/dist/assets/icons/MessageBlock.svg.js +5 -4
  180. package/dist/assets/icons/MessageBlock.svg.js.map +1 -1
  181. package/dist/assets/icons/MessageLocked.svg.js +6 -5
  182. package/dist/assets/icons/MessageLocked.svg.js.map +1 -1
  183. package/dist/assets/icons/MessageSlash.svg.js +76 -0
  184. package/dist/assets/icons/MessageSlash.svg.js.map +1 -0
  185. package/dist/assets/icons/MessageUnblock.svg.js +5 -4
  186. package/dist/assets/icons/MessageUnblock.svg.js.map +1 -1
  187. package/dist/assets/icons/Messages.svg.js +79 -0
  188. package/dist/assets/icons/Messages.svg.js.map +1 -0
  189. package/dist/assets/icons/Metamask.svg.js +16 -15
  190. package/dist/assets/icons/Metamask.svg.js.map +1 -1
  191. package/dist/assets/icons/Minus.svg.js +4 -3
  192. package/dist/assets/icons/Minus.svg.js.map +1 -1
  193. package/dist/assets/icons/MoneyBracket.svg.js +5 -4
  194. package/dist/assets/icons/MoneyBracket.svg.js.map +1 -1
  195. package/dist/assets/icons/Mood.svg.js +5 -4
  196. package/dist/assets/icons/Mood.svg.js.map +1 -1
  197. package/dist/assets/icons/MultiselectAdd.svg.js +6 -5
  198. package/dist/assets/icons/MultiselectAdd.svg.js.map +1 -1
  199. package/dist/assets/icons/MultiselectRemove.svg.js +6 -5
  200. package/dist/assets/icons/MultiselectRemove.svg.js.map +1 -1
  201. package/dist/assets/icons/NoWifi.svg.js +5 -4
  202. package/dist/assets/icons/NoWifi.svg.js.map +1 -1
  203. package/dist/assets/icons/Note.svg.js +5 -4
  204. package/dist/assets/icons/Note.svg.js.map +1 -1
  205. package/dist/assets/icons/NotificationOff.svg.js +5 -4
  206. package/dist/assets/icons/NotificationOff.svg.js.map +1 -1
  207. package/dist/assets/icons/NotificationOn.svg.js +5 -4
  208. package/dist/assets/icons/NotificationOn.svg.js.map +1 -1
  209. package/dist/assets/icons/PaperAirplane.svg.js +5 -4
  210. package/dist/assets/icons/PaperAirplane.svg.js.map +1 -1
  211. package/dist/assets/icons/Pause.svg.js +5 -4
  212. package/dist/assets/icons/Pause.svg.js.map +1 -1
  213. package/dist/assets/icons/Pencil.svg.js +5 -4
  214. package/dist/assets/icons/Pencil.svg.js.map +1 -1
  215. package/dist/assets/icons/Pin.svg.js +5 -4
  216. package/dist/assets/icons/Pin.svg.js.map +1 -1
  217. package/dist/assets/icons/Play.svg.js +5 -4
  218. package/dist/assets/icons/Play.svg.js.map +1 -1
  219. package/dist/assets/icons/PlaybackPause.svg.js +5 -4
  220. package/dist/assets/icons/PlaybackPause.svg.js.map +1 -1
  221. package/dist/assets/icons/PlaybackPlay.svg.js +5 -4
  222. package/dist/assets/icons/PlaybackPlay.svg.js.map +1 -1
  223. package/dist/assets/icons/Playlists.svg.js +5 -4
  224. package/dist/assets/icons/Playlists.svg.js.map +1 -1
  225. package/dist/assets/icons/Plus.svg.js +5 -4
  226. package/dist/assets/icons/Plus.svg.js.map +1 -1
  227. package/dist/assets/icons/PodcastBack.svg.js +5 -4
  228. package/dist/assets/icons/PodcastBack.svg.js.map +1 -1
  229. package/dist/assets/icons/PodcastForward.svg.js +5 -4
  230. package/dist/assets/icons/PodcastForward.svg.js.map +1 -1
  231. package/dist/assets/icons/QrCode.svg.js +5 -4
  232. package/dist/assets/icons/QrCode.svg.js.map +1 -1
  233. package/dist/assets/icons/QuestionCircle.svg.js +5 -4
  234. package/dist/assets/icons/QuestionCircle.svg.js.map +1 -1
  235. package/dist/assets/icons/Radar.svg.js +5 -4
  236. package/dist/assets/icons/Radar.svg.js.map +1 -1
  237. package/dist/assets/icons/Receive.svg.js +5 -4
  238. package/dist/assets/icons/Receive.svg.js.map +1 -1
  239. package/dist/assets/icons/RecoveryEmail.svg.js +7 -6
  240. package/dist/assets/icons/RecoveryEmail.svg.js.map +1 -1
  241. package/dist/assets/icons/Refresh.svg.js +5 -4
  242. package/dist/assets/icons/Refresh.svg.js.map +1 -1
  243. package/dist/assets/icons/Remix.svg.js +5 -4
  244. package/dist/assets/icons/Remix.svg.js.map +1 -1
  245. package/dist/assets/icons/Remove.svg.js +5 -4
  246. package/dist/assets/icons/Remove.svg.js.map +1 -1
  247. package/dist/assets/icons/RepeatOff.svg.js +5 -4
  248. package/dist/assets/icons/RepeatOff.svg.js.map +1 -1
  249. package/dist/assets/icons/Repost.svg.js +5 -4
  250. package/dist/assets/icons/Repost.svg.js.map +1 -1
  251. package/dist/assets/icons/Robot.svg.js +5 -4
  252. package/dist/assets/icons/Robot.svg.js.map +1 -1
  253. package/dist/assets/icons/Rocket.svg.js +5 -4
  254. package/dist/assets/icons/Rocket.svg.js.map +1 -1
  255. package/dist/assets/icons/Save.svg.js +5 -4
  256. package/dist/assets/icons/Save.svg.js.map +1 -1
  257. package/dist/assets/icons/Search.svg.js +7 -6
  258. package/dist/assets/icons/Search.svg.js.map +1 -1
  259. package/dist/assets/icons/Send.svg.js +5 -4
  260. package/dist/assets/icons/Send.svg.js.map +1 -1
  261. package/dist/assets/icons/Settings.svg.js +5 -4
  262. package/dist/assets/icons/Settings.svg.js.map +1 -1
  263. package/dist/assets/icons/Share.svg.js +5 -4
  264. package/dist/assets/icons/Share.svg.js.map +1 -1
  265. package/dist/assets/icons/ShieldCheck.svg.js +5 -4
  266. package/dist/assets/icons/ShieldCheck.svg.js.map +1 -1
  267. package/dist/assets/icons/ShieldUser.svg.js +7 -6
  268. package/dist/assets/icons/ShieldUser.svg.js.map +1 -1
  269. package/dist/assets/icons/Shuffle.svg.js +7 -6
  270. package/dist/assets/icons/Shuffle.svg.js.map +1 -1
  271. package/dist/assets/icons/SignOut.svg.js +5 -4
  272. package/dist/assets/icons/SignOut.svg.js.map +1 -1
  273. package/dist/assets/icons/SkipNext.svg.js +5 -4
  274. package/dist/assets/icons/SkipNext.svg.js.map +1 -1
  275. package/dist/assets/icons/SkipPrevious.svg.js +5 -4
  276. package/dist/assets/icons/SkipPrevious.svg.js.map +1 -1
  277. package/dist/assets/icons/Skull.svg.js +5 -4
  278. package/dist/assets/icons/Skull.svg.js.map +1 -1
  279. package/dist/assets/icons/SnapChat.svg.js +5 -4
  280. package/dist/assets/icons/SnapChat.svg.js.map +1 -1
  281. package/dist/assets/icons/Sort.svg.js +5 -4
  282. package/dist/assets/icons/Sort.svg.js.map +1 -1
  283. package/dist/assets/icons/SortDown.svg.js +5 -4
  284. package/dist/assets/icons/SortDown.svg.js.map +1 -1
  285. package/dist/assets/icons/SortUp.svg.js +5 -4
  286. package/dist/assets/icons/SortUp.svg.js.map +1 -1
  287. package/dist/assets/icons/Soundwave.svg.js +4 -3
  288. package/dist/assets/icons/Soundwave.svg.js.map +1 -1
  289. package/dist/assets/icons/Speaker.svg.js +5 -4
  290. package/dist/assets/icons/Speaker.svg.js.map +1 -1
  291. package/dist/assets/icons/SpecialAccess.svg.js +5 -4
  292. package/dist/assets/icons/SpecialAccess.svg.js.map +1 -1
  293. package/dist/assets/icons/Star.svg.js +5 -4
  294. package/dist/assets/icons/Star.svg.js.map +1 -1
  295. package/dist/assets/icons/Stars.svg.js +5 -4
  296. package/dist/assets/icons/Stars.svg.js.map +1 -1
  297. package/dist/assets/icons/Support.svg.js +5 -4
  298. package/dist/assets/icons/Support.svg.js.map +1 -1
  299. package/dist/assets/icons/Tastemaker.svg.js +5 -4
  300. package/dist/assets/icons/Tastemaker.svg.js.map +1 -1
  301. package/dist/assets/icons/Telegram.svg.js +5 -4
  302. package/dist/assets/icons/Telegram.svg.js.map +1 -1
  303. package/dist/assets/icons/ThumbsDown.svg.js +5 -4
  304. package/dist/assets/icons/ThumbsDown.svg.js.map +1 -1
  305. package/dist/assets/icons/ThumbsUp.svg.js +5 -4
  306. package/dist/assets/icons/ThumbsUp.svg.js.map +1 -1
  307. package/dist/assets/icons/TikTok.svg.js +5 -4
  308. package/dist/assets/icons/TikTok.svg.js.map +1 -1
  309. package/dist/assets/icons/Tipping.svg.js +6 -5
  310. package/dist/assets/icons/Tipping.svg.js.map +1 -1
  311. package/dist/assets/icons/TokenBronze.svg.js +7 -6
  312. package/dist/assets/icons/TokenBronze.svg.js.map +1 -1
  313. package/dist/assets/icons/TokenGold.svg.js +7 -6
  314. package/dist/assets/icons/TokenGold.svg.js.map +1 -1
  315. package/dist/assets/icons/TokenNoTier.svg.js +7 -6
  316. package/dist/assets/icons/TokenNoTier.svg.js.map +1 -1
  317. package/dist/assets/icons/TokenPlatinum.svg.js +7 -6
  318. package/dist/assets/icons/TokenPlatinum.svg.js.map +1 -1
  319. package/dist/assets/icons/TokenSilver.svg.js +7 -6
  320. package/dist/assets/icons/TokenSilver.svg.js.map +1 -1
  321. package/dist/assets/icons/TowerBroadcast.svg.js +5 -4
  322. package/dist/assets/icons/TowerBroadcast.svg.js.map +1 -1
  323. package/dist/assets/icons/Transaction.svg.js +5 -4
  324. package/dist/assets/icons/Transaction.svg.js.map +1 -1
  325. package/dist/assets/icons/Trash.svg.js +5 -4
  326. package/dist/assets/icons/Trash.svg.js.map +1 -1
  327. package/dist/assets/icons/Trending.svg.js +5 -4
  328. package/dist/assets/icons/Trending.svg.js.map +1 -1
  329. package/dist/assets/icons/TriangleExclamation.svg.js +5 -4
  330. package/dist/assets/icons/TriangleExclamation.svg.js.map +1 -1
  331. package/dist/assets/icons/Trophy.svg.js +5 -4
  332. package/dist/assets/icons/Trophy.svg.js.map +1 -1
  333. package/dist/assets/icons/Turntable.svg.js +5 -4
  334. package/dist/assets/icons/Turntable.svg.js.map +1 -1
  335. package/dist/assets/icons/Twitter.svg.js +5 -4
  336. package/dist/assets/icons/Twitter.svg.js.map +1 -1
  337. package/dist/assets/icons/User.svg.js +5 -4
  338. package/dist/assets/icons/User.svg.js.map +1 -1
  339. package/dist/assets/icons/UserArrowRotate.svg.js +7 -6
  340. package/dist/assets/icons/UserArrowRotate.svg.js.map +1 -1
  341. package/dist/assets/icons/UserFollow.svg.js +5 -4
  342. package/dist/assets/icons/UserFollow.svg.js.map +1 -1
  343. package/dist/assets/icons/UserFollowers.svg.js +6 -5
  344. package/dist/assets/icons/UserFollowers.svg.js.map +1 -1
  345. package/dist/assets/icons/UserFollowing.svg.js +5 -4
  346. package/dist/assets/icons/UserFollowing.svg.js.map +1 -1
  347. package/dist/assets/icons/UserGroup.svg.js +6 -5
  348. package/dist/assets/icons/UserGroup.svg.js.map +1 -1
  349. package/dist/assets/icons/UserList.svg.js +6 -5
  350. package/dist/assets/icons/UserList.svg.js.map +1 -1
  351. package/dist/assets/icons/UserUnfollow.svg.js +5 -4
  352. package/dist/assets/icons/UserUnfollow.svg.js.map +1 -1
  353. package/dist/assets/icons/ValidationCheck.svg.js +5 -4
  354. package/dist/assets/icons/ValidationCheck.svg.js.map +1 -1
  355. package/dist/assets/icons/ValidationX.svg.js +5 -4
  356. package/dist/assets/icons/ValidationX.svg.js.map +1 -1
  357. package/dist/assets/icons/Verified.svg.js +6 -5
  358. package/dist/assets/icons/Verified.svg.js.map +1 -1
  359. package/dist/assets/icons/VisibilityHidden.svg.js +6 -5
  360. package/dist/assets/icons/VisibilityHidden.svg.js.map +1 -1
  361. package/dist/assets/icons/VisibilityPublic.svg.js +6 -5
  362. package/dist/assets/icons/VisibilityPublic.svg.js.map +1 -1
  363. package/dist/assets/icons/VolumeLevel0.svg.js +5 -4
  364. package/dist/assets/icons/VolumeLevel0.svg.js.map +1 -1
  365. package/dist/assets/icons/VolumeLevel1.svg.js +5 -4
  366. package/dist/assets/icons/VolumeLevel1.svg.js.map +1 -1
  367. package/dist/assets/icons/VolumeLevel2.svg.js +5 -4
  368. package/dist/assets/icons/VolumeLevel2.svg.js.map +1 -1
  369. package/dist/assets/icons/VolumeLevel3.svg.js +5 -4
  370. package/dist/assets/icons/VolumeLevel3.svg.js.map +1 -1
  371. package/dist/assets/icons/Wallet.svg.js +5 -4
  372. package/dist/assets/icons/Wallet.svg.js.map +1 -1
  373. package/dist/assets/icons/Wand.svg.js +5 -4
  374. package/dist/assets/icons/Wand.svg.js.map +1 -1
  375. package/dist/assets/icons/Waveform.svg.js +5 -4
  376. package/dist/assets/icons/Waveform.svg.js.map +1 -1
  377. package/dist/assets/icons/Withdraw.svg.js +5 -4
  378. package/dist/assets/icons/Withdraw.svg.js.map +1 -1
  379. package/dist/assets/icons/ccBy.svg.js +5 -4
  380. package/dist/assets/icons/ccBy.svg.js.map +1 -1
  381. package/dist/assets/icons/ccCC.svg.js +5 -4
  382. package/dist/assets/icons/ccCC.svg.js.map +1 -1
  383. package/dist/assets/icons/ccNC-EU.svg.js +5 -4
  384. package/dist/assets/icons/ccNC-EU.svg.js.map +1 -1
  385. package/dist/assets/icons/ccNC-JP.svg.js +5 -4
  386. package/dist/assets/icons/ccNC-JP.svg.js.map +1 -1
  387. package/dist/assets/icons/ccNC.svg.js +5 -4
  388. package/dist/assets/icons/ccNC.svg.js.map +1 -1
  389. package/dist/assets/icons/ccND.svg.js +5 -4
  390. package/dist/assets/icons/ccND.svg.js.map +1 -1
  391. package/dist/assets/icons/ccPD.svg.js +5 -4
  392. package/dist/assets/icons/ccPD.svg.js.map +1 -1
  393. package/dist/assets/icons/ccRemix.svg.js +5 -4
  394. package/dist/assets/icons/ccRemix.svg.js.map +1 -1
  395. package/dist/assets/icons/ccSA.svg.js +5 -4
  396. package/dist/assets/icons/ccSA.svg.js.map +1 -1
  397. package/dist/assets/icons/ccSampling.svg.js +5 -4
  398. package/dist/assets/icons/ccSampling.svg.js.map +1 -1
  399. package/dist/assets/icons/ccSamplingPlus.svg.js +6 -5
  400. package/dist/assets/icons/ccSamplingPlus.svg.js.map +1 -1
  401. package/dist/assets/icons/ccShare.svg.js +5 -4
  402. package/dist/assets/icons/ccShare.svg.js.map +1 -1
  403. package/dist/assets/icons/ccZero.svg.js +6 -5
  404. package/dist/assets/icons/ccZero.svg.js.map +1 -1
  405. package/dist/assets/icons/file3GA.svg.js +8 -7
  406. package/dist/assets/icons/file3GA.svg.js.map +1 -1
  407. package/dist/assets/icons/file3GP.svg.js +8 -7
  408. package/dist/assets/icons/file3GP.svg.js.map +1 -1
  409. package/dist/assets/icons/fileAAC.svg.js +8 -7
  410. package/dist/assets/icons/fileAAC.svg.js.map +1 -1
  411. package/dist/assets/icons/fileAIF.svg.js +8 -7
  412. package/dist/assets/icons/fileAIF.svg.js.map +1 -1
  413. package/dist/assets/icons/fileAIFC.svg.js +8 -7
  414. package/dist/assets/icons/fileAIFC.svg.js.map +1 -1
  415. package/dist/assets/icons/fileAIFF.svg.js +8 -7
  416. package/dist/assets/icons/fileAIFF.svg.js.map +1 -1
  417. package/dist/assets/icons/fileAMR.svg.js +8 -7
  418. package/dist/assets/icons/fileAMR.svg.js.map +1 -1
  419. package/dist/assets/icons/fileAWB.svg.js +8 -7
  420. package/dist/assets/icons/fileAWB.svg.js.map +1 -1
  421. package/dist/assets/icons/fileFLAC.svg.js +8 -7
  422. package/dist/assets/icons/fileFLAC.svg.js.map +1 -1
  423. package/dist/assets/icons/fileM4A.svg.js +8 -7
  424. package/dist/assets/icons/fileM4A.svg.js.map +1 -1
  425. package/dist/assets/icons/fileM4B.svg.js +8 -7
  426. package/dist/assets/icons/fileM4B.svg.js.map +1 -1
  427. package/dist/assets/icons/fileM4P.svg.js +8 -7
  428. package/dist/assets/icons/fileM4P.svg.js.map +1 -1
  429. package/dist/assets/icons/fileM4R.svg.js +8 -7
  430. package/dist/assets/icons/fileM4R.svg.js.map +1 -1
  431. package/dist/assets/icons/fileM4V.svg.js +8 -7
  432. package/dist/assets/icons/fileM4V.svg.js.map +1 -1
  433. package/dist/assets/icons/fileMP2.svg.js +8 -7
  434. package/dist/assets/icons/fileMP2.svg.js.map +1 -1
  435. package/dist/assets/icons/fileMP3.svg.js +8 -7
  436. package/dist/assets/icons/fileMP3.svg.js.map +1 -1
  437. package/dist/assets/icons/fileMP4.svg.js +8 -7
  438. package/dist/assets/icons/fileMP4.svg.js.map +1 -1
  439. package/dist/assets/icons/fileMPGA.svg.js +8 -7
  440. package/dist/assets/icons/fileMPGA.svg.js.map +1 -1
  441. package/dist/assets/icons/fileOGA.svg.js +8 -7
  442. package/dist/assets/icons/fileOGA.svg.js.map +1 -1
  443. package/dist/assets/icons/fileOGG.svg.js +8 -7
  444. package/dist/assets/icons/fileOGG.svg.js.map +1 -1
  445. package/dist/assets/icons/fileOGM.svg.js +8 -7
  446. package/dist/assets/icons/fileOGM.svg.js.map +1 -1
  447. package/dist/assets/icons/fileOGV.svg.js +8 -7
  448. package/dist/assets/icons/fileOGV.svg.js.map +1 -1
  449. package/dist/assets/icons/fileOGX.svg.js +8 -7
  450. package/dist/assets/icons/fileOGX.svg.js.map +1 -1
  451. package/dist/assets/icons/fileOPUS.svg.js +8 -7
  452. package/dist/assets/icons/fileOPUS.svg.js.map +1 -1
  453. package/dist/assets/icons/fileSPX.svg.js +8 -7
  454. package/dist/assets/icons/fileSPX.svg.js.map +1 -1
  455. package/dist/assets/icons/fileTS.svg.js +8 -7
  456. package/dist/assets/icons/fileTS.svg.js.map +1 -1
  457. package/dist/assets/icons/fileTSA.svg.js +8 -7
  458. package/dist/assets/icons/fileTSA.svg.js.map +1 -1
  459. package/dist/assets/icons/fileTSV.svg.js +8 -7
  460. package/dist/assets/icons/fileTSV.svg.js.map +1 -1
  461. package/dist/assets/icons/fileUnknown.svg.js +10 -9
  462. package/dist/assets/icons/fileUnknown.svg.js.map +1 -1
  463. package/dist/assets/icons/fileWAV.svg.js +8 -7
  464. package/dist/assets/icons/fileWAV.svg.js.map +1 -1
  465. package/dist/assets/icons/fileWAVE.svg.js +8 -7
  466. package/dist/assets/icons/fileWAVE.svg.js.map +1 -1
  467. package/dist/assets/icons/fileWEBM.svg.js +8 -7
  468. package/dist/assets/icons/fileWEBM.svg.js.map +1 -1
  469. package/dist/assets/icons/fileXWMA.svg.js +8 -7
  470. package/dist/assets/icons/fileXWMA.svg.js.map +1 -1
  471. package/dist/components/artwork/Artwork.d.ts.map +1 -1
  472. package/dist/components/artwork/Artwork.js +10 -3
  473. package/dist/components/artwork/Artwork.js.map +1 -1
  474. package/dist/components/button/BaseButton/BaseButton.d.ts.map +1 -1
  475. package/dist/components/button/BaseButton/BaseButton.js +1 -1
  476. package/dist/components/button/BaseButton/BaseButton.js.map +1 -1
  477. package/dist/components/button/Button/Button.d.ts.map +1 -1
  478. package/dist/components/button/Button/Button.js +3 -2
  479. package/dist/components/button/Button/Button.js.map +1 -1
  480. package/dist/components/button/FilterButton/FilterButtonOptionsList.d.ts.map +1 -1
  481. package/dist/components/button/FilterButton/FilterButtonOptionsList.js +8 -5
  482. package/dist/components/button/FilterButton/FilterButtonOptionsList.js.map +1 -1
  483. package/dist/components/button/UnstyledButton.d.ts +1 -1
  484. package/dist/components/checkbox/Indeterminate.svg.js +4 -3
  485. package/dist/components/checkbox/Indeterminate.svg.js.map +1 -1
  486. package/dist/components/checkbox/Select.svg.js +5 -4
  487. package/dist/components/checkbox/Select.svg.js.map +1 -1
  488. package/dist/components/common/HiddenInput.d.ts +1 -1
  489. package/dist/components/icon-text/IconText.d.ts.map +1 -0
  490. package/dist/components/{comments/IconText → icon-text}/IconText.js +10 -9
  491. package/dist/components/icon-text/IconText.js.map +1 -0
  492. package/dist/components/icon-text/IconText.stories.d.ts.map +1 -0
  493. package/dist/components/icon-text/index.d.ts.map +1 -0
  494. package/dist/components/{comments/IconText → icon-text}/types.d.ts +2 -2
  495. package/dist/components/icon-text/types.d.ts.map +1 -0
  496. package/dist/components/index.d.ts +5 -6
  497. package/dist/components/index.d.ts.map +1 -1
  498. package/dist/components/internal/Menu.d.ts +1 -0
  499. package/dist/components/internal/Menu.d.ts.map +1 -1
  500. package/dist/components/internal/Menu.js +2 -2
  501. package/dist/components/internal/Menu.js.map +1 -1
  502. package/dist/components/internal/MenuItem.d.ts +6 -6
  503. package/dist/components/internal/MenuItem.d.ts.map +1 -1
  504. package/dist/components/internal/MenuItem.js +6 -5
  505. package/dist/components/internal/MenuItem.js.map +1 -1
  506. package/dist/components/internal/OptionKeyHandler.d.ts +1 -0
  507. package/dist/components/internal/OptionKeyHandler.d.ts.map +1 -1
  508. package/dist/components/internal/OptionKeyHandler.js +2 -2
  509. package/dist/components/internal/OptionKeyHandler.js.map +1 -1
  510. package/dist/components/layout/Box/Box.d.ts +1 -1
  511. package/dist/components/layout/Flex/Flex.d.ts +1 -1
  512. package/dist/components/scrubber/Scrubber.d.ts +1 -1
  513. package/dist/components/scrubber/Scrubber.d.ts.map +1 -1
  514. package/dist/components/scrubber/Scrubber.js +2 -2
  515. package/dist/components/scrubber/Scrubber.js.map +1 -1
  516. package/dist/components/scrubber/Slider.d.ts +1 -1
  517. package/dist/components/scrubber/Slider.d.ts.map +1 -1
  518. package/dist/components/scrubber/Slider.js +30 -39
  519. package/dist/components/scrubber/Slider.js.map +1 -1
  520. package/dist/components/scrubber/hooks.d.ts +6 -4
  521. package/dist/components/scrubber/hooks.d.ts.map +1 -1
  522. package/dist/components/scrubber/hooks.js +52 -54
  523. package/dist/components/scrubber/hooks.js.map +1 -1
  524. package/dist/components/scrubber/types.d.ts +8 -0
  525. package/dist/components/scrubber/types.d.ts.map +1 -1
  526. package/dist/components/scrubber/types.js.map +1 -1
  527. package/dist/components/send-icon/SendIcon.d.ts.map +1 -0
  528. package/dist/components/{comments/SendIcon → send-icon}/SendIcon.js +9 -9
  529. package/dist/components/send-icon/SendIcon.js.map +1 -0
  530. package/dist/components/send-icon/SendIcon.stories.d.ts.map +1 -0
  531. package/dist/components/send-icon/index.d.ts.map +1 -0
  532. package/dist/components/send-icon/types.d.ts.map +1 -0
  533. package/dist/components/text/Text.d.ts.map +1 -1
  534. package/dist/components/text/Text.js +11 -9
  535. package/dist/components/text/Text.js.map +1 -1
  536. package/dist/harmony.css +1 -1
  537. package/dist/icons/utilityIcons.d.ts +2 -0
  538. package/dist/icons/utilityIcons.d.ts.map +1 -1
  539. package/dist/icons/utilityIcons.js +5 -1
  540. package/dist/icons/utilityIcons.js.map +1 -1
  541. package/dist/index.js +6 -9
  542. package/dist/index.js.map +1 -1
  543. package/dist/storybook/components/Subtitle.d.ts +1 -1
  544. package/dist/utils/formatTrackTimestamp.d.ts.map +1 -1
  545. package/dist/utils/formatTrackTimestamp.js +3 -2
  546. package/dist/utils/formatTrackTimestamp.js.map +1 -1
  547. package/package.json +5 -5
  548. package/dist/components/comments/ArtistPick/ArtistPick.d.ts +0 -3
  549. package/dist/components/comments/ArtistPick/ArtistPick.d.ts.map +0 -1
  550. package/dist/components/comments/ArtistPick/ArtistPick.js +0 -20
  551. package/dist/components/comments/ArtistPick/ArtistPick.js.map +0 -1
  552. package/dist/components/comments/ArtistPick/ArtistPick.stories.d.ts +0 -7
  553. package/dist/components/comments/ArtistPick/ArtistPick.stories.d.ts.map +0 -1
  554. package/dist/components/comments/ArtistPick/index.d.ts +0 -3
  555. package/dist/components/comments/ArtistPick/index.d.ts.map +0 -1
  556. package/dist/components/comments/ArtistPick/types.d.ts +0 -5
  557. package/dist/components/comments/ArtistPick/types.d.ts.map +0 -1
  558. package/dist/components/comments/CommentText/CommentText.d.ts +0 -3
  559. package/dist/components/comments/CommentText/CommentText.d.ts.map +0 -1
  560. package/dist/components/comments/CommentText/CommentText.js +0 -36
  561. package/dist/components/comments/CommentText/CommentText.js.map +0 -1
  562. package/dist/components/comments/CommentText/CommentText.stories.d.ts +0 -10
  563. package/dist/components/comments/CommentText/CommentText.stories.d.ts.map +0 -1
  564. package/dist/components/comments/CommentText/index.d.ts +0 -3
  565. package/dist/components/comments/CommentText/index.d.ts.map +0 -1
  566. package/dist/components/comments/CommentText/types.d.ts +0 -5
  567. package/dist/components/comments/CommentText/types.d.ts.map +0 -1
  568. package/dist/components/comments/IconText/IconText.d.ts.map +0 -1
  569. package/dist/components/comments/IconText/IconText.js.map +0 -1
  570. package/dist/components/comments/IconText/IconText.stories.d.ts.map +0 -1
  571. package/dist/components/comments/IconText/index.d.ts.map +0 -1
  572. package/dist/components/comments/IconText/types.d.ts.map +0 -1
  573. package/dist/components/comments/Identifier/Identifier.d.ts +0 -3
  574. package/dist/components/comments/Identifier/Identifier.d.ts.map +0 -1
  575. package/dist/components/comments/Identifier/Identifier.js +0 -30
  576. package/dist/components/comments/Identifier/Identifier.js.map +0 -1
  577. package/dist/components/comments/Identifier/Identifier.stories.d.ts +0 -7
  578. package/dist/components/comments/Identifier/Identifier.stories.d.ts.map +0 -1
  579. package/dist/components/comments/Identifier/index.d.ts +0 -3
  580. package/dist/components/comments/Identifier/index.d.ts.map +0 -1
  581. package/dist/components/comments/Identifier/types.d.ts +0 -5
  582. package/dist/components/comments/Identifier/types.d.ts.map +0 -1
  583. package/dist/components/comments/SendIcon/SendIcon.d.ts.map +0 -1
  584. package/dist/components/comments/SendIcon/SendIcon.js.map +0 -1
  585. package/dist/components/comments/SendIcon/SendIcon.stories.d.ts.map +0 -1
  586. package/dist/components/comments/SendIcon/index.d.ts.map +0 -1
  587. package/dist/components/comments/SendIcon/types.d.ts.map +0 -1
  588. package/dist/components/comments/Timestamp/Timestamp.d.ts +0 -3
  589. package/dist/components/comments/Timestamp/Timestamp.d.ts.map +0 -1
  590. package/dist/components/comments/Timestamp/Timestamp.js +0 -13
  591. package/dist/components/comments/Timestamp/Timestamp.js.map +0 -1
  592. package/dist/components/comments/Timestamp/Timestamp.stories.d.ts +0 -7
  593. package/dist/components/comments/Timestamp/Timestamp.stories.d.ts.map +0 -1
  594. package/dist/components/comments/Timestamp/index.d.ts +0 -4
  595. package/dist/components/comments/Timestamp/index.d.ts.map +0 -1
  596. package/dist/components/comments/Timestamp/types.d.ts +0 -11
  597. package/dist/components/comments/Timestamp/types.d.ts.map +0 -1
  598. package/dist/components/comments/Timestamp/types.js +0 -10
  599. package/dist/components/comments/Timestamp/types.js.map +0 -1
  600. package/dist/components/comments/Timestamp/util.d.ts +0 -2
  601. package/dist/components/comments/Timestamp/util.d.ts.map +0 -1
  602. package/dist/components/comments/Timestamp/util.js +0 -26
  603. package/dist/components/comments/Timestamp/util.js.map +0 -1
  604. /package/dist/components/{comments/IconText → icon-text}/IconText.d.ts +0 -0
  605. /package/dist/components/{comments/IconText → icon-text}/IconText.stories.d.ts +0 -0
  606. /package/dist/components/{comments/IconText → icon-text}/index.d.ts +0 -0
  607. /package/dist/components/{comments/SendIcon → send-icon}/SendIcon.d.ts +0 -0
  608. /package/dist/components/{comments/SendIcon → send-icon}/SendIcon.stories.d.ts +0 -0
  609. /package/dist/components/{comments/SendIcon → send-icon}/index.d.ts +0 -0
  610. /package/dist/components/{comments/SendIcon → send-icon}/types.d.ts +0 -0
@@ -1,9 +1,9 @@
1
1
  import { __assign } from '../../_virtual/_tslib.js';
2
2
  import { jsxs, jsx } from '@emotion/react/jsx-runtime';
3
- import { useState, useRef, useCallback, useEffect } from 'react';
3
+ import { useRef, useCallback, useEffect } from 'react';
4
4
  import cn from 'classnames';
5
5
  import styles from './Slider.module.css.js';
6
- import { useAnimations } from './hooks.js';
6
+ import { usePlaybackPositionTracking } from './hooks.js';
7
7
 
8
8
  /** Gets the X-position of a div. */
9
9
  var getXPosition = function (element) {
@@ -16,8 +16,7 @@ var getXPosition = function (element) {
16
16
  */
17
17
  var Slider = function (_a) {
18
18
  var _b;
19
- var mediaKey = _a.mediaKey, isPlaying = _a.isPlaying, isMobile = _a.isMobile, isDisabled = _a.isDisabled, elapsedSeconds = _a.elapsedSeconds, totalSeconds = _a.totalSeconds, playbackRate = _a.playbackRate, onScrub = _a.onScrub, onScrubRelease = _a.onScrubRelease, _c = _a.includeExpandedTargets, includeExpandedTargets = _c === void 0 ? true : _c, style = _a.style;
20
- var _d = useState(''), previousMediaKey = _d[0], setPreviousMediaKey = _d[1];
19
+ var isPlaying = _a.isPlaying, isMobile = _a.isMobile, isDisabled = _a.isDisabled, totalSeconds = _a.totalSeconds, elapsedSeconds = _a.elapsedSeconds, onScrub = _a.onScrub, onScrubRelease = _a.onScrubRelease, getAudioPosition = _a.getAudioPosition, getTotalTime = _a.getTotalTime, _c = _a.includeExpandedTargets, includeExpandedTargets = _c === void 0 ? true : _c, style = _a.style;
21
20
  // Percentage of the complete scrubber being dragged to.
22
21
  // e.g. 0.25 means the user has dragged the scrubber 1/4th of the way.
23
22
  var dragPercent = useRef(0);
@@ -30,7 +29,7 @@ var Slider = function (_a) {
30
29
  var railRef = useRef(null);
31
30
  var trackRef = useRef(null);
32
31
  var handleRef = useRef(null);
33
- var _e = useAnimations(trackRef, handleRef, elapsedSeconds, totalSeconds, playbackRate), play = _e.play, pause = _e.pause, setPercent = _e.setPercent;
32
+ var _d = usePlaybackPositionTracking(trackRef, handleRef, getAudioPosition, getTotalTime), play = _d.play, pause = _d.pause, refreshPosition = _d.refreshPosition, setPositionOverrideEnabled = _d.setPositionOverrideEnabled, setPosition = _d.setPosition;
34
33
  /**
35
34
  * Sets the percentage across the scrubber for a given pageX position.
36
35
  */
@@ -62,13 +61,13 @@ var Slider = function (_a) {
62
61
  e.preventDefault();
63
62
  setDragPercentMouse(e);
64
63
  if (dragPercent.current !== null) {
65
- setPercent(dragPercent.current);
64
+ setPosition(dragPercent.current);
66
65
  var seconds = dragPercent.current * totalSeconds;
67
66
  if (onScrub) {
68
67
  onScrub(seconds);
69
68
  }
70
69
  }
71
- }, [dragPercent, setDragPercentMouse, totalSeconds, setPercent, onScrub]);
70
+ }, [dragPercent, setDragPercentMouse, totalSeconds, onScrub, setPosition]);
72
71
  /**
73
72
  * Watches user touch movements while the scrubber handle is being dragged.
74
73
  */
@@ -77,13 +76,13 @@ var Slider = function (_a) {
77
76
  e.preventDefault();
78
77
  setDragPercentTouch(e);
79
78
  if (dragPercent.current !== null) {
80
- setPercent(dragPercent.current);
79
+ setPosition(dragPercent.current);
81
80
  var seconds = dragPercent.current * totalSeconds;
82
81
  if (onScrub) {
83
82
  onScrub(seconds);
84
83
  }
85
84
  }
86
- }, [dragPercent, setDragPercentTouch, totalSeconds, setPercent, onScrub]);
85
+ }, [dragPercent, setDragPercentTouch, totalSeconds, onScrub, setPosition]);
87
86
  /**
88
87
  * Watches for a mouse-up action (which may not occur on the scrubber itself),
89
88
  * calls the release callback, and resets dragging state.
@@ -95,6 +94,7 @@ var Slider = function (_a) {
95
94
  if (mouseUpRef.current) {
96
95
  document.removeEventListener('mouseup', mouseUpRef.current);
97
96
  }
97
+ setPositionOverrideEnabled(false);
98
98
  if (dragPercent.current !== null) {
99
99
  var seconds = dragPercent.current * totalSeconds;
100
100
  if (onScrubRelease) {
@@ -102,7 +102,14 @@ var Slider = function (_a) {
102
102
  }
103
103
  dragPercent.current = null;
104
104
  }
105
- }, [mouseMoveRef, mouseUpRef, dragPercent, totalSeconds, onScrubRelease]);
105
+ }, [
106
+ mouseMoveRef,
107
+ mouseUpRef,
108
+ dragPercent,
109
+ totalSeconds,
110
+ onScrubRelease,
111
+ setPositionOverrideEnabled
112
+ ]);
106
113
  /**
107
114
  * Watches for a touch-end action (which may not occur on the scrubber itself),
108
115
  * calls the release callback, and resets dragging state.
@@ -114,6 +121,7 @@ var Slider = function (_a) {
114
121
  if (touchEndRef.current) {
115
122
  document.removeEventListener('touchend', touchEndRef.current);
116
123
  }
124
+ setPositionOverrideEnabled(false);
117
125
  if (dragPercent.current !== null) {
118
126
  var seconds = dragPercent.current * totalSeconds;
119
127
  if (onScrubRelease) {
@@ -121,7 +129,14 @@ var Slider = function (_a) {
121
129
  }
122
130
  dragPercent.current = null;
123
131
  }
124
- }, [touchMoveRef, touchEndRef, dragPercent, totalSeconds, onScrubRelease]);
132
+ }, [
133
+ touchMoveRef,
134
+ touchEndRef,
135
+ dragPercent,
136
+ totalSeconds,
137
+ onScrubRelease,
138
+ setPositionOverrideEnabled
139
+ ]);
125
140
  /**
126
141
  * Attaches mouse-move and mouse-up event listeners and sets dragging state.
127
142
  */
@@ -133,10 +148,8 @@ var Slider = function (_a) {
133
148
  mouseUpRef.current = onMouseUp;
134
149
  document.addEventListener('mousemove', mouseMoveRef.current);
135
150
  document.addEventListener('mouseup', mouseUpRef.current);
151
+ setPositionOverrideEnabled(true);
136
152
  setDragPercentMouse(e);
137
- if (dragPercent.current !== null) {
138
- setPercent(dragPercent.current);
139
- }
140
153
  };
141
154
  /**
142
155
  * Attaches touch-move and touch-end event listeners and sets dragging state.
@@ -146,10 +159,8 @@ var Slider = function (_a) {
146
159
  touchEndRef.current = onTouchEnd;
147
160
  document.addEventListener('touchmove', touchMoveRef.current);
148
161
  document.addEventListener('touchend', touchEndRef.current);
162
+ setPositionOverrideEnabled(true);
149
163
  setDragPercentTouch(e);
150
- if (dragPercent.current !== null) {
151
- setPercent(dragPercent.current);
152
- }
153
164
  };
154
165
  // Watch interactions to the scrubber and call to animate
155
166
  useEffect(function () {
@@ -161,28 +172,8 @@ var Slider = function (_a) {
161
172
  }
162
173
  }, [isPlaying, dragPercent, play, pause]);
163
174
  useEffect(function () {
164
- setPercent(elapsedSeconds / totalSeconds);
165
- // eslint-disable-next-line react-hooks/exhaustive-deps
166
- }, [playbackRate, elapsedSeconds, totalSeconds]);
167
- // When the key changes, reset the animation
168
- useEffect(function () {
169
- if (mediaKey !== previousMediaKey) {
170
- if (!totalSeconds) {
171
- setPercent(0);
172
- }
173
- else {
174
- setPercent(elapsedSeconds / totalSeconds);
175
- }
176
- setPreviousMediaKey(mediaKey);
177
- }
178
- }, [
179
- mediaKey,
180
- previousMediaKey,
181
- setPreviousMediaKey,
182
- setPercent,
183
- elapsedSeconds,
184
- totalSeconds
185
- ]);
175
+ refreshPosition();
176
+ }, [elapsedSeconds, totalSeconds, refreshPosition]);
186
177
  var getShowHandle = function () {
187
178
  return !style || style.showHandle === undefined ? true : style.showHandle;
188
179
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sources":["../../../src/components/scrubber/Slider.tsx"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, CSSProperties } from 'react'\nimport * as React from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Slider.module.css'\nimport { useAnimations } from './hooks'\nimport { ScrubberProps } from './types'\n\n/** Gets the X-position of a div. */\nconst getXPosition = (element: HTMLDivElement) => {\n const coords = element.getBoundingClientRect()\n return window.pageXOffset + coords.left\n}\n\n/**\n * A smooth scrubbable slider that relies on CSS animations rather\n * than progress ticks to achieve fluidity.\n */\nexport const Slider = ({\n mediaKey,\n isPlaying,\n isMobile,\n isDisabled,\n elapsedSeconds,\n totalSeconds,\n playbackRate,\n onScrub,\n onScrubRelease,\n includeExpandedTargets = true,\n style\n}: ScrubberProps) => {\n const [previousMediaKey, setPreviousMediaKey] = useState('')\n\n // Percentage of the complete scrubber being dragged to.\n // e.g. 0.25 means the user has dragged the scrubber 1/4th of the way.\n const dragPercent = useRef<number | null>(0)\n\n // Refs to handle event listeners\n const mouseMoveRef = useRef<((this: Document, ev: MouseEvent) => any) | null>(\n null\n )\n const mouseUpRef = useRef<((this: Document, ev: MouseEvent) => any) | null>(\n null\n )\n const touchMoveRef = useRef<((e: TouchEvent) => any) | null>(null)\n const touchEndRef = useRef<((e: TouchEvent) => any) | null>(null)\n\n // Div refs\n const railRef = useRef<HTMLDivElement>(null)\n const trackRef = useRef<HTMLDivElement>(null)\n const handleRef = useRef<HTMLDivElement>(null)\n\n const { play, pause, setPercent } = useAnimations(\n trackRef,\n handleRef,\n elapsedSeconds,\n totalSeconds,\n playbackRate\n )\n\n /**\n * Sets the percentage across the scrubber for a given pageX position.\n */\n const setDragPercent = useCallback(\n (pageX: number) => {\n if (railRef.current) {\n const clickPosition = pageX - getXPosition(railRef.current)\n const railWidth = railRef.current.offsetWidth\n const percent =\n Math.min(Math.max(0, clickPosition), railWidth) / railWidth\n dragPercent.current = percent\n }\n },\n [dragPercent]\n )\n\n /**\n * Sets the percentage across the scrubber for a given mouse event.\n */\n const setDragPercentMouse = useCallback(\n (e: React.MouseEvent | MouseEvent) => {\n setDragPercent(e.pageX)\n },\n [setDragPercent]\n )\n\n /**\n * Sets the percentage across the scurbber for a given touch event.\n */\n const setDragPercentTouch = useCallback(\n (e: React.TouchEvent | TouchEvent) => {\n setDragPercent(e.touches[0].pageX)\n },\n [setDragPercent]\n )\n\n /**\n * Watches user mouse movements while the scrubber handle is being dragged.\n */\n const onMouseMove = useCallback(\n (e: MouseEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n setDragPercentMouse(e)\n if (dragPercent.current !== null) {\n setPercent(dragPercent.current)\n const seconds = dragPercent.current * totalSeconds\n if (onScrub) {\n onScrub(seconds)\n }\n }\n },\n [dragPercent, setDragPercentMouse, totalSeconds, setPercent, onScrub]\n )\n\n /**\n * Watches user touch movements while the scrubber handle is being dragged.\n */\n const onTouchMove = useCallback(\n (e: TouchEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n setDragPercentTouch(e)\n if (dragPercent.current !== null) {\n setPercent(dragPercent.current)\n\n const seconds = dragPercent.current * totalSeconds\n if (onScrub) {\n onScrub(seconds)\n }\n }\n },\n [dragPercent, setDragPercentTouch, totalSeconds, setPercent, onScrub]\n )\n\n /**\n * Watches for a mouse-up action (which may not occur on the scrubber itself),\n * calls the release callback, and resets dragging state.\n */\n const onMouseUp = useCallback(() => {\n if (mouseMoveRef.current) {\n document.removeEventListener('mousemove', mouseMoveRef.current)\n }\n if (mouseUpRef.current) {\n document.removeEventListener('mouseup', mouseUpRef.current)\n }\n\n if (dragPercent.current !== null) {\n const seconds = dragPercent.current * totalSeconds\n if (onScrubRelease) {\n onScrubRelease(seconds)\n }\n\n dragPercent.current = null\n }\n }, [mouseMoveRef, mouseUpRef, dragPercent, totalSeconds, onScrubRelease])\n\n /**\n * Watches for a touch-end action (which may not occur on the scrubber itself),\n * calls the release callback, and resets dragging state.\n */\n const onTouchEnd = useCallback(() => {\n if (touchMoveRef.current) {\n document.removeEventListener('touchmove', touchMoveRef.current)\n }\n if (touchEndRef.current) {\n document.removeEventListener('touchend', touchEndRef.current)\n }\n\n if (dragPercent.current !== null) {\n const seconds = dragPercent.current * totalSeconds\n if (onScrubRelease) {\n onScrubRelease(seconds)\n }\n\n dragPercent.current = null\n }\n }, [touchMoveRef, touchEndRef, dragPercent, totalSeconds, onScrubRelease])\n\n /**\n * Attaches mouse-move and mouse-up event listeners and sets dragging state.\n */\n const onMouseDown = (e: React.MouseEvent) => {\n // Cancel mouse down if touch was fired.\n if (e.button !== 0 || touchMoveRef.current) return\n\n mouseMoveRef.current = onMouseMove\n mouseUpRef.current = onMouseUp\n document.addEventListener('mousemove', mouseMoveRef.current)\n document.addEventListener('mouseup', mouseUpRef.current)\n\n setDragPercentMouse(e)\n if (dragPercent.current !== null) {\n setPercent(dragPercent.current)\n }\n }\n\n /**\n * Attaches touch-move and touch-end event listeners and sets dragging state.\n */\n const onTouchStart = (e: React.TouchEvent) => {\n touchMoveRef.current = onTouchMove\n touchEndRef.current = onTouchEnd\n document.addEventListener('touchmove', touchMoveRef.current)\n document.addEventListener('touchend', touchEndRef.current)\n\n setDragPercentTouch(e)\n if (dragPercent.current !== null) {\n setPercent(dragPercent.current)\n }\n }\n\n // Watch interactions to the scrubber and call to animate\n useEffect(() => {\n if (!dragPercent.current) {\n if (isPlaying) play()\n else pause()\n }\n }, [isPlaying, dragPercent, play, pause])\n\n useEffect(() => {\n setPercent(elapsedSeconds / totalSeconds)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [playbackRate, elapsedSeconds, totalSeconds])\n\n // When the key changes, reset the animation\n useEffect(() => {\n if (mediaKey !== previousMediaKey) {\n if (!totalSeconds) {\n setPercent(0)\n } else {\n setPercent(elapsedSeconds / totalSeconds)\n }\n setPreviousMediaKey(mediaKey)\n }\n }, [\n mediaKey,\n previousMediaKey,\n setPreviousMediaKey,\n setPercent,\n elapsedSeconds,\n totalSeconds\n ])\n\n const getShowHandle = () =>\n !style || style.showHandle === undefined ? true : style.showHandle\n\n const getRailStyle = () => {\n const s: CSSProperties = {}\n if (style && style.railUnlistenedColor) {\n s.background = style.railUnlistenedColor\n }\n return s\n }\n\n const getTrackStyle = () => {\n const s: CSSProperties = {}\n if (style && style.railListenedColor) {\n s.background = style.railListenedColor\n }\n\n if (style && style.railListenedColor) {\n s.borderRadius = 'var(--unit-half)'\n }\n return s\n }\n\n const getSliderStyle = () => {\n if (style && style.sliderMargin) return { margin: style.sliderMargin }\n return {}\n }\n\n const getHandleStyle = () => {\n const s: CSSProperties = {}\n if (style) {\n if (style.handleColor) s.background = style.handleColor\n if (style.handleShadow) s.boxShadow = style.handleShadow\n }\n return s\n }\n\n return (\n <div\n className={cn(styles.slider, {\n [styles.isMobile]: isMobile,\n [styles.isDisabled]: isDisabled,\n [styles.showHandle]: getShowHandle(),\n [styles.expandedTargets]: includeExpandedTargets\n })}\n onMouseDown={isDisabled ? () => {} : onMouseDown}\n onTouchStart={isDisabled ? () => {} : onTouchStart}\n style={getSliderStyle()}\n >\n <div ref={railRef} className={styles.rail} style={getRailStyle()}>\n <div ref={trackRef} className={styles.trackWrapper}>\n <div\n ref={trackRef}\n className={styles.track}\n style={getTrackStyle()}\n />\n </div>\n </div>\n <div ref={handleRef} className={styles.handleWrapper}>\n <div\n ref={handleRef}\n className={styles.handle}\n style={getHandleStyle()}\n />\n </div>\n </div>\n )\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.js","sources":["../../../src/components/scrubber/Slider.tsx"],"sourcesContent":["import { useEffect, useCallback, useRef, CSSProperties } from 'react'\nimport * as React from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Slider.module.css'\nimport { usePlaybackPositionTracking } from './hooks'\nimport { ScrubberProps } from './types'\n\n/** Gets the X-position of a div. */\nconst getXPosition = (element: HTMLDivElement) => {\n const coords = element.getBoundingClientRect()\n return window.pageXOffset + coords.left\n}\n\n/**\n * A smooth scrubbable slider that relies on CSS animations rather\n * than progress ticks to achieve fluidity.\n */\nexport const Slider = ({\n isPlaying,\n isMobile,\n isDisabled,\n totalSeconds,\n elapsedSeconds,\n onScrub,\n onScrubRelease,\n getAudioPosition,\n getTotalTime,\n includeExpandedTargets = true,\n style\n}: ScrubberProps) => {\n // Percentage of the complete scrubber being dragged to.\n // e.g. 0.25 means the user has dragged the scrubber 1/4th of the way.\n const dragPercent = useRef<number | null>(0)\n\n // Refs to handle event listeners\n const mouseMoveRef = useRef<((this: Document, ev: MouseEvent) => any) | null>(\n null\n )\n const mouseUpRef = useRef<((this: Document, ev: MouseEvent) => any) | null>(\n null\n )\n const touchMoveRef = useRef<((e: TouchEvent) => any) | null>(null)\n const touchEndRef = useRef<((e: TouchEvent) => any) | null>(null)\n\n // Div refs\n const railRef = useRef<HTMLDivElement>(null)\n const trackRef = useRef<HTMLDivElement>(null)\n const handleRef = useRef<HTMLDivElement>(null)\n\n const {\n play,\n pause,\n refreshPosition,\n setPositionOverrideEnabled,\n setPosition\n } = usePlaybackPositionTracking(\n trackRef,\n handleRef,\n getAudioPosition,\n getTotalTime\n )\n\n /**\n * Sets the percentage across the scrubber for a given pageX position.\n */\n const setDragPercent = useCallback(\n (pageX: number) => {\n if (railRef.current) {\n const clickPosition = pageX - getXPosition(railRef.current)\n const railWidth = railRef.current.offsetWidth\n const percent =\n Math.min(Math.max(0, clickPosition), railWidth) / railWidth\n dragPercent.current = percent\n }\n },\n [dragPercent]\n )\n\n /**\n * Sets the percentage across the scrubber for a given mouse event.\n */\n const setDragPercentMouse = useCallback(\n (e: React.MouseEvent | MouseEvent) => {\n setDragPercent(e.pageX)\n },\n [setDragPercent]\n )\n\n /**\n * Sets the percentage across the scurbber for a given touch event.\n */\n const setDragPercentTouch = useCallback(\n (e: React.TouchEvent | TouchEvent) => {\n setDragPercent(e.touches[0].pageX)\n },\n [setDragPercent]\n )\n\n /**\n * Watches user mouse movements while the scrubber handle is being dragged.\n */\n const onMouseMove = useCallback(\n (e: MouseEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n setDragPercentMouse(e)\n if (dragPercent.current !== null) {\n setPosition(dragPercent.current)\n const seconds = dragPercent.current * totalSeconds\n if (onScrub) {\n onScrub(seconds)\n }\n }\n },\n [dragPercent, setDragPercentMouse, totalSeconds, onScrub, setPosition]\n )\n\n /**\n * Watches user touch movements while the scrubber handle is being dragged.\n */\n const onTouchMove = useCallback(\n (e: TouchEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n setDragPercentTouch(e)\n if (dragPercent.current !== null) {\n setPosition(dragPercent.current)\n\n const seconds = dragPercent.current * totalSeconds\n if (onScrub) {\n onScrub(seconds)\n }\n }\n },\n [dragPercent, setDragPercentTouch, totalSeconds, onScrub, setPosition]\n )\n\n /**\n * Watches for a mouse-up action (which may not occur on the scrubber itself),\n * calls the release callback, and resets dragging state.\n */\n const onMouseUp = useCallback(() => {\n if (mouseMoveRef.current) {\n document.removeEventListener('mousemove', mouseMoveRef.current)\n }\n if (mouseUpRef.current) {\n document.removeEventListener('mouseup', mouseUpRef.current)\n }\n setPositionOverrideEnabled(false)\n\n if (dragPercent.current !== null) {\n const seconds = dragPercent.current * totalSeconds\n if (onScrubRelease) {\n onScrubRelease(seconds)\n }\n\n dragPercent.current = null\n }\n }, [\n mouseMoveRef,\n mouseUpRef,\n dragPercent,\n totalSeconds,\n onScrubRelease,\n setPositionOverrideEnabled\n ])\n\n /**\n * Watches for a touch-end action (which may not occur on the scrubber itself),\n * calls the release callback, and resets dragging state.\n */\n const onTouchEnd = useCallback(() => {\n if (touchMoveRef.current) {\n document.removeEventListener('touchmove', touchMoveRef.current)\n }\n if (touchEndRef.current) {\n document.removeEventListener('touchend', touchEndRef.current)\n }\n setPositionOverrideEnabled(false)\n\n if (dragPercent.current !== null) {\n const seconds = dragPercent.current * totalSeconds\n if (onScrubRelease) {\n onScrubRelease(seconds)\n }\n\n dragPercent.current = null\n }\n }, [\n touchMoveRef,\n touchEndRef,\n dragPercent,\n totalSeconds,\n onScrubRelease,\n setPositionOverrideEnabled\n ])\n\n /**\n * Attaches mouse-move and mouse-up event listeners and sets dragging state.\n */\n const onMouseDown = (e: React.MouseEvent) => {\n // Cancel mouse down if touch was fired.\n if (e.button !== 0 || touchMoveRef.current) return\n\n mouseMoveRef.current = onMouseMove\n mouseUpRef.current = onMouseUp\n document.addEventListener('mousemove', mouseMoveRef.current)\n document.addEventListener('mouseup', mouseUpRef.current)\n setPositionOverrideEnabled(true)\n\n setDragPercentMouse(e)\n }\n\n /**\n * Attaches touch-move and touch-end event listeners and sets dragging state.\n */\n const onTouchStart = (e: React.TouchEvent) => {\n touchMoveRef.current = onTouchMove\n touchEndRef.current = onTouchEnd\n document.addEventListener('touchmove', touchMoveRef.current)\n document.addEventListener('touchend', touchEndRef.current)\n setPositionOverrideEnabled(true)\n\n setDragPercentTouch(e)\n }\n\n // Watch interactions to the scrubber and call to animate\n useEffect(() => {\n if (!dragPercent.current) {\n if (isPlaying) play()\n else pause()\n }\n }, [isPlaying, dragPercent, play, pause])\n\n useEffect(() => {\n refreshPosition()\n }, [elapsedSeconds, totalSeconds, refreshPosition])\n\n const getShowHandle = () =>\n !style || style.showHandle === undefined ? true : style.showHandle\n\n const getRailStyle = () => {\n const s: CSSProperties = {}\n if (style && style.railUnlistenedColor) {\n s.background = style.railUnlistenedColor\n }\n return s\n }\n\n const getTrackStyle = () => {\n const s: CSSProperties = {}\n if (style && style.railListenedColor) {\n s.background = style.railListenedColor\n }\n\n if (style && style.railListenedColor) {\n s.borderRadius = 'var(--unit-half)'\n }\n return s\n }\n\n const getSliderStyle = () => {\n if (style && style.sliderMargin) return { margin: style.sliderMargin }\n return {}\n }\n\n const getHandleStyle = () => {\n const s: CSSProperties = {}\n if (style) {\n if (style.handleColor) s.background = style.handleColor\n if (style.handleShadow) s.boxShadow = style.handleShadow\n }\n return s\n }\n\n return (\n <div\n className={cn(styles.slider, {\n [styles.isMobile]: isMobile,\n [styles.isDisabled]: isDisabled,\n [styles.showHandle]: getShowHandle(),\n [styles.expandedTargets]: includeExpandedTargets\n })}\n onMouseDown={isDisabled ? () => {} : onMouseDown}\n onTouchStart={isDisabled ? () => {} : onTouchStart}\n style={getSliderStyle()}\n >\n <div ref={railRef} className={styles.rail} style={getRailStyle()}>\n <div ref={trackRef} className={styles.trackWrapper}>\n <div\n ref={trackRef}\n className={styles.track}\n style={getTrackStyle()}\n />\n </div>\n </div>\n <div ref={handleRef} className={styles.handleWrapper}>\n <div\n ref={handleRef}\n className={styles.handle}\n style={getHandleStyle()}\n />\n </div>\n </div>\n )\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import * as React from 'react';
2
2
  /**
3
- * Hook for initializing animations for a scrubber.
4
- * const animations = useAnimations()
3
+ * Hook for initializing playback update mechanism. Uses rAF to sync element
4
+ * positions to the current playback position.
5
5
  */
6
- export declare const useAnimations: (trackRef: React.MutableRefObject<HTMLDivElement | null>, handleRef: React.MutableRefObject<HTMLDivElement | null>, elapsedSeconds: number, totalSeconds: number, playbackRate?: number) => {
6
+ export declare const usePlaybackPositionTracking: (trackRef: React.MutableRefObject<HTMLDivElement | null>, handleRef: React.MutableRefObject<HTMLDivElement | null>, getAudioPosition: () => number, getTotalTime: () => number) => {
7
7
  play: () => void;
8
8
  pause: () => void;
9
- setPercent: (percentComplete: number) => void;
9
+ refreshPosition: () => void;
10
+ setPositionOverrideEnabled: (enabled: boolean) => void;
11
+ setPosition: (position?: number) => void;
10
12
  };
11
13
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/scrubber/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAoB9B;;;GAGG;AACH,eAAO,MAAM,aAAa,aACd,MAAM,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,aAC5C,MAAM,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,kBACxC,MAAM,gBACR,MAAM;;;kCAwCA,MAAM;CA8B3B,CAAA"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/scrubber/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;;GAGG;AACH,eAAO,MAAM,2BAA2B,aAC5B,MAAM,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,aAC5C,MAAM,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,oBACtC,MAAM,MAAM,gBAChB,MAAM,MAAM;;;;0CAmD+B,OAAO;;CAWjE,CAAA"}
@@ -1,63 +1,61 @@
1
- import { useCallback, useRef, useEffect } from 'react';
1
+ import { useRef, useCallback } from 'react';
2
2
 
3
- /** Sets animation properties on the handle and track. */
4
- var animate = function (trackRef, handleRef, transition, transform) {
5
- if (handleRef.current && trackRef.current) {
6
- handleRef.current.style.transition = transition;
7
- handleRef.current.style.transform = transform;
8
- trackRef.current.style.transition = transition;
9
- trackRef.current.style.transform = transform;
10
- }
11
- };
12
3
  /**
13
- * Hook for initializing animations for a scrubber.
14
- * const animations = useAnimations()
4
+ * Hook for initializing playback update mechanism. Uses rAF to sync element
5
+ * positions to the current playback position.
15
6
  */
16
- var useAnimations = function (trackRef, handleRef, elapsedSeconds, totalSeconds, playbackRate) {
17
- if (playbackRate === void 0) { playbackRate = 1; }
18
- /** Animates from the current position to the end over the remaining seconds. */
7
+ var usePlaybackPositionTracking = function (trackRef, handleRef, getAudioPosition, getTotalTime) {
8
+ var isPlayingRef = useRef(false);
9
+ var getAudioPositionRef = useRef(getAudioPosition);
10
+ var overridePositionRef = useRef(0);
11
+ var overridePositionEnabledRef = useRef(false);
12
+ var getTotalTimeRef = useRef(getTotalTime);
13
+ var updatePositionRef = useRef(function () {
14
+ if (trackRef.current && handleRef.current) {
15
+ var audioPosition = getAudioPositionRef.current();
16
+ var totalTime = getTotalTimeRef.current();
17
+ var percentComplete = overridePositionEnabledRef.current
18
+ ? overridePositionRef.current
19
+ : audioPosition / totalTime;
20
+ var translation = "translate(".concat(percentComplete * 100, "%)");
21
+ handleRef.current.style.transform = translation;
22
+ trackRef.current.style.transform = translation;
23
+ }
24
+ if (isPlayingRef.current) {
25
+ window.requestAnimationFrame(updatePositionRef.current);
26
+ }
27
+ });
28
+ /** Starts a rAF loop to grab the current player position and update continuously */
19
29
  var play = useCallback(function () {
20
- var timeRemaining = (totalSeconds - elapsedSeconds) / playbackRate;
21
- animate(trackRef, handleRef, "transform ".concat(timeRemaining, "s linear"), 'translate(100%)');
22
- }, [totalSeconds, elapsedSeconds, playbackRate, trackRef, handleRef]);
23
- /**
24
- * Pauses the animation at the current position.
25
- * NOTE: We derive the current position from the actual animation position
26
- * rather than the remaining time so that pausing the scrubber does not
27
- * cause jumping if elapsed seconds doesn't precisely reflect the animation.
28
- */
30
+ isPlayingRef.current = true;
31
+ window.requestAnimationFrame(updatePositionRef.current);
32
+ }, [updatePositionRef, isPlayingRef]);
29
33
  var pause = useCallback(function () {
30
- if (trackRef.current) {
31
- var trackWidth = trackRef.current.offsetWidth;
32
- var trackTransform = window
33
- .getComputedStyle(trackRef.current)
34
- .getPropertyValue('transform');
35
- var trackPosition = parseFloat(trackTransform.split(',')[4]);
36
- var percentComplete = trackPosition / trackWidth;
37
- animate(trackRef, handleRef, 'none', "translate(".concat(percentComplete * 100, "%)"));
34
+ isPlayingRef.current = false;
35
+ }, [isPlayingRef]);
36
+ var refreshPosition = useCallback(function () {
37
+ // Allow queueing a refresh of position if the animation isn't running
38
+ if (!isPlayingRef.current) {
39
+ window.requestAnimationFrame(updatePositionRef.current);
38
40
  }
39
- }, [trackRef, handleRef]);
40
- /** Sets the animation to a given percentage: [0, 1]. */
41
- var setPercent = useCallback(function (percentComplete) {
42
- animate(trackRef, handleRef, 'none', "translate(".concat(percentComplete * 100, "%)"));
43
- }, [trackRef, handleRef]);
44
- /**
45
- * Handle window focus events so that the scrubber can repair itself
46
- * if/when the browser loses focus and kills animations.
47
- */
48
- var timeData = useRef();
49
- timeData.current = { elapsedSeconds: elapsedSeconds, totalSeconds: totalSeconds };
50
- useEffect(function () {
51
- var onWindowFocus = function () {
52
- if (timeData.current) {
53
- setPercent(timeData.current.elapsedSeconds / timeData.current.totalSeconds);
54
- }
55
- };
56
- window.addEventListener('focus', onWindowFocus);
57
- return function () { return window.removeEventListener('focus', onWindowFocus); };
58
- }, [timeData, setPercent]);
59
- return { play: play, pause: pause, setPercent: setPercent };
41
+ }, [updatePositionRef, isPlayingRef]);
42
+ /** Allows temporary override for things like scrubbing */
43
+ var setPosition = useCallback(function (position) {
44
+ if (position === void 0) { position = 0; }
45
+ overridePositionRef.current = position;
46
+ refreshPosition();
47
+ }, [overridePositionRef, refreshPosition]);
48
+ var setPositionOverrideEnabled = useCallback(function (enabled) {
49
+ overridePositionEnabledRef.current = enabled;
50
+ }, []);
51
+ return {
52
+ play: play,
53
+ pause: pause,
54
+ refreshPosition: refreshPosition,
55
+ setPositionOverrideEnabled: setPositionOverrideEnabled,
56
+ setPosition: setPosition
57
+ };
60
58
  };
61
59
 
62
- export { useAnimations };
60
+ export { usePlaybackPositionTracking };
63
61
  //# sourceMappingURL=hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../../src/components/scrubber/hooks.ts"],"sourcesContent":["import { useRef, useCallback, useEffect } from 'react'\nimport * as React from 'react'\n\nimport { TimeData } from './types'\n\n/** Sets animation properties on the handle and track. */\nconst animate = (\n trackRef: React.MutableRefObject<HTMLDivElement | null>,\n handleRef: React.MutableRefObject<HTMLDivElement | null>,\n transition: string,\n transform: string\n) => {\n if (handleRef.current && trackRef.current) {\n handleRef.current.style.transition = transition\n handleRef.current.style.transform = transform\n\n trackRef.current.style.transition = transition\n trackRef.current.style.transform = transform\n }\n}\n\n/**\n * Hook for initializing animations for a scrubber.\n * const animations = useAnimations()\n */\nexport const useAnimations = (\n trackRef: React.MutableRefObject<HTMLDivElement | null>,\n handleRef: React.MutableRefObject<HTMLDivElement | null>,\n elapsedSeconds: number,\n totalSeconds: number,\n playbackRate = 1\n) => {\n /** Animates from the current position to the end over the remaining seconds. */\n const play = useCallback(() => {\n const timeRemaining = (totalSeconds - elapsedSeconds) / playbackRate\n animate(\n trackRef,\n handleRef,\n `transform ${timeRemaining}s linear`,\n 'translate(100%)'\n )\n }, [totalSeconds, elapsedSeconds, playbackRate, trackRef, handleRef])\n\n /**\n * Pauses the animation at the current position.\n * NOTE: We derive the current position from the actual animation position\n * rather than the remaining time so that pausing the scrubber does not\n * cause jumping if elapsed seconds doesn't precisely reflect the animation.\n */\n const pause = useCallback(() => {\n if (trackRef.current) {\n const trackWidth = trackRef.current.offsetWidth\n const trackTransform = window\n .getComputedStyle(trackRef.current)\n .getPropertyValue('transform')\n\n const trackPosition = parseFloat(trackTransform.split(',')[4])\n const percentComplete = trackPosition / trackWidth\n animate(\n trackRef,\n handleRef,\n 'none',\n `translate(${percentComplete * 100}%)`\n )\n }\n }, [trackRef, handleRef])\n\n /** Sets the animation to a given percentage: [0, 1]. */\n const setPercent = useCallback(\n (percentComplete: number) => {\n animate(\n trackRef,\n handleRef,\n 'none',\n `translate(${percentComplete * 100}%)`\n )\n },\n [trackRef, handleRef]\n )\n\n /**\n * Handle window focus events so that the scrubber can repair itself\n * if/when the browser loses focus and kills animations.\n */\n const timeData = useRef<TimeData>()\n timeData.current = { elapsedSeconds, totalSeconds }\n useEffect(() => {\n const onWindowFocus = () => {\n if (timeData.current) {\n setPercent(\n timeData.current.elapsedSeconds / timeData.current.totalSeconds\n )\n }\n }\n window.addEventListener('focus', onWindowFocus)\n return () => window.removeEventListener('focus', onWindowFocus)\n }, [timeData, setPercent])\n\n return { play, pause, setPercent }\n}\n"],"names":[],"mappings":";;AAKA;AACA,IAAM,OAAO,GAAG,UACd,QAAuD,EACvD,SAAwD,EACxD,UAAkB,EAClB,SAAiB,EAAA;AAEjB,IAAA,IAAI,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;QACzC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAA;QAC/C,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;QAE7C,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAA;QAC9C,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;AAC7C,KAAA;AACH,CAAC,CAAA;AAED;;;AAGG;AACI,IAAM,aAAa,GAAG,UAC3B,QAAuD,EACvD,SAAwD,EACxD,cAAsB,EACtB,YAAoB,EACpB,YAAgB,EAAA;AAAhB,IAAA,IAAA,YAAA,KAAA,KAAA,CAAA,EAAA,EAAA,YAAgB,GAAA,CAAA,CAAA,EAAA;;IAGhB,IAAM,IAAI,GAAG,WAAW,CAAC,YAAA;QACvB,IAAM,aAAa,GAAG,CAAC,YAAY,GAAG,cAAc,IAAI,YAAY,CAAA;QACpE,OAAO,CACL,QAAQ,EACR,SAAS,EACT,YAAa,CAAA,MAAA,CAAA,aAAa,EAAU,UAAA,CAAA,EACpC,iBAAiB,CAClB,CAAA;AACH,KAAC,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;AAErE;;;;;AAKG;IACH,IAAM,KAAK,GAAG,WAAW,CAAC,YAAA;QACxB,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,YAAA,IAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAA;YAC/C,IAAM,cAAc,GAAG,MAAM;AAC1B,iBAAA,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;iBAClC,gBAAgB,CAAC,WAAW,CAAC,CAAA;AAEhC,YAAA,IAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9D,YAAA,IAAM,eAAe,GAAG,aAAa,GAAG,UAAU,CAAA;AAClD,YAAA,OAAO,CACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,YAAA,CAAA,MAAA,CAAa,eAAe,GAAG,GAAG,EAAA,IAAA,CAAI,CACvC,CAAA;AACF,SAAA;AACH,KAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;;AAGzB,IAAA,IAAM,UAAU,GAAG,WAAW,CAC5B,UAAC,eAAuB,EAAA;AACtB,QAAA,OAAO,CACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,YAAA,CAAA,MAAA,CAAa,eAAe,GAAG,GAAG,EAAA,IAAA,CAAI,CACvC,CAAA;AACH,KAAC,EACD,CAAC,QAAQ,EAAE,SAAS,CAAC,CACtB,CAAA;AAED;;;AAGG;AACH,IAAA,IAAM,QAAQ,GAAG,MAAM,EAAY,CAAA;IACnC,QAAQ,CAAC,OAAO,GAAG,EAAE,cAAc,gBAAA,EAAE,YAAY,EAAA,YAAA,EAAE,CAAA;AACnD,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAM,aAAa,GAAG,YAAA;YACpB,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,gBAAA,UAAU,CACR,QAAQ,CAAC,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAChE,CAAA;AACF,aAAA;AACH,SAAC,CAAA;AACD,QAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;AAC/C,QAAA,OAAO,YAAM,EAAA,OAAA,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAlD,EAAkD,CAAA;AACjE,KAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAE1B,OAAO,EAAE,IAAI,EAAA,IAAA,EAAE,KAAK,OAAA,EAAE,UAAU,EAAA,UAAA,EAAE,CAAA;AACpC;;;;"}
1
+ {"version":3,"file":"hooks.js","sources":["../../../src/components/scrubber/hooks.ts"],"sourcesContent":["import { useRef, useCallback } from 'react'\nimport * as React from 'react'\n\n/**\n * Hook for initializing playback update mechanism. Uses rAF to sync element\n * positions to the current playback position.\n */\nexport const usePlaybackPositionTracking = (\n trackRef: React.MutableRefObject<HTMLDivElement | null>,\n handleRef: React.MutableRefObject<HTMLDivElement | null>,\n getAudioPosition: () => number,\n getTotalTime: () => number\n) => {\n const isPlayingRef = useRef(false)\n const getAudioPositionRef = useRef(getAudioPosition)\n const overridePositionRef = useRef(0)\n const overridePositionEnabledRef = useRef(false)\n const getTotalTimeRef = useRef(getTotalTime)\n\n const updatePositionRef = useRef(() => {\n if (trackRef.current && handleRef.current) {\n const audioPosition = getAudioPositionRef.current()\n const totalTime = getTotalTimeRef.current()\n const percentComplete = overridePositionEnabledRef.current\n ? overridePositionRef.current\n : audioPosition / totalTime\n const translation = `translate(${percentComplete * 100}%)`\n handleRef.current.style.transform = translation\n trackRef.current.style.transform = translation\n }\n\n if (isPlayingRef.current) {\n window.requestAnimationFrame(updatePositionRef.current)\n }\n })\n\n /** Starts a rAF loop to grab the current player position and update continuously */\n const play = useCallback(() => {\n isPlayingRef.current = true\n window.requestAnimationFrame(updatePositionRef.current)\n }, [updatePositionRef, isPlayingRef])\n\n const pause = useCallback(() => {\n isPlayingRef.current = false\n }, [isPlayingRef])\n\n const refreshPosition = useCallback(() => {\n // Allow queueing a refresh of position if the animation isn't running\n if (!isPlayingRef.current) {\n window.requestAnimationFrame(updatePositionRef.current)\n }\n }, [updatePositionRef, isPlayingRef])\n\n /** Allows temporary override for things like scrubbing */\n const setPosition = useCallback(\n (position = 0) => {\n overridePositionRef.current = position\n refreshPosition()\n },\n [overridePositionRef, refreshPosition]\n )\n\n const setPositionOverrideEnabled = useCallback((enabled: boolean) => {\n overridePositionEnabledRef.current = enabled\n }, [])\n\n return {\n play,\n pause,\n refreshPosition,\n setPositionOverrideEnabled,\n setPosition\n }\n}\n"],"names":[],"mappings":";;AAGA;;;AAGG;AACU,IAAA,2BAA2B,GAAG,UACzC,QAAuD,EACvD,SAAwD,EACxD,gBAA8B,EAC9B,YAA0B,EAAA;AAE1B,IAAA,IAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAClC,IAAA,IAAM,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA;AACpD,IAAA,IAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AACrC,IAAA,IAAM,0BAA0B,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAChD,IAAA,IAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;IAE5C,IAAM,iBAAiB,GAAG,MAAM,CAAC,YAAA;AAC/B,QAAA,IAAI,QAAQ,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE;AACzC,YAAA,IAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAA;AACnD,YAAA,IAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,CAAA;AAC3C,YAAA,IAAM,eAAe,GAAG,0BAA0B,CAAC,OAAO;kBACtD,mBAAmB,CAAC,OAAO;AAC7B,kBAAE,aAAa,GAAG,SAAS,CAAA;AAC7B,YAAA,IAAM,WAAW,GAAG,YAAA,CAAA,MAAA,CAAa,eAAe,GAAG,GAAG,OAAI,CAAA;YAC1D,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAA;YAC/C,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAA;AAC/C,SAAA;QAED,IAAI,YAAY,CAAC,OAAO,EAAE;AACxB,YAAA,MAAM,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACxD,SAAA;AACH,KAAC,CAAC,CAAA;;IAGF,IAAM,IAAI,GAAG,WAAW,CAAC,YAAA;AACvB,QAAA,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;AAC3B,QAAA,MAAM,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACzD,KAAC,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAA;IAErC,IAAM,KAAK,GAAG,WAAW,CAAC,YAAA;AACxB,QAAA,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;AAC9B,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,IAAM,eAAe,GAAG,WAAW,CAAC,YAAA;;AAElC,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACzB,YAAA,MAAM,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACxD,SAAA;AACH,KAAC,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAA;;AAGrC,IAAA,IAAM,WAAW,GAAG,WAAW,CAC7B,UAAC,QAAY,EAAA;AAAZ,QAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAY,GAAA,CAAA,CAAA,EAAA;AACX,QAAA,mBAAmB,CAAC,OAAO,GAAG,QAAQ,CAAA;AACtC,QAAA,eAAe,EAAE,CAAA;AACnB,KAAC,EACD,CAAC,mBAAmB,EAAE,eAAe,CAAC,CACvC,CAAA;AAED,IAAA,IAAM,0BAA0B,GAAG,WAAW,CAAC,UAAC,OAAgB,EAAA;AAC9D,QAAA,0BAA0B,CAAC,OAAO,GAAG,OAAO,CAAA;KAC7C,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;AACL,QAAA,IAAI,EAAA,IAAA;AACJ,QAAA,KAAK,EAAA,KAAA;AACL,QAAA,eAAe,EAAA,eAAA;AACf,QAAA,0BAA0B,EAAA,0BAAA;AAC1B,QAAA,WAAW,EAAA,WAAA;KACZ,CAAA;AACH;;;;"}
@@ -46,6 +46,14 @@ export type ScrubberProps = {
46
46
  * Fired effectively on "mouse up" when the user is done scrubbing.
47
47
  */
48
48
  onScrubRelease?: (seconds: number) => void;
49
+ /** Callback to fetch the current playback position in seconds. Typically wired
50
+ * up to the audio player's `getPosition` method.
51
+ */
52
+ getAudioPosition: () => number;
53
+ /** Callback to get the duration of the current media. Typically wired up to the
54
+ * audio player's `getDuration` method.
55
+ */
56
+ getTotalTime: () => number;
49
57
  /**
50
58
  * Individually exposed styling options.
51
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/scrubber/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1C;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IAED;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;;;CAOhC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/scrubber/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1C;;OAEG;IACH,gBAAgB,EAAE,MAAM,MAAM,CAAA;IAE9B;;OAEG;IACH,YAAY,EAAE,MAAM,MAAM,CAAA;IAE1B;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IAED;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;;;CAOhC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../src/components/scrubber/types.ts"],"sourcesContent":["export type ScrubberProps = {\n /**\n * A unique identifier for the media being scrubbed.\n * Usually a \"track id\" suffices here. This property\n * is similar to a `key` in React and is used to\n * reset the scrubber animation for a new media item.\n */\n mediaKey: string\n\n /**\n * Whether or not the media being scrubbed is playing (or paused).\n */\n isPlaying: boolean\n\n /**\n * Whether or not the scrubber should be disabled. For example,\n * this is useful when no content is playing.\n */\n isDisabled?: boolean\n\n /**\n * Whether or not to display a mobile-friendly variant.\n */\n isMobile?: boolean\n\n /**\n * Whether or not timestamps are shown on the sides of the scrubber.\n */\n includeTimestamps?: boolean\n\n /**\n * The current progress of the media being scrubbed.\n * The scrubber reacts to changes in the elapsed seconds\n * to re-calibrate. This value should be updated relatively frequently\n * (0.1s < x < 1s).\n */\n elapsedSeconds: number\n\n /**\n * Total duration of the media being scrubbed.\n */\n totalSeconds: number\n\n /**\n * The speed that the media is being played at\n */\n playbackRate: number\n\n /**\n * Fired incrementally as the user drags the scrubber.\n */\n onScrub?: (seconds: number) => void\n\n /**\n * Fired effectively on \"mouse up\" when the user is done scrubbing.\n */\n onScrubRelease?: (seconds: number) => void\n\n /**\n * Individually exposed styling options.\n */\n style?: {\n railListenedColor?: string\n railUnlistenedColor?: string\n showHandle?: boolean\n handleColor?: string\n handleShadow?: string\n sliderMargin?: string\n }\n\n /**\n * Include larger click targets to that it's hard to misclick\n * Defaults to true\n */\n includeExpandedTargets?: boolean\n\n /**\n * Escape hatch for styles.\n */\n className?: string\n}\n\n/**\n * Encapsulates time-data for detecting and animating the position\n * of a scrubber.\n */\nexport type TimeData = {\n elapsedSeconds: number\n totalSeconds: number\n}\n\nexport const defaultScrubberProps = {\n isPlaying: false,\n isDisabled: false,\n isMobile: false,\n includeTimestamps: true,\n onScrub: () => {},\n onScrubRelease: () => {}\n}\n"],"names":[],"mappings":"AA2Fa,IAAA,oBAAoB,GAAG;AAClC,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,iBAAiB,EAAE,IAAI;IACvB,OAAO,EAAE,eAAQ;IACjB,cAAc,EAAE,eAAQ;;;;;"}
1
+ {"version":3,"file":"types.js","sources":["../../../src/components/scrubber/types.ts"],"sourcesContent":["export type ScrubberProps = {\n /**\n * A unique identifier for the media being scrubbed.\n * Usually a \"track id\" suffices here. This property\n * is similar to a `key` in React and is used to\n * reset the scrubber animation for a new media item.\n */\n mediaKey: string\n\n /**\n * Whether or not the media being scrubbed is playing (or paused).\n */\n isPlaying: boolean\n\n /**\n * Whether or not the scrubber should be disabled. For example,\n * this is useful when no content is playing.\n */\n isDisabled?: boolean\n\n /**\n * Whether or not to display a mobile-friendly variant.\n */\n isMobile?: boolean\n\n /**\n * Whether or not timestamps are shown on the sides of the scrubber.\n */\n includeTimestamps?: boolean\n\n /**\n * The current progress of the media being scrubbed.\n * The scrubber reacts to changes in the elapsed seconds\n * to re-calibrate. This value should be updated relatively frequently\n * (0.1s < x < 1s).\n */\n elapsedSeconds: number\n\n /**\n * Total duration of the media being scrubbed.\n */\n totalSeconds: number\n\n /**\n * The speed that the media is being played at\n */\n playbackRate: number\n\n /**\n * Fired incrementally as the user drags the scrubber.\n */\n onScrub?: (seconds: number) => void\n\n /**\n * Fired effectively on \"mouse up\" when the user is done scrubbing.\n */\n onScrubRelease?: (seconds: number) => void\n\n /** Callback to fetch the current playback position in seconds. Typically wired\n * up to the audio player's `getPosition` method.\n */\n getAudioPosition: () => number\n\n /** Callback to get the duration of the current media. Typically wired up to the\n * audio player's `getDuration` method.\n */\n getTotalTime: () => number\n\n /**\n * Individually exposed styling options.\n */\n style?: {\n railListenedColor?: string\n railUnlistenedColor?: string\n showHandle?: boolean\n handleColor?: string\n handleShadow?: string\n sliderMargin?: string\n }\n\n /**\n * Include larger click targets to that it's hard to misclick\n * Defaults to true\n */\n includeExpandedTargets?: boolean\n\n /**\n * Escape hatch for styles.\n */\n className?: string\n}\n\n/**\n * Encapsulates time-data for detecting and animating the position\n * of a scrubber.\n */\nexport type TimeData = {\n elapsedSeconds: number\n totalSeconds: number\n}\n\nexport const defaultScrubberProps = {\n isPlaying: false,\n isDisabled: false,\n isMobile: false,\n includeTimestamps: true,\n onScrub: () => {},\n onScrubRelease: () => {}\n}\n"],"names":[],"mappings":"AAqGa,IAAA,oBAAoB,GAAG;AAClC,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,iBAAiB,EAAE,IAAI;IACvB,OAAO,EAAE,eAAQ;IACjB,cAAc,EAAE,eAAQ;;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendIcon.d.ts","sourceRoot":"","sources":["../../../src/components/send-icon/SendIcon.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC,eAAO,MAAM,QAAQ,0BAAmC,aAAa,qDA0BpE,CAAA"}
@@ -1,16 +1,16 @@
1
1
  import { jsx } from '@emotion/react/jsx-runtime';
2
2
  import { useTheme } from '@emotion/react';
3
- import '../../button/Button/Button.js';
4
- import '../../button/PlainButton/PlainButton.js';
5
- import '../../../_virtual/_tslib.js';
6
- import { IconPaperAirplane } from '../../../icons/utilityIcons.js';
3
+ import '../button/Button/Button.js';
4
+ import '../button/PlainButton/PlainButton.js';
5
+ import '../../_virtual/_tslib.js';
6
+ import { IconPaperAirplane } from '../../icons/utilityIcons.js';
7
7
  import 'react';
8
8
  import '@emotion/css';
9
- import '../../button/FollowButton/FollowButton.js';
10
- import { IconButton } from '../../button/IconButton/IconButton.js';
11
- import '../../button/UnstyledButton.js';
12
- import '../../button/FilterButton/FilterButton.js';
13
- import '../../button/FilterButton/FilterButtonOption.js';
9
+ import '../button/FollowButton/FollowButton.js';
10
+ import { IconButton } from '../button/IconButton/IconButton.js';
11
+ import '../button/UnstyledButton.js';
12
+ import '../button/FilterButton/FilterButton.js';
13
+ import '../button/FilterButton/FilterButtonOption.js';
14
14
 
15
15
  var SendIcon = function (_a) {
16
16
  var _b = _a.disabled, disabled = _b === void 0 ? false : _b, onClick = _a.onClick;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendIcon.js","sources":["../../../src/components/send-icon/SendIcon.tsx"],"sourcesContent":["import { useTheme } from '@emotion/react'\n\nimport { IconButton } from 'components/button'\nimport { IconPaperAirplane } from 'icons'\n\nimport { SendIconProps } from './types'\n\nexport const SendIcon = ({ disabled = false, onClick }: SendIconProps) => {\n const { color, motion } = useTheme()\n\n return (\n <IconButton\n aria-label='Send'\n icon={IconPaperAirplane}\n size='2xl'\n onClick={onClick}\n css={{\n cursor: 'pointer',\n pointerEvents: disabled ? 'none' : 'all',\n opacity: disabled ? 0.5 : 1,\n path: {\n fill: color.primary.primary,\n transition: motion.quick\n },\n ':hover path': {\n fill: color.primary.p100\n },\n ':active path': {\n fill: color.primary.p500\n }\n }}\n />\n )\n}\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;AAOO,IAAM,QAAQ,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,EAAA,GAAA,EAAA,CAAA,QAAgB,EAAhB,QAAQ,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAA,EAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,CAAA;IAC5C,IAAA,EAAA,GAAoB,QAAQ,EAAE,EAA5B,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAe,CAAA;AAEpC,IAAA,QACEA,GAAC,CAAA,UAAU,kBACE,MAAM,EACjB,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAC,KAAK,EACV,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE;AACH,YAAA,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK;YACxC,OAAO,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC3B,YAAA,IAAI,EAAE;AACJ,gBAAA,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;gBAC3B,UAAU,EAAE,MAAM,CAAC,KAAK;AACzB,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;AACzB,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;AACzB,aAAA;AACF,SAAA,EAAA,CACD,EACH;AACH;;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendIcon.stories.d.ts","sourceRoot":"","sources":["../../../src/components/send-icon/SendIcon.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAItD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAG/B,CAAA;AAED,eAAe,IAAI,CAAA;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAA;AAEtC,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/send-icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,cAAc,SAAS,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/send-icon/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/components/text/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwC,MAAM,OAAO,CAAA;AAWzE,eAAO,MAAM,IAAI,4WAsGhB,CAAA"}
1
+ {"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/components/text/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwC,MAAM,OAAO,CAAA;AASzE,eAAO,MAAM,IAAI,4WAyGhB,CAAA"}
@@ -3,7 +3,6 @@ import { jsx } from '@emotion/react/jsx-runtime';
3
3
  import { forwardRef, useContext } from 'react';
4
4
  import { useTheme } from '@emotion/react';
5
5
  import { Slot } from '@radix-ui/react-slot';
6
- import { typography } from '../../foundations/typography/typography.js';
7
6
  import { bodyLineHeightMap, variantTagMap, variantStylesMap } from './constants.js';
8
7
  import { TextContext } from './textContext.js';
9
8
 
@@ -17,7 +16,7 @@ var Text = forwardRef(function (props, ref) {
17
16
  var strength = strengthProp !== null && strengthProp !== void 0 ? strengthProp : (parentVariant ? undefined : 'default');
18
17
  var size = sizeProp !== null && sizeProp !== void 0 ? sizeProp : (parentVariant ? undefined : 'm');
19
18
  var variantConfig = variant && variantStylesMap[variant];
20
- var css = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ fontFamily: "'Avenir Next LT Pro', 'Helvetica Neue', Helvetica,\n Arial, sans-serif", position: 'relative', boxSizing: 'border-box' }, (color &&
19
+ var css = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ fontFamily: theme.typography.font, position: 'relative', boxSizing: 'border-box' }, (color &&
21
20
  color === 'heading' && {
22
21
  // inline is necessary to prevent text clipping
23
22
  display: 'inline',
@@ -25,18 +24,21 @@ var Text = forwardRef(function (props, ref) {
25
24
  WebkitTextFillColor: 'transparent',
26
25
  backgroundClip: 'text',
27
26
  backgroundImage: theme.color.text.heading
28
- })), (color && color !== 'heading' && { color: theme.color.text[color] })), (variantConfig && __assign({
27
+ })), (color && color !== 'heading' && { color: theme.color.text[color] })), (variantConfig && __assign(__assign({
29
28
  // @ts-ignore
30
- fontSize: typography.size[variantConfig.fontSize[size]], lineHeight:
29
+ fontSize: theme.typography.size[variantConfig.fontSize[size]], lineHeight:
31
30
  // @ts-ignore
32
- typography.lineHeight[lineHeight && variant === 'body' && size
31
+ theme.typography.lineHeight[lineHeight && variant === 'body' && size
33
32
  ? // @ts-ignore
34
33
  bodyLineHeightMap[size][lineHeight]
35
34
  : // @ts-ignore
36
35
  variantConfig.lineHeight[size]],
37
36
  // @ts-ignore
38
- fontWeight: typography.weight[variantConfig.fontWeight[strength]] }, ('css' in variantConfig && variantConfig.css)))), (shadow && {
39
- textShadow: typography.shadow[shadow]
37
+ fontWeight: theme.typography.weight[variantConfig.fontWeight[strength]] }, ('css' in variantConfig && variantConfig.css)), (lineHeight === 'multi' && {
38
+ wordBreak: 'break-word',
39
+ hyphens: 'auto'
40
+ })))), (shadow && {
41
+ textShadow: theme.typography.shadow[shadow]
40
42
  })), { textAlign: textAlign }), (textTransform && { textTransform: textTransform })), (ellipses && {
41
43
  overflow: 'hidden',
42
44
  textOverflow: 'ellipsis',
@@ -45,8 +47,8 @@ var Text = forwardRef(function (props, ref) {
45
47
  overflow: 'hidden',
46
48
  display: '-webkit-box',
47
49
  lineClamp: "".concat(maxLines),
48
- '-webkit-line-clamp': "".concat(maxLines),
49
- '-webkit-box-orient': 'vertical'
50
+ WebkitLineClamp: "".concat(maxLines),
51
+ WebkitBoxOrient: 'vertical'
50
52
  }));
51
53
  // @ts-ignore
52
54
  var variantTag = variant && ((_b = variantTagMap[variant]) === null || _b === void 0 ? void 0 : _b[size]);