@audius/harmony 0.2.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_tslib.js +1 -11
- package/dist/_virtual/_tslib.js.map +1 -1
- package/dist/assets/icons/Album.svg.js +5 -4
- package/dist/assets/icons/Album.svg.js.map +1 -1
- package/dist/assets/icons/AllTime.svg.js +5 -4
- package/dist/assets/icons/AllTime.svg.js.map +1 -1
- package/dist/assets/icons/Appearance.svg.js +5 -4
- package/dist/assets/icons/Appearance.svg.js.map +1 -1
- package/dist/assets/icons/ArrowLeft.svg.js +5 -4
- package/dist/assets/icons/ArrowLeft.svg.js.map +1 -1
- package/dist/assets/icons/ArrowRight.svg.js +5 -4
- package/dist/assets/icons/ArrowRight.svg.js.map +1 -1
- package/dist/assets/icons/ArtistBadge.svg.js +5 -4
- package/dist/assets/icons/ArtistBadge.svg.js.map +1 -1
- package/dist/assets/icons/AudiusLogo.svg.js +5 -4
- package/dist/assets/icons/AudiusLogo.svg.js.map +1 -1
- package/dist/assets/icons/AudiusLogoColor.svg.js +4 -3
- package/dist/assets/icons/AudiusLogoColor.svg.js.map +1 -1
- package/dist/assets/icons/AudiusLogoHorizontal.svg.js +6 -15
- package/dist/assets/icons/AudiusLogoHorizontal.svg.js.map +1 -1
- package/dist/assets/icons/AudiusLogoHorizontalColor.svg.js +4 -3
- package/dist/assets/icons/AudiusLogoHorizontalColor.svg.js.map +1 -1
- package/dist/assets/icons/AudiusLogoVertical.svg.js +9 -8
- package/dist/assets/icons/AudiusLogoVertical.svg.js.map +1 -1
- package/dist/assets/icons/Blog.svg.js +5 -4
- package/dist/assets/icons/Blog.svg.js.map +1 -1
- package/dist/assets/icons/BoxHeart.svg.js +5 -4
- package/dist/assets/icons/BoxHeart.svg.js.map +1 -1
- package/dist/assets/icons/CalendarDay.svg.js +5 -4
- package/dist/assets/icons/CalendarDay.svg.js.map +1 -1
- package/dist/assets/icons/CalendarMonth.svg.js +5 -4
- package/dist/assets/icons/CalendarMonth.svg.js.map +1 -1
- package/dist/assets/icons/CalendarWeek.svg.js +5 -4
- package/dist/assets/icons/CalendarWeek.svg.js.map +1 -1
- package/dist/assets/icons/Camera.svg.js +5 -4
- package/dist/assets/icons/Camera.svg.js.map +1 -1
- package/dist/assets/icons/Campfire.svg.js +5 -4
- package/dist/assets/icons/Campfire.svg.js.map +1 -1
- package/dist/assets/icons/CaretDown.svg.js +5 -4
- package/dist/assets/icons/CaretDown.svg.js.map +1 -1
- package/dist/assets/icons/CaretLeft.svg.js +5 -4
- package/dist/assets/icons/CaretLeft.svg.js.map +1 -1
- package/dist/assets/icons/CaretRight.svg.js +5 -4
- package/dist/assets/icons/CaretRight.svg.js.map +1 -1
- package/dist/assets/icons/CaretUp.svg.js +5 -4
- package/dist/assets/icons/CaretUp.svg.js.map +1 -1
- package/dist/assets/icons/Cart.svg.js +5 -4
- package/dist/assets/icons/Cart.svg.js.map +1 -1
- package/dist/assets/icons/CastAirplay.svg.js +5 -4
- package/dist/assets/icons/CastAirplay.svg.js.map +1 -1
- package/dist/assets/icons/CastChromecast.svg.js +5 -4
- package/dist/assets/icons/CastChromecast.svg.js.map +1 -1
- package/dist/assets/icons/Check.svg.js +5 -4
- package/dist/assets/icons/Check.svg.js.map +1 -1
- package/dist/assets/icons/Close.svg.js +5 -4
- package/dist/assets/icons/Close.svg.js.map +1 -1
- package/dist/assets/icons/CloseAlt.svg.js +5 -4
- package/dist/assets/icons/CloseAlt.svg.js.map +1 -1
- package/dist/assets/icons/CloudDownload.svg.js +5 -4
- package/dist/assets/icons/CloudDownload.svg.js.map +1 -1
- package/dist/assets/icons/CloudDownloadError.svg.js +6 -5
- package/dist/assets/icons/CloudDownloadError.svg.js.map +1 -1
- package/dist/assets/icons/CloudDownloadInactive.svg.js +5 -4
- package/dist/assets/icons/CloudDownloadInactive.svg.js.map +1 -1
- package/dist/assets/icons/CloudDownloadPaused.svg.js +6 -5
- package/dist/assets/icons/CloudDownloadPaused.svg.js.map +1 -1
- package/dist/assets/icons/CloudDownloadQueued.svg.js +6 -5
- package/dist/assets/icons/CloudDownloadQueued.svg.js.map +1 -1
- package/dist/assets/icons/CloudUpload.svg.js +5 -4
- package/dist/assets/icons/CloudUpload.svg.js.map +1 -1
- package/dist/assets/icons/Coinbase.svg.js +5 -4
- package/dist/assets/icons/Coinbase.svg.js.map +1 -1
- package/dist/assets/icons/CoinbasePay.svg.js +5 -4
- package/dist/assets/icons/CoinbasePay.svg.js.map +1 -1
- package/dist/assets/icons/Collectible.svg.js +5 -4
- package/dist/assets/icons/Collectible.svg.js.map +1 -1
- package/dist/assets/icons/Compose.svg.js +5 -4
- package/dist/assets/icons/Compose.svg.js.map +1 -1
- package/dist/assets/icons/Copy.svg.js +5 -4
- package/dist/assets/icons/Copy.svg.js.map +1 -1
- package/dist/assets/icons/Cosign.svg.js +5 -4
- package/dist/assets/icons/Cosign.svg.js.map +1 -1
- package/dist/assets/icons/CreatePlaylist.svg.js +5 -4
- package/dist/assets/icons/CreatePlaylist.svg.js.map +1 -1
- package/dist/assets/icons/CreditCard.svg.js +5 -4
- package/dist/assets/icons/CreditCard.svg.js.map +1 -1
- package/dist/assets/icons/Crown.svg.js +5 -4
- package/dist/assets/icons/Crown.svg.js.map +1 -1
- package/dist/assets/icons/Dashboard.svg.js +5 -4
- package/dist/assets/icons/Dashboard.svg.js.map +1 -1
- package/dist/assets/icons/Desktop.svg.js +5 -4
- package/dist/assets/icons/Desktop.svg.js.map +1 -1
- package/dist/assets/icons/Discord.svg.js +5 -4
- package/dist/assets/icons/Discord.svg.js.map +1 -1
- package/dist/assets/icons/Donate.svg.js +5 -4
- package/dist/assets/icons/Donate.svg.js.map +1 -1
- package/dist/assets/icons/Drag.svg.js +5 -4
- package/dist/assets/icons/Drag.svg.js.map +1 -1
- package/dist/assets/icons/Earnings.svg.js +5 -4
- package/dist/assets/icons/Earnings.svg.js.map +1 -1
- package/dist/assets/icons/EmailAddress.svg.js +5 -4
- package/dist/assets/icons/EmailAddress.svg.js.map +1 -1
- package/dist/assets/icons/Embed.svg.js +5 -4
- package/dist/assets/icons/Embed.svg.js.map +1 -1
- package/dist/assets/icons/Error.svg.js +5 -4
- package/dist/assets/icons/Error.svg.js.map +1 -1
- package/dist/assets/icons/Explore.svg.js +5 -4
- package/dist/assets/icons/Explore.svg.js.map +1 -1
- package/dist/assets/icons/ExternalLink.svg.js +5 -4
- package/dist/assets/icons/ExternalLink.svg.js.map +1 -1
- package/dist/assets/icons/Facebook.svg.js +5 -4
- package/dist/assets/icons/Facebook.svg.js.map +1 -1
- package/dist/assets/icons/Feed.svg.js +5 -4
- package/dist/assets/icons/Feed.svg.js.map +1 -1
- package/dist/assets/icons/Filter.svg.js +5 -4
- package/dist/assets/icons/Filter.svg.js.map +1 -1
- package/dist/assets/icons/Folder.svg.js +5 -4
- package/dist/assets/icons/Folder.svg.js.map +1 -1
- package/dist/assets/icons/Foundation.svg.js +5 -4
- package/dist/assets/icons/Foundation.svg.js.map +1 -1
- package/dist/assets/icons/Gift.svg.js +5 -4
- package/dist/assets/icons/Gift.svg.js.map +1 -1
- package/dist/assets/icons/Headphones.svg.js +5 -4
- package/dist/assets/icons/Headphones.svg.js.map +1 -1
- package/dist/assets/icons/Heart.svg.js +5 -4
- package/dist/assets/icons/Heart.svg.js.map +1 -1
- package/dist/assets/icons/Image.svg.js +5 -4
- package/dist/assets/icons/Image.svg.js.map +1 -1
- package/dist/assets/icons/Indent.svg.js +5 -4
- package/dist/assets/icons/Indent.svg.js.map +1 -1
- package/dist/assets/icons/Info.svg.js +5 -4
- package/dist/assets/icons/Info.svg.js.map +1 -1
- package/dist/assets/icons/Instagram.svg.js +5 -4
- package/dist/assets/icons/Instagram.svg.js.map +1 -1
- package/dist/assets/icons/KebabHorizontal.svg.js +5 -4
- package/dist/assets/icons/KebabHorizontal.svg.js.map +1 -1
- package/dist/assets/icons/Key.svg.js +5 -4
- package/dist/assets/icons/Key.svg.js.map +1 -1
- package/dist/assets/icons/Library.svg.js +5 -4
- package/dist/assets/icons/Library.svg.js.map +1 -1
- package/dist/assets/icons/LifeRing.svg.js +5 -4
- package/dist/assets/icons/LifeRing.svg.js.map +1 -1
- package/dist/assets/icons/Link.svg.js +5 -4
- package/dist/assets/icons/Link.svg.js.map +1 -1
- package/dist/assets/icons/LinkByStripe.svg.js +7 -6
- package/dist/assets/icons/LinkByStripe.svg.js.map +1 -1
- package/dist/assets/icons/ListeningHistory.svg.js +5 -4
- package/dist/assets/icons/ListeningHistory.svg.js.map +1 -1
- package/dist/assets/icons/Listens.svg.js +5 -4
- package/dist/assets/icons/Listens.svg.js.map +1 -1
- package/dist/assets/icons/Lock.svg.js +5 -4
- package/dist/assets/icons/Lock.svg.js.map +1 -1
- package/dist/assets/icons/LockUnlocked.svg.js +5 -4
- package/dist/assets/icons/LockUnlocked.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircle.svg.js +5 -4
- package/dist/assets/icons/LogoCircle.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleCoinbase.svg.js +6 -5
- package/dist/assets/icons/LogoCircleCoinbase.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleETH.svg.js +10 -9
- package/dist/assets/icons/LogoCircleETH.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleSOL.svg.js +5 -4
- package/dist/assets/icons/LogoCircleSOL.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleSTR.svg.js +6 -5
- package/dist/assets/icons/LogoCircleSTR.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleUSD.svg.js +8 -7
- package/dist/assets/icons/LogoCircleUSD.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleUSDC.svg.js +5 -4
- package/dist/assets/icons/LogoCircleUSDC.svg.js.map +1 -1
- package/dist/assets/icons/LogoPhantom.svg.js +5 -4
- package/dist/assets/icons/LogoPhantom.svg.js.map +1 -1
- package/dist/assets/icons/LogoPhantomPlain.svg.js +5 -4
- package/dist/assets/icons/LogoPhantomPlain.svg.js.map +1 -1
- package/dist/assets/icons/LogoSolana.svg.js +5 -4
- package/dist/assets/icons/LogoSolana.svg.js.map +1 -1
- package/dist/assets/icons/Merch.svg.js +5 -4
- package/dist/assets/icons/Merch.svg.js.map +1 -1
- package/dist/assets/icons/Message.svg.js +5 -4
- package/dist/assets/icons/Message.svg.js.map +1 -1
- package/dist/assets/icons/MessageBlock.svg.js +5 -4
- package/dist/assets/icons/MessageBlock.svg.js.map +1 -1
- package/dist/assets/icons/MessageLocked.svg.js +6 -5
- package/dist/assets/icons/MessageLocked.svg.js.map +1 -1
- package/dist/assets/icons/MessageSlash.svg.js +76 -0
- package/dist/assets/icons/MessageSlash.svg.js.map +1 -0
- package/dist/assets/icons/MessageUnblock.svg.js +5 -4
- package/dist/assets/icons/MessageUnblock.svg.js.map +1 -1
- package/dist/assets/icons/Messages.svg.js +79 -0
- package/dist/assets/icons/Messages.svg.js.map +1 -0
- package/dist/assets/icons/Metamask.svg.js +16 -15
- package/dist/assets/icons/Metamask.svg.js.map +1 -1
- package/dist/assets/icons/Minus.svg.js +4 -3
- package/dist/assets/icons/Minus.svg.js.map +1 -1
- package/dist/assets/icons/MoneyBracket.svg.js +5 -4
- package/dist/assets/icons/MoneyBracket.svg.js.map +1 -1
- package/dist/assets/icons/Mood.svg.js +5 -4
- package/dist/assets/icons/Mood.svg.js.map +1 -1
- package/dist/assets/icons/MultiselectAdd.svg.js +6 -5
- package/dist/assets/icons/MultiselectAdd.svg.js.map +1 -1
- package/dist/assets/icons/MultiselectRemove.svg.js +6 -5
- package/dist/assets/icons/MultiselectRemove.svg.js.map +1 -1
- package/dist/assets/icons/NoWifi.svg.js +5 -4
- package/dist/assets/icons/NoWifi.svg.js.map +1 -1
- package/dist/assets/icons/Note.svg.js +5 -4
- package/dist/assets/icons/Note.svg.js.map +1 -1
- package/dist/assets/icons/NotificationOff.svg.js +5 -4
- package/dist/assets/icons/NotificationOff.svg.js.map +1 -1
- package/dist/assets/icons/NotificationOn.svg.js +5 -4
- package/dist/assets/icons/NotificationOn.svg.js.map +1 -1
- package/dist/assets/icons/PaperAirplane.svg.js +5 -4
- package/dist/assets/icons/PaperAirplane.svg.js.map +1 -1
- package/dist/assets/icons/Pause.svg.js +5 -4
- package/dist/assets/icons/Pause.svg.js.map +1 -1
- package/dist/assets/icons/Pencil.svg.js +5 -4
- package/dist/assets/icons/Pencil.svg.js.map +1 -1
- package/dist/assets/icons/Pin.svg.js +5 -4
- package/dist/assets/icons/Pin.svg.js.map +1 -1
- package/dist/assets/icons/Play.svg.js +5 -4
- package/dist/assets/icons/Play.svg.js.map +1 -1
- package/dist/assets/icons/PlaybackPause.svg.js +5 -4
- package/dist/assets/icons/PlaybackPause.svg.js.map +1 -1
- package/dist/assets/icons/PlaybackPlay.svg.js +5 -4
- package/dist/assets/icons/PlaybackPlay.svg.js.map +1 -1
- package/dist/assets/icons/Playlists.svg.js +5 -4
- package/dist/assets/icons/Playlists.svg.js.map +1 -1
- package/dist/assets/icons/Plus.svg.js +5 -4
- package/dist/assets/icons/Plus.svg.js.map +1 -1
- package/dist/assets/icons/PodcastBack.svg.js +5 -4
- package/dist/assets/icons/PodcastBack.svg.js.map +1 -1
- package/dist/assets/icons/PodcastForward.svg.js +5 -4
- package/dist/assets/icons/PodcastForward.svg.js.map +1 -1
- package/dist/assets/icons/QrCode.svg.js +5 -4
- package/dist/assets/icons/QrCode.svg.js.map +1 -1
- package/dist/assets/icons/QuestionCircle.svg.js +5 -4
- package/dist/assets/icons/QuestionCircle.svg.js.map +1 -1
- package/dist/assets/icons/Radar.svg.js +5 -4
- package/dist/assets/icons/Radar.svg.js.map +1 -1
- package/dist/assets/icons/Receive.svg.js +5 -4
- package/dist/assets/icons/Receive.svg.js.map +1 -1
- package/dist/assets/icons/RecoveryEmail.svg.js +7 -6
- package/dist/assets/icons/RecoveryEmail.svg.js.map +1 -1
- package/dist/assets/icons/Refresh.svg.js +5 -4
- package/dist/assets/icons/Refresh.svg.js.map +1 -1
- package/dist/assets/icons/Remix.svg.js +5 -4
- package/dist/assets/icons/Remix.svg.js.map +1 -1
- package/dist/assets/icons/Remove.svg.js +5 -4
- package/dist/assets/icons/Remove.svg.js.map +1 -1
- package/dist/assets/icons/RepeatOff.svg.js +5 -4
- package/dist/assets/icons/RepeatOff.svg.js.map +1 -1
- package/dist/assets/icons/Repost.svg.js +5 -4
- package/dist/assets/icons/Repost.svg.js.map +1 -1
- package/dist/assets/icons/Robot.svg.js +5 -4
- package/dist/assets/icons/Robot.svg.js.map +1 -1
- package/dist/assets/icons/Rocket.svg.js +5 -4
- package/dist/assets/icons/Rocket.svg.js.map +1 -1
- package/dist/assets/icons/Save.svg.js +5 -4
- package/dist/assets/icons/Save.svg.js.map +1 -1
- package/dist/assets/icons/Search.svg.js +7 -6
- package/dist/assets/icons/Search.svg.js.map +1 -1
- package/dist/assets/icons/Send.svg.js +5 -4
- package/dist/assets/icons/Send.svg.js.map +1 -1
- package/dist/assets/icons/Settings.svg.js +5 -4
- package/dist/assets/icons/Settings.svg.js.map +1 -1
- package/dist/assets/icons/Share.svg.js +5 -4
- package/dist/assets/icons/Share.svg.js.map +1 -1
- package/dist/assets/icons/ShieldCheck.svg.js +5 -4
- package/dist/assets/icons/ShieldCheck.svg.js.map +1 -1
- package/dist/assets/icons/ShieldUser.svg.js +7 -6
- package/dist/assets/icons/ShieldUser.svg.js.map +1 -1
- package/dist/assets/icons/Shuffle.svg.js +7 -6
- package/dist/assets/icons/Shuffle.svg.js.map +1 -1
- package/dist/assets/icons/SignOut.svg.js +5 -4
- package/dist/assets/icons/SignOut.svg.js.map +1 -1
- package/dist/assets/icons/SkipNext.svg.js +5 -4
- package/dist/assets/icons/SkipNext.svg.js.map +1 -1
- package/dist/assets/icons/SkipPrevious.svg.js +5 -4
- package/dist/assets/icons/SkipPrevious.svg.js.map +1 -1
- package/dist/assets/icons/Skull.svg.js +5 -4
- package/dist/assets/icons/Skull.svg.js.map +1 -1
- package/dist/assets/icons/SnapChat.svg.js +5 -4
- package/dist/assets/icons/SnapChat.svg.js.map +1 -1
- package/dist/assets/icons/Sort.svg.js +5 -4
- package/dist/assets/icons/Sort.svg.js.map +1 -1
- package/dist/assets/icons/SortDown.svg.js +5 -4
- package/dist/assets/icons/SortDown.svg.js.map +1 -1
- package/dist/assets/icons/SortUp.svg.js +5 -4
- package/dist/assets/icons/SortUp.svg.js.map +1 -1
- package/dist/assets/icons/Soundwave.svg.js +4 -3
- package/dist/assets/icons/Soundwave.svg.js.map +1 -1
- package/dist/assets/icons/Speaker.svg.js +5 -4
- package/dist/assets/icons/Speaker.svg.js.map +1 -1
- package/dist/assets/icons/SpecialAccess.svg.js +5 -4
- package/dist/assets/icons/SpecialAccess.svg.js.map +1 -1
- package/dist/assets/icons/Star.svg.js +5 -4
- package/dist/assets/icons/Star.svg.js.map +1 -1
- package/dist/assets/icons/Stars.svg.js +5 -4
- package/dist/assets/icons/Stars.svg.js.map +1 -1
- package/dist/assets/icons/Support.svg.js +5 -4
- package/dist/assets/icons/Support.svg.js.map +1 -1
- package/dist/assets/icons/Tastemaker.svg.js +5 -4
- package/dist/assets/icons/Tastemaker.svg.js.map +1 -1
- package/dist/assets/icons/Telegram.svg.js +5 -4
- package/dist/assets/icons/Telegram.svg.js.map +1 -1
- package/dist/assets/icons/ThumbsDown.svg.js +5 -4
- package/dist/assets/icons/ThumbsDown.svg.js.map +1 -1
- package/dist/assets/icons/ThumbsUp.svg.js +5 -4
- package/dist/assets/icons/ThumbsUp.svg.js.map +1 -1
- package/dist/assets/icons/TikTok.svg.js +5 -4
- package/dist/assets/icons/TikTok.svg.js.map +1 -1
- package/dist/assets/icons/Tipping.svg.js +6 -5
- package/dist/assets/icons/Tipping.svg.js.map +1 -1
- package/dist/assets/icons/TokenBronze.svg.js +7 -6
- package/dist/assets/icons/TokenBronze.svg.js.map +1 -1
- package/dist/assets/icons/TokenGold.svg.js +7 -6
- package/dist/assets/icons/TokenGold.svg.js.map +1 -1
- package/dist/assets/icons/TokenNoTier.svg.js +7 -6
- package/dist/assets/icons/TokenNoTier.svg.js.map +1 -1
- package/dist/assets/icons/TokenPlatinum.svg.js +7 -6
- package/dist/assets/icons/TokenPlatinum.svg.js.map +1 -1
- package/dist/assets/icons/TokenSilver.svg.js +7 -6
- package/dist/assets/icons/TokenSilver.svg.js.map +1 -1
- package/dist/assets/icons/TowerBroadcast.svg.js +5 -4
- package/dist/assets/icons/TowerBroadcast.svg.js.map +1 -1
- package/dist/assets/icons/Transaction.svg.js +5 -4
- package/dist/assets/icons/Transaction.svg.js.map +1 -1
- package/dist/assets/icons/Trash.svg.js +5 -4
- package/dist/assets/icons/Trash.svg.js.map +1 -1
- package/dist/assets/icons/Trending.svg.js +5 -4
- package/dist/assets/icons/Trending.svg.js.map +1 -1
- package/dist/assets/icons/TriangleExclamation.svg.js +5 -4
- package/dist/assets/icons/TriangleExclamation.svg.js.map +1 -1
- package/dist/assets/icons/Trophy.svg.js +5 -4
- package/dist/assets/icons/Trophy.svg.js.map +1 -1
- package/dist/assets/icons/Turntable.svg.js +5 -4
- package/dist/assets/icons/Turntable.svg.js.map +1 -1
- package/dist/assets/icons/Twitter.svg.js +5 -4
- package/dist/assets/icons/Twitter.svg.js.map +1 -1
- package/dist/assets/icons/User.svg.js +5 -4
- package/dist/assets/icons/User.svg.js.map +1 -1
- package/dist/assets/icons/UserArrowRotate.svg.js +7 -6
- package/dist/assets/icons/UserArrowRotate.svg.js.map +1 -1
- package/dist/assets/icons/UserFollow.svg.js +5 -4
- package/dist/assets/icons/UserFollow.svg.js.map +1 -1
- package/dist/assets/icons/UserFollowers.svg.js +6 -5
- package/dist/assets/icons/UserFollowers.svg.js.map +1 -1
- package/dist/assets/icons/UserFollowing.svg.js +5 -4
- package/dist/assets/icons/UserFollowing.svg.js.map +1 -1
- package/dist/assets/icons/UserGroup.svg.js +6 -5
- package/dist/assets/icons/UserGroup.svg.js.map +1 -1
- package/dist/assets/icons/UserList.svg.js +6 -5
- package/dist/assets/icons/UserList.svg.js.map +1 -1
- package/dist/assets/icons/UserUnfollow.svg.js +5 -4
- package/dist/assets/icons/UserUnfollow.svg.js.map +1 -1
- package/dist/assets/icons/ValidationCheck.svg.js +5 -4
- package/dist/assets/icons/ValidationCheck.svg.js.map +1 -1
- package/dist/assets/icons/ValidationX.svg.js +5 -4
- package/dist/assets/icons/ValidationX.svg.js.map +1 -1
- package/dist/assets/icons/Verified.svg.js +6 -5
- package/dist/assets/icons/Verified.svg.js.map +1 -1
- package/dist/assets/icons/VisibilityHidden.svg.js +6 -5
- package/dist/assets/icons/VisibilityHidden.svg.js.map +1 -1
- package/dist/assets/icons/VisibilityPublic.svg.js +6 -5
- package/dist/assets/icons/VisibilityPublic.svg.js.map +1 -1
- package/dist/assets/icons/VolumeLevel0.svg.js +5 -4
- package/dist/assets/icons/VolumeLevel0.svg.js.map +1 -1
- package/dist/assets/icons/VolumeLevel1.svg.js +5 -4
- package/dist/assets/icons/VolumeLevel1.svg.js.map +1 -1
- package/dist/assets/icons/VolumeLevel2.svg.js +5 -4
- package/dist/assets/icons/VolumeLevel2.svg.js.map +1 -1
- package/dist/assets/icons/VolumeLevel3.svg.js +5 -4
- package/dist/assets/icons/VolumeLevel3.svg.js.map +1 -1
- package/dist/assets/icons/Wallet.svg.js +5 -4
- package/dist/assets/icons/Wallet.svg.js.map +1 -1
- package/dist/assets/icons/Wand.svg.js +5 -4
- package/dist/assets/icons/Wand.svg.js.map +1 -1
- package/dist/assets/icons/Waveform.svg.js +5 -4
- package/dist/assets/icons/Waveform.svg.js.map +1 -1
- package/dist/assets/icons/Withdraw.svg.js +5 -4
- package/dist/assets/icons/Withdraw.svg.js.map +1 -1
- package/dist/assets/icons/ccBy.svg.js +5 -4
- package/dist/assets/icons/ccBy.svg.js.map +1 -1
- package/dist/assets/icons/ccCC.svg.js +5 -4
- package/dist/assets/icons/ccCC.svg.js.map +1 -1
- package/dist/assets/icons/ccNC-EU.svg.js +5 -4
- package/dist/assets/icons/ccNC-EU.svg.js.map +1 -1
- package/dist/assets/icons/ccNC-JP.svg.js +5 -4
- package/dist/assets/icons/ccNC-JP.svg.js.map +1 -1
- package/dist/assets/icons/ccNC.svg.js +5 -4
- package/dist/assets/icons/ccNC.svg.js.map +1 -1
- package/dist/assets/icons/ccND.svg.js +5 -4
- package/dist/assets/icons/ccND.svg.js.map +1 -1
- package/dist/assets/icons/ccPD.svg.js +5 -4
- package/dist/assets/icons/ccPD.svg.js.map +1 -1
- package/dist/assets/icons/ccRemix.svg.js +5 -4
- package/dist/assets/icons/ccRemix.svg.js.map +1 -1
- package/dist/assets/icons/ccSA.svg.js +5 -4
- package/dist/assets/icons/ccSA.svg.js.map +1 -1
- package/dist/assets/icons/ccSampling.svg.js +5 -4
- package/dist/assets/icons/ccSampling.svg.js.map +1 -1
- package/dist/assets/icons/ccSamplingPlus.svg.js +6 -5
- package/dist/assets/icons/ccSamplingPlus.svg.js.map +1 -1
- package/dist/assets/icons/ccShare.svg.js +5 -4
- package/dist/assets/icons/ccShare.svg.js.map +1 -1
- package/dist/assets/icons/ccZero.svg.js +6 -5
- package/dist/assets/icons/ccZero.svg.js.map +1 -1
- package/dist/assets/icons/file3GA.svg.js +8 -7
- package/dist/assets/icons/file3GA.svg.js.map +1 -1
- package/dist/assets/icons/file3GP.svg.js +8 -7
- package/dist/assets/icons/file3GP.svg.js.map +1 -1
- package/dist/assets/icons/fileAAC.svg.js +8 -7
- package/dist/assets/icons/fileAAC.svg.js.map +1 -1
- package/dist/assets/icons/fileAIF.svg.js +8 -7
- package/dist/assets/icons/fileAIF.svg.js.map +1 -1
- package/dist/assets/icons/fileAIFC.svg.js +8 -7
- package/dist/assets/icons/fileAIFC.svg.js.map +1 -1
- package/dist/assets/icons/fileAIFF.svg.js +8 -7
- package/dist/assets/icons/fileAIFF.svg.js.map +1 -1
- package/dist/assets/icons/fileAMR.svg.js +8 -7
- package/dist/assets/icons/fileAMR.svg.js.map +1 -1
- package/dist/assets/icons/fileAWB.svg.js +8 -7
- package/dist/assets/icons/fileAWB.svg.js.map +1 -1
- package/dist/assets/icons/fileFLAC.svg.js +8 -7
- package/dist/assets/icons/fileFLAC.svg.js.map +1 -1
- package/dist/assets/icons/fileM4A.svg.js +8 -7
- package/dist/assets/icons/fileM4A.svg.js.map +1 -1
- package/dist/assets/icons/fileM4B.svg.js +8 -7
- package/dist/assets/icons/fileM4B.svg.js.map +1 -1
- package/dist/assets/icons/fileM4P.svg.js +8 -7
- package/dist/assets/icons/fileM4P.svg.js.map +1 -1
- package/dist/assets/icons/fileM4R.svg.js +8 -7
- package/dist/assets/icons/fileM4R.svg.js.map +1 -1
- package/dist/assets/icons/fileM4V.svg.js +8 -7
- package/dist/assets/icons/fileM4V.svg.js.map +1 -1
- package/dist/assets/icons/fileMP2.svg.js +8 -7
- package/dist/assets/icons/fileMP2.svg.js.map +1 -1
- package/dist/assets/icons/fileMP3.svg.js +8 -7
- package/dist/assets/icons/fileMP3.svg.js.map +1 -1
- package/dist/assets/icons/fileMP4.svg.js +8 -7
- package/dist/assets/icons/fileMP4.svg.js.map +1 -1
- package/dist/assets/icons/fileMPGA.svg.js +8 -7
- package/dist/assets/icons/fileMPGA.svg.js.map +1 -1
- package/dist/assets/icons/fileOGA.svg.js +8 -7
- package/dist/assets/icons/fileOGA.svg.js.map +1 -1
- package/dist/assets/icons/fileOGG.svg.js +8 -7
- package/dist/assets/icons/fileOGG.svg.js.map +1 -1
- package/dist/assets/icons/fileOGM.svg.js +8 -7
- package/dist/assets/icons/fileOGM.svg.js.map +1 -1
- package/dist/assets/icons/fileOGV.svg.js +8 -7
- package/dist/assets/icons/fileOGV.svg.js.map +1 -1
- package/dist/assets/icons/fileOGX.svg.js +8 -7
- package/dist/assets/icons/fileOGX.svg.js.map +1 -1
- package/dist/assets/icons/fileOPUS.svg.js +8 -7
- package/dist/assets/icons/fileOPUS.svg.js.map +1 -1
- package/dist/assets/icons/fileSPX.svg.js +8 -7
- package/dist/assets/icons/fileSPX.svg.js.map +1 -1
- package/dist/assets/icons/fileTS.svg.js +8 -7
- package/dist/assets/icons/fileTS.svg.js.map +1 -1
- package/dist/assets/icons/fileTSA.svg.js +8 -7
- package/dist/assets/icons/fileTSA.svg.js.map +1 -1
- package/dist/assets/icons/fileTSV.svg.js +8 -7
- package/dist/assets/icons/fileTSV.svg.js.map +1 -1
- package/dist/assets/icons/fileUnknown.svg.js +10 -9
- package/dist/assets/icons/fileUnknown.svg.js.map +1 -1
- package/dist/assets/icons/fileWAV.svg.js +8 -7
- package/dist/assets/icons/fileWAV.svg.js.map +1 -1
- package/dist/assets/icons/fileWAVE.svg.js +8 -7
- package/dist/assets/icons/fileWAVE.svg.js.map +1 -1
- package/dist/assets/icons/fileWEBM.svg.js +8 -7
- package/dist/assets/icons/fileWEBM.svg.js.map +1 -1
- package/dist/assets/icons/fileXWMA.svg.js +8 -7
- package/dist/assets/icons/fileXWMA.svg.js.map +1 -1
- package/dist/components/artwork/Artwork.d.ts.map +1 -1
- package/dist/components/artwork/Artwork.js +10 -3
- package/dist/components/artwork/Artwork.js.map +1 -1
- package/dist/components/button/BaseButton/BaseButton.d.ts.map +1 -1
- package/dist/components/button/BaseButton/BaseButton.js +1 -1
- package/dist/components/button/BaseButton/BaseButton.js.map +1 -1
- package/dist/components/button/Button/Button.d.ts.map +1 -1
- package/dist/components/button/Button/Button.js +3 -2
- package/dist/components/button/Button/Button.js.map +1 -1
- package/dist/components/button/FilterButton/FilterButtonOptionsList.d.ts.map +1 -1
- package/dist/components/button/FilterButton/FilterButtonOptionsList.js +8 -5
- package/dist/components/button/FilterButton/FilterButtonOptionsList.js.map +1 -1
- package/dist/components/button/UnstyledButton.d.ts +1 -1
- package/dist/components/checkbox/Indeterminate.svg.js +4 -3
- package/dist/components/checkbox/Indeterminate.svg.js.map +1 -1
- package/dist/components/checkbox/Select.svg.js +5 -4
- package/dist/components/checkbox/Select.svg.js.map +1 -1
- package/dist/components/common/HiddenInput.d.ts +1 -1
- package/dist/components/icon-text/IconText.d.ts.map +1 -0
- package/dist/components/{comments/IconText → icon-text}/IconText.js +10 -9
- package/dist/components/icon-text/IconText.js.map +1 -0
- package/dist/components/icon-text/IconText.stories.d.ts.map +1 -0
- package/dist/components/icon-text/index.d.ts.map +1 -0
- package/dist/components/{comments/IconText → icon-text}/types.d.ts +2 -2
- package/dist/components/icon-text/types.d.ts.map +1 -0
- package/dist/components/index.d.ts +5 -6
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/internal/Menu.d.ts +1 -0
- package/dist/components/internal/Menu.d.ts.map +1 -1
- package/dist/components/internal/Menu.js +2 -2
- package/dist/components/internal/Menu.js.map +1 -1
- package/dist/components/internal/MenuItem.d.ts +6 -6
- package/dist/components/internal/MenuItem.d.ts.map +1 -1
- package/dist/components/internal/MenuItem.js +6 -5
- package/dist/components/internal/MenuItem.js.map +1 -1
- package/dist/components/internal/OptionKeyHandler.d.ts +1 -0
- package/dist/components/internal/OptionKeyHandler.d.ts.map +1 -1
- package/dist/components/internal/OptionKeyHandler.js +2 -2
- package/dist/components/internal/OptionKeyHandler.js.map +1 -1
- package/dist/components/layout/Box/Box.d.ts +1 -1
- package/dist/components/layout/Flex/Flex.d.ts +1 -1
- package/dist/components/scrubber/Scrubber.d.ts +1 -1
- package/dist/components/scrubber/Scrubber.d.ts.map +1 -1
- package/dist/components/scrubber/Scrubber.js +2 -2
- package/dist/components/scrubber/Scrubber.js.map +1 -1
- package/dist/components/scrubber/Slider.d.ts +1 -1
- package/dist/components/scrubber/Slider.d.ts.map +1 -1
- package/dist/components/scrubber/Slider.js +30 -39
- package/dist/components/scrubber/Slider.js.map +1 -1
- package/dist/components/scrubber/hooks.d.ts +6 -4
- package/dist/components/scrubber/hooks.d.ts.map +1 -1
- package/dist/components/scrubber/hooks.js +52 -54
- package/dist/components/scrubber/hooks.js.map +1 -1
- package/dist/components/scrubber/types.d.ts +8 -0
- package/dist/components/scrubber/types.d.ts.map +1 -1
- package/dist/components/scrubber/types.js.map +1 -1
- package/dist/components/send-icon/SendIcon.d.ts.map +1 -0
- package/dist/components/{comments/SendIcon → send-icon}/SendIcon.js +9 -9
- package/dist/components/send-icon/SendIcon.js.map +1 -0
- package/dist/components/send-icon/SendIcon.stories.d.ts.map +1 -0
- package/dist/components/send-icon/index.d.ts.map +1 -0
- package/dist/components/send-icon/types.d.ts.map +1 -0
- package/dist/components/text/Text.d.ts.map +1 -1
- package/dist/components/text/Text.js +11 -9
- package/dist/components/text/Text.js.map +1 -1
- package/dist/harmony.css +1 -1
- package/dist/icons/utilityIcons.d.ts +2 -0
- package/dist/icons/utilityIcons.d.ts.map +1 -1
- package/dist/icons/utilityIcons.js +5 -1
- package/dist/icons/utilityIcons.js.map +1 -1
- package/dist/index.js +6 -9
- package/dist/index.js.map +1 -1
- package/dist/storybook/components/Subtitle.d.ts +1 -1
- package/dist/utils/formatTrackTimestamp.d.ts.map +1 -1
- package/dist/utils/formatTrackTimestamp.js +3 -2
- package/dist/utils/formatTrackTimestamp.js.map +1 -1
- package/package.json +5 -5
- package/dist/components/comments/ArtistPick/ArtistPick.d.ts +0 -3
- package/dist/components/comments/ArtistPick/ArtistPick.d.ts.map +0 -1
- package/dist/components/comments/ArtistPick/ArtistPick.js +0 -20
- package/dist/components/comments/ArtistPick/ArtistPick.js.map +0 -1
- package/dist/components/comments/ArtistPick/ArtistPick.stories.d.ts +0 -7
- package/dist/components/comments/ArtistPick/ArtistPick.stories.d.ts.map +0 -1
- package/dist/components/comments/ArtistPick/index.d.ts +0 -3
- package/dist/components/comments/ArtistPick/index.d.ts.map +0 -1
- package/dist/components/comments/ArtistPick/types.d.ts +0 -5
- package/dist/components/comments/ArtistPick/types.d.ts.map +0 -1
- package/dist/components/comments/CommentText/CommentText.d.ts +0 -3
- package/dist/components/comments/CommentText/CommentText.d.ts.map +0 -1
- package/dist/components/comments/CommentText/CommentText.js +0 -36
- package/dist/components/comments/CommentText/CommentText.js.map +0 -1
- package/dist/components/comments/CommentText/CommentText.stories.d.ts +0 -10
- package/dist/components/comments/CommentText/CommentText.stories.d.ts.map +0 -1
- package/dist/components/comments/CommentText/index.d.ts +0 -3
- package/dist/components/comments/CommentText/index.d.ts.map +0 -1
- package/dist/components/comments/CommentText/types.d.ts +0 -5
- package/dist/components/comments/CommentText/types.d.ts.map +0 -1
- package/dist/components/comments/IconText/IconText.d.ts.map +0 -1
- package/dist/components/comments/IconText/IconText.js.map +0 -1
- package/dist/components/comments/IconText/IconText.stories.d.ts.map +0 -1
- package/dist/components/comments/IconText/index.d.ts.map +0 -1
- package/dist/components/comments/IconText/types.d.ts.map +0 -1
- package/dist/components/comments/Identifier/Identifier.d.ts +0 -3
- package/dist/components/comments/Identifier/Identifier.d.ts.map +0 -1
- package/dist/components/comments/Identifier/Identifier.js +0 -30
- package/dist/components/comments/Identifier/Identifier.js.map +0 -1
- package/dist/components/comments/Identifier/Identifier.stories.d.ts +0 -7
- package/dist/components/comments/Identifier/Identifier.stories.d.ts.map +0 -1
- package/dist/components/comments/Identifier/index.d.ts +0 -3
- package/dist/components/comments/Identifier/index.d.ts.map +0 -1
- package/dist/components/comments/Identifier/types.d.ts +0 -5
- package/dist/components/comments/Identifier/types.d.ts.map +0 -1
- package/dist/components/comments/SendIcon/SendIcon.d.ts.map +0 -1
- package/dist/components/comments/SendIcon/SendIcon.js.map +0 -1
- package/dist/components/comments/SendIcon/SendIcon.stories.d.ts.map +0 -1
- package/dist/components/comments/SendIcon/index.d.ts.map +0 -1
- package/dist/components/comments/SendIcon/types.d.ts.map +0 -1
- package/dist/components/comments/Timestamp/Timestamp.d.ts +0 -3
- package/dist/components/comments/Timestamp/Timestamp.d.ts.map +0 -1
- package/dist/components/comments/Timestamp/Timestamp.js +0 -13
- package/dist/components/comments/Timestamp/Timestamp.js.map +0 -1
- package/dist/components/comments/Timestamp/Timestamp.stories.d.ts +0 -7
- package/dist/components/comments/Timestamp/Timestamp.stories.d.ts.map +0 -1
- package/dist/components/comments/Timestamp/index.d.ts +0 -4
- package/dist/components/comments/Timestamp/index.d.ts.map +0 -1
- package/dist/components/comments/Timestamp/types.d.ts +0 -11
- package/dist/components/comments/Timestamp/types.d.ts.map +0 -1
- package/dist/components/comments/Timestamp/types.js +0 -10
- package/dist/components/comments/Timestamp/types.js.map +0 -1
- package/dist/components/comments/Timestamp/util.d.ts +0 -2
- package/dist/components/comments/Timestamp/util.d.ts.map +0 -1
- package/dist/components/comments/Timestamp/util.js +0 -26
- package/dist/components/comments/Timestamp/util.js.map +0 -1
- /package/dist/components/{comments/IconText → icon-text}/IconText.d.ts +0 -0
- /package/dist/components/{comments/IconText → icon-text}/IconText.stories.d.ts +0 -0
- /package/dist/components/{comments/IconText → icon-text}/index.d.ts +0 -0
- /package/dist/components/{comments/SendIcon → send-icon}/SendIcon.d.ts +0 -0
- /package/dist/components/{comments/SendIcon → send-icon}/SendIcon.stories.d.ts +0 -0
- /package/dist/components/{comments/SendIcon → send-icon}/index.d.ts +0 -0
- /package/dist/components/{comments/SendIcon → send-icon}/types.d.ts +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { __assign } from '../../_virtual/_tslib.js';
|
|
2
2
|
import { jsxs, jsx } from '@emotion/react/jsx-runtime';
|
|
3
|
-
import {
|
|
3
|
+
import { useRef, useCallback, useEffect } from 'react';
|
|
4
4
|
import cn from 'classnames';
|
|
5
5
|
import styles from './Slider.module.css.js';
|
|
6
|
-
import {
|
|
6
|
+
import { usePlaybackPositionTracking } from './hooks.js';
|
|
7
7
|
|
|
8
8
|
/** Gets the X-position of a div. */
|
|
9
9
|
var getXPosition = function (element) {
|
|
@@ -16,8 +16,7 @@ var getXPosition = function (element) {
|
|
|
16
16
|
*/
|
|
17
17
|
var Slider = function (_a) {
|
|
18
18
|
var _b;
|
|
19
|
-
var
|
|
20
|
-
var _d = useState(''), previousMediaKey = _d[0], setPreviousMediaKey = _d[1];
|
|
19
|
+
var isPlaying = _a.isPlaying, isMobile = _a.isMobile, isDisabled = _a.isDisabled, totalSeconds = _a.totalSeconds, elapsedSeconds = _a.elapsedSeconds, onScrub = _a.onScrub, onScrubRelease = _a.onScrubRelease, getAudioPosition = _a.getAudioPosition, getTotalTime = _a.getTotalTime, _c = _a.includeExpandedTargets, includeExpandedTargets = _c === void 0 ? true : _c, style = _a.style;
|
|
21
20
|
// Percentage of the complete scrubber being dragged to.
|
|
22
21
|
// e.g. 0.25 means the user has dragged the scrubber 1/4th of the way.
|
|
23
22
|
var dragPercent = useRef(0);
|
|
@@ -30,7 +29,7 @@ var Slider = function (_a) {
|
|
|
30
29
|
var railRef = useRef(null);
|
|
31
30
|
var trackRef = useRef(null);
|
|
32
31
|
var handleRef = useRef(null);
|
|
33
|
-
var
|
|
32
|
+
var _d = usePlaybackPositionTracking(trackRef, handleRef, getAudioPosition, getTotalTime), play = _d.play, pause = _d.pause, refreshPosition = _d.refreshPosition, setPositionOverrideEnabled = _d.setPositionOverrideEnabled, setPosition = _d.setPosition;
|
|
34
33
|
/**
|
|
35
34
|
* Sets the percentage across the scrubber for a given pageX position.
|
|
36
35
|
*/
|
|
@@ -62,13 +61,13 @@ var Slider = function (_a) {
|
|
|
62
61
|
e.preventDefault();
|
|
63
62
|
setDragPercentMouse(e);
|
|
64
63
|
if (dragPercent.current !== null) {
|
|
65
|
-
|
|
64
|
+
setPosition(dragPercent.current);
|
|
66
65
|
var seconds = dragPercent.current * totalSeconds;
|
|
67
66
|
if (onScrub) {
|
|
68
67
|
onScrub(seconds);
|
|
69
68
|
}
|
|
70
69
|
}
|
|
71
|
-
}, [dragPercent, setDragPercentMouse, totalSeconds,
|
|
70
|
+
}, [dragPercent, setDragPercentMouse, totalSeconds, onScrub, setPosition]);
|
|
72
71
|
/**
|
|
73
72
|
* Watches user touch movements while the scrubber handle is being dragged.
|
|
74
73
|
*/
|
|
@@ -77,13 +76,13 @@ var Slider = function (_a) {
|
|
|
77
76
|
e.preventDefault();
|
|
78
77
|
setDragPercentTouch(e);
|
|
79
78
|
if (dragPercent.current !== null) {
|
|
80
|
-
|
|
79
|
+
setPosition(dragPercent.current);
|
|
81
80
|
var seconds = dragPercent.current * totalSeconds;
|
|
82
81
|
if (onScrub) {
|
|
83
82
|
onScrub(seconds);
|
|
84
83
|
}
|
|
85
84
|
}
|
|
86
|
-
}, [dragPercent, setDragPercentTouch, totalSeconds,
|
|
85
|
+
}, [dragPercent, setDragPercentTouch, totalSeconds, onScrub, setPosition]);
|
|
87
86
|
/**
|
|
88
87
|
* Watches for a mouse-up action (which may not occur on the scrubber itself),
|
|
89
88
|
* calls the release callback, and resets dragging state.
|
|
@@ -95,6 +94,7 @@ var Slider = function (_a) {
|
|
|
95
94
|
if (mouseUpRef.current) {
|
|
96
95
|
document.removeEventListener('mouseup', mouseUpRef.current);
|
|
97
96
|
}
|
|
97
|
+
setPositionOverrideEnabled(false);
|
|
98
98
|
if (dragPercent.current !== null) {
|
|
99
99
|
var seconds = dragPercent.current * totalSeconds;
|
|
100
100
|
if (onScrubRelease) {
|
|
@@ -102,7 +102,14 @@ var Slider = function (_a) {
|
|
|
102
102
|
}
|
|
103
103
|
dragPercent.current = null;
|
|
104
104
|
}
|
|
105
|
-
}, [
|
|
105
|
+
}, [
|
|
106
|
+
mouseMoveRef,
|
|
107
|
+
mouseUpRef,
|
|
108
|
+
dragPercent,
|
|
109
|
+
totalSeconds,
|
|
110
|
+
onScrubRelease,
|
|
111
|
+
setPositionOverrideEnabled
|
|
112
|
+
]);
|
|
106
113
|
/**
|
|
107
114
|
* Watches for a touch-end action (which may not occur on the scrubber itself),
|
|
108
115
|
* calls the release callback, and resets dragging state.
|
|
@@ -114,6 +121,7 @@ var Slider = function (_a) {
|
|
|
114
121
|
if (touchEndRef.current) {
|
|
115
122
|
document.removeEventListener('touchend', touchEndRef.current);
|
|
116
123
|
}
|
|
124
|
+
setPositionOverrideEnabled(false);
|
|
117
125
|
if (dragPercent.current !== null) {
|
|
118
126
|
var seconds = dragPercent.current * totalSeconds;
|
|
119
127
|
if (onScrubRelease) {
|
|
@@ -121,7 +129,14 @@ var Slider = function (_a) {
|
|
|
121
129
|
}
|
|
122
130
|
dragPercent.current = null;
|
|
123
131
|
}
|
|
124
|
-
}, [
|
|
132
|
+
}, [
|
|
133
|
+
touchMoveRef,
|
|
134
|
+
touchEndRef,
|
|
135
|
+
dragPercent,
|
|
136
|
+
totalSeconds,
|
|
137
|
+
onScrubRelease,
|
|
138
|
+
setPositionOverrideEnabled
|
|
139
|
+
]);
|
|
125
140
|
/**
|
|
126
141
|
* Attaches mouse-move and mouse-up event listeners and sets dragging state.
|
|
127
142
|
*/
|
|
@@ -133,10 +148,8 @@ var Slider = function (_a) {
|
|
|
133
148
|
mouseUpRef.current = onMouseUp;
|
|
134
149
|
document.addEventListener('mousemove', mouseMoveRef.current);
|
|
135
150
|
document.addEventListener('mouseup', mouseUpRef.current);
|
|
151
|
+
setPositionOverrideEnabled(true);
|
|
136
152
|
setDragPercentMouse(e);
|
|
137
|
-
if (dragPercent.current !== null) {
|
|
138
|
-
setPercent(dragPercent.current);
|
|
139
|
-
}
|
|
140
153
|
};
|
|
141
154
|
/**
|
|
142
155
|
* Attaches touch-move and touch-end event listeners and sets dragging state.
|
|
@@ -146,10 +159,8 @@ var Slider = function (_a) {
|
|
|
146
159
|
touchEndRef.current = onTouchEnd;
|
|
147
160
|
document.addEventListener('touchmove', touchMoveRef.current);
|
|
148
161
|
document.addEventListener('touchend', touchEndRef.current);
|
|
162
|
+
setPositionOverrideEnabled(true);
|
|
149
163
|
setDragPercentTouch(e);
|
|
150
|
-
if (dragPercent.current !== null) {
|
|
151
|
-
setPercent(dragPercent.current);
|
|
152
|
-
}
|
|
153
164
|
};
|
|
154
165
|
// Watch interactions to the scrubber and call to animate
|
|
155
166
|
useEffect(function () {
|
|
@@ -161,28 +172,8 @@ var Slider = function (_a) {
|
|
|
161
172
|
}
|
|
162
173
|
}, [isPlaying, dragPercent, play, pause]);
|
|
163
174
|
useEffect(function () {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}, [playbackRate, elapsedSeconds, totalSeconds]);
|
|
167
|
-
// When the key changes, reset the animation
|
|
168
|
-
useEffect(function () {
|
|
169
|
-
if (mediaKey !== previousMediaKey) {
|
|
170
|
-
if (!totalSeconds) {
|
|
171
|
-
setPercent(0);
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
setPercent(elapsedSeconds / totalSeconds);
|
|
175
|
-
}
|
|
176
|
-
setPreviousMediaKey(mediaKey);
|
|
177
|
-
}
|
|
178
|
-
}, [
|
|
179
|
-
mediaKey,
|
|
180
|
-
previousMediaKey,
|
|
181
|
-
setPreviousMediaKey,
|
|
182
|
-
setPercent,
|
|
183
|
-
elapsedSeconds,
|
|
184
|
-
totalSeconds
|
|
185
|
-
]);
|
|
175
|
+
refreshPosition();
|
|
176
|
+
}, [elapsedSeconds, totalSeconds, refreshPosition]);
|
|
186
177
|
var getShowHandle = function () {
|
|
187
178
|
return !style || style.showHandle === undefined ? true : style.showHandle;
|
|
188
179
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.js","sources":["../../../src/components/scrubber/Slider.tsx"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, CSSProperties } from 'react'\nimport * as React from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Slider.module.css'\nimport { useAnimations } from './hooks'\nimport { ScrubberProps } from './types'\n\n/** Gets the X-position of a div. */\nconst getXPosition = (element: HTMLDivElement) => {\n const coords = element.getBoundingClientRect()\n return window.pageXOffset + coords.left\n}\n\n/**\n * A smooth scrubbable slider that relies on CSS animations rather\n * than progress ticks to achieve fluidity.\n */\nexport const Slider = ({\n mediaKey,\n isPlaying,\n isMobile,\n isDisabled,\n elapsedSeconds,\n totalSeconds,\n playbackRate,\n onScrub,\n onScrubRelease,\n includeExpandedTargets = true,\n style\n}: ScrubberProps) => {\n const [previousMediaKey, setPreviousMediaKey] = useState('')\n\n // Percentage of the complete scrubber being dragged to.\n // e.g. 0.25 means the user has dragged the scrubber 1/4th of the way.\n const dragPercent = useRef<number | null>(0)\n\n // Refs to handle event listeners\n const mouseMoveRef = useRef<((this: Document, ev: MouseEvent) => any) | null>(\n null\n )\n const mouseUpRef = useRef<((this: Document, ev: MouseEvent) => any) | null>(\n null\n )\n const touchMoveRef = useRef<((e: TouchEvent) => any) | null>(null)\n const touchEndRef = useRef<((e: TouchEvent) => any) | null>(null)\n\n // Div refs\n const railRef = useRef<HTMLDivElement>(null)\n const trackRef = useRef<HTMLDivElement>(null)\n const handleRef = useRef<HTMLDivElement>(null)\n\n const { play, pause, setPercent } = useAnimations(\n trackRef,\n handleRef,\n elapsedSeconds,\n totalSeconds,\n playbackRate\n )\n\n /**\n * Sets the percentage across the scrubber for a given pageX position.\n */\n const setDragPercent = useCallback(\n (pageX: number) => {\n if (railRef.current) {\n const clickPosition = pageX - getXPosition(railRef.current)\n const railWidth = railRef.current.offsetWidth\n const percent =\n Math.min(Math.max(0, clickPosition), railWidth) / railWidth\n dragPercent.current = percent\n }\n },\n [dragPercent]\n )\n\n /**\n * Sets the percentage across the scrubber for a given mouse event.\n */\n const setDragPercentMouse = useCallback(\n (e: React.MouseEvent | MouseEvent) => {\n setDragPercent(e.pageX)\n },\n [setDragPercent]\n )\n\n /**\n * Sets the percentage across the scurbber for a given touch event.\n */\n const setDragPercentTouch = useCallback(\n (e: React.TouchEvent | TouchEvent) => {\n setDragPercent(e.touches[0].pageX)\n },\n [setDragPercent]\n )\n\n /**\n * Watches user mouse movements while the scrubber handle is being dragged.\n */\n const onMouseMove = useCallback(\n (e: MouseEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n setDragPercentMouse(e)\n if (dragPercent.current !== null) {\n setPercent(dragPercent.current)\n const seconds = dragPercent.current * totalSeconds\n if (onScrub) {\n onScrub(seconds)\n }\n }\n },\n [dragPercent, setDragPercentMouse, totalSeconds, setPercent, onScrub]\n )\n\n /**\n * Watches user touch movements while the scrubber handle is being dragged.\n */\n const onTouchMove = useCallback(\n (e: TouchEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n setDragPercentTouch(e)\n if (dragPercent.current !== null) {\n setPercent(dragPercent.current)\n\n const seconds = dragPercent.current * totalSeconds\n if (onScrub) {\n onScrub(seconds)\n }\n }\n },\n [dragPercent, setDragPercentTouch, totalSeconds, setPercent, onScrub]\n )\n\n /**\n * Watches for a mouse-up action (which may not occur on the scrubber itself),\n * calls the release callback, and resets dragging state.\n */\n const onMouseUp = useCallback(() => {\n if (mouseMoveRef.current) {\n document.removeEventListener('mousemove', mouseMoveRef.current)\n }\n if (mouseUpRef.current) {\n document.removeEventListener('mouseup', mouseUpRef.current)\n }\n\n if (dragPercent.current !== null) {\n const seconds = dragPercent.current * totalSeconds\n if (onScrubRelease) {\n onScrubRelease(seconds)\n }\n\n dragPercent.current = null\n }\n }, [mouseMoveRef, mouseUpRef, dragPercent, totalSeconds, onScrubRelease])\n\n /**\n * Watches for a touch-end action (which may not occur on the scrubber itself),\n * calls the release callback, and resets dragging state.\n */\n const onTouchEnd = useCallback(() => {\n if (touchMoveRef.current) {\n document.removeEventListener('touchmove', touchMoveRef.current)\n }\n if (touchEndRef.current) {\n document.removeEventListener('touchend', touchEndRef.current)\n }\n\n if (dragPercent.current !== null) {\n const seconds = dragPercent.current * totalSeconds\n if (onScrubRelease) {\n onScrubRelease(seconds)\n }\n\n dragPercent.current = null\n }\n }, [touchMoveRef, touchEndRef, dragPercent, totalSeconds, onScrubRelease])\n\n /**\n * Attaches mouse-move and mouse-up event listeners and sets dragging state.\n */\n const onMouseDown = (e: React.MouseEvent) => {\n // Cancel mouse down if touch was fired.\n if (e.button !== 0 || touchMoveRef.current) return\n\n mouseMoveRef.current = onMouseMove\n mouseUpRef.current = onMouseUp\n document.addEventListener('mousemove', mouseMoveRef.current)\n document.addEventListener('mouseup', mouseUpRef.current)\n\n setDragPercentMouse(e)\n if (dragPercent.current !== null) {\n setPercent(dragPercent.current)\n }\n }\n\n /**\n * Attaches touch-move and touch-end event listeners and sets dragging state.\n */\n const onTouchStart = (e: React.TouchEvent) => {\n touchMoveRef.current = onTouchMove\n touchEndRef.current = onTouchEnd\n document.addEventListener('touchmove', touchMoveRef.current)\n document.addEventListener('touchend', touchEndRef.current)\n\n setDragPercentTouch(e)\n if (dragPercent.current !== null) {\n setPercent(dragPercent.current)\n }\n }\n\n // Watch interactions to the scrubber and call to animate\n useEffect(() => {\n if (!dragPercent.current) {\n if (isPlaying) play()\n else pause()\n }\n }, [isPlaying, dragPercent, play, pause])\n\n useEffect(() => {\n setPercent(elapsedSeconds / totalSeconds)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [playbackRate, elapsedSeconds, totalSeconds])\n\n // When the key changes, reset the animation\n useEffect(() => {\n if (mediaKey !== previousMediaKey) {\n if (!totalSeconds) {\n setPercent(0)\n } else {\n setPercent(elapsedSeconds / totalSeconds)\n }\n setPreviousMediaKey(mediaKey)\n }\n }, [\n mediaKey,\n previousMediaKey,\n setPreviousMediaKey,\n setPercent,\n elapsedSeconds,\n totalSeconds\n ])\n\n const getShowHandle = () =>\n !style || style.showHandle === undefined ? true : style.showHandle\n\n const getRailStyle = () => {\n const s: CSSProperties = {}\n if (style && style.railUnlistenedColor) {\n s.background = style.railUnlistenedColor\n }\n return s\n }\n\n const getTrackStyle = () => {\n const s: CSSProperties = {}\n if (style && style.railListenedColor) {\n s.background = style.railListenedColor\n }\n\n if (style && style.railListenedColor) {\n s.borderRadius = 'var(--unit-half)'\n }\n return s\n }\n\n const getSliderStyle = () => {\n if (style && style.sliderMargin) return { margin: style.sliderMargin }\n return {}\n }\n\n const getHandleStyle = () => {\n const s: CSSProperties = {}\n if (style) {\n if (style.handleColor) s.background = style.handleColor\n if (style.handleShadow) s.boxShadow = style.handleShadow\n }\n return s\n }\n\n return (\n <div\n className={cn(styles.slider, {\n [styles.isMobile]: isMobile,\n [styles.isDisabled]: isDisabled,\n [styles.showHandle]: getShowHandle(),\n [styles.expandedTargets]: includeExpandedTargets\n })}\n onMouseDown={isDisabled ? () => {} : onMouseDown}\n onTouchStart={isDisabled ? () => {} : onTouchStart}\n style={getSliderStyle()}\n >\n <div ref={railRef} className={styles.rail} style={getRailStyle()}>\n <div ref={trackRef} className={styles.trackWrapper}>\n <div\n ref={trackRef}\n className={styles.track}\n style={getTrackStyle()}\n />\n </div>\n </div>\n <div ref={handleRef} className={styles.handleWrapper}>\n <div\n ref={handleRef}\n className={styles.handle}\n style={getHandleStyle()}\n />\n </div>\n </div>\n )\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;AASA;AACA,IAAM,YAAY,GAAG,UAAC,OAAuB,EAAA;AAC3C,IAAA,IAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAA;AAC9C,IAAA,OAAO,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAA;AACzC,CAAC,CAAA;AAED;;;AAGG;AACI,IAAM,MAAM,GAAG,UAAC,EAYP,EAAA;;AAXd,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,SAAS,GAAA,EAAA,CAAA,SAAA,EACT,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,UAAU,gBAAA,EACV,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,YAAY,GAAA,EAAA,CAAA,YAAA,EACZ,OAAO,GAAA,EAAA,CAAA,OAAA,EACP,cAAc,GAAA,EAAA,CAAA,cAAA,EACd,EAA6B,GAAA,EAAA,CAAA,sBAAA,EAA7B,sBAAsB,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,IAAI,GAAA,EAAA,EAC7B,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;IAEC,IAAA,EAAA,GAA0C,QAAQ,CAAC,EAAE,CAAC,EAArD,gBAAgB,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,mBAAmB,GAAA,EAAA,CAAA,CAAA,CAAgB,CAAA;;;AAI5D,IAAA,IAAM,WAAW,GAAG,MAAM,CAAgB,CAAC,CAAC,CAAA;;AAG5C,IAAA,IAAM,YAAY,GAAG,MAAM,CACzB,IAAI,CACL,CAAA;AACD,IAAA,IAAM,UAAU,GAAG,MAAM,CACvB,IAAI,CACL,CAAA;AACD,IAAA,IAAM,YAAY,GAAG,MAAM,CAAkC,IAAI,CAAC,CAAA;AAClE,IAAA,IAAM,WAAW,GAAG,MAAM,CAAkC,IAAI,CAAC,CAAA;;AAGjE,IAAA,IAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;AAC5C,IAAA,IAAM,QAAQ,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;AAC7C,IAAA,IAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAExC,IAAA,EAAA,GAA8B,aAAa,CAC/C,QAAQ,EACR,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAY,CACb,EANO,IAAI,GAAA,EAAA,CAAA,IAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,UAAU,GAAA,EAAA,CAAA,UAM9B,CAAA;AAED;;AAEG;AACH,IAAA,IAAM,cAAc,GAAG,WAAW,CAChC,UAAC,KAAa,EAAA;QACZ,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,IAAM,aAAa,GAAG,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAC3D,YAAA,IAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAA;AAC7C,YAAA,IAAM,OAAO,GACX,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,GAAG,SAAS,CAAA;AAC7D,YAAA,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;AAC9B,SAAA;AACH,KAAC,EACD,CAAC,WAAW,CAAC,CACd,CAAA;AAED;;AAEG;AACH,IAAA,IAAM,mBAAmB,GAAG,WAAW,CACrC,UAAC,CAAgC,EAAA;AAC/B,QAAA,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACzB,KAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAA;AAED;;AAEG;AACH,IAAA,IAAM,mBAAmB,GAAG,WAAW,CACrC,UAAC,CAAgC,EAAA;QAC/B,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;AACpC,KAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAA;AAED;;AAEG;AACH,IAAA,IAAM,WAAW,GAAG,WAAW,CAC7B,UAAC,CAAa,EAAA;QACZ,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,CAAC,CAAC,cAAc,EAAE,CAAA;QAElB,mBAAmB,CAAC,CAAC,CAAC,CAAA;AACtB,QAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;AAChC,YAAA,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAC/B,YAAA,IAAM,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,YAAY,CAAA;AAClD,YAAA,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,OAAO,CAAC,CAAA;AACjB,aAAA;AACF,SAAA;AACH,KAAC,EACD,CAAC,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CACtE,CAAA;AAED;;AAEG;AACH,IAAA,IAAM,WAAW,GAAG,WAAW,CAC7B,UAAC,CAAa,EAAA;QACZ,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,CAAC,CAAC,cAAc,EAAE,CAAA;QAElB,mBAAmB,CAAC,CAAC,CAAC,CAAA;AACtB,QAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;AAChC,YAAA,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAE/B,YAAA,IAAM,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,YAAY,CAAA;AAClD,YAAA,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,OAAO,CAAC,CAAA;AACjB,aAAA;AACF,SAAA;AACH,KAAC,EACD,CAAC,WAAW,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,CAAC,CACtE,CAAA;AAED;;;AAGG;IACH,IAAM,SAAS,GAAG,WAAW,CAAC,YAAA;QAC5B,IAAI,YAAY,CAAC,OAAO,EAAE;YACxB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;AAChE,SAAA;QACD,IAAI,UAAU,CAAC,OAAO,EAAE;YACtB,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;AAC5D,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;AAChC,YAAA,IAAM,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,YAAY,CAAA;AAClD,YAAA,IAAI,cAAc,EAAE;gBAClB,cAAc,CAAC,OAAO,CAAC,CAAA;AACxB,aAAA;AAED,YAAA,WAAW,CAAC,OAAO,GAAG,IAAI,CAAA;AAC3B,SAAA;AACH,KAAC,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAA;AAEzE;;;AAGG;IACH,IAAM,UAAU,GAAG,WAAW,CAAC,YAAA;QAC7B,IAAI,YAAY,CAAC,OAAO,EAAE;YACxB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;AAChE,SAAA;QACD,IAAI,WAAW,CAAC,OAAO,EAAE;YACvB,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;AAC9D,SAAA;AAED,QAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;AAChC,YAAA,IAAM,OAAO,GAAG,WAAW,CAAC,OAAO,GAAG,YAAY,CAAA;AAClD,YAAA,IAAI,cAAc,EAAE;gBAClB,cAAc,CAAC,OAAO,CAAC,CAAA;AACxB,aAAA;AAED,YAAA,WAAW,CAAC,OAAO,GAAG,IAAI,CAAA;AAC3B,SAAA;AACH,KAAC,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAA;AAE1E;;AAEG;IACH,IAAM,WAAW,GAAG,UAAC,CAAmB,EAAA;;QAEtC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO;YAAE,OAAM;AAElD,QAAA,YAAY,CAAC,OAAO,GAAG,WAAW,CAAA;AAClC,QAAA,UAAU,CAAC,OAAO,GAAG,SAAS,CAAA;QAC9B,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;QAC5D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,CAAA;QAExD,mBAAmB,CAAC,CAAC,CAAC,CAAA;AACtB,QAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;AAChC,YAAA,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAChC,SAAA;AACH,KAAC,CAAA;AAED;;AAEG;IACH,IAAM,YAAY,GAAG,UAAC,CAAmB,EAAA;AACvC,QAAA,YAAY,CAAC,OAAO,GAAG,WAAW,CAAA;AAClC,QAAA,WAAW,CAAC,OAAO,GAAG,UAAU,CAAA;QAChC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;QAC5D,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;QAE1D,mBAAmB,CAAC,CAAC,CAAC,CAAA;AACtB,QAAA,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE;AAChC,YAAA,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;AAChC,SAAA;AACH,KAAC,CAAA;;AAGD,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,SAAS;AAAE,gBAAA,IAAI,EAAE,CAAA;;AAChB,gBAAA,KAAK,EAAE,CAAA;AACb,SAAA;KACF,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AAEzC,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,UAAU,CAAC,cAAc,GAAG,YAAY,CAAC,CAAA;;KAE1C,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAA;;AAGhD,IAAA,SAAS,CAAC,YAAA;QACR,IAAI,QAAQ,KAAK,gBAAgB,EAAE;YACjC,IAAI,CAAC,YAAY,EAAE;gBACjB,UAAU,CAAC,CAAC,CAAC,CAAA;AACd,aAAA;AAAM,iBAAA;AACL,gBAAA,UAAU,CAAC,cAAc,GAAG,YAAY,CAAC,CAAA;AAC1C,aAAA;YACD,mBAAmB,CAAC,QAAQ,CAAC,CAAA;AAC9B,SAAA;AACH,KAAC,EAAE;QACD,QAAQ;QACR,gBAAgB;QAChB,mBAAmB;QACnB,UAAU;QACV,cAAc;QACd,YAAY;AACb,KAAA,CAAC,CAAA;AAEF,IAAA,IAAM,aAAa,GAAG,YAAA;AACpB,QAAA,OAAA,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,UAAU,CAAA;AAAlE,KAAkE,CAAA;AAEpE,IAAA,IAAM,YAAY,GAAG,YAAA;QACnB,IAAM,CAAC,GAAkB,EAAE,CAAA;AAC3B,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,mBAAmB,EAAE;AACtC,YAAA,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,mBAAmB,CAAA;AACzC,SAAA;AACD,QAAA,OAAO,CAAC,CAAA;AACV,KAAC,CAAA;AAED,IAAA,IAAM,aAAa,GAAG,YAAA;QACpB,IAAM,CAAC,GAAkB,EAAE,CAAA;AAC3B,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,iBAAiB,EAAE;AACpC,YAAA,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAA;AACvC,SAAA;AAED,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,iBAAiB,EAAE;AACpC,YAAA,CAAC,CAAC,YAAY,GAAG,kBAAkB,CAAA;AACpC,SAAA;AACD,QAAA,OAAO,CAAC,CAAA;AACV,KAAC,CAAA;AAED,IAAA,IAAM,cAAc,GAAG,YAAA;AACrB,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY;AAAE,YAAA,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,CAAA;AACtE,QAAA,OAAO,EAAE,CAAA;AACX,KAAC,CAAA;AAED,IAAA,IAAM,cAAc,GAAG,YAAA;QACrB,IAAM,CAAC,GAAkB,EAAE,CAAA;AAC3B,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,KAAK,CAAC,WAAW;AAAE,gBAAA,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAA;YACvD,IAAI,KAAK,CAAC,YAAY;AAAE,gBAAA,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAA;AACzD,SAAA;AACD,QAAA,OAAO,CAAC,CAAA;AACV,KAAC,CAAA;IAED,QACEA,uBACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAA,EAAA,GAAA,EAAA;AACzB,YAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAA,GAAG,QAAQ;AAC3B,YAAA,EAAA,CAAC,MAAM,CAAC,UAAU,CAAA,GAAG,UAAU;AAC/B,YAAA,EAAA,CAAC,MAAM,CAAC,UAAU,CAAA,GAAG,aAAa,EAAE;AACpC,YAAA,EAAA,CAAC,MAAM,CAAC,eAAe,CAAA,GAAG,sBAAsB;gBAChD,EACF,WAAW,EAAE,UAAU,GAAG,YAAA,GAAQ,GAAG,WAAW,EAChD,YAAY,EAAE,UAAU,GAAG,YAAO,GAAC,GAAG,YAAY,EAClD,KAAK,EAAE,cAAc,EAAE,EAEvB,EAAA,EAAA,QAAA,EAAA,CAAAC,GAAA,CAAA,KAAA,EAAA,QAAA,CAAA,EAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,gBAC9DA,GAAK,CAAA,KAAA,EAAA,QAAA,CAAA,EAAA,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,EAAA,EAAA,EAAA,QAAA,EAChDA,GACE,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,MAAM,CAAC,KAAK,EACvB,KAAK,EAAE,aAAa,EAAE,EAAA,CACtB,IACE,EACF,CAAA,CAAA,EACNA,GAAK,CAAA,KAAA,EAAA,QAAA,CAAA,EAAA,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,aAAa,EAAA,EAAA,EAAA,QAAA,EAClDA,aACE,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,MAAM,CAAC,MAAM,EACxB,KAAK,EAAE,cAAc,EAAE,EACvB,CAAA,EAAA,CAAA,CACE,CACF,EAAA,CAAA,CAAA,EACP;AACH;;;;"}
|
|
1
|
+
{"version":3,"file":"Slider.js","sources":["../../../src/components/scrubber/Slider.tsx"],"sourcesContent":["import { useEffect, useCallback, useRef, CSSProperties } from 'react'\nimport * as React from 'react'\n\nimport cn from 'classnames'\n\nimport styles from './Slider.module.css'\nimport { usePlaybackPositionTracking } from './hooks'\nimport { ScrubberProps } from './types'\n\n/** Gets the X-position of a div. */\nconst getXPosition = (element: HTMLDivElement) => {\n const coords = element.getBoundingClientRect()\n return window.pageXOffset + coords.left\n}\n\n/**\n * A smooth scrubbable slider that relies on CSS animations rather\n * than progress ticks to achieve fluidity.\n */\nexport const Slider = ({\n isPlaying,\n isMobile,\n isDisabled,\n totalSeconds,\n elapsedSeconds,\n onScrub,\n onScrubRelease,\n getAudioPosition,\n getTotalTime,\n includeExpandedTargets = true,\n style\n}: ScrubberProps) => {\n // Percentage of the complete scrubber being dragged to.\n // e.g. 0.25 means the user has dragged the scrubber 1/4th of the way.\n const dragPercent = useRef<number | null>(0)\n\n // Refs to handle event listeners\n const mouseMoveRef = useRef<((this: Document, ev: MouseEvent) => any) | null>(\n null\n )\n const mouseUpRef = useRef<((this: Document, ev: MouseEvent) => any) | null>(\n null\n )\n const touchMoveRef = useRef<((e: TouchEvent) => any) | null>(null)\n const touchEndRef = useRef<((e: TouchEvent) => any) | null>(null)\n\n // Div refs\n const railRef = useRef<HTMLDivElement>(null)\n const trackRef = useRef<HTMLDivElement>(null)\n const handleRef = useRef<HTMLDivElement>(null)\n\n const {\n play,\n pause,\n refreshPosition,\n setPositionOverrideEnabled,\n setPosition\n } = usePlaybackPositionTracking(\n trackRef,\n handleRef,\n getAudioPosition,\n getTotalTime\n )\n\n /**\n * Sets the percentage across the scrubber for a given pageX position.\n */\n const setDragPercent = useCallback(\n (pageX: number) => {\n if (railRef.current) {\n const clickPosition = pageX - getXPosition(railRef.current)\n const railWidth = railRef.current.offsetWidth\n const percent =\n Math.min(Math.max(0, clickPosition), railWidth) / railWidth\n dragPercent.current = percent\n }\n },\n [dragPercent]\n )\n\n /**\n * Sets the percentage across the scrubber for a given mouse event.\n */\n const setDragPercentMouse = useCallback(\n (e: React.MouseEvent | MouseEvent) => {\n setDragPercent(e.pageX)\n },\n [setDragPercent]\n )\n\n /**\n * Sets the percentage across the scurbber for a given touch event.\n */\n const setDragPercentTouch = useCallback(\n (e: React.TouchEvent | TouchEvent) => {\n setDragPercent(e.touches[0].pageX)\n },\n [setDragPercent]\n )\n\n /**\n * Watches user mouse movements while the scrubber handle is being dragged.\n */\n const onMouseMove = useCallback(\n (e: MouseEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n setDragPercentMouse(e)\n if (dragPercent.current !== null) {\n setPosition(dragPercent.current)\n const seconds = dragPercent.current * totalSeconds\n if (onScrub) {\n onScrub(seconds)\n }\n }\n },\n [dragPercent, setDragPercentMouse, totalSeconds, onScrub, setPosition]\n )\n\n /**\n * Watches user touch movements while the scrubber handle is being dragged.\n */\n const onTouchMove = useCallback(\n (e: TouchEvent) => {\n e.stopPropagation()\n e.preventDefault()\n\n setDragPercentTouch(e)\n if (dragPercent.current !== null) {\n setPosition(dragPercent.current)\n\n const seconds = dragPercent.current * totalSeconds\n if (onScrub) {\n onScrub(seconds)\n }\n }\n },\n [dragPercent, setDragPercentTouch, totalSeconds, onScrub, setPosition]\n )\n\n /**\n * Watches for a mouse-up action (which may not occur on the scrubber itself),\n * calls the release callback, and resets dragging state.\n */\n const onMouseUp = useCallback(() => {\n if (mouseMoveRef.current) {\n document.removeEventListener('mousemove', mouseMoveRef.current)\n }\n if (mouseUpRef.current) {\n document.removeEventListener('mouseup', mouseUpRef.current)\n }\n setPositionOverrideEnabled(false)\n\n if (dragPercent.current !== null) {\n const seconds = dragPercent.current * totalSeconds\n if (onScrubRelease) {\n onScrubRelease(seconds)\n }\n\n dragPercent.current = null\n }\n }, [\n mouseMoveRef,\n mouseUpRef,\n dragPercent,\n totalSeconds,\n onScrubRelease,\n setPositionOverrideEnabled\n ])\n\n /**\n * Watches for a touch-end action (which may not occur on the scrubber itself),\n * calls the release callback, and resets dragging state.\n */\n const onTouchEnd = useCallback(() => {\n if (touchMoveRef.current) {\n document.removeEventListener('touchmove', touchMoveRef.current)\n }\n if (touchEndRef.current) {\n document.removeEventListener('touchend', touchEndRef.current)\n }\n setPositionOverrideEnabled(false)\n\n if (dragPercent.current !== null) {\n const seconds = dragPercent.current * totalSeconds\n if (onScrubRelease) {\n onScrubRelease(seconds)\n }\n\n dragPercent.current = null\n }\n }, [\n touchMoveRef,\n touchEndRef,\n dragPercent,\n totalSeconds,\n onScrubRelease,\n setPositionOverrideEnabled\n ])\n\n /**\n * Attaches mouse-move and mouse-up event listeners and sets dragging state.\n */\n const onMouseDown = (e: React.MouseEvent) => {\n // Cancel mouse down if touch was fired.\n if (e.button !== 0 || touchMoveRef.current) return\n\n mouseMoveRef.current = onMouseMove\n mouseUpRef.current = onMouseUp\n document.addEventListener('mousemove', mouseMoveRef.current)\n document.addEventListener('mouseup', mouseUpRef.current)\n setPositionOverrideEnabled(true)\n\n setDragPercentMouse(e)\n }\n\n /**\n * Attaches touch-move and touch-end event listeners and sets dragging state.\n */\n const onTouchStart = (e: React.TouchEvent) => {\n touchMoveRef.current = onTouchMove\n touchEndRef.current = onTouchEnd\n document.addEventListener('touchmove', touchMoveRef.current)\n document.addEventListener('touchend', touchEndRef.current)\n setPositionOverrideEnabled(true)\n\n setDragPercentTouch(e)\n }\n\n // Watch interactions to the scrubber and call to animate\n useEffect(() => {\n if (!dragPercent.current) {\n if (isPlaying) play()\n else pause()\n }\n }, [isPlaying, dragPercent, play, pause])\n\n useEffect(() => {\n refreshPosition()\n }, [elapsedSeconds, totalSeconds, refreshPosition])\n\n const getShowHandle = () =>\n !style || style.showHandle === undefined ? true : style.showHandle\n\n const getRailStyle = () => {\n const s: CSSProperties = {}\n if (style && style.railUnlistenedColor) {\n s.background = style.railUnlistenedColor\n }\n return s\n }\n\n const getTrackStyle = () => {\n const s: CSSProperties = {}\n if (style && style.railListenedColor) {\n s.background = style.railListenedColor\n }\n\n if (style && style.railListenedColor) {\n s.borderRadius = 'var(--unit-half)'\n }\n return s\n }\n\n const getSliderStyle = () => {\n if (style && style.sliderMargin) return { margin: style.sliderMargin }\n return {}\n }\n\n const getHandleStyle = () => {\n const s: CSSProperties = {}\n if (style) {\n if (style.handleColor) s.background = style.handleColor\n if (style.handleShadow) s.boxShadow = style.handleShadow\n }\n return s\n }\n\n return (\n <div\n className={cn(styles.slider, {\n [styles.isMobile]: isMobile,\n [styles.isDisabled]: isDisabled,\n [styles.showHandle]: getShowHandle(),\n [styles.expandedTargets]: includeExpandedTargets\n })}\n onMouseDown={isDisabled ? () => {} : onMouseDown}\n onTouchStart={isDisabled ? () => {} : onTouchStart}\n style={getSliderStyle()}\n >\n <div ref={railRef} className={styles.rail} style={getRailStyle()}>\n <div ref={trackRef} className={styles.trackWrapper}>\n <div\n ref={trackRef}\n className={styles.track}\n style={getTrackStyle()}\n />\n </div>\n </div>\n <div ref={handleRef} className={styles.handleWrapper}>\n <div\n ref={handleRef}\n className={styles.handle}\n style={getHandleStyle()}\n />\n </div>\n </div>\n )\n}\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
/**
|
|
3
|
-
* Hook for initializing
|
|
4
|
-
*
|
|
3
|
+
* Hook for initializing playback update mechanism. Uses rAF to sync element
|
|
4
|
+
* positions to the current playback position.
|
|
5
5
|
*/
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const usePlaybackPositionTracking: (trackRef: React.MutableRefObject<HTMLDivElement | null>, handleRef: React.MutableRefObject<HTMLDivElement | null>, getAudioPosition: () => number, getTotalTime: () => number) => {
|
|
7
7
|
play: () => void;
|
|
8
8
|
pause: () => void;
|
|
9
|
-
|
|
9
|
+
refreshPosition: () => void;
|
|
10
|
+
setPositionOverrideEnabled: (enabled: boolean) => void;
|
|
11
|
+
setPosition: (position?: number) => void;
|
|
10
12
|
};
|
|
11
13
|
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/scrubber/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../../src/components/scrubber/hooks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B;;;GAGG;AACH,eAAO,MAAM,2BAA2B,aAC5B,MAAM,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,aAC5C,MAAM,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,oBACtC,MAAM,MAAM,gBAChB,MAAM,MAAM;;;;0CAmD+B,OAAO;;CAWjE,CAAA"}
|
|
@@ -1,63 +1,61 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useRef, useCallback } from 'react';
|
|
2
2
|
|
|
3
|
-
/** Sets animation properties on the handle and track. */
|
|
4
|
-
var animate = function (trackRef, handleRef, transition, transform) {
|
|
5
|
-
if (handleRef.current && trackRef.current) {
|
|
6
|
-
handleRef.current.style.transition = transition;
|
|
7
|
-
handleRef.current.style.transform = transform;
|
|
8
|
-
trackRef.current.style.transition = transition;
|
|
9
|
-
trackRef.current.style.transform = transform;
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
3
|
/**
|
|
13
|
-
* Hook for initializing
|
|
14
|
-
*
|
|
4
|
+
* Hook for initializing playback update mechanism. Uses rAF to sync element
|
|
5
|
+
* positions to the current playback position.
|
|
15
6
|
*/
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
var usePlaybackPositionTracking = function (trackRef, handleRef, getAudioPosition, getTotalTime) {
|
|
8
|
+
var isPlayingRef = useRef(false);
|
|
9
|
+
var getAudioPositionRef = useRef(getAudioPosition);
|
|
10
|
+
var overridePositionRef = useRef(0);
|
|
11
|
+
var overridePositionEnabledRef = useRef(false);
|
|
12
|
+
var getTotalTimeRef = useRef(getTotalTime);
|
|
13
|
+
var updatePositionRef = useRef(function () {
|
|
14
|
+
if (trackRef.current && handleRef.current) {
|
|
15
|
+
var audioPosition = getAudioPositionRef.current();
|
|
16
|
+
var totalTime = getTotalTimeRef.current();
|
|
17
|
+
var percentComplete = overridePositionEnabledRef.current
|
|
18
|
+
? overridePositionRef.current
|
|
19
|
+
: audioPosition / totalTime;
|
|
20
|
+
var translation = "translate(".concat(percentComplete * 100, "%)");
|
|
21
|
+
handleRef.current.style.transform = translation;
|
|
22
|
+
trackRef.current.style.transform = translation;
|
|
23
|
+
}
|
|
24
|
+
if (isPlayingRef.current) {
|
|
25
|
+
window.requestAnimationFrame(updatePositionRef.current);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
/** Starts a rAF loop to grab the current player position and update continuously */
|
|
19
29
|
var play = useCallback(function () {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}, [
|
|
23
|
-
/**
|
|
24
|
-
* Pauses the animation at the current position.
|
|
25
|
-
* NOTE: We derive the current position from the actual animation position
|
|
26
|
-
* rather than the remaining time so that pausing the scrubber does not
|
|
27
|
-
* cause jumping if elapsed seconds doesn't precisely reflect the animation.
|
|
28
|
-
*/
|
|
30
|
+
isPlayingRef.current = true;
|
|
31
|
+
window.requestAnimationFrame(updatePositionRef.current);
|
|
32
|
+
}, [updatePositionRef, isPlayingRef]);
|
|
29
33
|
var pause = useCallback(function () {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
var percentComplete = trackPosition / trackWidth;
|
|
37
|
-
animate(trackRef, handleRef, 'none', "translate(".concat(percentComplete * 100, "%)"));
|
|
34
|
+
isPlayingRef.current = false;
|
|
35
|
+
}, [isPlayingRef]);
|
|
36
|
+
var refreshPosition = useCallback(function () {
|
|
37
|
+
// Allow queueing a refresh of position if the animation isn't running
|
|
38
|
+
if (!isPlayingRef.current) {
|
|
39
|
+
window.requestAnimationFrame(updatePositionRef.current);
|
|
38
40
|
}
|
|
39
|
-
}, [
|
|
40
|
-
/**
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
window.addEventListener('focus', onWindowFocus);
|
|
57
|
-
return function () { return window.removeEventListener('focus', onWindowFocus); };
|
|
58
|
-
}, [timeData, setPercent]);
|
|
59
|
-
return { play: play, pause: pause, setPercent: setPercent };
|
|
41
|
+
}, [updatePositionRef, isPlayingRef]);
|
|
42
|
+
/** Allows temporary override for things like scrubbing */
|
|
43
|
+
var setPosition = useCallback(function (position) {
|
|
44
|
+
if (position === void 0) { position = 0; }
|
|
45
|
+
overridePositionRef.current = position;
|
|
46
|
+
refreshPosition();
|
|
47
|
+
}, [overridePositionRef, refreshPosition]);
|
|
48
|
+
var setPositionOverrideEnabled = useCallback(function (enabled) {
|
|
49
|
+
overridePositionEnabledRef.current = enabled;
|
|
50
|
+
}, []);
|
|
51
|
+
return {
|
|
52
|
+
play: play,
|
|
53
|
+
pause: pause,
|
|
54
|
+
refreshPosition: refreshPosition,
|
|
55
|
+
setPositionOverrideEnabled: setPositionOverrideEnabled,
|
|
56
|
+
setPosition: setPosition
|
|
57
|
+
};
|
|
60
58
|
};
|
|
61
59
|
|
|
62
|
-
export {
|
|
60
|
+
export { usePlaybackPositionTracking };
|
|
63
61
|
//# sourceMappingURL=hooks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../src/components/scrubber/hooks.ts"],"sourcesContent":["import { useRef, useCallback
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../src/components/scrubber/hooks.ts"],"sourcesContent":["import { useRef, useCallback } from 'react'\nimport * as React from 'react'\n\n/**\n * Hook for initializing playback update mechanism. Uses rAF to sync element\n * positions to the current playback position.\n */\nexport const usePlaybackPositionTracking = (\n trackRef: React.MutableRefObject<HTMLDivElement | null>,\n handleRef: React.MutableRefObject<HTMLDivElement | null>,\n getAudioPosition: () => number,\n getTotalTime: () => number\n) => {\n const isPlayingRef = useRef(false)\n const getAudioPositionRef = useRef(getAudioPosition)\n const overridePositionRef = useRef(0)\n const overridePositionEnabledRef = useRef(false)\n const getTotalTimeRef = useRef(getTotalTime)\n\n const updatePositionRef = useRef(() => {\n if (trackRef.current && handleRef.current) {\n const audioPosition = getAudioPositionRef.current()\n const totalTime = getTotalTimeRef.current()\n const percentComplete = overridePositionEnabledRef.current\n ? overridePositionRef.current\n : audioPosition / totalTime\n const translation = `translate(${percentComplete * 100}%)`\n handleRef.current.style.transform = translation\n trackRef.current.style.transform = translation\n }\n\n if (isPlayingRef.current) {\n window.requestAnimationFrame(updatePositionRef.current)\n }\n })\n\n /** Starts a rAF loop to grab the current player position and update continuously */\n const play = useCallback(() => {\n isPlayingRef.current = true\n window.requestAnimationFrame(updatePositionRef.current)\n }, [updatePositionRef, isPlayingRef])\n\n const pause = useCallback(() => {\n isPlayingRef.current = false\n }, [isPlayingRef])\n\n const refreshPosition = useCallback(() => {\n // Allow queueing a refresh of position if the animation isn't running\n if (!isPlayingRef.current) {\n window.requestAnimationFrame(updatePositionRef.current)\n }\n }, [updatePositionRef, isPlayingRef])\n\n /** Allows temporary override for things like scrubbing */\n const setPosition = useCallback(\n (position = 0) => {\n overridePositionRef.current = position\n refreshPosition()\n },\n [overridePositionRef, refreshPosition]\n )\n\n const setPositionOverrideEnabled = useCallback((enabled: boolean) => {\n overridePositionEnabledRef.current = enabled\n }, [])\n\n return {\n play,\n pause,\n refreshPosition,\n setPositionOverrideEnabled,\n setPosition\n }\n}\n"],"names":[],"mappings":";;AAGA;;;AAGG;AACU,IAAA,2BAA2B,GAAG,UACzC,QAAuD,EACvD,SAAwD,EACxD,gBAA8B,EAC9B,YAA0B,EAAA;AAE1B,IAAA,IAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAClC,IAAA,IAAM,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA;AACpD,IAAA,IAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AACrC,IAAA,IAAM,0BAA0B,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAChD,IAAA,IAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;IAE5C,IAAM,iBAAiB,GAAG,MAAM,CAAC,YAAA;AAC/B,QAAA,IAAI,QAAQ,CAAC,OAAO,IAAI,SAAS,CAAC,OAAO,EAAE;AACzC,YAAA,IAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,CAAA;AACnD,YAAA,IAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE,CAAA;AAC3C,YAAA,IAAM,eAAe,GAAG,0BAA0B,CAAC,OAAO;kBACtD,mBAAmB,CAAC,OAAO;AAC7B,kBAAE,aAAa,GAAG,SAAS,CAAA;AAC7B,YAAA,IAAM,WAAW,GAAG,YAAA,CAAA,MAAA,CAAa,eAAe,GAAG,GAAG,OAAI,CAAA;YAC1D,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAA;YAC/C,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAA;AAC/C,SAAA;QAED,IAAI,YAAY,CAAC,OAAO,EAAE;AACxB,YAAA,MAAM,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACxD,SAAA;AACH,KAAC,CAAC,CAAA;;IAGF,IAAM,IAAI,GAAG,WAAW,CAAC,YAAA;AACvB,QAAA,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;AAC3B,QAAA,MAAM,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACzD,KAAC,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAA;IAErC,IAAM,KAAK,GAAG,WAAW,CAAC,YAAA;AACxB,QAAA,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;AAC9B,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,IAAM,eAAe,GAAG,WAAW,CAAC,YAAA;;AAElC,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACzB,YAAA,MAAM,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;AACxD,SAAA;AACH,KAAC,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAA;;AAGrC,IAAA,IAAM,WAAW,GAAG,WAAW,CAC7B,UAAC,QAAY,EAAA;AAAZ,QAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAY,GAAA,CAAA,CAAA,EAAA;AACX,QAAA,mBAAmB,CAAC,OAAO,GAAG,QAAQ,CAAA;AACtC,QAAA,eAAe,EAAE,CAAA;AACnB,KAAC,EACD,CAAC,mBAAmB,EAAE,eAAe,CAAC,CACvC,CAAA;AAED,IAAA,IAAM,0BAA0B,GAAG,WAAW,CAAC,UAAC,OAAgB,EAAA;AAC9D,QAAA,0BAA0B,CAAC,OAAO,GAAG,OAAO,CAAA;KAC7C,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;AACL,QAAA,IAAI,EAAA,IAAA;AACJ,QAAA,KAAK,EAAA,KAAA;AACL,QAAA,eAAe,EAAA,eAAA;AACf,QAAA,0BAA0B,EAAA,0BAAA;AAC1B,QAAA,WAAW,EAAA,WAAA;KACZ,CAAA;AACH;;;;"}
|
|
@@ -46,6 +46,14 @@ export type ScrubberProps = {
|
|
|
46
46
|
* Fired effectively on "mouse up" when the user is done scrubbing.
|
|
47
47
|
*/
|
|
48
48
|
onScrubRelease?: (seconds: number) => void;
|
|
49
|
+
/** Callback to fetch the current playback position in seconds. Typically wired
|
|
50
|
+
* up to the audio player's `getPosition` method.
|
|
51
|
+
*/
|
|
52
|
+
getAudioPosition: () => number;
|
|
53
|
+
/** Callback to get the duration of the current media. Typically wired up to the
|
|
54
|
+
* audio player's `getDuration` method.
|
|
55
|
+
*/
|
|
56
|
+
getTotalTime: () => number;
|
|
49
57
|
/**
|
|
50
58
|
* Individually exposed styling options.
|
|
51
59
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/scrubber/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1C;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IAED;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;;;CAOhC,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/scrubber/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAA;IAEhB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAA;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAE3B;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAA;IAEtB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAEnC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAE1C;;OAEG;IACH,gBAAgB,EAAE,MAAM,MAAM,CAAA;IAE9B;;OAEG;IACH,YAAY,EAAE,MAAM,MAAM,CAAA;IAE1B;;OAEG;IACH,KAAK,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,MAAM,CAAA;QAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;QAC5B,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IAED;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAEhC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;;;CAOhC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../src/components/scrubber/types.ts"],"sourcesContent":["export type ScrubberProps = {\n /**\n * A unique identifier for the media being scrubbed.\n * Usually a \"track id\" suffices here. This property\n * is similar to a `key` in React and is used to\n * reset the scrubber animation for a new media item.\n */\n mediaKey: string\n\n /**\n * Whether or not the media being scrubbed is playing (or paused).\n */\n isPlaying: boolean\n\n /**\n * Whether or not the scrubber should be disabled. For example,\n * this is useful when no content is playing.\n */\n isDisabled?: boolean\n\n /**\n * Whether or not to display a mobile-friendly variant.\n */\n isMobile?: boolean\n\n /**\n * Whether or not timestamps are shown on the sides of the scrubber.\n */\n includeTimestamps?: boolean\n\n /**\n * The current progress of the media being scrubbed.\n * The scrubber reacts to changes in the elapsed seconds\n * to re-calibrate. This value should be updated relatively frequently\n * (0.1s < x < 1s).\n */\n elapsedSeconds: number\n\n /**\n * Total duration of the media being scrubbed.\n */\n totalSeconds: number\n\n /**\n * The speed that the media is being played at\n */\n playbackRate: number\n\n /**\n * Fired incrementally as the user drags the scrubber.\n */\n onScrub?: (seconds: number) => void\n\n /**\n * Fired effectively on \"mouse up\" when the user is done scrubbing.\n */\n onScrubRelease?: (seconds: number) => void\n\n /**\n * Individually exposed styling options.\n */\n style?: {\n railListenedColor?: string\n railUnlistenedColor?: string\n showHandle?: boolean\n handleColor?: string\n handleShadow?: string\n sliderMargin?: string\n }\n\n /**\n * Include larger click targets to that it's hard to misclick\n * Defaults to true\n */\n includeExpandedTargets?: boolean\n\n /**\n * Escape hatch for styles.\n */\n className?: string\n}\n\n/**\n * Encapsulates time-data for detecting and animating the position\n * of a scrubber.\n */\nexport type TimeData = {\n elapsedSeconds: number\n totalSeconds: number\n}\n\nexport const defaultScrubberProps = {\n isPlaying: false,\n isDisabled: false,\n isMobile: false,\n includeTimestamps: true,\n onScrub: () => {},\n onScrubRelease: () => {}\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../src/components/scrubber/types.ts"],"sourcesContent":["export type ScrubberProps = {\n /**\n * A unique identifier for the media being scrubbed.\n * Usually a \"track id\" suffices here. This property\n * is similar to a `key` in React and is used to\n * reset the scrubber animation for a new media item.\n */\n mediaKey: string\n\n /**\n * Whether or not the media being scrubbed is playing (or paused).\n */\n isPlaying: boolean\n\n /**\n * Whether or not the scrubber should be disabled. For example,\n * this is useful when no content is playing.\n */\n isDisabled?: boolean\n\n /**\n * Whether or not to display a mobile-friendly variant.\n */\n isMobile?: boolean\n\n /**\n * Whether or not timestamps are shown on the sides of the scrubber.\n */\n includeTimestamps?: boolean\n\n /**\n * The current progress of the media being scrubbed.\n * The scrubber reacts to changes in the elapsed seconds\n * to re-calibrate. This value should be updated relatively frequently\n * (0.1s < x < 1s).\n */\n elapsedSeconds: number\n\n /**\n * Total duration of the media being scrubbed.\n */\n totalSeconds: number\n\n /**\n * The speed that the media is being played at\n */\n playbackRate: number\n\n /**\n * Fired incrementally as the user drags the scrubber.\n */\n onScrub?: (seconds: number) => void\n\n /**\n * Fired effectively on \"mouse up\" when the user is done scrubbing.\n */\n onScrubRelease?: (seconds: number) => void\n\n /** Callback to fetch the current playback position in seconds. Typically wired\n * up to the audio player's `getPosition` method.\n */\n getAudioPosition: () => number\n\n /** Callback to get the duration of the current media. Typically wired up to the\n * audio player's `getDuration` method.\n */\n getTotalTime: () => number\n\n /**\n * Individually exposed styling options.\n */\n style?: {\n railListenedColor?: string\n railUnlistenedColor?: string\n showHandle?: boolean\n handleColor?: string\n handleShadow?: string\n sliderMargin?: string\n }\n\n /**\n * Include larger click targets to that it's hard to misclick\n * Defaults to true\n */\n includeExpandedTargets?: boolean\n\n /**\n * Escape hatch for styles.\n */\n className?: string\n}\n\n/**\n * Encapsulates time-data for detecting and animating the position\n * of a scrubber.\n */\nexport type TimeData = {\n elapsedSeconds: number\n totalSeconds: number\n}\n\nexport const defaultScrubberProps = {\n isPlaying: false,\n isDisabled: false,\n isMobile: false,\n includeTimestamps: true,\n onScrub: () => {},\n onScrubRelease: () => {}\n}\n"],"names":[],"mappings":"AAqGa,IAAA,oBAAoB,GAAG;AAClC,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,iBAAiB,EAAE,IAAI;IACvB,OAAO,EAAE,eAAQ;IACjB,cAAc,EAAE,eAAQ;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SendIcon.d.ts","sourceRoot":"","sources":["../../../src/components/send-icon/SendIcon.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC,eAAO,MAAM,QAAQ,0BAAmC,aAAa,qDA0BpE,CAAA"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { jsx } from '@emotion/react/jsx-runtime';
|
|
2
2
|
import { useTheme } from '@emotion/react';
|
|
3
|
-
import '
|
|
4
|
-
import '
|
|
5
|
-
import '
|
|
6
|
-
import { IconPaperAirplane } from '
|
|
3
|
+
import '../button/Button/Button.js';
|
|
4
|
+
import '../button/PlainButton/PlainButton.js';
|
|
5
|
+
import '../../_virtual/_tslib.js';
|
|
6
|
+
import { IconPaperAirplane } from '../../icons/utilityIcons.js';
|
|
7
7
|
import 'react';
|
|
8
8
|
import '@emotion/css';
|
|
9
|
-
import '
|
|
10
|
-
import { IconButton } from '
|
|
11
|
-
import '
|
|
12
|
-
import '
|
|
13
|
-
import '
|
|
9
|
+
import '../button/FollowButton/FollowButton.js';
|
|
10
|
+
import { IconButton } from '../button/IconButton/IconButton.js';
|
|
11
|
+
import '../button/UnstyledButton.js';
|
|
12
|
+
import '../button/FilterButton/FilterButton.js';
|
|
13
|
+
import '../button/FilterButton/FilterButtonOption.js';
|
|
14
14
|
|
|
15
15
|
var SendIcon = function (_a) {
|
|
16
16
|
var _b = _a.disabled, disabled = _b === void 0 ? false : _b, onClick = _a.onClick;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SendIcon.js","sources":["../../../src/components/send-icon/SendIcon.tsx"],"sourcesContent":["import { useTheme } from '@emotion/react'\n\nimport { IconButton } from 'components/button'\nimport { IconPaperAirplane } from 'icons'\n\nimport { SendIconProps } from './types'\n\nexport const SendIcon = ({ disabled = false, onClick }: SendIconProps) => {\n const { color, motion } = useTheme()\n\n return (\n <IconButton\n aria-label='Send'\n icon={IconPaperAirplane}\n size='2xl'\n onClick={onClick}\n css={{\n cursor: 'pointer',\n pointerEvents: disabled ? 'none' : 'all',\n opacity: disabled ? 0.5 : 1,\n path: {\n fill: color.primary.primary,\n transition: motion.quick\n },\n ':hover path': {\n fill: color.primary.p100\n },\n ':active path': {\n fill: color.primary.p500\n }\n }}\n />\n )\n}\n"],"names":["_jsx"],"mappings":";;;;;;;;;;;;;;AAOO,IAAM,QAAQ,GAAG,UAAC,EAA4C,EAAA;AAA1C,IAAA,IAAA,EAAA,GAAA,EAAA,CAAA,QAAgB,EAAhB,QAAQ,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,KAAK,GAAA,EAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,CAAA;IAC5C,IAAA,EAAA,GAAoB,QAAQ,EAAE,EAA5B,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAe,CAAA;AAEpC,IAAA,QACEA,GAAC,CAAA,UAAU,kBACE,MAAM,EACjB,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAC,KAAK,EACV,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE;AACH,YAAA,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK;YACxC,OAAO,EAAE,QAAQ,GAAG,GAAG,GAAG,CAAC;AAC3B,YAAA,IAAI,EAAE;AACJ,gBAAA,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;gBAC3B,UAAU,EAAE,MAAM,CAAC,KAAK;AACzB,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;AACzB,aAAA;AACD,YAAA,cAAc,EAAE;AACd,gBAAA,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;AACzB,aAAA;AACF,SAAA,EAAA,CACD,EACH;AACH;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SendIcon.stories.d.ts","sourceRoot":"","sources":["../../../src/components/send-icon/SendIcon.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAItD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAG/B,CAAA;AAED,eAAe,IAAI,CAAA;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAA;AAEtC,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/send-icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/send-icon/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/components/text/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Text.d.ts","sourceRoot":"","sources":["../../../src/components/text/Text.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwC,MAAM,OAAO,CAAA;AASzE,eAAO,MAAM,IAAI,4WAyGhB,CAAA"}
|
|
@@ -3,7 +3,6 @@ import { jsx } from '@emotion/react/jsx-runtime';
|
|
|
3
3
|
import { forwardRef, useContext } from 'react';
|
|
4
4
|
import { useTheme } from '@emotion/react';
|
|
5
5
|
import { Slot } from '@radix-ui/react-slot';
|
|
6
|
-
import { typography } from '../../foundations/typography/typography.js';
|
|
7
6
|
import { bodyLineHeightMap, variantTagMap, variantStylesMap } from './constants.js';
|
|
8
7
|
import { TextContext } from './textContext.js';
|
|
9
8
|
|
|
@@ -17,7 +16,7 @@ var Text = forwardRef(function (props, ref) {
|
|
|
17
16
|
var strength = strengthProp !== null && strengthProp !== void 0 ? strengthProp : (parentVariant ? undefined : 'default');
|
|
18
17
|
var size = sizeProp !== null && sizeProp !== void 0 ? sizeProp : (parentVariant ? undefined : 'm');
|
|
19
18
|
var variantConfig = variant && variantStylesMap[variant];
|
|
20
|
-
var css = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ fontFamily:
|
|
19
|
+
var css = __assign(__assign(__assign(__assign(__assign(__assign(__assign(__assign({ fontFamily: theme.typography.font, position: 'relative', boxSizing: 'border-box' }, (color &&
|
|
21
20
|
color === 'heading' && {
|
|
22
21
|
// inline is necessary to prevent text clipping
|
|
23
22
|
display: 'inline',
|
|
@@ -25,18 +24,21 @@ var Text = forwardRef(function (props, ref) {
|
|
|
25
24
|
WebkitTextFillColor: 'transparent',
|
|
26
25
|
backgroundClip: 'text',
|
|
27
26
|
backgroundImage: theme.color.text.heading
|
|
28
|
-
})), (color && color !== 'heading' && { color: theme.color.text[color] })), (variantConfig && __assign({
|
|
27
|
+
})), (color && color !== 'heading' && { color: theme.color.text[color] })), (variantConfig && __assign(__assign({
|
|
29
28
|
// @ts-ignore
|
|
30
|
-
fontSize: typography.size[variantConfig.fontSize[size]], lineHeight:
|
|
29
|
+
fontSize: theme.typography.size[variantConfig.fontSize[size]], lineHeight:
|
|
31
30
|
// @ts-ignore
|
|
32
|
-
typography.lineHeight[lineHeight && variant === 'body' && size
|
|
31
|
+
theme.typography.lineHeight[lineHeight && variant === 'body' && size
|
|
33
32
|
? // @ts-ignore
|
|
34
33
|
bodyLineHeightMap[size][lineHeight]
|
|
35
34
|
: // @ts-ignore
|
|
36
35
|
variantConfig.lineHeight[size]],
|
|
37
36
|
// @ts-ignore
|
|
38
|
-
fontWeight: typography.weight[variantConfig.fontWeight[strength]] }, ('css' in variantConfig && variantConfig.css))
|
|
39
|
-
|
|
37
|
+
fontWeight: theme.typography.weight[variantConfig.fontWeight[strength]] }, ('css' in variantConfig && variantConfig.css)), (lineHeight === 'multi' && {
|
|
38
|
+
wordBreak: 'break-word',
|
|
39
|
+
hyphens: 'auto'
|
|
40
|
+
})))), (shadow && {
|
|
41
|
+
textShadow: theme.typography.shadow[shadow]
|
|
40
42
|
})), { textAlign: textAlign }), (textTransform && { textTransform: textTransform })), (ellipses && {
|
|
41
43
|
overflow: 'hidden',
|
|
42
44
|
textOverflow: 'ellipsis',
|
|
@@ -45,8 +47,8 @@ var Text = forwardRef(function (props, ref) {
|
|
|
45
47
|
overflow: 'hidden',
|
|
46
48
|
display: '-webkit-box',
|
|
47
49
|
lineClamp: "".concat(maxLines),
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
WebkitLineClamp: "".concat(maxLines),
|
|
51
|
+
WebkitBoxOrient: 'vertical'
|
|
50
52
|
}));
|
|
51
53
|
// @ts-ignore
|
|
52
54
|
var variantTag = variant && ((_b = variantTagMap[variant]) === null || _b === void 0 ? void 0 : _b[size]);
|