@audius/harmony 0.0.29 → 0.0.34

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 (801) hide show
  1. package/dist/assets/icons/Album.svg.js +21 -7
  2. package/dist/assets/icons/Album.svg.js.map +1 -1
  3. package/dist/assets/icons/AllTime.svg.js +21 -7
  4. package/dist/assets/icons/AllTime.svg.js.map +1 -1
  5. package/dist/assets/icons/Appearance.svg.js +21 -7
  6. package/dist/assets/icons/Appearance.svg.js.map +1 -1
  7. package/dist/assets/icons/ArrowLeft.svg.js +21 -7
  8. package/dist/assets/icons/ArrowLeft.svg.js.map +1 -1
  9. package/dist/assets/icons/ArrowRight.svg.js +21 -7
  10. package/dist/assets/icons/ArrowRight.svg.js.map +1 -1
  11. package/dist/assets/icons/ArtistBadge.svg.js +21 -7
  12. package/dist/assets/icons/ArtistBadge.svg.js.map +1 -1
  13. package/dist/assets/icons/AudiusLogo.svg.js +21 -7
  14. package/dist/assets/icons/AudiusLogo.svg.js.map +1 -1
  15. package/dist/assets/icons/AudiusLogoColor.svg.js +21 -7
  16. package/dist/assets/icons/AudiusLogoColor.svg.js.map +1 -1
  17. package/dist/assets/icons/AudiusLogoHorizontal.svg.js +24 -8
  18. package/dist/assets/icons/AudiusLogoHorizontal.svg.js.map +1 -1
  19. package/dist/assets/icons/AudiusLogoHorizontalColor.svg.js +24 -8
  20. package/dist/assets/icons/AudiusLogoHorizontalColor.svg.js.map +1 -1
  21. package/dist/assets/icons/AudiusLogoVertical.svg.js +21 -7
  22. package/dist/assets/icons/AudiusLogoVertical.svg.js.map +1 -1
  23. package/dist/assets/icons/Blog.svg.js +21 -7
  24. package/dist/assets/icons/Blog.svg.js.map +1 -1
  25. package/dist/assets/icons/BoxHeart.svg.js +21 -7
  26. package/dist/assets/icons/BoxHeart.svg.js.map +1 -1
  27. package/dist/assets/icons/CalendarDay.svg.js +21 -7
  28. package/dist/assets/icons/CalendarDay.svg.js.map +1 -1
  29. package/dist/assets/icons/CalendarMonth.svg.js +21 -7
  30. package/dist/assets/icons/CalendarMonth.svg.js.map +1 -1
  31. package/dist/assets/icons/CalendarWeek.svg.js +21 -7
  32. package/dist/assets/icons/CalendarWeek.svg.js.map +1 -1
  33. package/dist/assets/icons/Camera.svg.js +21 -7
  34. package/dist/assets/icons/Camera.svg.js.map +1 -1
  35. package/dist/assets/icons/Campfire.svg.js +21 -7
  36. package/dist/assets/icons/Campfire.svg.js.map +1 -1
  37. package/dist/assets/icons/CaretDown.svg.js +21 -7
  38. package/dist/assets/icons/CaretDown.svg.js.map +1 -1
  39. package/dist/assets/icons/CaretLeft.svg.js +21 -7
  40. package/dist/assets/icons/CaretLeft.svg.js.map +1 -1
  41. package/dist/assets/icons/CaretRight.svg.js +21 -7
  42. package/dist/assets/icons/CaretRight.svg.js.map +1 -1
  43. package/dist/assets/icons/CaretUp.svg.js +21 -7
  44. package/dist/assets/icons/CaretUp.svg.js.map +1 -1
  45. package/dist/assets/icons/Cart.svg.js +21 -7
  46. package/dist/assets/icons/Cart.svg.js.map +1 -1
  47. package/dist/assets/icons/CastAirplay.svg.js +21 -7
  48. package/dist/assets/icons/CastAirplay.svg.js.map +1 -1
  49. package/dist/assets/icons/CastChromecast.svg.js +21 -7
  50. package/dist/assets/icons/CastChromecast.svg.js.map +1 -1
  51. package/dist/assets/icons/Check.svg.js +21 -7
  52. package/dist/assets/icons/Check.svg.js.map +1 -1
  53. package/dist/assets/icons/Close.svg.js +21 -7
  54. package/dist/assets/icons/Close.svg.js.map +1 -1
  55. package/dist/assets/icons/CloseAlt.svg.js +21 -7
  56. package/dist/assets/icons/CloseAlt.svg.js.map +1 -1
  57. package/dist/assets/icons/CloudDownload.svg.js +21 -7
  58. package/dist/assets/icons/CloudDownload.svg.js.map +1 -1
  59. package/dist/assets/icons/CloudDownloadError.svg.js +21 -7
  60. package/dist/assets/icons/CloudDownloadError.svg.js.map +1 -1
  61. package/dist/assets/icons/CloudDownloadInactive.svg.js +21 -7
  62. package/dist/assets/icons/CloudDownloadInactive.svg.js.map +1 -1
  63. package/dist/assets/icons/CloudDownloadPaused.svg.js +21 -7
  64. package/dist/assets/icons/CloudDownloadPaused.svg.js.map +1 -1
  65. package/dist/assets/icons/CloudDownloadQueued.svg.js +21 -7
  66. package/dist/assets/icons/CloudDownloadQueued.svg.js.map +1 -1
  67. package/dist/assets/icons/CloudUpload.svg.js +21 -7
  68. package/dist/assets/icons/CloudUpload.svg.js.map +1 -1
  69. package/dist/assets/icons/Coinbase.svg.js +21 -7
  70. package/dist/assets/icons/Coinbase.svg.js.map +1 -1
  71. package/dist/assets/icons/CoinbasePay.svg.js +75 -0
  72. package/dist/assets/icons/CoinbasePay.svg.js.map +1 -0
  73. package/dist/assets/icons/Collectible.svg.js +21 -7
  74. package/dist/assets/icons/Collectible.svg.js.map +1 -1
  75. package/dist/assets/icons/Compose.svg.js +21 -7
  76. package/dist/assets/icons/Compose.svg.js.map +1 -1
  77. package/dist/assets/icons/Copy.svg.js +21 -7
  78. package/dist/assets/icons/Copy.svg.js.map +1 -1
  79. package/dist/assets/icons/Cosign.svg.js +21 -7
  80. package/dist/assets/icons/Cosign.svg.js.map +1 -1
  81. package/dist/assets/icons/CreatePlaylist.svg.js +21 -7
  82. package/dist/assets/icons/CreatePlaylist.svg.js.map +1 -1
  83. package/dist/assets/icons/CreditCard.svg.js +21 -7
  84. package/dist/assets/icons/CreditCard.svg.js.map +1 -1
  85. package/dist/assets/icons/Crown.svg.js +21 -7
  86. package/dist/assets/icons/Crown.svg.js.map +1 -1
  87. package/dist/assets/icons/Dashboard.svg.js +21 -7
  88. package/dist/assets/icons/Dashboard.svg.js.map +1 -1
  89. package/dist/assets/icons/Desktop.svg.js +21 -7
  90. package/dist/assets/icons/Desktop.svg.js.map +1 -1
  91. package/dist/assets/icons/Discord.svg.js +21 -7
  92. package/dist/assets/icons/Discord.svg.js.map +1 -1
  93. package/dist/assets/icons/Donate.svg.js +21 -7
  94. package/dist/assets/icons/Donate.svg.js.map +1 -1
  95. package/dist/assets/icons/Drag.svg.js +21 -7
  96. package/dist/assets/icons/Drag.svg.js.map +1 -1
  97. package/dist/assets/icons/Earnings.svg.js +21 -7
  98. package/dist/assets/icons/Earnings.svg.js.map +1 -1
  99. package/dist/assets/icons/EmailAddress.svg.js +21 -7
  100. package/dist/assets/icons/EmailAddress.svg.js.map +1 -1
  101. package/dist/assets/icons/Embed.svg.js +21 -7
  102. package/dist/assets/icons/Embed.svg.js.map +1 -1
  103. package/dist/assets/icons/Error.svg.js +21 -7
  104. package/dist/assets/icons/Error.svg.js.map +1 -1
  105. package/dist/assets/icons/Explore.svg.js +21 -7
  106. package/dist/assets/icons/Explore.svg.js.map +1 -1
  107. package/dist/assets/icons/ExternalLink.svg.js +21 -7
  108. package/dist/assets/icons/ExternalLink.svg.js.map +1 -1
  109. package/dist/assets/icons/Facebook.svg.js +21 -7
  110. package/dist/assets/icons/Facebook.svg.js.map +1 -1
  111. package/dist/assets/icons/Feed.svg.js +21 -7
  112. package/dist/assets/icons/Feed.svg.js.map +1 -1
  113. package/dist/assets/icons/Filter.svg.js +21 -7
  114. package/dist/assets/icons/Filter.svg.js.map +1 -1
  115. package/dist/assets/icons/Folder.svg.js +21 -7
  116. package/dist/assets/icons/Folder.svg.js.map +1 -1
  117. package/dist/assets/icons/Foundation.svg.js +21 -7
  118. package/dist/assets/icons/Foundation.svg.js.map +1 -1
  119. package/dist/assets/icons/Gift.svg.js +21 -7
  120. package/dist/assets/icons/Gift.svg.js.map +1 -1
  121. package/dist/assets/icons/Headphones.svg.js +21 -7
  122. package/dist/assets/icons/Headphones.svg.js.map +1 -1
  123. package/dist/assets/icons/Heart.svg.js +21 -7
  124. package/dist/assets/icons/Heart.svg.js.map +1 -1
  125. package/dist/assets/icons/Image.svg.js +21 -7
  126. package/dist/assets/icons/Image.svg.js.map +1 -1
  127. package/dist/assets/icons/Indent.svg.js +21 -7
  128. package/dist/assets/icons/Indent.svg.js.map +1 -1
  129. package/dist/assets/icons/Info.svg.js +21 -7
  130. package/dist/assets/icons/Info.svg.js.map +1 -1
  131. package/dist/assets/icons/Instagram.svg.js +21 -7
  132. package/dist/assets/icons/Instagram.svg.js.map +1 -1
  133. package/dist/assets/icons/KebabHorizontal.svg.js +21 -7
  134. package/dist/assets/icons/KebabHorizontal.svg.js.map +1 -1
  135. package/dist/assets/icons/Key.svg.js +21 -7
  136. package/dist/assets/icons/Key.svg.js.map +1 -1
  137. package/dist/assets/icons/Library.svg.js +21 -7
  138. package/dist/assets/icons/Library.svg.js.map +1 -1
  139. package/dist/assets/icons/LifeRing.svg.js +21 -7
  140. package/dist/assets/icons/LifeRing.svg.js.map +1 -1
  141. package/dist/assets/icons/Link.svg.js +21 -7
  142. package/dist/assets/icons/Link.svg.js.map +1 -1
  143. package/dist/assets/icons/LinkByStripe.svg.js +21 -7
  144. package/dist/assets/icons/LinkByStripe.svg.js.map +1 -1
  145. package/dist/assets/icons/ListeningHistory.svg.js +21 -7
  146. package/dist/assets/icons/ListeningHistory.svg.js.map +1 -1
  147. package/dist/assets/icons/Listens.svg.js +21 -7
  148. package/dist/assets/icons/Listens.svg.js.map +1 -1
  149. package/dist/assets/icons/Lock.svg.js +21 -7
  150. package/dist/assets/icons/Lock.svg.js.map +1 -1
  151. package/dist/assets/icons/LockUnlocked.svg.js +21 -7
  152. package/dist/assets/icons/LockUnlocked.svg.js.map +1 -1
  153. package/dist/assets/icons/LogoCircle.svg.js +21 -7
  154. package/dist/assets/icons/LogoCircle.svg.js.map +1 -1
  155. package/dist/assets/icons/LogoCircleCoinbase.svg.js +21 -7
  156. package/dist/assets/icons/LogoCircleCoinbase.svg.js.map +1 -1
  157. package/dist/assets/icons/LogoCircleETH.svg.js +21 -7
  158. package/dist/assets/icons/LogoCircleETH.svg.js.map +1 -1
  159. package/dist/assets/icons/LogoCircleSOL.svg.js +21 -7
  160. package/dist/assets/icons/LogoCircleSOL.svg.js.map +1 -1
  161. package/dist/assets/icons/LogoCircleSTR.svg.js +21 -7
  162. package/dist/assets/icons/LogoCircleSTR.svg.js.map +1 -1
  163. package/dist/assets/icons/LogoCircleUSD.svg.js +21 -7
  164. package/dist/assets/icons/LogoCircleUSD.svg.js.map +1 -1
  165. package/dist/assets/icons/LogoCircleUSDC.svg.js +21 -7
  166. package/dist/assets/icons/LogoCircleUSDC.svg.js.map +1 -1
  167. package/dist/assets/icons/LogoPhantom.svg.js +21 -7
  168. package/dist/assets/icons/LogoPhantom.svg.js.map +1 -1
  169. package/dist/assets/icons/LogoSolana.svg.js +21 -7
  170. package/dist/assets/icons/LogoSolana.svg.js.map +1 -1
  171. package/dist/assets/icons/Merch.svg.js +21 -7
  172. package/dist/assets/icons/Merch.svg.js.map +1 -1
  173. package/dist/assets/icons/Message.svg.js +21 -7
  174. package/dist/assets/icons/Message.svg.js.map +1 -1
  175. package/dist/assets/icons/MessageBlock.svg.js +21 -7
  176. package/dist/assets/icons/MessageBlock.svg.js.map +1 -1
  177. package/dist/assets/icons/MessageLocked.svg.js +21 -7
  178. package/dist/assets/icons/MessageLocked.svg.js.map +1 -1
  179. package/dist/assets/icons/MessageUnblock.svg.js +21 -7
  180. package/dist/assets/icons/MessageUnblock.svg.js.map +1 -1
  181. package/dist/assets/icons/Metamask.svg.js +21 -7
  182. package/dist/assets/icons/Metamask.svg.js.map +1 -1
  183. package/dist/assets/icons/Minus.svg.js +21 -7
  184. package/dist/assets/icons/Minus.svg.js.map +1 -1
  185. package/dist/assets/icons/{PenSquare.svg.js → MoneyBracket.svg.js} +33 -14
  186. package/dist/assets/icons/MoneyBracket.svg.js.map +1 -0
  187. package/dist/assets/icons/Mood.svg.js +21 -7
  188. package/dist/assets/icons/Mood.svg.js.map +1 -1
  189. package/dist/assets/icons/MultiselectAdd.svg.js +21 -7
  190. package/dist/assets/icons/MultiselectAdd.svg.js.map +1 -1
  191. package/dist/assets/icons/MultiselectRemove.svg.js +21 -7
  192. package/dist/assets/icons/MultiselectRemove.svg.js.map +1 -1
  193. package/dist/assets/icons/NoWifi.svg.js +21 -7
  194. package/dist/assets/icons/NoWifi.svg.js.map +1 -1
  195. package/dist/assets/icons/Note.svg.js +21 -7
  196. package/dist/assets/icons/Note.svg.js.map +1 -1
  197. package/dist/assets/icons/NotificationOff.svg.js +21 -7
  198. package/dist/assets/icons/NotificationOff.svg.js.map +1 -1
  199. package/dist/assets/icons/NotificationOn.svg.js +21 -7
  200. package/dist/assets/icons/NotificationOn.svg.js.map +1 -1
  201. package/dist/assets/icons/Pause.svg.js +21 -7
  202. package/dist/assets/icons/Pause.svg.js.map +1 -1
  203. package/dist/assets/icons/Pencil.svg.js +21 -7
  204. package/dist/assets/icons/Pencil.svg.js.map +1 -1
  205. package/dist/assets/icons/Play.svg.js +21 -7
  206. package/dist/assets/icons/Play.svg.js.map +1 -1
  207. package/dist/assets/icons/PlaybackPause.svg.js +24 -8
  208. package/dist/assets/icons/PlaybackPause.svg.js.map +1 -1
  209. package/dist/assets/icons/PlaybackPlay.svg.js +24 -8
  210. package/dist/assets/icons/PlaybackPlay.svg.js.map +1 -1
  211. package/dist/assets/icons/Playlists.svg.js +21 -7
  212. package/dist/assets/icons/Playlists.svg.js.map +1 -1
  213. package/dist/assets/icons/Plus.svg.js +21 -7
  214. package/dist/assets/icons/Plus.svg.js.map +1 -1
  215. package/dist/assets/icons/PodcastBack.svg.js +21 -7
  216. package/dist/assets/icons/PodcastBack.svg.js.map +1 -1
  217. package/dist/assets/icons/PodcastForward.svg.js +21 -7
  218. package/dist/assets/icons/PodcastForward.svg.js.map +1 -1
  219. package/dist/assets/icons/QuestionCircle.svg.js +21 -7
  220. package/dist/assets/icons/QuestionCircle.svg.js.map +1 -1
  221. package/dist/assets/icons/Radar.svg.js +21 -7
  222. package/dist/assets/icons/Radar.svg.js.map +1 -1
  223. package/dist/assets/icons/Receive.svg.js +21 -7
  224. package/dist/assets/icons/Receive.svg.js.map +1 -1
  225. package/dist/assets/icons/RecoveryEmail.svg.js +21 -7
  226. package/dist/assets/icons/RecoveryEmail.svg.js.map +1 -1
  227. package/dist/assets/icons/Refresh.svg.js +21 -7
  228. package/dist/assets/icons/Refresh.svg.js.map +1 -1
  229. package/dist/assets/icons/Remix.svg.js +21 -7
  230. package/dist/assets/icons/Remix.svg.js.map +1 -1
  231. package/dist/assets/icons/Remove.svg.js +21 -7
  232. package/dist/assets/icons/Remove.svg.js.map +1 -1
  233. package/dist/assets/icons/RepeatOff.svg.js +21 -7
  234. package/dist/assets/icons/RepeatOff.svg.js.map +1 -1
  235. package/dist/assets/icons/Repost.svg.js +21 -7
  236. package/dist/assets/icons/Repost.svg.js.map +1 -1
  237. package/dist/assets/icons/Robot.svg.js +21 -7
  238. package/dist/assets/icons/Robot.svg.js.map +1 -1
  239. package/dist/assets/icons/Rocket.svg.js +21 -7
  240. package/dist/assets/icons/Rocket.svg.js.map +1 -1
  241. package/dist/assets/icons/Save.svg.js +21 -7
  242. package/dist/assets/icons/Save.svg.js.map +1 -1
  243. package/dist/assets/icons/Search.svg.js +21 -7
  244. package/dist/assets/icons/Search.svg.js.map +1 -1
  245. package/dist/assets/icons/Send.svg.js +21 -7
  246. package/dist/assets/icons/Send.svg.js.map +1 -1
  247. package/dist/assets/icons/Settings.svg.js +21 -7
  248. package/dist/assets/icons/Settings.svg.js.map +1 -1
  249. package/dist/assets/icons/Share.svg.js +21 -7
  250. package/dist/assets/icons/Share.svg.js.map +1 -1
  251. package/dist/assets/icons/ShieldCheck.svg.js +21 -7
  252. package/dist/assets/icons/ShieldCheck.svg.js.map +1 -1
  253. package/dist/assets/icons/ShieldUser.svg.js +81 -0
  254. package/dist/assets/icons/ShieldUser.svg.js.map +1 -0
  255. package/dist/assets/icons/Shuffle.svg.js +21 -7
  256. package/dist/assets/icons/Shuffle.svg.js.map +1 -1
  257. package/dist/assets/icons/SignOut.svg.js +21 -7
  258. package/dist/assets/icons/SignOut.svg.js.map +1 -1
  259. package/dist/assets/icons/SkipNext.svg.js +21 -7
  260. package/dist/assets/icons/SkipNext.svg.js.map +1 -1
  261. package/dist/assets/icons/SkipPrevious.svg.js +21 -7
  262. package/dist/assets/icons/SkipPrevious.svg.js.map +1 -1
  263. package/dist/assets/icons/Skull.svg.js +21 -7
  264. package/dist/assets/icons/Skull.svg.js.map +1 -1
  265. package/dist/assets/icons/SnapChat.svg.js +21 -7
  266. package/dist/assets/icons/SnapChat.svg.js.map +1 -1
  267. package/dist/assets/icons/Sort.svg.js +21 -7
  268. package/dist/assets/icons/Sort.svg.js.map +1 -1
  269. package/dist/assets/icons/SortDown.svg.js +21 -7
  270. package/dist/assets/icons/SortDown.svg.js.map +1 -1
  271. package/dist/assets/icons/SortUp.svg.js +21 -7
  272. package/dist/assets/icons/SortUp.svg.js.map +1 -1
  273. package/dist/assets/icons/Soundwave.svg.js +21 -7
  274. package/dist/assets/icons/Soundwave.svg.js.map +1 -1
  275. package/dist/assets/icons/Speaker.svg.js +21 -7
  276. package/dist/assets/icons/Speaker.svg.js.map +1 -1
  277. package/dist/assets/icons/SpecialAccess.svg.js +21 -7
  278. package/dist/assets/icons/SpecialAccess.svg.js.map +1 -1
  279. package/dist/assets/icons/Star.svg.js +21 -7
  280. package/dist/assets/icons/Star.svg.js.map +1 -1
  281. package/dist/assets/icons/Stars.svg.js +21 -7
  282. package/dist/assets/icons/Stars.svg.js.map +1 -1
  283. package/dist/assets/icons/Support.svg.js +21 -7
  284. package/dist/assets/icons/Support.svg.js.map +1 -1
  285. package/dist/assets/icons/Tastemaker.svg.js +21 -7
  286. package/dist/assets/icons/Tastemaker.svg.js.map +1 -1
  287. package/dist/assets/icons/Telegram.svg.js +21 -7
  288. package/dist/assets/icons/Telegram.svg.js.map +1 -1
  289. package/dist/assets/icons/ThumbsDown.svg.js +21 -7
  290. package/dist/assets/icons/ThumbsDown.svg.js.map +1 -1
  291. package/dist/assets/icons/ThumbsUp.svg.js +21 -7
  292. package/dist/assets/icons/ThumbsUp.svg.js.map +1 -1
  293. package/dist/assets/icons/TikTok.svg.js +21 -7
  294. package/dist/assets/icons/TikTok.svg.js.map +1 -1
  295. package/dist/assets/icons/Tipping.svg.js +21 -7
  296. package/dist/assets/icons/Tipping.svg.js.map +1 -1
  297. package/dist/assets/icons/TokenBronze.svg.js +21 -7
  298. package/dist/assets/icons/TokenBronze.svg.js.map +1 -1
  299. package/dist/assets/icons/TokenGold.svg.js +21 -7
  300. package/dist/assets/icons/TokenGold.svg.js.map +1 -1
  301. package/dist/assets/icons/TokenNoTier.svg.js +21 -7
  302. package/dist/assets/icons/TokenNoTier.svg.js.map +1 -1
  303. package/dist/assets/icons/TokenPlatinum.svg.js +21 -7
  304. package/dist/assets/icons/TokenPlatinum.svg.js.map +1 -1
  305. package/dist/assets/icons/TokenSilver.svg.js +21 -7
  306. package/dist/assets/icons/TokenSilver.svg.js.map +1 -1
  307. package/dist/assets/icons/Transaction.svg.js +21 -7
  308. package/dist/assets/icons/Transaction.svg.js.map +1 -1
  309. package/dist/assets/icons/Trash.svg.js +21 -7
  310. package/dist/assets/icons/Trash.svg.js.map +1 -1
  311. package/dist/assets/icons/Trending.svg.js +21 -7
  312. package/dist/assets/icons/Trending.svg.js.map +1 -1
  313. package/dist/assets/icons/TriangleExclamation.svg.js +21 -7
  314. package/dist/assets/icons/TriangleExclamation.svg.js.map +1 -1
  315. package/dist/assets/icons/Trophy.svg.js +21 -7
  316. package/dist/assets/icons/Trophy.svg.js.map +1 -1
  317. package/dist/assets/icons/Turntable.svg.js +21 -7
  318. package/dist/assets/icons/Turntable.svg.js.map +1 -1
  319. package/dist/assets/icons/Twitter.svg.js +21 -7
  320. package/dist/assets/icons/Twitter.svg.js.map +1 -1
  321. package/dist/assets/icons/User.svg.js +21 -7
  322. package/dist/assets/icons/User.svg.js.map +1 -1
  323. package/dist/assets/icons/UserArrowRotate.svg.js +81 -0
  324. package/dist/assets/icons/UserArrowRotate.svg.js.map +1 -0
  325. package/dist/assets/icons/UserFollow.svg.js +21 -7
  326. package/dist/assets/icons/UserFollow.svg.js.map +1 -1
  327. package/dist/assets/icons/UserFollowers.svg.js +21 -7
  328. package/dist/assets/icons/UserFollowers.svg.js.map +1 -1
  329. package/dist/assets/icons/UserFollowing.svg.js +21 -7
  330. package/dist/assets/icons/UserFollowing.svg.js.map +1 -1
  331. package/dist/assets/icons/UserGroup.svg.js +21 -7
  332. package/dist/assets/icons/UserGroup.svg.js.map +1 -1
  333. package/dist/assets/icons/UserList.svg.js +21 -7
  334. package/dist/assets/icons/UserList.svg.js.map +1 -1
  335. package/dist/assets/icons/UserUnfollow.svg.js +21 -7
  336. package/dist/assets/icons/UserUnfollow.svg.js.map +1 -1
  337. package/dist/assets/icons/ValidationCheck.svg.js +21 -7
  338. package/dist/assets/icons/ValidationCheck.svg.js.map +1 -1
  339. package/dist/assets/icons/ValidationX.svg.js +21 -7
  340. package/dist/assets/icons/ValidationX.svg.js.map +1 -1
  341. package/dist/assets/icons/Verified.svg.js +31 -22
  342. package/dist/assets/icons/Verified.svg.js.map +1 -1
  343. package/dist/assets/icons/VisibilityHidden.svg.js +21 -7
  344. package/dist/assets/icons/VisibilityHidden.svg.js.map +1 -1
  345. package/dist/assets/icons/VisibilityPublic.svg.js +21 -7
  346. package/dist/assets/icons/VisibilityPublic.svg.js.map +1 -1
  347. package/dist/assets/icons/VolumeLevel0.svg.js +21 -7
  348. package/dist/assets/icons/VolumeLevel0.svg.js.map +1 -1
  349. package/dist/assets/icons/VolumeLevel1.svg.js +21 -7
  350. package/dist/assets/icons/VolumeLevel1.svg.js.map +1 -1
  351. package/dist/assets/icons/VolumeLevel2.svg.js +21 -7
  352. package/dist/assets/icons/VolumeLevel2.svg.js.map +1 -1
  353. package/dist/assets/icons/VolumeLevel3.svg.js +21 -7
  354. package/dist/assets/icons/VolumeLevel3.svg.js.map +1 -1
  355. package/dist/assets/icons/Wallet.svg.js +21 -7
  356. package/dist/assets/icons/Wallet.svg.js.map +1 -1
  357. package/dist/assets/icons/Wand.svg.js +21 -7
  358. package/dist/assets/icons/Wand.svg.js.map +1 -1
  359. package/dist/assets/icons/Waveform.svg.js +21 -7
  360. package/dist/assets/icons/Waveform.svg.js.map +1 -1
  361. package/dist/assets/icons/Withdraw.svg.js +21 -7
  362. package/dist/assets/icons/Withdraw.svg.js.map +1 -1
  363. package/dist/assets/icons/ccBy.svg.js +21 -7
  364. package/dist/assets/icons/ccBy.svg.js.map +1 -1
  365. package/dist/assets/icons/ccCC.svg.js +21 -7
  366. package/dist/assets/icons/ccCC.svg.js.map +1 -1
  367. package/dist/assets/icons/ccNC-EU.svg.js +21 -7
  368. package/dist/assets/icons/ccNC-EU.svg.js.map +1 -1
  369. package/dist/assets/icons/ccNC-JP.svg.js +21 -7
  370. package/dist/assets/icons/ccNC-JP.svg.js.map +1 -1
  371. package/dist/assets/icons/ccNC.svg.js +21 -7
  372. package/dist/assets/icons/ccNC.svg.js.map +1 -1
  373. package/dist/assets/icons/ccND.svg.js +21 -7
  374. package/dist/assets/icons/ccND.svg.js.map +1 -1
  375. package/dist/assets/icons/ccPD.svg.js +21 -7
  376. package/dist/assets/icons/ccPD.svg.js.map +1 -1
  377. package/dist/assets/icons/ccRemix.svg.js +21 -7
  378. package/dist/assets/icons/ccRemix.svg.js.map +1 -1
  379. package/dist/assets/icons/ccSA.svg.js +21 -7
  380. package/dist/assets/icons/ccSA.svg.js.map +1 -1
  381. package/dist/assets/icons/ccSampling.svg.js +21 -7
  382. package/dist/assets/icons/ccSampling.svg.js.map +1 -1
  383. package/dist/assets/icons/ccSamplingPlus.svg.js +21 -7
  384. package/dist/assets/icons/ccSamplingPlus.svg.js.map +1 -1
  385. package/dist/assets/icons/ccShare.svg.js +21 -7
  386. package/dist/assets/icons/ccShare.svg.js.map +1 -1
  387. package/dist/assets/icons/ccZero.svg.js +21 -7
  388. package/dist/assets/icons/ccZero.svg.js.map +1 -1
  389. package/dist/assets/icons/file3GA.svg.js +21 -7
  390. package/dist/assets/icons/file3GA.svg.js.map +1 -1
  391. package/dist/assets/icons/file3GP.svg.js +21 -7
  392. package/dist/assets/icons/file3GP.svg.js.map +1 -1
  393. package/dist/assets/icons/fileAAC.svg.js +21 -7
  394. package/dist/assets/icons/fileAAC.svg.js.map +1 -1
  395. package/dist/assets/icons/fileAIF.svg.js +21 -7
  396. package/dist/assets/icons/fileAIF.svg.js.map +1 -1
  397. package/dist/assets/icons/fileAIFC.svg.js +21 -7
  398. package/dist/assets/icons/fileAIFC.svg.js.map +1 -1
  399. package/dist/assets/icons/fileAIFF.svg.js +21 -7
  400. package/dist/assets/icons/fileAIFF.svg.js.map +1 -1
  401. package/dist/assets/icons/fileAMR.svg.js +21 -7
  402. package/dist/assets/icons/fileAMR.svg.js.map +1 -1
  403. package/dist/assets/icons/fileAWB.svg.js +21 -7
  404. package/dist/assets/icons/fileAWB.svg.js.map +1 -1
  405. package/dist/assets/icons/fileFLAC.svg.js +21 -7
  406. package/dist/assets/icons/fileFLAC.svg.js.map +1 -1
  407. package/dist/assets/icons/fileM4A.svg.js +21 -7
  408. package/dist/assets/icons/fileM4A.svg.js.map +1 -1
  409. package/dist/assets/icons/fileM4B.svg.js +21 -7
  410. package/dist/assets/icons/fileM4B.svg.js.map +1 -1
  411. package/dist/assets/icons/fileM4P.svg.js +21 -7
  412. package/dist/assets/icons/fileM4P.svg.js.map +1 -1
  413. package/dist/assets/icons/fileM4R.svg.js +21 -7
  414. package/dist/assets/icons/fileM4R.svg.js.map +1 -1
  415. package/dist/assets/icons/fileM4V.svg.js +21 -7
  416. package/dist/assets/icons/fileM4V.svg.js.map +1 -1
  417. package/dist/assets/icons/fileMP2.svg.js +21 -7
  418. package/dist/assets/icons/fileMP2.svg.js.map +1 -1
  419. package/dist/assets/icons/fileMP3.svg.js +21 -7
  420. package/dist/assets/icons/fileMP3.svg.js.map +1 -1
  421. package/dist/assets/icons/fileMP4.svg.js +21 -7
  422. package/dist/assets/icons/fileMP4.svg.js.map +1 -1
  423. package/dist/assets/icons/fileMPGA.svg.js +21 -7
  424. package/dist/assets/icons/fileMPGA.svg.js.map +1 -1
  425. package/dist/assets/icons/fileOGA.svg.js +21 -7
  426. package/dist/assets/icons/fileOGA.svg.js.map +1 -1
  427. package/dist/assets/icons/fileOGG.svg.js +21 -7
  428. package/dist/assets/icons/fileOGG.svg.js.map +1 -1
  429. package/dist/assets/icons/fileOGM.svg.js +21 -7
  430. package/dist/assets/icons/fileOGM.svg.js.map +1 -1
  431. package/dist/assets/icons/fileOGV.svg.js +21 -7
  432. package/dist/assets/icons/fileOGV.svg.js.map +1 -1
  433. package/dist/assets/icons/fileOGX.svg.js +21 -7
  434. package/dist/assets/icons/fileOGX.svg.js.map +1 -1
  435. package/dist/assets/icons/fileOPUS.svg.js +21 -7
  436. package/dist/assets/icons/fileOPUS.svg.js.map +1 -1
  437. package/dist/assets/icons/fileSPX.svg.js +21 -7
  438. package/dist/assets/icons/fileSPX.svg.js.map +1 -1
  439. package/dist/assets/icons/fileTS.svg.js +21 -7
  440. package/dist/assets/icons/fileTS.svg.js.map +1 -1
  441. package/dist/assets/icons/fileTSA.svg.js +21 -7
  442. package/dist/assets/icons/fileTSA.svg.js.map +1 -1
  443. package/dist/assets/icons/fileTSV.svg.js +21 -7
  444. package/dist/assets/icons/fileTSV.svg.js.map +1 -1
  445. package/dist/assets/icons/fileUnknown.svg.js +24 -8
  446. package/dist/assets/icons/fileUnknown.svg.js.map +1 -1
  447. package/dist/assets/icons/fileWAV.svg.js +21 -7
  448. package/dist/assets/icons/fileWAV.svg.js.map +1 -1
  449. package/dist/assets/icons/fileWAVE.svg.js +21 -7
  450. package/dist/assets/icons/fileWAVE.svg.js.map +1 -1
  451. package/dist/assets/icons/fileWEBM.svg.js +21 -7
  452. package/dist/assets/icons/fileWEBM.svg.js.map +1 -1
  453. package/dist/assets/icons/fileXWMA.svg.js +21 -7
  454. package/dist/assets/icons/fileXWMA.svg.js.map +1 -1
  455. package/dist/components/artwork/Artwork.d.ts +17 -0
  456. package/dist/components/artwork/Artwork.d.ts.map +1 -0
  457. package/dist/components/artwork/Artwork.js +47 -0
  458. package/dist/components/artwork/Artwork.js.map +1 -0
  459. package/dist/components/artwork/Artwork.stories.d.ts +8 -0
  460. package/dist/components/artwork/Artwork.stories.d.ts.map +1 -0
  461. package/dist/components/artwork/index.d.ts +2 -0
  462. package/dist/components/artwork/index.d.ts.map +1 -0
  463. package/dist/components/avatar/Avatar.d.ts +8 -1
  464. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  465. package/dist/components/avatar/Avatar.js +16 -45
  466. package/dist/components/avatar/Avatar.js.map +1 -1
  467. package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
  468. package/dist/components/avatar/index.d.ts +1 -1
  469. package/dist/components/avatar/index.d.ts.map +1 -1
  470. package/dist/components/button/Button/Button.d.ts.map +1 -1
  471. package/dist/components/button/Button/Button.js +13 -33
  472. package/dist/components/button/Button/Button.js.map +1 -1
  473. package/dist/components/button/Button/types.d.ts +3 -3
  474. package/dist/components/button/Button/types.d.ts.map +1 -1
  475. package/dist/components/button/FilterButton/FilterButton.d.ts.map +1 -1
  476. package/dist/components/button/FilterButton/FilterButton.js +5 -5
  477. package/dist/components/button/FilterButton/FilterButton.js.map +1 -1
  478. package/dist/components/button/FilterButton/FilterButton.stories.d.ts.map +1 -1
  479. package/dist/components/button/FilterButton/types.d.ts +2 -2
  480. package/dist/components/button/FilterButton/types.d.ts.map +1 -1
  481. package/dist/components/button/FollowButton/FollowButton.d.ts +2 -1
  482. package/dist/components/button/FollowButton/FollowButton.d.ts.map +1 -1
  483. package/dist/components/button/FollowButton/FollowButton.js +53 -21
  484. package/dist/components/button/FollowButton/FollowButton.js.map +1 -1
  485. package/dist/components/button/FollowButton/types.d.ts +6 -0
  486. package/dist/components/button/FollowButton/types.d.ts.map +1 -1
  487. package/dist/components/button/IconButton/IconButton.d.ts +3 -3
  488. package/dist/components/button/IconButton/IconButton.d.ts.map +1 -1
  489. package/dist/components/button/IconButton/IconButton.js +20 -5
  490. package/dist/components/button/IconButton/IconButton.js.map +1 -1
  491. package/dist/components/button/SocialButton/SocialButton.d.ts +1 -5
  492. package/dist/components/button/SocialButton/SocialButton.d.ts.map +1 -1
  493. package/dist/components/button/SocialButton/SocialButton.js +1 -1
  494. package/dist/components/button/SocialButton/SocialButton.js.map +1 -1
  495. package/dist/components/button/UnstyledButton.d.ts +11 -0
  496. package/dist/components/button/UnstyledButton.d.ts.map +1 -0
  497. package/dist/components/button/UnstyledButton.js +13 -0
  498. package/dist/components/button/UnstyledButton.js.map +1 -0
  499. package/dist/components/button/index.d.ts +2 -1
  500. package/dist/components/button/index.d.ts.map +1 -1
  501. package/dist/components/completion-check/CompletionCheck.js +0 -1
  502. package/dist/components/completion-check/CompletionCheck.js.map +1 -1
  503. package/dist/components/hint/Hint.d.ts +1 -1
  504. package/dist/components/hint/Hint.d.ts.map +1 -1
  505. package/dist/components/hint/Hint.js +5 -3
  506. package/dist/components/hint/Hint.js.map +1 -1
  507. package/dist/components/icon.d.ts +1 -0
  508. package/dist/components/icon.d.ts.map +1 -1
  509. package/dist/components/index.d.ts +7 -0
  510. package/dist/components/index.d.ts.map +1 -1
  511. package/dist/components/input/PasswordInput/PasswordInput.js +1 -0
  512. package/dist/components/input/PasswordInput/PasswordInput.js.map +1 -1
  513. package/dist/components/input/SelectablePill/SelectablePill.js +1 -1
  514. package/dist/components/input/TextInput/TextInput.d.ts.map +1 -1
  515. package/dist/components/input/TextInput/TextInput.js +3 -4
  516. package/dist/components/input/TextInput/TextInput.js.map +1 -1
  517. package/dist/components/layout/Box/Box.js +6 -6
  518. package/dist/components/layout/Box/Box.js.map +1 -1
  519. package/dist/components/layout/Box/types.d.ts +8 -8
  520. package/dist/components/layout/Box/types.d.ts.map +1 -1
  521. package/dist/components/layout/Divider/Divider.d.ts.map +1 -1
  522. package/dist/components/layout/Divider/Divider.js +4 -4
  523. package/dist/components/layout/Divider/Divider.js.map +1 -1
  524. package/dist/components/layout/Divider/types.d.ts +2 -0
  525. package/dist/components/layout/Divider/types.d.ts.map +1 -1
  526. package/dist/components/layout/Paper/Paper.d.ts +1 -6
  527. package/dist/components/layout/Paper/Paper.d.ts.map +1 -1
  528. package/dist/components/layout/Paper/Paper.js +24 -9
  529. package/dist/components/layout/Paper/Paper.js.map +1 -1
  530. package/dist/components/layout/Paper/Paper.stories.d.ts +1 -0
  531. package/dist/components/layout/Paper/Paper.stories.d.ts.map +1 -1
  532. package/dist/components/layout/Paper/types.d.ts +2 -0
  533. package/dist/components/layout/Paper/types.d.ts.map +1 -1
  534. package/dist/components/layout/index.d.ts +0 -1
  535. package/dist/components/layout/index.d.ts.map +1 -1
  536. package/dist/components/modal/Modal.d.ts.map +1 -1
  537. package/dist/components/modal/Modal.js +40 -28
  538. package/dist/components/modal/Modal.js.map +1 -1
  539. package/dist/components/modal/ModalHeader.js +1 -0
  540. package/dist/components/modal/ModalHeader.js.map +1 -1
  541. package/dist/components/pill/Pill.d.ts +31 -0
  542. package/dist/components/pill/Pill.d.ts.map +1 -0
  543. package/dist/components/pill/Pill.js +59 -0
  544. package/dist/components/pill/Pill.js.map +1 -0
  545. package/dist/components/pill/Pill.stories.d.ts +10 -0
  546. package/dist/components/pill/Pill.stories.d.ts.map +1 -0
  547. package/dist/components/pill/index.d.ts +3 -0
  548. package/dist/components/pill/index.d.ts.map +1 -0
  549. package/dist/components/popup/Popup.d.ts.map +1 -0
  550. package/dist/components/{layout/Popup → popup}/Popup.js +39 -23
  551. package/dist/components/popup/Popup.js.map +1 -0
  552. package/dist/components/popup/Popup.module.css.js +4 -0
  553. package/dist/components/popup/Popup.stories.d.ts.map +1 -0
  554. package/dist/components/popup/index.d.ts.map +1 -0
  555. package/dist/components/{layout/Popup → popup}/types.d.ts +3 -3
  556. package/dist/components/popup/types.d.ts.map +1 -0
  557. package/dist/components/popup-menu/PopupMenu.d.ts +2 -2
  558. package/dist/components/popup-menu/PopupMenu.js +2 -2
  559. package/dist/components/popup-menu/PopupMenu.js.map +1 -1
  560. package/dist/components/popup-menu/types.d.ts +1 -1
  561. package/dist/components/popup-menu/types.d.ts.map +1 -1
  562. package/dist/components/progress-bar/ProgressBar.d.ts +3 -0
  563. package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -0
  564. package/dist/components/progress-bar/ProgressBar.js +40 -0
  565. package/dist/components/progress-bar/ProgressBar.js.map +1 -0
  566. package/dist/components/progress-bar/ProgressBar.module.css.js +4 -0
  567. package/dist/components/progress-bar/ProgressBar.module.css.js.map +1 -0
  568. package/dist/components/progress-bar/index.d.ts +3 -0
  569. package/dist/components/progress-bar/index.d.ts.map +1 -0
  570. package/dist/components/progress-bar/types.d.ts +20 -0
  571. package/dist/components/progress-bar/types.d.ts.map +1 -0
  572. package/dist/components/radio-group/RadioGroup.js +0 -1
  573. package/dist/components/radio-group/RadioGroup.js.map +1 -1
  574. package/dist/components/scrubber/Scrubber.d.ts +17 -0
  575. package/dist/components/scrubber/Scrubber.d.ts.map +1 -0
  576. package/dist/components/scrubber/Scrubber.js +61 -0
  577. package/dist/components/scrubber/Scrubber.js.map +1 -0
  578. package/dist/components/scrubber/Scrubber.module.css.js +4 -0
  579. package/dist/components/scrubber/Scrubber.module.css.js.map +1 -0
  580. package/dist/components/scrubber/Slider.d.ts +7 -0
  581. package/dist/components/scrubber/Slider.d.ts.map +1 -0
  582. package/dist/components/scrubber/Slider.js +230 -0
  583. package/dist/components/scrubber/Slider.js.map +1 -0
  584. package/dist/components/scrubber/Slider.module.css.js +4 -0
  585. package/dist/components/scrubber/Slider.module.css.js.map +1 -0
  586. package/dist/components/scrubber/hooks.d.ts +11 -0
  587. package/dist/components/scrubber/hooks.d.ts.map +1 -0
  588. package/dist/components/scrubber/hooks.js +63 -0
  589. package/dist/components/scrubber/hooks.js.map +1 -0
  590. package/dist/components/scrubber/index.d.ts +2 -0
  591. package/dist/components/scrubber/index.d.ts.map +1 -0
  592. package/dist/components/scrubber/types.d.ts +86 -0
  593. package/dist/components/scrubber/types.d.ts.map +1 -0
  594. package/dist/components/scrubber/types.js +11 -0
  595. package/dist/components/scrubber/types.js.map +1 -0
  596. package/dist/components/segmented-control/SegmentedControl.js +1 -1
  597. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  598. package/dist/components/skeleton/Skeleton.d.ts +5 -0
  599. package/dist/components/skeleton/Skeleton.d.ts.map +1 -0
  600. package/dist/components/skeleton/Skeleton.js +27 -0
  601. package/dist/components/skeleton/Skeleton.js.map +1 -0
  602. package/dist/components/skeleton/Skeleton.stories.d.ts +7 -0
  603. package/dist/components/skeleton/Skeleton.stories.d.ts.map +1 -0
  604. package/dist/components/skeleton/index.d.ts +2 -0
  605. package/dist/components/skeleton/index.d.ts.map +1 -0
  606. package/dist/components/tag/Tag.js +5 -10
  607. package/dist/components/tag/Tag.js.map +1 -1
  608. package/dist/components/text/Text.d.ts.map +1 -0
  609. package/dist/components/text/Text.js +51 -0
  610. package/dist/components/text/Text.js.map +1 -0
  611. package/dist/components/text/Text.stories.d.ts.map +1 -0
  612. package/dist/components/text/constants.d.ts.map +1 -0
  613. package/dist/components/text/{Text/constants.js → constants.js} +4 -4
  614. package/dist/components/text/constants.js.map +1 -0
  615. package/dist/components/text/index.d.ts +3 -1
  616. package/dist/components/text/index.d.ts.map +1 -1
  617. package/dist/components/text/textContext.d.ts +7 -0
  618. package/dist/components/text/textContext.d.ts.map +1 -0
  619. package/dist/components/text/textContext.js +6 -0
  620. package/dist/components/text/textContext.js.map +1 -0
  621. package/dist/components/text/{Text/types.d.ts → types.d.ts} +2 -1
  622. package/dist/components/text/types.d.ts.map +1 -0
  623. package/dist/components/text-link/TextLink.d.ts +3 -7
  624. package/dist/components/text-link/TextLink.d.ts.map +1 -1
  625. package/dist/components/text-link/TextLink.js +8 -6
  626. package/dist/components/text-link/TextLink.js.map +1 -1
  627. package/dist/components/text-link/types.d.ts +4 -7
  628. package/dist/components/text-link/types.d.ts.map +1 -1
  629. package/dist/foundations/color/color.d.ts +3 -0
  630. package/dist/foundations/color/color.d.ts.map +1 -1
  631. package/dist/foundations/color/primitive.d.ts +3 -0
  632. package/dist/foundations/color/primitive.d.ts.map +1 -1
  633. package/dist/foundations/color/primitive.js +3 -0
  634. package/dist/foundations/color/primitive.js.map +1 -1
  635. package/dist/foundations/corner-radius/cornerRadius.d.ts +1 -0
  636. package/dist/foundations/corner-radius/cornerRadius.d.ts.map +1 -1
  637. package/dist/foundations/corner-radius/cornerRadius.js +2 -1
  638. package/dist/foundations/corner-radius/cornerRadius.js.map +1 -1
  639. package/dist/foundations/spacing/spacing.d.ts +1 -0
  640. package/dist/foundations/spacing/spacing.d.ts.map +1 -1
  641. package/dist/foundations/spacing/spacing.js +1 -0
  642. package/dist/foundations/spacing/spacing.js.map +1 -1
  643. package/dist/foundations/theme/ThemeProvider.d.ts +1 -1
  644. package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -1
  645. package/dist/foundations/theme/ThemeProvider.js +6 -0
  646. package/dist/foundations/theme/ThemeProvider.js.map +1 -1
  647. package/dist/foundations/typography/typography.d.ts +1 -0
  648. package/dist/foundations/typography/typography.d.ts.map +1 -1
  649. package/dist/foundations/typography/typography.js +5 -3
  650. package/dist/foundations/typography/typography.js.map +1 -1
  651. package/dist/harmony.css +1 -1
  652. package/dist/hooks/useHotKeys.d.ts +3 -3
  653. package/dist/hooks/useHotKeys.d.ts.map +1 -1
  654. package/dist/hooks/useHotKeys.js +11 -5
  655. package/dist/hooks/useHotKeys.js.map +1 -1
  656. package/dist/icons/logos.d.ts +1 -0
  657. package/dist/icons/logos.d.ts.map +1 -1
  658. package/dist/icons/logos.js +3 -1
  659. package/dist/icons/logos.js.map +1 -1
  660. package/dist/icons/utilityIcons.d.ts +3 -0
  661. package/dist/icons/utilityIcons.d.ts.map +1 -1
  662. package/dist/icons/utilityIcons.js +7 -1
  663. package/dist/icons/utilityIcons.js.map +1 -1
  664. package/dist/index.d.ts +1 -0
  665. package/dist/index.d.ts.map +1 -1
  666. package/dist/index.js +12 -5
  667. package/dist/index.js.map +1 -1
  668. package/dist/utils/modalState.d.ts +2 -0
  669. package/dist/utils/modalState.d.ts.map +1 -0
  670. package/package.json +3 -3
  671. package/dist/2fdaa2b95a34d549.svg +0 -9
  672. package/dist/5f91e9bafd9a9e2b.svg +0 -9
  673. package/dist/assets/icons/PenSquare.svg.js.map +0 -1
  674. package/dist/avenir.css +0 -44
  675. package/dist/components/button/BaseButton/BaseButton.module.css.js +0 -4
  676. package/dist/components/button/BaseButton/BaseButton.module.css.js.map +0 -1
  677. package/dist/components/button/BaseButton.d.ts +0 -21
  678. package/dist/components/button/BaseButton.d.ts.map +0 -1
  679. package/dist/components/button/Button/Button.module.css.js +0 -4
  680. package/dist/components/button/Button/Button.module.css.js.map +0 -1
  681. package/dist/components/button/Button.d.ts +0 -13
  682. package/dist/components/button/Button.d.ts.map +0 -1
  683. package/dist/components/button/Button.stories.d.ts +0 -11
  684. package/dist/components/button/Button.stories.d.ts.map +0 -1
  685. package/dist/components/button/PlainButton/PlainButton.module.css.js +0 -4
  686. package/dist/components/button/PlainButton/PlainButton.module.css.js.map +0 -1
  687. package/dist/components/button/PlainButton.d.ts +0 -11
  688. package/dist/components/button/PlainButton.d.ts.map +0 -1
  689. package/dist/components/button/PlainButton.stories.d.ts +0 -20
  690. package/dist/components/button/PlainButton.stories.d.ts.map +0 -1
  691. package/dist/components/button/SocialButton/SocialButton.module.css.js +0 -4
  692. package/dist/components/button/SocialButton/SocialButton.module.css.js.map +0 -1
  693. package/dist/components/button/types.d.ts +0 -194
  694. package/dist/components/button/types.d.ts.map +0 -1
  695. package/dist/components/button/types.js +0 -43
  696. package/dist/components/button/types.js.map +0 -1
  697. package/dist/components/icon/Icon.d.ts +0 -33
  698. package/dist/components/icon/Icon.d.ts.map +0 -1
  699. package/dist/components/icon/Icon.js +0 -39
  700. package/dist/components/icon/Icon.js.map +0 -1
  701. package/dist/components/icon/index.d.ts +0 -2
  702. package/dist/components/icon/index.d.ts.map +0 -1
  703. package/dist/components/icon.js +0 -11
  704. package/dist/components/icon.js.map +0 -1
  705. package/dist/components/input/PasswordInput/PasswordInput.modules.css.js +0 -4
  706. package/dist/components/input/PasswordInput/PasswordInput.modules.css.js.map +0 -1
  707. package/dist/components/input/SelectablePill/SelectablePill.module.css.js +0 -4
  708. package/dist/components/input/SelectablePill/SelectablePill.module.css.js.map +0 -1
  709. package/dist/components/layout/Popup/Popup.d.ts.map +0 -1
  710. package/dist/components/layout/Popup/Popup.js.map +0 -1
  711. package/dist/components/layout/Popup/Popup.module.css.js +0 -4
  712. package/dist/components/layout/Popup/Popup.stories.d.ts.map +0 -1
  713. package/dist/components/layout/Popup/index.d.ts.map +0 -1
  714. package/dist/components/layout/Popup/types.d.ts.map +0 -1
  715. package/dist/components/link/Link.d.ts +0 -8
  716. package/dist/components/link/Link.d.ts.map +0 -1
  717. package/dist/components/link/Link.js +0 -19
  718. package/dist/components/link/Link.js.map +0 -1
  719. package/dist/components/link/Link.module.css.js +0 -4
  720. package/dist/components/link/Link.module.css.js.map +0 -1
  721. package/dist/components/link/TextLink.d.ts +0 -6
  722. package/dist/components/link/TextLink.d.ts.map +0 -1
  723. package/dist/components/link/TextLink.stories.d.ts +0 -12
  724. package/dist/components/link/TextLink.stories.d.ts.map +0 -1
  725. package/dist/components/link/index.d.ts +0 -2
  726. package/dist/components/link/index.d.ts.map +0 -1
  727. package/dist/components/link/types.d.ts +0 -37
  728. package/dist/components/link/types.d.ts.map +0 -1
  729. package/dist/components/text/Text/Text.d.ts.map +0 -1
  730. package/dist/components/text/Text/Text.js +0 -42
  731. package/dist/components/text/Text/Text.js.map +0 -1
  732. package/dist/components/text/Text/Text.stories.d.ts.map +0 -1
  733. package/dist/components/text/Text/constants.d.ts.map +0 -1
  734. package/dist/components/text/Text/constants.js.map +0 -1
  735. package/dist/components/text/Text/index.d.ts +0 -4
  736. package/dist/components/text/Text/index.d.ts.map +0 -1
  737. package/dist/components/text/Text/types.d.ts.map +0 -1
  738. package/dist/components/text/Text/typography.module.css.js +0 -4
  739. package/dist/components/text/Text/typography.module.css.js.map +0 -1
  740. package/dist/components/typography/Icons/Icon.d.ts +0 -22
  741. package/dist/components/typography/Icons/Icon.d.ts.map +0 -1
  742. package/dist/components/typography/Icons/Icon.js +0 -34
  743. package/dist/components/typography/Icons/Icon.js.map +0 -1
  744. package/dist/components/typography/Icons/Icon.module.css.js +0 -4
  745. package/dist/components/typography/Icons/Icon.module.css.js.map +0 -1
  746. package/dist/components/typography/Icons/index.d.ts +0 -208
  747. package/dist/components/typography/Icons/index.d.ts.map +0 -1
  748. package/dist/components/typography/Icons/types.d.ts +0 -5
  749. package/dist/components/typography/Icons/types.d.ts.map +0 -1
  750. package/dist/components/typography/Text/Text.d.ts +0 -3
  751. package/dist/components/typography/Text/Text.d.ts.map +0 -1
  752. package/dist/components/typography/Text/Text.js +0 -24
  753. package/dist/components/typography/Text/Text.js.map +0 -1
  754. package/dist/components/typography/Text/Text.stories.d.ts +0 -12
  755. package/dist/components/typography/Text/Text.stories.d.ts.map +0 -1
  756. package/dist/components/typography/Text/constants.d.ts +0 -3
  757. package/dist/components/typography/Text/constants.d.ts.map +0 -1
  758. package/dist/components/typography/Text/constants.js +0 -36
  759. package/dist/components/typography/Text/constants.js.map +0 -1
  760. package/dist/components/typography/Text/index.d.ts +0 -3
  761. package/dist/components/typography/Text/index.d.ts.map +0 -1
  762. package/dist/components/typography/Text/types.d.ts +0 -19
  763. package/dist/components/typography/Text/types.d.ts.map +0 -1
  764. package/dist/components/typography/Text/typography.module.css.js +0 -4
  765. package/dist/components/typography/Text/typography.module.css.js.map +0 -1
  766. package/dist/components/typography/index.d.ts +0 -4
  767. package/dist/components/typography/index.d.ts.map +0 -1
  768. package/dist/d2608cfebdf74ed2.svg +0 -21
  769. package/dist/foundations/color/colors.stories.d.ts +0 -7
  770. package/dist/foundations/color/colors.stories.d.ts.map +0 -1
  771. package/dist/icons/icons.d.ts +0 -189
  772. package/dist/icons/icons.d.ts.map +0 -1
  773. package/dist/index.es.js +0 -6383
  774. package/dist/index.es.js.map +0 -1
  775. package/dist/storybook/colors.stories.d.ts +0 -7
  776. package/dist/storybook/colors.stories.d.ts.map +0 -1
  777. package/dist/storybook/components/CardLink.d.ts +0 -10
  778. package/dist/storybook/components/CardLink.d.ts.map +0 -1
  779. package/dist/storybook/components/ColorPalette/ColorPalette.d.ts +0 -7
  780. package/dist/storybook/components/ColorPalette/ColorPalette.d.ts.map +0 -1
  781. package/dist/storybook/components/ColorPalette/index.d.ts +0 -2
  782. package/dist/storybook/components/ColorPalette/index.d.ts.map +0 -1
  783. package/dist/storybook/components/ColorSwatch/ColorSwatch.d.ts +0 -8
  784. package/dist/storybook/components/ColorSwatch/ColorSwatch.d.ts.map +0 -1
  785. package/dist/storybook/components/ColorSwatch/index.d.ts +0 -2
  786. package/dist/storybook/components/ColorSwatch/index.d.ts.map +0 -1
  787. package/dist/styles/theme.d.ts +0 -3
  788. package/dist/styles/theme.d.ts.map +0 -1
  789. package/dist/styles/types.d.ts +0 -55
  790. package/dist/styles/types.d.ts.map +0 -1
  791. package/dist/types/colors.d.ts +0 -2
  792. package/dist/types/colors.d.ts.map +0 -1
  793. package/dist/types/styles.d.ts +0 -19
  794. package/dist/types/styles.d.ts.map +0 -1
  795. /package/dist/components/{layout/Popup → popup}/Popup.d.ts +0 -0
  796. /package/dist/components/{layout/Popup → popup}/Popup.module.css.js.map +0 -0
  797. /package/dist/components/{layout/Popup → popup}/Popup.stories.d.ts +0 -0
  798. /package/dist/components/{layout/Popup → popup}/index.d.ts +0 -0
  799. /package/dist/components/text/{Text/Text.d.ts → Text.d.ts} +0 -0
  800. /package/dist/components/text/{Text/Text.stories.d.ts → Text.stories.d.ts} +0 -0
  801. /package/dist/components/text/{Text/constants.d.ts → constants.d.ts} +0 -0
@@ -0,0 +1,230 @@
1
+ import { __assign } from '../../_virtual/_tslib.js';
2
+ import { jsxs, jsx } from '@emotion/react/jsx-runtime';
3
+ import { useState, useRef, useCallback, useEffect } from 'react';
4
+ import cn from 'classnames';
5
+ import styles from './Slider.module.css.js';
6
+ import { useAnimations } from './hooks.js';
7
+
8
+ /** Gets the X-position of a div. */
9
+ var getXPosition = function (element) {
10
+ var coords = element.getBoundingClientRect();
11
+ return window.pageXOffset + coords.left;
12
+ };
13
+ /**
14
+ * A smooth scrubbable slider that relies on CSS animations rather
15
+ * than progress ticks to achieve fluidity.
16
+ */
17
+ var Slider = function (_a) {
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];
21
+ // Percentage of the complete scrubber being dragged to.
22
+ // e.g. 0.25 means the user has dragged the scrubber 1/4th of the way.
23
+ var dragPercent = useRef(0);
24
+ // Refs to handle event listeners
25
+ var mouseMoveRef = useRef(null);
26
+ var mouseUpRef = useRef(null);
27
+ var touchMoveRef = useRef(null);
28
+ var touchEndRef = useRef(null);
29
+ // Div refs
30
+ var railRef = useRef(null);
31
+ var trackRef = useRef(null);
32
+ var handleRef = useRef(null);
33
+ var _e = useAnimations(trackRef, handleRef, elapsedSeconds, totalSeconds, playbackRate), play = _e.play, pause = _e.pause, setPercent = _e.setPercent;
34
+ /**
35
+ * Sets the percentage across the scrubber for a given pageX position.
36
+ */
37
+ var setDragPercent = useCallback(function (pageX) {
38
+ if (railRef.current) {
39
+ var clickPosition = pageX - getXPosition(railRef.current);
40
+ var railWidth = railRef.current.offsetWidth;
41
+ var percent = Math.min(Math.max(0, clickPosition), railWidth) / railWidth;
42
+ dragPercent.current = percent;
43
+ }
44
+ }, [dragPercent]);
45
+ /**
46
+ * Sets the percentage across the scrubber for a given mouse event.
47
+ */
48
+ var setDragPercentMouse = useCallback(function (e) {
49
+ setDragPercent(e.pageX);
50
+ }, [setDragPercent]);
51
+ /**
52
+ * Sets the percentage across the scurbber for a given touch event.
53
+ */
54
+ var setDragPercentTouch = useCallback(function (e) {
55
+ setDragPercent(e.touches[0].pageX);
56
+ }, [setDragPercent]);
57
+ /**
58
+ * Watches user mouse movements while the scrubber handle is being dragged.
59
+ */
60
+ var onMouseMove = useCallback(function (e) {
61
+ e.stopPropagation();
62
+ e.preventDefault();
63
+ setDragPercentMouse(e);
64
+ if (dragPercent.current !== null) {
65
+ setPercent(dragPercent.current);
66
+ var seconds = dragPercent.current * totalSeconds;
67
+ if (onScrub) {
68
+ onScrub(seconds);
69
+ }
70
+ }
71
+ }, [dragPercent, setDragPercentMouse, totalSeconds, setPercent, onScrub]);
72
+ /**
73
+ * Watches user touch movements while the scrubber handle is being dragged.
74
+ */
75
+ var onTouchMove = useCallback(function (e) {
76
+ e.stopPropagation();
77
+ e.preventDefault();
78
+ setDragPercentTouch(e);
79
+ if (dragPercent.current !== null) {
80
+ setPercent(dragPercent.current);
81
+ var seconds = dragPercent.current * totalSeconds;
82
+ if (onScrub) {
83
+ onScrub(seconds);
84
+ }
85
+ }
86
+ }, [dragPercent, setDragPercentTouch, totalSeconds, setPercent, onScrub]);
87
+ /**
88
+ * Watches for a mouse-up action (which may not occur on the scrubber itself),
89
+ * calls the release callback, and resets dragging state.
90
+ */
91
+ var onMouseUp = useCallback(function () {
92
+ if (mouseMoveRef.current) {
93
+ document.removeEventListener('mousemove', mouseMoveRef.current);
94
+ }
95
+ if (mouseUpRef.current) {
96
+ document.removeEventListener('mouseup', mouseUpRef.current);
97
+ }
98
+ if (dragPercent.current !== null) {
99
+ var seconds = dragPercent.current * totalSeconds;
100
+ if (onScrubRelease) {
101
+ onScrubRelease(seconds);
102
+ }
103
+ dragPercent.current = null;
104
+ }
105
+ }, [mouseMoveRef, mouseUpRef, dragPercent, totalSeconds, onScrubRelease]);
106
+ /**
107
+ * Watches for a touch-end action (which may not occur on the scrubber itself),
108
+ * calls the release callback, and resets dragging state.
109
+ */
110
+ var onTouchEnd = useCallback(function () {
111
+ if (touchMoveRef.current) {
112
+ document.removeEventListener('touchmove', touchMoveRef.current);
113
+ }
114
+ if (touchEndRef.current) {
115
+ document.removeEventListener('touchend', touchEndRef.current);
116
+ }
117
+ if (dragPercent.current !== null) {
118
+ var seconds = dragPercent.current * totalSeconds;
119
+ if (onScrubRelease) {
120
+ onScrubRelease(seconds);
121
+ }
122
+ dragPercent.current = null;
123
+ }
124
+ }, [touchMoveRef, touchEndRef, dragPercent, totalSeconds, onScrubRelease]);
125
+ /**
126
+ * Attaches mouse-move and mouse-up event listeners and sets dragging state.
127
+ */
128
+ var onMouseDown = function (e) {
129
+ // Cancel mouse down if touch was fired.
130
+ if (e.button !== 0 || touchMoveRef.current)
131
+ return;
132
+ mouseMoveRef.current = onMouseMove;
133
+ mouseUpRef.current = onMouseUp;
134
+ document.addEventListener('mousemove', mouseMoveRef.current);
135
+ document.addEventListener('mouseup', mouseUpRef.current);
136
+ setDragPercentMouse(e);
137
+ if (dragPercent.current !== null) {
138
+ setPercent(dragPercent.current);
139
+ }
140
+ };
141
+ /**
142
+ * Attaches touch-move and touch-end event listeners and sets dragging state.
143
+ */
144
+ var onTouchStart = function (e) {
145
+ touchMoveRef.current = onTouchMove;
146
+ touchEndRef.current = onTouchEnd;
147
+ document.addEventListener('touchmove', touchMoveRef.current);
148
+ document.addEventListener('touchend', touchEndRef.current);
149
+ setDragPercentTouch(e);
150
+ if (dragPercent.current !== null) {
151
+ setPercent(dragPercent.current);
152
+ }
153
+ };
154
+ // Watch interactions to the scrubber and call to animate
155
+ useEffect(function () {
156
+ if (!dragPercent.current) {
157
+ if (isPlaying)
158
+ play();
159
+ else
160
+ pause();
161
+ }
162
+ }, [isPlaying, dragPercent, play, pause]);
163
+ useEffect(function () {
164
+ setPercent(elapsedSeconds / totalSeconds);
165
+ // eslint-disable-next-line react-hooks/exhaustive-deps
166
+ }, [playbackRate]);
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
+ ]);
186
+ var getShowHandle = function () {
187
+ return !style || style.showHandle === undefined ? true : style.showHandle;
188
+ };
189
+ var getRailStyle = function () {
190
+ var s = {};
191
+ if (style && style.railUnlistenedColor) {
192
+ s.background = style.railUnlistenedColor;
193
+ }
194
+ return s;
195
+ };
196
+ var getTrackStyle = function () {
197
+ var s = {};
198
+ if (style && style.railListenedColor) {
199
+ s.background = style.railListenedColor;
200
+ }
201
+ if (style && style.railListenedColor) {
202
+ s.borderRadius = 'var(--unit-half)';
203
+ }
204
+ return s;
205
+ };
206
+ var getSliderStyle = function () {
207
+ if (style && style.sliderMargin)
208
+ return { margin: style.sliderMargin };
209
+ return {};
210
+ };
211
+ var getHandleStyle = function () {
212
+ var s = {};
213
+ if (style) {
214
+ if (style.handleColor)
215
+ s.background = style.handleColor;
216
+ if (style.handleShadow)
217
+ s.boxShadow = style.handleShadow;
218
+ }
219
+ return s;
220
+ };
221
+ return (jsxs("div", __assign({ className: cn(styles.slider, (_b = {},
222
+ _b[styles.isMobile] = isMobile,
223
+ _b[styles.isDisabled] = isDisabled,
224
+ _b[styles.showHandle] = getShowHandle(),
225
+ _b[styles.expandedTargets] = includeExpandedTargets,
226
+ _b)), onMouseDown: isDisabled ? function () { } : onMouseDown, onTouchStart: isDisabled ? function () { } : onTouchStart, style: getSliderStyle() }, { children: [jsx("div", __assign({ ref: railRef, className: styles.rail, style: getRailStyle() }, { children: jsx("div", __assign({ ref: trackRef, className: styles.trackWrapper }, { children: jsx("div", { ref: trackRef, className: styles.track, style: getTrackStyle() }) })) })), jsx("div", __assign({ ref: handleRef, className: styles.handleWrapper }, { children: jsx("div", { ref: handleRef, className: styles.handle, style: getHandleStyle() }) }))] })));
227
+ };
228
+
229
+ export { Slider };
230
+ //# sourceMappingURL=Slider.js.map
@@ -0,0 +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])\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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"}
@@ -0,0 +1,4 @@
1
+ var styles = {"slider":"Slider-module_slider__o61n-","isMobile":"Slider-module_isMobile__1VIZX","isDisabled":"Slider-module_isDisabled__o0j3C","expandedTargets":"Slider-module_expandedTargets__c3Kfk","rail":"Slider-module_rail__sCKx8","trackWrapper":"Slider-module_trackWrapper__eH1F9","track":"Slider-module_track__owNQp","handleWrapper":"Slider-module_handleWrapper__mFanB","handleContainer":"Slider-module_handleContainer__YUtKx","handle":"Slider-module_handle__CP-aM","showHandle":"Slider-module_showHandle__nxgIi"};
2
+
3
+ export { styles as default };
4
+ //# sourceMappingURL=Slider.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Hook for initializing animations for a scrubber.
4
+ * const animations = useAnimations()
5
+ */
6
+ export declare const useAnimations: (trackRef: React.MutableRefObject<HTMLDivElement | null>, handleRef: React.MutableRefObject<HTMLDivElement | null>, elapsedSeconds: number, totalSeconds: number, playbackRate?: number) => {
7
+ play: () => void;
8
+ pause: () => void;
9
+ setPercent: (percentComplete: number) => void;
10
+ };
11
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,63 @@
1
+ import { useCallback, useRef, useEffect } from 'react';
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
+ /**
13
+ * Hook for initializing animations for a scrubber.
14
+ * const animations = useAnimations()
15
+ */
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. */
19
+ 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
+ */
29
+ 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, "%)"));
38
+ }
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 };
60
+ };
61
+
62
+ export { useAnimations };
63
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +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":"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"}
@@ -0,0 +1,2 @@
1
+ export { Scrubber } from './Scrubber';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/scrubber/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,86 @@
1
+ export type ScrubberProps = {
2
+ /**
3
+ * A unique identifier for the media being scrubbed.
4
+ * Usually a "track id" suffices here. This property
5
+ * is similar to a `key` in React and is used to
6
+ * reset the scrubber animation for a new media item.
7
+ */
8
+ mediaKey: string;
9
+ /**
10
+ * Whether or not the media being scrubbed is playing (or paused).
11
+ */
12
+ isPlaying: boolean;
13
+ /**
14
+ * Whether or not the scrubber should be disabled. For example,
15
+ * this is useful when no content is playing.
16
+ */
17
+ isDisabled?: boolean;
18
+ /**
19
+ * Whether or not to display a mobile-friendly variant.
20
+ */
21
+ isMobile?: boolean;
22
+ /**
23
+ * Whether or not timestamps are shown on the sides of the scrubber.
24
+ */
25
+ includeTimestamps?: boolean;
26
+ /**
27
+ * The current progress of the media being scrubbed.
28
+ * The scrubber reacts to changes in the elapsed seconds
29
+ * to re-calibrate. This value should be updated relatively frequently
30
+ * (0.1s < x < 1s).
31
+ */
32
+ elapsedSeconds: number;
33
+ /**
34
+ * Total duration of the media being scrubbed.
35
+ */
36
+ totalSeconds: number;
37
+ /**
38
+ * The speed that the media is being played at
39
+ */
40
+ playbackRate: number;
41
+ /**
42
+ * Fired incrementally as the user drags the scrubber.
43
+ */
44
+ onScrub?: (seconds: number) => void;
45
+ /**
46
+ * Fired effectively on "mouse up" when the user is done scrubbing.
47
+ */
48
+ onScrubRelease?: (seconds: number) => void;
49
+ /**
50
+ * Individually exposed styling options.
51
+ */
52
+ style?: {
53
+ railListenedColor?: string;
54
+ railUnlistenedColor?: string;
55
+ showHandle?: boolean;
56
+ handleColor?: string;
57
+ handleShadow?: string;
58
+ sliderMargin?: string;
59
+ };
60
+ /**
61
+ * Include larger click targets to that it's hard to misclick
62
+ * Defaults to true
63
+ */
64
+ includeExpandedTargets?: boolean;
65
+ /**
66
+ * Escape hatch for styles.
67
+ */
68
+ className?: string;
69
+ };
70
+ /**
71
+ * Encapsulates time-data for detecting and animating the position
72
+ * of a scrubber.
73
+ */
74
+ export type TimeData = {
75
+ elapsedSeconds: number;
76
+ totalSeconds: number;
77
+ };
78
+ export declare const defaultScrubberProps: {
79
+ isPlaying: boolean;
80
+ isDisabled: boolean;
81
+ isMobile: boolean;
82
+ includeTimestamps: boolean;
83
+ onScrub: () => void;
84
+ onScrubRelease: () => void;
85
+ };
86
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,11 @@
1
+ var defaultScrubberProps = {
2
+ isPlaying: false,
3
+ isDisabled: false,
4
+ isMobile: false,
5
+ includeTimestamps: true,
6
+ onScrub: function () { },
7
+ onScrubRelease: function () { }
8
+ };
9
+
10
+ export { defaultScrubberProps };
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +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;;;;;"}
@@ -6,7 +6,7 @@ import { useSpring, animated } from '@react-spring/web';
6
6
  import cn from 'classnames';
7
7
  import { mergeRefs } from 'react-merge-refs';
8
8
  import useMeasure from 'react-use-measure';
9
- import { Text } from '../text/Text/Text.js';
9
+ import { Text } from '../text/Text.js';
10
10
  import styles from './SegmentedControl.module.css.js';
11
11
 
12
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"SegmentedControl.js","sources":["../../../src/components/segmented-control/SegmentedControl.tsx"],"sourcesContent":["import { createRef, Fragment, useState, useRef, useEffect } from 'react'\n\nimport { ResizeObserver } from '@juggle/resize-observer'\nimport { useSpring, animated } from '@react-spring/web'\nimport cn from 'classnames'\nimport { mergeRefs } from 'react-merge-refs'\nimport useMeasure from 'react-use-measure'\n\nimport { Text } from 'components/text/Text'\n\nimport styles from './SegmentedControl.module.css'\nimport { SegmentedControlProps } from './types'\n\n/**\n * A hybrid somewhere between a button group, radio buttons, and tabs;\n * segmented controls are used to switch between different options or views.\n */\nexport const SegmentedControl = <T extends string>(\n props: SegmentedControlProps<T>\n) => {\n const optionRefs = useRef(\n props.options.map((_) => createRef<HTMLLabelElement>())\n )\n const [selected, setSelected] = useState(props.options[0].key)\n const [maxOptionWidth, setMaxOptionWidth] = useState(0)\n\n const selectedOption = props.selected || selected\n\n const onSetSelected = (option: T) => {\n // Call props function if controlled\n if (props.onSelectOption) props.onSelectOption(option)\n setSelected(option)\n }\n\n const [tabProps, tabApi] = useSpring(() => ({\n to: { left: '0px', width: '0px' }\n }))\n\n useEffect(() => {\n setMaxOptionWidth(\n optionRefs.current.reduce((currentMax, ref) => {\n const rect = ref.current?.getBoundingClientRect()\n return Math.max(rect?.width ?? 0, currentMax)\n }, 0)\n )\n }, [])\n\n // Watch for resizes and repositions so that we move and resize the slider appropriately\n const [selectedRef, bounds] = useMeasure({\n offsetSize: true,\n polyfill: ResizeObserver\n })\n\n const [forceRefresh, setForceRefresh] = useState(false)\n useEffect(() => {\n setTimeout(() => {\n setForceRefresh(!forceRefresh)\n }, props.forceRefreshAfterMs)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useEffect(() => {\n let selectedRefIdx = props.options.findIndex(\n (option) => option.key === selectedOption\n )\n if (selectedRefIdx === -1) selectedRefIdx = 0\n\n const { clientWidth: width, offsetLeft: left } = optionRefs.current[\n selectedRefIdx\n ]?.current ?? { clientWidth: 0, offsetLeft: 0 }\n\n tabApi.start({\n to: { left: `${left}px`, width: `${width}px` }\n })\n }, [\n props.options,\n props.equalWidth,\n selectedOption,\n props.selected,\n tabApi,\n selected,\n optionRefs,\n bounds,\n forceRefresh\n ])\n\n return (\n <div\n className={cn(styles.tabs, props.className, {\n [styles.containerFullWidth]: !!props.fullWidth,\n [styles.isMobile]: props.isMobile,\n [styles.disabled]: props.disabled\n })}\n role='radiogroup'\n aria-label={props.label}\n aria-labelledby={props['aria-labelledby']}\n >\n <animated.div className={styles.tabBackground} style={tabProps} />\n {props.options.map((option, idx) => {\n const isOptionDisabled = props.disabled || option.disabled\n return (\n <Fragment key={option.key}>\n <label\n ref={\n option.key === selectedOption\n ? mergeRefs([optionRefs.current[idx], selectedRef])\n : optionRefs.current[idx]\n }\n className={cn(styles.tab, {\n [styles.tabFullWidth]: !!props.fullWidth,\n [styles.disabled]: !props.disabled && option.disabled,\n [styles.isMobile]: props.isMobile\n })}\n style={\n props.equalWidth && maxOptionWidth\n ? { width: `${maxOptionWidth}px` }\n : undefined\n }\n >\n {option.icon}\n <input\n type='radio'\n checked={option.key === selectedOption}\n onChange={() => {\n onSetSelected(option.key)\n }}\n disabled={isOptionDisabled}\n />\n <Text\n color={\n option.variant ?? (isOptionDisabled ? 'subdued' : 'default')\n }\n css={{\n cursor: isOptionDisabled ? 'auto' : 'pointer'\n }}\n >\n {option.text}\n </Text>\n </label>\n {idx !== props.options.length - 1 ? (\n <div\n className={cn(styles.separator, {\n [styles.invisible]:\n // Hide separator right of the selected option\n selectedOption === option.key ||\n // Hide separator right of the last option\n idx === props.options.length - 1 ||\n // Hide separator right of an option if the next one is selected\n selectedOption === props.options[idx + 1].key\n })}\n />\n ) : null}\n </Fragment>\n )\n })}\n </div>\n )\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"SegmentedControl.js","sources":["../../../src/components/segmented-control/SegmentedControl.tsx"],"sourcesContent":["import { createRef, Fragment, useState, useRef, useEffect } from 'react'\n\nimport { ResizeObserver } from '@juggle/resize-observer'\nimport { useSpring, animated } from '@react-spring/web'\nimport cn from 'classnames'\nimport { mergeRefs } from 'react-merge-refs'\nimport useMeasure from 'react-use-measure'\n\nimport { Text } from 'components/text'\n\nimport styles from './SegmentedControl.module.css'\nimport { SegmentedControlProps } from './types'\n\n/**\n * A hybrid somewhere between a button group, radio buttons, and tabs;\n * segmented controls are used to switch between different options or views.\n */\nexport const SegmentedControl = <T extends string>(\n props: SegmentedControlProps<T>\n) => {\n const optionRefs = useRef(\n props.options.map((_) => createRef<HTMLLabelElement>())\n )\n const [selected, setSelected] = useState(props.options[0].key)\n const [maxOptionWidth, setMaxOptionWidth] = useState(0)\n\n const selectedOption = props.selected || selected\n\n const onSetSelected = (option: T) => {\n // Call props function if controlled\n if (props.onSelectOption) props.onSelectOption(option)\n setSelected(option)\n }\n\n const [tabProps, tabApi] = useSpring(() => ({\n to: { left: '0px', width: '0px' }\n }))\n\n useEffect(() => {\n setMaxOptionWidth(\n optionRefs.current.reduce((currentMax, ref) => {\n const rect = ref.current?.getBoundingClientRect()\n return Math.max(rect?.width ?? 0, currentMax)\n }, 0)\n )\n }, [])\n\n // Watch for resizes and repositions so that we move and resize the slider appropriately\n const [selectedRef, bounds] = useMeasure({\n offsetSize: true,\n polyfill: ResizeObserver\n })\n\n const [forceRefresh, setForceRefresh] = useState(false)\n useEffect(() => {\n setTimeout(() => {\n setForceRefresh(!forceRefresh)\n }, props.forceRefreshAfterMs)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useEffect(() => {\n let selectedRefIdx = props.options.findIndex(\n (option) => option.key === selectedOption\n )\n if (selectedRefIdx === -1) selectedRefIdx = 0\n\n const { clientWidth: width, offsetLeft: left } = optionRefs.current[\n selectedRefIdx\n ]?.current ?? { clientWidth: 0, offsetLeft: 0 }\n\n tabApi.start({\n to: { left: `${left}px`, width: `${width}px` }\n })\n }, [\n props.options,\n props.equalWidth,\n selectedOption,\n props.selected,\n tabApi,\n selected,\n optionRefs,\n bounds,\n forceRefresh\n ])\n\n return (\n <div\n className={cn(styles.tabs, props.className, {\n [styles.containerFullWidth]: !!props.fullWidth,\n [styles.isMobile]: props.isMobile,\n [styles.disabled]: props.disabled\n })}\n role='radiogroup'\n aria-label={props.label}\n aria-labelledby={props['aria-labelledby']}\n >\n <animated.div className={styles.tabBackground} style={tabProps} />\n {props.options.map((option, idx) => {\n const isOptionDisabled = props.disabled || option.disabled\n return (\n <Fragment key={option.key}>\n <label\n ref={\n option.key === selectedOption\n ? mergeRefs([optionRefs.current[idx], selectedRef])\n : optionRefs.current[idx]\n }\n className={cn(styles.tab, {\n [styles.tabFullWidth]: !!props.fullWidth,\n [styles.disabled]: !props.disabled && option.disabled,\n [styles.isMobile]: props.isMobile\n })}\n style={\n props.equalWidth && maxOptionWidth\n ? { width: `${maxOptionWidth}px` }\n : undefined\n }\n >\n {option.icon}\n <input\n type='radio'\n checked={option.key === selectedOption}\n onChange={() => {\n onSetSelected(option.key)\n }}\n disabled={isOptionDisabled}\n />\n <Text\n color={\n option.variant ?? (isOptionDisabled ? 'subdued' : 'default')\n }\n css={{\n cursor: isOptionDisabled ? 'auto' : 'pointer'\n }}\n >\n {option.text}\n </Text>\n </label>\n {idx !== props.options.length - 1 ? (\n <div\n className={cn(styles.separator, {\n [styles.invisible]:\n // Hide separator right of the selected option\n selectedOption === option.key ||\n // Hide separator right of the last option\n idx === props.options.length - 1 ||\n // Hide separator right of an option if the next one is selected\n selectedOption === props.options[idx + 1].key\n })}\n />\n ) : null}\n </Fragment>\n )\n })}\n </div>\n )\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { BoxProps } from '../layout/Box';
2
+ type SkeletonProps = BoxProps;
3
+ export declare const Skeleton: (props: SkeletonProps) => import("@emotion/react/jsx-runtime").JSX.Element;
4
+ export {};
5
+ //# sourceMappingURL=Skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/Skeleton.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAO,QAAQ,EAAE,MAAM,eAAe,CAAA;AAW7C,KAAK,aAAa,GAAG,QAAQ,CAAA;AAE7B,eAAO,MAAM,QAAQ,UAAW,aAAa,qDAmB5C,CAAA"}
@@ -0,0 +1,27 @@
1
+ import { __assign } from '../../_virtual/_tslib.js';
2
+ import { jsx } from '@emotion/react/jsx-runtime';
3
+ import { keyframes, useTheme } from '@emotion/react';
4
+ import { Box } from '../layout/Box/Box.js';
5
+
6
+ var shimmer = keyframes({
7
+ from: {
8
+ backgroundPosition: 'right'
9
+ },
10
+ to: {
11
+ backgroundPosition: 'left'
12
+ }
13
+ });
14
+ var Skeleton = function (props) {
15
+ var color = useTheme().color;
16
+ var color1 = color.neutral.n50;
17
+ var color2 = color.neutral.n100;
18
+ var css = {
19
+ backgroundImage: "linear-gradient(\n 90deg,\n ".concat(color1, " 0%,\n ").concat(color1, " 32%,\n ").concat(color2, " 46%,\n ").concat(color2, " 54%,\n ").concat(color1, " 68%,\n ").concat(color2, " 100%\n )"),
20
+ animation: "".concat(shimmer, " 1.5s forwards infinite ease"),
21
+ backgroundSize: '400%'
22
+ };
23
+ return jsx(Box, __assign({ borderRadius: 's', css: css, "aria-busy": true }, props));
24
+ };
25
+
26
+ export { Skeleton };
27
+ //# sourceMappingURL=Skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.js","sources":["../../../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["import { keyframes, useTheme } from '@emotion/react'\n\nimport { Box, BoxProps } from '../layout/Box'\n\nconst shimmer = keyframes({\n from: {\n backgroundPosition: 'right'\n },\n to: {\n backgroundPosition: 'left'\n }\n})\n\ntype SkeletonProps = BoxProps\n\nexport const Skeleton = (props: SkeletonProps) => {\n const { color } = useTheme()\n const color1 = color.neutral.n50\n const color2 = color.neutral.n100\n const css = {\n backgroundImage: `linear-gradient(\n 90deg,\n ${color1} 0%,\n ${color1} 32%,\n ${color2} 46%,\n ${color2} 54%,\n ${color1} 68%,\n ${color2} 100%\n )`,\n animation: `${shimmer} 1.5s forwards infinite ease`,\n backgroundSize: '400%'\n }\n\n return <Box borderRadius='s' css={css} aria-busy {...props} />\n}\n"],"names":["_jsx"],"mappings":";;;;;AAIA,IAAM,OAAO,GAAG,SAAS,CAAC;AACxB,IAAA,IAAI,EAAE;AACJ,QAAA,kBAAkB,EAAE,OAAO;AAC5B,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,kBAAkB,EAAE,MAAM;AAC3B,KAAA;AACF,CAAA,CAAC,CAAA;AAIK,IAAM,QAAQ,GAAG,UAAC,KAAoB,EAAA;AACnC,IAAA,IAAA,KAAK,GAAK,QAAQ,EAAE,MAAf,CAAe;AAC5B,IAAA,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAA;AAChC,IAAA,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAA;AACjC,IAAA,IAAM,GAAG,GAAG;AACV,QAAA,eAAe,EAAE,wCAAA,CAAA,MAAA,CAEb,MAAM,EAAA,cAAA,CAAA,CAAA,MAAA,CACN,MAAM,EAAA,eAAA,CAAA,CAAA,MAAA,CACN,MAAM,EAAA,eAAA,CAAA,CAAA,MAAA,CACN,MAAM,EAAA,eAAA,CAAA,CAAA,MAAA,CACN,MAAM,EAAA,eAAA,CAAA,CAAA,MAAA,CACN,MAAM,EACR,cAAA,CAAA;QACF,SAAS,EAAE,EAAG,CAAA,MAAA,CAAA,OAAO,EAA8B,8BAAA,CAAA;AACnD,QAAA,cAAc,EAAE,MAAM;KACvB,CAAA;AAED,IAAA,OAAOA,GAAC,CAAA,GAAG,EAAC,QAAA,CAAA,EAAA,YAAY,EAAC,GAAG,EAAC,GAAG,EAAE,GAAG,EAAgB,WAAA,EAAA,IAAA,EAAA,EAAA,KAAK,EAAI,CAAA;AAChE;;;;"}
@@ -0,0 +1,7 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Skeleton } from './Skeleton';
3
+ declare const meta: Meta<typeof Skeleton>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Skeleton>;
6
+ export declare const Default: Story;
7
+ //# sourceMappingURL=Skeleton.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.stories.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/Skeleton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEtD,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,KAKrB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './Skeleton';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}