@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.
- package/dist/assets/icons/Album.svg.js +21 -7
- package/dist/assets/icons/Album.svg.js.map +1 -1
- package/dist/assets/icons/AllTime.svg.js +21 -7
- package/dist/assets/icons/AllTime.svg.js.map +1 -1
- package/dist/assets/icons/Appearance.svg.js +21 -7
- package/dist/assets/icons/Appearance.svg.js.map +1 -1
- package/dist/assets/icons/ArrowLeft.svg.js +21 -7
- package/dist/assets/icons/ArrowLeft.svg.js.map +1 -1
- package/dist/assets/icons/ArrowRight.svg.js +21 -7
- package/dist/assets/icons/ArrowRight.svg.js.map +1 -1
- package/dist/assets/icons/ArtistBadge.svg.js +21 -7
- package/dist/assets/icons/ArtistBadge.svg.js.map +1 -1
- package/dist/assets/icons/AudiusLogo.svg.js +21 -7
- package/dist/assets/icons/AudiusLogo.svg.js.map +1 -1
- package/dist/assets/icons/AudiusLogoColor.svg.js +21 -7
- package/dist/assets/icons/AudiusLogoColor.svg.js.map +1 -1
- package/dist/assets/icons/AudiusLogoHorizontal.svg.js +24 -8
- package/dist/assets/icons/AudiusLogoHorizontal.svg.js.map +1 -1
- package/dist/assets/icons/AudiusLogoHorizontalColor.svg.js +24 -8
- package/dist/assets/icons/AudiusLogoHorizontalColor.svg.js.map +1 -1
- package/dist/assets/icons/AudiusLogoVertical.svg.js +21 -7
- package/dist/assets/icons/AudiusLogoVertical.svg.js.map +1 -1
- package/dist/assets/icons/Blog.svg.js +21 -7
- package/dist/assets/icons/Blog.svg.js.map +1 -1
- package/dist/assets/icons/BoxHeart.svg.js +21 -7
- package/dist/assets/icons/BoxHeart.svg.js.map +1 -1
- package/dist/assets/icons/CalendarDay.svg.js +21 -7
- package/dist/assets/icons/CalendarDay.svg.js.map +1 -1
- package/dist/assets/icons/CalendarMonth.svg.js +21 -7
- package/dist/assets/icons/CalendarMonth.svg.js.map +1 -1
- package/dist/assets/icons/CalendarWeek.svg.js +21 -7
- package/dist/assets/icons/CalendarWeek.svg.js.map +1 -1
- package/dist/assets/icons/Camera.svg.js +21 -7
- package/dist/assets/icons/Camera.svg.js.map +1 -1
- package/dist/assets/icons/Campfire.svg.js +21 -7
- package/dist/assets/icons/Campfire.svg.js.map +1 -1
- package/dist/assets/icons/CaretDown.svg.js +21 -7
- package/dist/assets/icons/CaretDown.svg.js.map +1 -1
- package/dist/assets/icons/CaretLeft.svg.js +21 -7
- package/dist/assets/icons/CaretLeft.svg.js.map +1 -1
- package/dist/assets/icons/CaretRight.svg.js +21 -7
- package/dist/assets/icons/CaretRight.svg.js.map +1 -1
- package/dist/assets/icons/CaretUp.svg.js +21 -7
- package/dist/assets/icons/CaretUp.svg.js.map +1 -1
- package/dist/assets/icons/Cart.svg.js +21 -7
- package/dist/assets/icons/Cart.svg.js.map +1 -1
- package/dist/assets/icons/CastAirplay.svg.js +21 -7
- package/dist/assets/icons/CastAirplay.svg.js.map +1 -1
- package/dist/assets/icons/CastChromecast.svg.js +21 -7
- package/dist/assets/icons/CastChromecast.svg.js.map +1 -1
- package/dist/assets/icons/Check.svg.js +21 -7
- package/dist/assets/icons/Check.svg.js.map +1 -1
- package/dist/assets/icons/Close.svg.js +21 -7
- package/dist/assets/icons/Close.svg.js.map +1 -1
- package/dist/assets/icons/CloseAlt.svg.js +21 -7
- package/dist/assets/icons/CloseAlt.svg.js.map +1 -1
- package/dist/assets/icons/CloudDownload.svg.js +21 -7
- package/dist/assets/icons/CloudDownload.svg.js.map +1 -1
- package/dist/assets/icons/CloudDownloadError.svg.js +21 -7
- package/dist/assets/icons/CloudDownloadError.svg.js.map +1 -1
- package/dist/assets/icons/CloudDownloadInactive.svg.js +21 -7
- package/dist/assets/icons/CloudDownloadInactive.svg.js.map +1 -1
- package/dist/assets/icons/CloudDownloadPaused.svg.js +21 -7
- package/dist/assets/icons/CloudDownloadPaused.svg.js.map +1 -1
- package/dist/assets/icons/CloudDownloadQueued.svg.js +21 -7
- package/dist/assets/icons/CloudDownloadQueued.svg.js.map +1 -1
- package/dist/assets/icons/CloudUpload.svg.js +21 -7
- package/dist/assets/icons/CloudUpload.svg.js.map +1 -1
- package/dist/assets/icons/Coinbase.svg.js +21 -7
- package/dist/assets/icons/Coinbase.svg.js.map +1 -1
- package/dist/assets/icons/CoinbasePay.svg.js +75 -0
- package/dist/assets/icons/CoinbasePay.svg.js.map +1 -0
- package/dist/assets/icons/Collectible.svg.js +21 -7
- package/dist/assets/icons/Collectible.svg.js.map +1 -1
- package/dist/assets/icons/Compose.svg.js +21 -7
- package/dist/assets/icons/Compose.svg.js.map +1 -1
- package/dist/assets/icons/Copy.svg.js +21 -7
- package/dist/assets/icons/Copy.svg.js.map +1 -1
- package/dist/assets/icons/Cosign.svg.js +21 -7
- package/dist/assets/icons/Cosign.svg.js.map +1 -1
- package/dist/assets/icons/CreatePlaylist.svg.js +21 -7
- package/dist/assets/icons/CreatePlaylist.svg.js.map +1 -1
- package/dist/assets/icons/CreditCard.svg.js +21 -7
- package/dist/assets/icons/CreditCard.svg.js.map +1 -1
- package/dist/assets/icons/Crown.svg.js +21 -7
- package/dist/assets/icons/Crown.svg.js.map +1 -1
- package/dist/assets/icons/Dashboard.svg.js +21 -7
- package/dist/assets/icons/Dashboard.svg.js.map +1 -1
- package/dist/assets/icons/Desktop.svg.js +21 -7
- package/dist/assets/icons/Desktop.svg.js.map +1 -1
- package/dist/assets/icons/Discord.svg.js +21 -7
- package/dist/assets/icons/Discord.svg.js.map +1 -1
- package/dist/assets/icons/Donate.svg.js +21 -7
- package/dist/assets/icons/Donate.svg.js.map +1 -1
- package/dist/assets/icons/Drag.svg.js +21 -7
- package/dist/assets/icons/Drag.svg.js.map +1 -1
- package/dist/assets/icons/Earnings.svg.js +21 -7
- package/dist/assets/icons/Earnings.svg.js.map +1 -1
- package/dist/assets/icons/EmailAddress.svg.js +21 -7
- package/dist/assets/icons/EmailAddress.svg.js.map +1 -1
- package/dist/assets/icons/Embed.svg.js +21 -7
- package/dist/assets/icons/Embed.svg.js.map +1 -1
- package/dist/assets/icons/Error.svg.js +21 -7
- package/dist/assets/icons/Error.svg.js.map +1 -1
- package/dist/assets/icons/Explore.svg.js +21 -7
- package/dist/assets/icons/Explore.svg.js.map +1 -1
- package/dist/assets/icons/ExternalLink.svg.js +21 -7
- package/dist/assets/icons/ExternalLink.svg.js.map +1 -1
- package/dist/assets/icons/Facebook.svg.js +21 -7
- package/dist/assets/icons/Facebook.svg.js.map +1 -1
- package/dist/assets/icons/Feed.svg.js +21 -7
- package/dist/assets/icons/Feed.svg.js.map +1 -1
- package/dist/assets/icons/Filter.svg.js +21 -7
- package/dist/assets/icons/Filter.svg.js.map +1 -1
- package/dist/assets/icons/Folder.svg.js +21 -7
- package/dist/assets/icons/Folder.svg.js.map +1 -1
- package/dist/assets/icons/Foundation.svg.js +21 -7
- package/dist/assets/icons/Foundation.svg.js.map +1 -1
- package/dist/assets/icons/Gift.svg.js +21 -7
- package/dist/assets/icons/Gift.svg.js.map +1 -1
- package/dist/assets/icons/Headphones.svg.js +21 -7
- package/dist/assets/icons/Headphones.svg.js.map +1 -1
- package/dist/assets/icons/Heart.svg.js +21 -7
- package/dist/assets/icons/Heart.svg.js.map +1 -1
- package/dist/assets/icons/Image.svg.js +21 -7
- package/dist/assets/icons/Image.svg.js.map +1 -1
- package/dist/assets/icons/Indent.svg.js +21 -7
- package/dist/assets/icons/Indent.svg.js.map +1 -1
- package/dist/assets/icons/Info.svg.js +21 -7
- package/dist/assets/icons/Info.svg.js.map +1 -1
- package/dist/assets/icons/Instagram.svg.js +21 -7
- package/dist/assets/icons/Instagram.svg.js.map +1 -1
- package/dist/assets/icons/KebabHorizontal.svg.js +21 -7
- package/dist/assets/icons/KebabHorizontal.svg.js.map +1 -1
- package/dist/assets/icons/Key.svg.js +21 -7
- package/dist/assets/icons/Key.svg.js.map +1 -1
- package/dist/assets/icons/Library.svg.js +21 -7
- package/dist/assets/icons/Library.svg.js.map +1 -1
- package/dist/assets/icons/LifeRing.svg.js +21 -7
- package/dist/assets/icons/LifeRing.svg.js.map +1 -1
- package/dist/assets/icons/Link.svg.js +21 -7
- package/dist/assets/icons/Link.svg.js.map +1 -1
- package/dist/assets/icons/LinkByStripe.svg.js +21 -7
- package/dist/assets/icons/LinkByStripe.svg.js.map +1 -1
- package/dist/assets/icons/ListeningHistory.svg.js +21 -7
- package/dist/assets/icons/ListeningHistory.svg.js.map +1 -1
- package/dist/assets/icons/Listens.svg.js +21 -7
- package/dist/assets/icons/Listens.svg.js.map +1 -1
- package/dist/assets/icons/Lock.svg.js +21 -7
- package/dist/assets/icons/Lock.svg.js.map +1 -1
- package/dist/assets/icons/LockUnlocked.svg.js +21 -7
- package/dist/assets/icons/LockUnlocked.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircle.svg.js +21 -7
- package/dist/assets/icons/LogoCircle.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleCoinbase.svg.js +21 -7
- package/dist/assets/icons/LogoCircleCoinbase.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleETH.svg.js +21 -7
- package/dist/assets/icons/LogoCircleETH.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleSOL.svg.js +21 -7
- package/dist/assets/icons/LogoCircleSOL.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleSTR.svg.js +21 -7
- package/dist/assets/icons/LogoCircleSTR.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleUSD.svg.js +21 -7
- package/dist/assets/icons/LogoCircleUSD.svg.js.map +1 -1
- package/dist/assets/icons/LogoCircleUSDC.svg.js +21 -7
- package/dist/assets/icons/LogoCircleUSDC.svg.js.map +1 -1
- package/dist/assets/icons/LogoPhantom.svg.js +21 -7
- package/dist/assets/icons/LogoPhantom.svg.js.map +1 -1
- package/dist/assets/icons/LogoSolana.svg.js +21 -7
- package/dist/assets/icons/LogoSolana.svg.js.map +1 -1
- package/dist/assets/icons/Merch.svg.js +21 -7
- package/dist/assets/icons/Merch.svg.js.map +1 -1
- package/dist/assets/icons/Message.svg.js +21 -7
- package/dist/assets/icons/Message.svg.js.map +1 -1
- package/dist/assets/icons/MessageBlock.svg.js +21 -7
- package/dist/assets/icons/MessageBlock.svg.js.map +1 -1
- package/dist/assets/icons/MessageLocked.svg.js +21 -7
- package/dist/assets/icons/MessageLocked.svg.js.map +1 -1
- package/dist/assets/icons/MessageUnblock.svg.js +21 -7
- package/dist/assets/icons/MessageUnblock.svg.js.map +1 -1
- package/dist/assets/icons/Metamask.svg.js +21 -7
- package/dist/assets/icons/Metamask.svg.js.map +1 -1
- package/dist/assets/icons/Minus.svg.js +21 -7
- package/dist/assets/icons/Minus.svg.js.map +1 -1
- package/dist/assets/icons/{PenSquare.svg.js → MoneyBracket.svg.js} +33 -14
- package/dist/assets/icons/MoneyBracket.svg.js.map +1 -0
- package/dist/assets/icons/Mood.svg.js +21 -7
- package/dist/assets/icons/Mood.svg.js.map +1 -1
- package/dist/assets/icons/MultiselectAdd.svg.js +21 -7
- package/dist/assets/icons/MultiselectAdd.svg.js.map +1 -1
- package/dist/assets/icons/MultiselectRemove.svg.js +21 -7
- package/dist/assets/icons/MultiselectRemove.svg.js.map +1 -1
- package/dist/assets/icons/NoWifi.svg.js +21 -7
- package/dist/assets/icons/NoWifi.svg.js.map +1 -1
- package/dist/assets/icons/Note.svg.js +21 -7
- package/dist/assets/icons/Note.svg.js.map +1 -1
- package/dist/assets/icons/NotificationOff.svg.js +21 -7
- package/dist/assets/icons/NotificationOff.svg.js.map +1 -1
- package/dist/assets/icons/NotificationOn.svg.js +21 -7
- package/dist/assets/icons/NotificationOn.svg.js.map +1 -1
- package/dist/assets/icons/Pause.svg.js +21 -7
- package/dist/assets/icons/Pause.svg.js.map +1 -1
- package/dist/assets/icons/Pencil.svg.js +21 -7
- package/dist/assets/icons/Pencil.svg.js.map +1 -1
- package/dist/assets/icons/Play.svg.js +21 -7
- package/dist/assets/icons/Play.svg.js.map +1 -1
- package/dist/assets/icons/PlaybackPause.svg.js +24 -8
- package/dist/assets/icons/PlaybackPause.svg.js.map +1 -1
- package/dist/assets/icons/PlaybackPlay.svg.js +24 -8
- package/dist/assets/icons/PlaybackPlay.svg.js.map +1 -1
- package/dist/assets/icons/Playlists.svg.js +21 -7
- package/dist/assets/icons/Playlists.svg.js.map +1 -1
- package/dist/assets/icons/Plus.svg.js +21 -7
- package/dist/assets/icons/Plus.svg.js.map +1 -1
- package/dist/assets/icons/PodcastBack.svg.js +21 -7
- package/dist/assets/icons/PodcastBack.svg.js.map +1 -1
- package/dist/assets/icons/PodcastForward.svg.js +21 -7
- package/dist/assets/icons/PodcastForward.svg.js.map +1 -1
- package/dist/assets/icons/QuestionCircle.svg.js +21 -7
- package/dist/assets/icons/QuestionCircle.svg.js.map +1 -1
- package/dist/assets/icons/Radar.svg.js +21 -7
- package/dist/assets/icons/Radar.svg.js.map +1 -1
- package/dist/assets/icons/Receive.svg.js +21 -7
- package/dist/assets/icons/Receive.svg.js.map +1 -1
- package/dist/assets/icons/RecoveryEmail.svg.js +21 -7
- package/dist/assets/icons/RecoveryEmail.svg.js.map +1 -1
- package/dist/assets/icons/Refresh.svg.js +21 -7
- package/dist/assets/icons/Refresh.svg.js.map +1 -1
- package/dist/assets/icons/Remix.svg.js +21 -7
- package/dist/assets/icons/Remix.svg.js.map +1 -1
- package/dist/assets/icons/Remove.svg.js +21 -7
- package/dist/assets/icons/Remove.svg.js.map +1 -1
- package/dist/assets/icons/RepeatOff.svg.js +21 -7
- package/dist/assets/icons/RepeatOff.svg.js.map +1 -1
- package/dist/assets/icons/Repost.svg.js +21 -7
- package/dist/assets/icons/Repost.svg.js.map +1 -1
- package/dist/assets/icons/Robot.svg.js +21 -7
- package/dist/assets/icons/Robot.svg.js.map +1 -1
- package/dist/assets/icons/Rocket.svg.js +21 -7
- package/dist/assets/icons/Rocket.svg.js.map +1 -1
- package/dist/assets/icons/Save.svg.js +21 -7
- package/dist/assets/icons/Save.svg.js.map +1 -1
- package/dist/assets/icons/Search.svg.js +21 -7
- package/dist/assets/icons/Search.svg.js.map +1 -1
- package/dist/assets/icons/Send.svg.js +21 -7
- package/dist/assets/icons/Send.svg.js.map +1 -1
- package/dist/assets/icons/Settings.svg.js +21 -7
- package/dist/assets/icons/Settings.svg.js.map +1 -1
- package/dist/assets/icons/Share.svg.js +21 -7
- package/dist/assets/icons/Share.svg.js.map +1 -1
- package/dist/assets/icons/ShieldCheck.svg.js +21 -7
- package/dist/assets/icons/ShieldCheck.svg.js.map +1 -1
- package/dist/assets/icons/ShieldUser.svg.js +81 -0
- package/dist/assets/icons/ShieldUser.svg.js.map +1 -0
- package/dist/assets/icons/Shuffle.svg.js +21 -7
- package/dist/assets/icons/Shuffle.svg.js.map +1 -1
- package/dist/assets/icons/SignOut.svg.js +21 -7
- package/dist/assets/icons/SignOut.svg.js.map +1 -1
- package/dist/assets/icons/SkipNext.svg.js +21 -7
- package/dist/assets/icons/SkipNext.svg.js.map +1 -1
- package/dist/assets/icons/SkipPrevious.svg.js +21 -7
- package/dist/assets/icons/SkipPrevious.svg.js.map +1 -1
- package/dist/assets/icons/Skull.svg.js +21 -7
- package/dist/assets/icons/Skull.svg.js.map +1 -1
- package/dist/assets/icons/SnapChat.svg.js +21 -7
- package/dist/assets/icons/SnapChat.svg.js.map +1 -1
- package/dist/assets/icons/Sort.svg.js +21 -7
- package/dist/assets/icons/Sort.svg.js.map +1 -1
- package/dist/assets/icons/SortDown.svg.js +21 -7
- package/dist/assets/icons/SortDown.svg.js.map +1 -1
- package/dist/assets/icons/SortUp.svg.js +21 -7
- package/dist/assets/icons/SortUp.svg.js.map +1 -1
- package/dist/assets/icons/Soundwave.svg.js +21 -7
- package/dist/assets/icons/Soundwave.svg.js.map +1 -1
- package/dist/assets/icons/Speaker.svg.js +21 -7
- package/dist/assets/icons/Speaker.svg.js.map +1 -1
- package/dist/assets/icons/SpecialAccess.svg.js +21 -7
- package/dist/assets/icons/SpecialAccess.svg.js.map +1 -1
- package/dist/assets/icons/Star.svg.js +21 -7
- package/dist/assets/icons/Star.svg.js.map +1 -1
- package/dist/assets/icons/Stars.svg.js +21 -7
- package/dist/assets/icons/Stars.svg.js.map +1 -1
- package/dist/assets/icons/Support.svg.js +21 -7
- package/dist/assets/icons/Support.svg.js.map +1 -1
- package/dist/assets/icons/Tastemaker.svg.js +21 -7
- package/dist/assets/icons/Tastemaker.svg.js.map +1 -1
- package/dist/assets/icons/Telegram.svg.js +21 -7
- package/dist/assets/icons/Telegram.svg.js.map +1 -1
- package/dist/assets/icons/ThumbsDown.svg.js +21 -7
- package/dist/assets/icons/ThumbsDown.svg.js.map +1 -1
- package/dist/assets/icons/ThumbsUp.svg.js +21 -7
- package/dist/assets/icons/ThumbsUp.svg.js.map +1 -1
- package/dist/assets/icons/TikTok.svg.js +21 -7
- package/dist/assets/icons/TikTok.svg.js.map +1 -1
- package/dist/assets/icons/Tipping.svg.js +21 -7
- package/dist/assets/icons/Tipping.svg.js.map +1 -1
- package/dist/assets/icons/TokenBronze.svg.js +21 -7
- package/dist/assets/icons/TokenBronze.svg.js.map +1 -1
- package/dist/assets/icons/TokenGold.svg.js +21 -7
- package/dist/assets/icons/TokenGold.svg.js.map +1 -1
- package/dist/assets/icons/TokenNoTier.svg.js +21 -7
- package/dist/assets/icons/TokenNoTier.svg.js.map +1 -1
- package/dist/assets/icons/TokenPlatinum.svg.js +21 -7
- package/dist/assets/icons/TokenPlatinum.svg.js.map +1 -1
- package/dist/assets/icons/TokenSilver.svg.js +21 -7
- package/dist/assets/icons/TokenSilver.svg.js.map +1 -1
- package/dist/assets/icons/Transaction.svg.js +21 -7
- package/dist/assets/icons/Transaction.svg.js.map +1 -1
- package/dist/assets/icons/Trash.svg.js +21 -7
- package/dist/assets/icons/Trash.svg.js.map +1 -1
- package/dist/assets/icons/Trending.svg.js +21 -7
- package/dist/assets/icons/Trending.svg.js.map +1 -1
- package/dist/assets/icons/TriangleExclamation.svg.js +21 -7
- package/dist/assets/icons/TriangleExclamation.svg.js.map +1 -1
- package/dist/assets/icons/Trophy.svg.js +21 -7
- package/dist/assets/icons/Trophy.svg.js.map +1 -1
- package/dist/assets/icons/Turntable.svg.js +21 -7
- package/dist/assets/icons/Turntable.svg.js.map +1 -1
- package/dist/assets/icons/Twitter.svg.js +21 -7
- package/dist/assets/icons/Twitter.svg.js.map +1 -1
- package/dist/assets/icons/User.svg.js +21 -7
- package/dist/assets/icons/User.svg.js.map +1 -1
- package/dist/assets/icons/UserArrowRotate.svg.js +81 -0
- package/dist/assets/icons/UserArrowRotate.svg.js.map +1 -0
- package/dist/assets/icons/UserFollow.svg.js +21 -7
- package/dist/assets/icons/UserFollow.svg.js.map +1 -1
- package/dist/assets/icons/UserFollowers.svg.js +21 -7
- package/dist/assets/icons/UserFollowers.svg.js.map +1 -1
- package/dist/assets/icons/UserFollowing.svg.js +21 -7
- package/dist/assets/icons/UserFollowing.svg.js.map +1 -1
- package/dist/assets/icons/UserGroup.svg.js +21 -7
- package/dist/assets/icons/UserGroup.svg.js.map +1 -1
- package/dist/assets/icons/UserList.svg.js +21 -7
- package/dist/assets/icons/UserList.svg.js.map +1 -1
- package/dist/assets/icons/UserUnfollow.svg.js +21 -7
- package/dist/assets/icons/UserUnfollow.svg.js.map +1 -1
- package/dist/assets/icons/ValidationCheck.svg.js +21 -7
- package/dist/assets/icons/ValidationCheck.svg.js.map +1 -1
- package/dist/assets/icons/ValidationX.svg.js +21 -7
- package/dist/assets/icons/ValidationX.svg.js.map +1 -1
- package/dist/assets/icons/Verified.svg.js +31 -22
- package/dist/assets/icons/Verified.svg.js.map +1 -1
- package/dist/assets/icons/VisibilityHidden.svg.js +21 -7
- package/dist/assets/icons/VisibilityHidden.svg.js.map +1 -1
- package/dist/assets/icons/VisibilityPublic.svg.js +21 -7
- package/dist/assets/icons/VisibilityPublic.svg.js.map +1 -1
- package/dist/assets/icons/VolumeLevel0.svg.js +21 -7
- package/dist/assets/icons/VolumeLevel0.svg.js.map +1 -1
- package/dist/assets/icons/VolumeLevel1.svg.js +21 -7
- package/dist/assets/icons/VolumeLevel1.svg.js.map +1 -1
- package/dist/assets/icons/VolumeLevel2.svg.js +21 -7
- package/dist/assets/icons/VolumeLevel2.svg.js.map +1 -1
- package/dist/assets/icons/VolumeLevel3.svg.js +21 -7
- package/dist/assets/icons/VolumeLevel3.svg.js.map +1 -1
- package/dist/assets/icons/Wallet.svg.js +21 -7
- package/dist/assets/icons/Wallet.svg.js.map +1 -1
- package/dist/assets/icons/Wand.svg.js +21 -7
- package/dist/assets/icons/Wand.svg.js.map +1 -1
- package/dist/assets/icons/Waveform.svg.js +21 -7
- package/dist/assets/icons/Waveform.svg.js.map +1 -1
- package/dist/assets/icons/Withdraw.svg.js +21 -7
- package/dist/assets/icons/Withdraw.svg.js.map +1 -1
- package/dist/assets/icons/ccBy.svg.js +21 -7
- package/dist/assets/icons/ccBy.svg.js.map +1 -1
- package/dist/assets/icons/ccCC.svg.js +21 -7
- package/dist/assets/icons/ccCC.svg.js.map +1 -1
- package/dist/assets/icons/ccNC-EU.svg.js +21 -7
- package/dist/assets/icons/ccNC-EU.svg.js.map +1 -1
- package/dist/assets/icons/ccNC-JP.svg.js +21 -7
- package/dist/assets/icons/ccNC-JP.svg.js.map +1 -1
- package/dist/assets/icons/ccNC.svg.js +21 -7
- package/dist/assets/icons/ccNC.svg.js.map +1 -1
- package/dist/assets/icons/ccND.svg.js +21 -7
- package/dist/assets/icons/ccND.svg.js.map +1 -1
- package/dist/assets/icons/ccPD.svg.js +21 -7
- package/dist/assets/icons/ccPD.svg.js.map +1 -1
- package/dist/assets/icons/ccRemix.svg.js +21 -7
- package/dist/assets/icons/ccRemix.svg.js.map +1 -1
- package/dist/assets/icons/ccSA.svg.js +21 -7
- package/dist/assets/icons/ccSA.svg.js.map +1 -1
- package/dist/assets/icons/ccSampling.svg.js +21 -7
- package/dist/assets/icons/ccSampling.svg.js.map +1 -1
- package/dist/assets/icons/ccSamplingPlus.svg.js +21 -7
- package/dist/assets/icons/ccSamplingPlus.svg.js.map +1 -1
- package/dist/assets/icons/ccShare.svg.js +21 -7
- package/dist/assets/icons/ccShare.svg.js.map +1 -1
- package/dist/assets/icons/ccZero.svg.js +21 -7
- package/dist/assets/icons/ccZero.svg.js.map +1 -1
- package/dist/assets/icons/file3GA.svg.js +21 -7
- package/dist/assets/icons/file3GA.svg.js.map +1 -1
- package/dist/assets/icons/file3GP.svg.js +21 -7
- package/dist/assets/icons/file3GP.svg.js.map +1 -1
- package/dist/assets/icons/fileAAC.svg.js +21 -7
- package/dist/assets/icons/fileAAC.svg.js.map +1 -1
- package/dist/assets/icons/fileAIF.svg.js +21 -7
- package/dist/assets/icons/fileAIF.svg.js.map +1 -1
- package/dist/assets/icons/fileAIFC.svg.js +21 -7
- package/dist/assets/icons/fileAIFC.svg.js.map +1 -1
- package/dist/assets/icons/fileAIFF.svg.js +21 -7
- package/dist/assets/icons/fileAIFF.svg.js.map +1 -1
- package/dist/assets/icons/fileAMR.svg.js +21 -7
- package/dist/assets/icons/fileAMR.svg.js.map +1 -1
- package/dist/assets/icons/fileAWB.svg.js +21 -7
- package/dist/assets/icons/fileAWB.svg.js.map +1 -1
- package/dist/assets/icons/fileFLAC.svg.js +21 -7
- package/dist/assets/icons/fileFLAC.svg.js.map +1 -1
- package/dist/assets/icons/fileM4A.svg.js +21 -7
- package/dist/assets/icons/fileM4A.svg.js.map +1 -1
- package/dist/assets/icons/fileM4B.svg.js +21 -7
- package/dist/assets/icons/fileM4B.svg.js.map +1 -1
- package/dist/assets/icons/fileM4P.svg.js +21 -7
- package/dist/assets/icons/fileM4P.svg.js.map +1 -1
- package/dist/assets/icons/fileM4R.svg.js +21 -7
- package/dist/assets/icons/fileM4R.svg.js.map +1 -1
- package/dist/assets/icons/fileM4V.svg.js +21 -7
- package/dist/assets/icons/fileM4V.svg.js.map +1 -1
- package/dist/assets/icons/fileMP2.svg.js +21 -7
- package/dist/assets/icons/fileMP2.svg.js.map +1 -1
- package/dist/assets/icons/fileMP3.svg.js +21 -7
- package/dist/assets/icons/fileMP3.svg.js.map +1 -1
- package/dist/assets/icons/fileMP4.svg.js +21 -7
- package/dist/assets/icons/fileMP4.svg.js.map +1 -1
- package/dist/assets/icons/fileMPGA.svg.js +21 -7
- package/dist/assets/icons/fileMPGA.svg.js.map +1 -1
- package/dist/assets/icons/fileOGA.svg.js +21 -7
- package/dist/assets/icons/fileOGA.svg.js.map +1 -1
- package/dist/assets/icons/fileOGG.svg.js +21 -7
- package/dist/assets/icons/fileOGG.svg.js.map +1 -1
- package/dist/assets/icons/fileOGM.svg.js +21 -7
- package/dist/assets/icons/fileOGM.svg.js.map +1 -1
- package/dist/assets/icons/fileOGV.svg.js +21 -7
- package/dist/assets/icons/fileOGV.svg.js.map +1 -1
- package/dist/assets/icons/fileOGX.svg.js +21 -7
- package/dist/assets/icons/fileOGX.svg.js.map +1 -1
- package/dist/assets/icons/fileOPUS.svg.js +21 -7
- package/dist/assets/icons/fileOPUS.svg.js.map +1 -1
- package/dist/assets/icons/fileSPX.svg.js +21 -7
- package/dist/assets/icons/fileSPX.svg.js.map +1 -1
- package/dist/assets/icons/fileTS.svg.js +21 -7
- package/dist/assets/icons/fileTS.svg.js.map +1 -1
- package/dist/assets/icons/fileTSA.svg.js +21 -7
- package/dist/assets/icons/fileTSA.svg.js.map +1 -1
- package/dist/assets/icons/fileTSV.svg.js +21 -7
- package/dist/assets/icons/fileTSV.svg.js.map +1 -1
- package/dist/assets/icons/fileUnknown.svg.js +24 -8
- package/dist/assets/icons/fileUnknown.svg.js.map +1 -1
- package/dist/assets/icons/fileWAV.svg.js +21 -7
- package/dist/assets/icons/fileWAV.svg.js.map +1 -1
- package/dist/assets/icons/fileWAVE.svg.js +21 -7
- package/dist/assets/icons/fileWAVE.svg.js.map +1 -1
- package/dist/assets/icons/fileWEBM.svg.js +21 -7
- package/dist/assets/icons/fileWEBM.svg.js.map +1 -1
- package/dist/assets/icons/fileXWMA.svg.js +21 -7
- package/dist/assets/icons/fileXWMA.svg.js.map +1 -1
- package/dist/components/artwork/Artwork.d.ts +17 -0
- package/dist/components/artwork/Artwork.d.ts.map +1 -0
- package/dist/components/artwork/Artwork.js +47 -0
- package/dist/components/artwork/Artwork.js.map +1 -0
- package/dist/components/artwork/Artwork.stories.d.ts +8 -0
- package/dist/components/artwork/Artwork.stories.d.ts.map +1 -0
- package/dist/components/artwork/index.d.ts +2 -0
- package/dist/components/artwork/index.d.ts.map +1 -0
- package/dist/components/avatar/Avatar.d.ts +8 -1
- package/dist/components/avatar/Avatar.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.js +16 -45
- package/dist/components/avatar/Avatar.js.map +1 -1
- package/dist/components/avatar/Avatar.stories.d.ts.map +1 -1
- package/dist/components/avatar/index.d.ts +1 -1
- package/dist/components/avatar/index.d.ts.map +1 -1
- package/dist/components/button/Button/Button.d.ts.map +1 -1
- package/dist/components/button/Button/Button.js +13 -33
- package/dist/components/button/Button/Button.js.map +1 -1
- package/dist/components/button/Button/types.d.ts +3 -3
- package/dist/components/button/Button/types.d.ts.map +1 -1
- package/dist/components/button/FilterButton/FilterButton.d.ts.map +1 -1
- package/dist/components/button/FilterButton/FilterButton.js +5 -5
- package/dist/components/button/FilterButton/FilterButton.js.map +1 -1
- package/dist/components/button/FilterButton/FilterButton.stories.d.ts.map +1 -1
- package/dist/components/button/FilterButton/types.d.ts +2 -2
- package/dist/components/button/FilterButton/types.d.ts.map +1 -1
- package/dist/components/button/FollowButton/FollowButton.d.ts +2 -1
- package/dist/components/button/FollowButton/FollowButton.d.ts.map +1 -1
- package/dist/components/button/FollowButton/FollowButton.js +53 -21
- package/dist/components/button/FollowButton/FollowButton.js.map +1 -1
- package/dist/components/button/FollowButton/types.d.ts +6 -0
- package/dist/components/button/FollowButton/types.d.ts.map +1 -1
- package/dist/components/button/IconButton/IconButton.d.ts +3 -3
- package/dist/components/button/IconButton/IconButton.d.ts.map +1 -1
- package/dist/components/button/IconButton/IconButton.js +20 -5
- package/dist/components/button/IconButton/IconButton.js.map +1 -1
- package/dist/components/button/SocialButton/SocialButton.d.ts +1 -5
- package/dist/components/button/SocialButton/SocialButton.d.ts.map +1 -1
- package/dist/components/button/SocialButton/SocialButton.js +1 -1
- package/dist/components/button/SocialButton/SocialButton.js.map +1 -1
- package/dist/components/button/UnstyledButton.d.ts +11 -0
- package/dist/components/button/UnstyledButton.d.ts.map +1 -0
- package/dist/components/button/UnstyledButton.js +13 -0
- package/dist/components/button/UnstyledButton.js.map +1 -0
- package/dist/components/button/index.d.ts +2 -1
- package/dist/components/button/index.d.ts.map +1 -1
- package/dist/components/completion-check/CompletionCheck.js +0 -1
- package/dist/components/completion-check/CompletionCheck.js.map +1 -1
- package/dist/components/hint/Hint.d.ts +1 -1
- package/dist/components/hint/Hint.d.ts.map +1 -1
- package/dist/components/hint/Hint.js +5 -3
- package/dist/components/hint/Hint.js.map +1 -1
- package/dist/components/icon.d.ts +1 -0
- package/dist/components/icon.d.ts.map +1 -1
- package/dist/components/index.d.ts +7 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/input/PasswordInput/PasswordInput.js +1 -0
- package/dist/components/input/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/input/SelectablePill/SelectablePill.js +1 -1
- package/dist/components/input/TextInput/TextInput.d.ts.map +1 -1
- package/dist/components/input/TextInput/TextInput.js +3 -4
- package/dist/components/input/TextInput/TextInput.js.map +1 -1
- package/dist/components/layout/Box/Box.js +6 -6
- package/dist/components/layout/Box/Box.js.map +1 -1
- package/dist/components/layout/Box/types.d.ts +8 -8
- package/dist/components/layout/Box/types.d.ts.map +1 -1
- package/dist/components/layout/Divider/Divider.d.ts.map +1 -1
- package/dist/components/layout/Divider/Divider.js +4 -4
- package/dist/components/layout/Divider/Divider.js.map +1 -1
- package/dist/components/layout/Divider/types.d.ts +2 -0
- package/dist/components/layout/Divider/types.d.ts.map +1 -1
- package/dist/components/layout/Paper/Paper.d.ts +1 -6
- package/dist/components/layout/Paper/Paper.d.ts.map +1 -1
- package/dist/components/layout/Paper/Paper.js +24 -9
- package/dist/components/layout/Paper/Paper.js.map +1 -1
- package/dist/components/layout/Paper/Paper.stories.d.ts +1 -0
- package/dist/components/layout/Paper/Paper.stories.d.ts.map +1 -1
- package/dist/components/layout/Paper/types.d.ts +2 -0
- package/dist/components/layout/Paper/types.d.ts.map +1 -1
- package/dist/components/layout/index.d.ts +0 -1
- package/dist/components/layout/index.d.ts.map +1 -1
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +40 -28
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/components/modal/ModalHeader.js +1 -0
- package/dist/components/modal/ModalHeader.js.map +1 -1
- package/dist/components/pill/Pill.d.ts +31 -0
- package/dist/components/pill/Pill.d.ts.map +1 -0
- package/dist/components/pill/Pill.js +59 -0
- package/dist/components/pill/Pill.js.map +1 -0
- package/dist/components/pill/Pill.stories.d.ts +10 -0
- package/dist/components/pill/Pill.stories.d.ts.map +1 -0
- package/dist/components/pill/index.d.ts +3 -0
- package/dist/components/pill/index.d.ts.map +1 -0
- package/dist/components/popup/Popup.d.ts.map +1 -0
- package/dist/components/{layout/Popup → popup}/Popup.js +39 -23
- package/dist/components/popup/Popup.js.map +1 -0
- package/dist/components/popup/Popup.module.css.js +4 -0
- package/dist/components/popup/Popup.stories.d.ts.map +1 -0
- package/dist/components/popup/index.d.ts.map +1 -0
- package/dist/components/{layout/Popup → popup}/types.d.ts +3 -3
- package/dist/components/popup/types.d.ts.map +1 -0
- package/dist/components/popup-menu/PopupMenu.d.ts +2 -2
- package/dist/components/popup-menu/PopupMenu.js +2 -2
- package/dist/components/popup-menu/PopupMenu.js.map +1 -1
- package/dist/components/popup-menu/types.d.ts +1 -1
- package/dist/components/popup-menu/types.d.ts.map +1 -1
- package/dist/components/progress-bar/ProgressBar.d.ts +3 -0
- package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -0
- package/dist/components/progress-bar/ProgressBar.js +40 -0
- package/dist/components/progress-bar/ProgressBar.js.map +1 -0
- package/dist/components/progress-bar/ProgressBar.module.css.js +4 -0
- package/dist/components/progress-bar/ProgressBar.module.css.js.map +1 -0
- package/dist/components/progress-bar/index.d.ts +3 -0
- package/dist/components/progress-bar/index.d.ts.map +1 -0
- package/dist/components/progress-bar/types.d.ts +20 -0
- package/dist/components/progress-bar/types.d.ts.map +1 -0
- package/dist/components/radio-group/RadioGroup.js +0 -1
- package/dist/components/radio-group/RadioGroup.js.map +1 -1
- package/dist/components/scrubber/Scrubber.d.ts +17 -0
- package/dist/components/scrubber/Scrubber.d.ts.map +1 -0
- package/dist/components/scrubber/Scrubber.js +61 -0
- package/dist/components/scrubber/Scrubber.js.map +1 -0
- package/dist/components/scrubber/Scrubber.module.css.js +4 -0
- package/dist/components/scrubber/Scrubber.module.css.js.map +1 -0
- package/dist/components/scrubber/Slider.d.ts +7 -0
- package/dist/components/scrubber/Slider.d.ts.map +1 -0
- package/dist/components/scrubber/Slider.js +230 -0
- package/dist/components/scrubber/Slider.js.map +1 -0
- package/dist/components/scrubber/Slider.module.css.js +4 -0
- package/dist/components/scrubber/Slider.module.css.js.map +1 -0
- package/dist/components/scrubber/hooks.d.ts +11 -0
- package/dist/components/scrubber/hooks.d.ts.map +1 -0
- package/dist/components/scrubber/hooks.js +63 -0
- package/dist/components/scrubber/hooks.js.map +1 -0
- package/dist/components/scrubber/index.d.ts +2 -0
- package/dist/components/scrubber/index.d.ts.map +1 -0
- package/dist/components/scrubber/types.d.ts +86 -0
- package/dist/components/scrubber/types.d.ts.map +1 -0
- package/dist/components/scrubber/types.js +11 -0
- package/dist/components/scrubber/types.js.map +1 -0
- package/dist/components/segmented-control/SegmentedControl.js +1 -1
- package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
- package/dist/components/skeleton/Skeleton.d.ts +5 -0
- package/dist/components/skeleton/Skeleton.d.ts.map +1 -0
- package/dist/components/skeleton/Skeleton.js +27 -0
- package/dist/components/skeleton/Skeleton.js.map +1 -0
- package/dist/components/skeleton/Skeleton.stories.d.ts +7 -0
- package/dist/components/skeleton/Skeleton.stories.d.ts.map +1 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/skeleton/index.d.ts.map +1 -0
- package/dist/components/tag/Tag.js +5 -10
- package/dist/components/tag/Tag.js.map +1 -1
- package/dist/components/text/Text.d.ts.map +1 -0
- package/dist/components/text/Text.js +51 -0
- package/dist/components/text/Text.js.map +1 -0
- package/dist/components/text/Text.stories.d.ts.map +1 -0
- package/dist/components/text/constants.d.ts.map +1 -0
- package/dist/components/text/{Text/constants.js → constants.js} +4 -4
- package/dist/components/text/constants.js.map +1 -0
- package/dist/components/text/index.d.ts +3 -1
- package/dist/components/text/index.d.ts.map +1 -1
- package/dist/components/text/textContext.d.ts +7 -0
- package/dist/components/text/textContext.d.ts.map +1 -0
- package/dist/components/text/textContext.js +6 -0
- package/dist/components/text/textContext.js.map +1 -0
- package/dist/components/text/{Text/types.d.ts → types.d.ts} +2 -1
- package/dist/components/text/types.d.ts.map +1 -0
- package/dist/components/text-link/TextLink.d.ts +3 -7
- package/dist/components/text-link/TextLink.d.ts.map +1 -1
- package/dist/components/text-link/TextLink.js +8 -6
- package/dist/components/text-link/TextLink.js.map +1 -1
- package/dist/components/text-link/types.d.ts +4 -7
- package/dist/components/text-link/types.d.ts.map +1 -1
- package/dist/foundations/color/color.d.ts +3 -0
- package/dist/foundations/color/color.d.ts.map +1 -1
- package/dist/foundations/color/primitive.d.ts +3 -0
- package/dist/foundations/color/primitive.d.ts.map +1 -1
- package/dist/foundations/color/primitive.js +3 -0
- package/dist/foundations/color/primitive.js.map +1 -1
- package/dist/foundations/corner-radius/cornerRadius.d.ts +1 -0
- package/dist/foundations/corner-radius/cornerRadius.d.ts.map +1 -1
- package/dist/foundations/corner-radius/cornerRadius.js +2 -1
- package/dist/foundations/corner-radius/cornerRadius.js.map +1 -1
- package/dist/foundations/spacing/spacing.d.ts +1 -0
- package/dist/foundations/spacing/spacing.d.ts.map +1 -1
- package/dist/foundations/spacing/spacing.js +1 -0
- package/dist/foundations/spacing/spacing.js.map +1 -1
- package/dist/foundations/theme/ThemeProvider.d.ts +1 -1
- package/dist/foundations/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/foundations/theme/ThemeProvider.js +6 -0
- package/dist/foundations/theme/ThemeProvider.js.map +1 -1
- package/dist/foundations/typography/typography.d.ts +1 -0
- package/dist/foundations/typography/typography.d.ts.map +1 -1
- package/dist/foundations/typography/typography.js +5 -3
- package/dist/foundations/typography/typography.js.map +1 -1
- package/dist/harmony.css +1 -1
- package/dist/hooks/useHotKeys.d.ts +3 -3
- package/dist/hooks/useHotKeys.d.ts.map +1 -1
- package/dist/hooks/useHotKeys.js +11 -5
- package/dist/hooks/useHotKeys.js.map +1 -1
- package/dist/icons/logos.d.ts +1 -0
- package/dist/icons/logos.d.ts.map +1 -1
- package/dist/icons/logos.js +3 -1
- package/dist/icons/logos.js.map +1 -1
- package/dist/icons/utilityIcons.d.ts +3 -0
- package/dist/icons/utilityIcons.d.ts.map +1 -1
- package/dist/icons/utilityIcons.js +7 -1
- package/dist/icons/utilityIcons.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -5
- package/dist/index.js.map +1 -1
- package/dist/utils/modalState.d.ts +2 -0
- package/dist/utils/modalState.d.ts.map +1 -0
- package/package.json +3 -3
- package/dist/2fdaa2b95a34d549.svg +0 -9
- package/dist/5f91e9bafd9a9e2b.svg +0 -9
- package/dist/assets/icons/PenSquare.svg.js.map +0 -1
- package/dist/avenir.css +0 -44
- package/dist/components/button/BaseButton/BaseButton.module.css.js +0 -4
- package/dist/components/button/BaseButton/BaseButton.module.css.js.map +0 -1
- package/dist/components/button/BaseButton.d.ts +0 -21
- package/dist/components/button/BaseButton.d.ts.map +0 -1
- package/dist/components/button/Button/Button.module.css.js +0 -4
- package/dist/components/button/Button/Button.module.css.js.map +0 -1
- package/dist/components/button/Button.d.ts +0 -13
- package/dist/components/button/Button.d.ts.map +0 -1
- package/dist/components/button/Button.stories.d.ts +0 -11
- package/dist/components/button/Button.stories.d.ts.map +0 -1
- package/dist/components/button/PlainButton/PlainButton.module.css.js +0 -4
- package/dist/components/button/PlainButton/PlainButton.module.css.js.map +0 -1
- package/dist/components/button/PlainButton.d.ts +0 -11
- package/dist/components/button/PlainButton.d.ts.map +0 -1
- package/dist/components/button/PlainButton.stories.d.ts +0 -20
- package/dist/components/button/PlainButton.stories.d.ts.map +0 -1
- package/dist/components/button/SocialButton/SocialButton.module.css.js +0 -4
- package/dist/components/button/SocialButton/SocialButton.module.css.js.map +0 -1
- package/dist/components/button/types.d.ts +0 -194
- package/dist/components/button/types.d.ts.map +0 -1
- package/dist/components/button/types.js +0 -43
- package/dist/components/button/types.js.map +0 -1
- package/dist/components/icon/Icon.d.ts +0 -33
- package/dist/components/icon/Icon.d.ts.map +0 -1
- package/dist/components/icon/Icon.js +0 -39
- package/dist/components/icon/Icon.js.map +0 -1
- package/dist/components/icon/index.d.ts +0 -2
- package/dist/components/icon/index.d.ts.map +0 -1
- package/dist/components/icon.js +0 -11
- package/dist/components/icon.js.map +0 -1
- package/dist/components/input/PasswordInput/PasswordInput.modules.css.js +0 -4
- package/dist/components/input/PasswordInput/PasswordInput.modules.css.js.map +0 -1
- package/dist/components/input/SelectablePill/SelectablePill.module.css.js +0 -4
- package/dist/components/input/SelectablePill/SelectablePill.module.css.js.map +0 -1
- package/dist/components/layout/Popup/Popup.d.ts.map +0 -1
- package/dist/components/layout/Popup/Popup.js.map +0 -1
- package/dist/components/layout/Popup/Popup.module.css.js +0 -4
- package/dist/components/layout/Popup/Popup.stories.d.ts.map +0 -1
- package/dist/components/layout/Popup/index.d.ts.map +0 -1
- package/dist/components/layout/Popup/types.d.ts.map +0 -1
- package/dist/components/link/Link.d.ts +0 -8
- package/dist/components/link/Link.d.ts.map +0 -1
- package/dist/components/link/Link.js +0 -19
- package/dist/components/link/Link.js.map +0 -1
- package/dist/components/link/Link.module.css.js +0 -4
- package/dist/components/link/Link.module.css.js.map +0 -1
- package/dist/components/link/TextLink.d.ts +0 -6
- package/dist/components/link/TextLink.d.ts.map +0 -1
- package/dist/components/link/TextLink.stories.d.ts +0 -12
- package/dist/components/link/TextLink.stories.d.ts.map +0 -1
- package/dist/components/link/index.d.ts +0 -2
- package/dist/components/link/index.d.ts.map +0 -1
- package/dist/components/link/types.d.ts +0 -37
- package/dist/components/link/types.d.ts.map +0 -1
- package/dist/components/text/Text/Text.d.ts.map +0 -1
- package/dist/components/text/Text/Text.js +0 -42
- package/dist/components/text/Text/Text.js.map +0 -1
- package/dist/components/text/Text/Text.stories.d.ts.map +0 -1
- package/dist/components/text/Text/constants.d.ts.map +0 -1
- package/dist/components/text/Text/constants.js.map +0 -1
- package/dist/components/text/Text/index.d.ts +0 -4
- package/dist/components/text/Text/index.d.ts.map +0 -1
- package/dist/components/text/Text/types.d.ts.map +0 -1
- package/dist/components/text/Text/typography.module.css.js +0 -4
- package/dist/components/text/Text/typography.module.css.js.map +0 -1
- package/dist/components/typography/Icons/Icon.d.ts +0 -22
- package/dist/components/typography/Icons/Icon.d.ts.map +0 -1
- package/dist/components/typography/Icons/Icon.js +0 -34
- package/dist/components/typography/Icons/Icon.js.map +0 -1
- package/dist/components/typography/Icons/Icon.module.css.js +0 -4
- package/dist/components/typography/Icons/Icon.module.css.js.map +0 -1
- package/dist/components/typography/Icons/index.d.ts +0 -208
- package/dist/components/typography/Icons/index.d.ts.map +0 -1
- package/dist/components/typography/Icons/types.d.ts +0 -5
- package/dist/components/typography/Icons/types.d.ts.map +0 -1
- package/dist/components/typography/Text/Text.d.ts +0 -3
- package/dist/components/typography/Text/Text.d.ts.map +0 -1
- package/dist/components/typography/Text/Text.js +0 -24
- package/dist/components/typography/Text/Text.js.map +0 -1
- package/dist/components/typography/Text/Text.stories.d.ts +0 -12
- package/dist/components/typography/Text/Text.stories.d.ts.map +0 -1
- package/dist/components/typography/Text/constants.d.ts +0 -3
- package/dist/components/typography/Text/constants.d.ts.map +0 -1
- package/dist/components/typography/Text/constants.js +0 -36
- package/dist/components/typography/Text/constants.js.map +0 -1
- package/dist/components/typography/Text/index.d.ts +0 -3
- package/dist/components/typography/Text/index.d.ts.map +0 -1
- package/dist/components/typography/Text/types.d.ts +0 -19
- package/dist/components/typography/Text/types.d.ts.map +0 -1
- package/dist/components/typography/Text/typography.module.css.js +0 -4
- package/dist/components/typography/Text/typography.module.css.js.map +0 -1
- package/dist/components/typography/index.d.ts +0 -4
- package/dist/components/typography/index.d.ts.map +0 -1
- package/dist/d2608cfebdf74ed2.svg +0 -21
- package/dist/foundations/color/colors.stories.d.ts +0 -7
- package/dist/foundations/color/colors.stories.d.ts.map +0 -1
- package/dist/icons/icons.d.ts +0 -189
- package/dist/icons/icons.d.ts.map +0 -1
- package/dist/index.es.js +0 -6383
- package/dist/index.es.js.map +0 -1
- package/dist/storybook/colors.stories.d.ts +0 -7
- package/dist/storybook/colors.stories.d.ts.map +0 -1
- package/dist/storybook/components/CardLink.d.ts +0 -10
- package/dist/storybook/components/CardLink.d.ts.map +0 -1
- package/dist/storybook/components/ColorPalette/ColorPalette.d.ts +0 -7
- package/dist/storybook/components/ColorPalette/ColorPalette.d.ts.map +0 -1
- package/dist/storybook/components/ColorPalette/index.d.ts +0 -2
- package/dist/storybook/components/ColorPalette/index.d.ts.map +0 -1
- package/dist/storybook/components/ColorSwatch/ColorSwatch.d.ts +0 -8
- package/dist/storybook/components/ColorSwatch/ColorSwatch.d.ts.map +0 -1
- package/dist/storybook/components/ColorSwatch/index.d.ts +0 -2
- package/dist/storybook/components/ColorSwatch/index.d.ts.map +0 -1
- package/dist/styles/theme.d.ts +0 -3
- package/dist/styles/theme.d.ts.map +0 -1
- package/dist/styles/types.d.ts +0 -55
- package/dist/styles/types.d.ts.map +0 -1
- package/dist/types/colors.d.ts +0 -2
- package/dist/types/colors.d.ts.map +0 -1
- package/dist/types/styles.d.ts +0 -19
- package/dist/types/styles.d.ts.map +0 -1
- /package/dist/components/{layout/Popup → popup}/Popup.d.ts +0 -0
- /package/dist/components/{layout/Popup → popup}/Popup.module.css.js.map +0 -0
- /package/dist/components/{layout/Popup → popup}/Popup.stories.d.ts +0 -0
- /package/dist/components/{layout/Popup → popup}/index.d.ts +0 -0
- /package/dist/components/text/{Text/Text.d.ts → Text.d.ts} +0 -0
- /package/dist/components/text/{Text/Text.stories.d.ts → Text.stories.d.ts} +0 -0
- /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":";;AAKA;AACA,IAAM,OAAO,GAAG,UACd,QAAuD,EACvD,SAAwD,EACxD,UAAkB,EAClB,SAAiB,EAAA;AAEjB,IAAA,IAAI,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;QACzC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAA;QAC/C,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;QAE7C,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAA;QAC9C,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAA;AAC7C,KAAA;AACH,CAAC,CAAA;AAED;;;AAGG;AACI,IAAM,aAAa,GAAG,UAC3B,QAAuD,EACvD,SAAwD,EACxD,cAAsB,EACtB,YAAoB,EACpB,YAAgB,EAAA;AAAhB,IAAA,IAAA,YAAA,KAAA,KAAA,CAAA,EAAA,EAAA,YAAgB,GAAA,CAAA,CAAA,EAAA;;IAGhB,IAAM,IAAI,GAAG,WAAW,CAAC,YAAA;QACvB,IAAM,aAAa,GAAG,CAAC,YAAY,GAAG,cAAc,IAAI,YAAY,CAAA;QACpE,OAAO,CACL,QAAQ,EACR,SAAS,EACT,YAAa,CAAA,MAAA,CAAA,aAAa,EAAU,UAAA,CAAA,EACpC,iBAAiB,CAClB,CAAA;AACH,KAAC,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;AAErE;;;;;AAKG;IACH,IAAM,KAAK,GAAG,WAAW,CAAC,YAAA;QACxB,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,YAAA,IAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAA;YAC/C,IAAM,cAAc,GAAG,MAAM;AAC1B,iBAAA,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC;iBAClC,gBAAgB,CAAC,WAAW,CAAC,CAAA;AAEhC,YAAA,IAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9D,YAAA,IAAM,eAAe,GAAG,aAAa,GAAG,UAAU,CAAA;AAClD,YAAA,OAAO,CACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,YAAA,CAAA,MAAA,CAAa,eAAe,GAAG,GAAG,EAAA,IAAA,CAAI,CACvC,CAAA;AACF,SAAA;AACH,KAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;;AAGzB,IAAA,IAAM,UAAU,GAAG,WAAW,CAC5B,UAAC,eAAuB,EAAA;AACtB,QAAA,OAAO,CACL,QAAQ,EACR,SAAS,EACT,MAAM,EACN,YAAA,CAAA,MAAA,CAAa,eAAe,GAAG,GAAG,EAAA,IAAA,CAAI,CACvC,CAAA;AACH,KAAC,EACD,CAAC,QAAQ,EAAE,SAAS,CAAC,CACtB,CAAA;AAED;;;AAGG;AACH,IAAA,IAAM,QAAQ,GAAG,MAAM,EAAY,CAAA;IACnC,QAAQ,CAAC,OAAO,GAAG,EAAE,cAAc,gBAAA,EAAE,YAAY,EAAA,YAAA,EAAE,CAAA;AACnD,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,IAAM,aAAa,GAAG,YAAA;YACpB,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,gBAAA,UAAU,CACR,QAAQ,CAAC,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,CAChE,CAAA;AACF,aAAA;AACH,SAAC,CAAA;AACD,QAAA,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;AAC/C,QAAA,OAAO,YAAM,EAAA,OAAA,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAlD,EAAkD,CAAA;AACjE,KAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAA;IAE1B,OAAO,EAAE,IAAI,EAAA,IAAA,EAAE,KAAK,OAAA,EAAE,UAAU,EAAA,UAAA,EAAE,CAAA;AACpC;;;;"}
|
|
@@ -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 @@
|
|
|
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
|
|
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":";;;;;;;;;;;AAaA;;;AAGG;AACI,IAAM,gBAAgB,GAAG,UAC9B,KAA+B,EAAA;;IAE/B,IAAM,UAAU,GAAG,MAAM,CACvB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC,EAAA,EAAK,OAAA,SAAS,EAAoB,GAAA,CAAC,CACxD,CAAA;AACK,IAAA,IAAA,KAA0B,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAvD,QAAQ,QAAA,EAAE,WAAW,QAAkC,CAAA;IACxD,IAAA,EAAA,GAAsC,QAAQ,CAAC,CAAC,CAAC,EAAhD,cAAc,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,iBAAiB,GAAA,EAAA,CAAA,CAAA,CAAe,CAAA;AAEvD,IAAA,IAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,IAAI,QAAQ,CAAA;IAEjD,IAAM,aAAa,GAAG,UAAC,MAAS,EAAA;;QAE9B,IAAI,KAAK,CAAC,cAAc;AAAE,YAAA,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QACtD,WAAW,CAAC,MAAM,CAAC,CAAA;AACrB,KAAC,CAAA;AAEK,IAAA,IAAA,EAAqB,GAAA,SAAS,CAAC,YAAA,EAAM,QAAC;QAC1C,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;KAClC,EAAC,EAAA,CAAC,EAFI,QAAQ,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,MAAM,GAAA,EAAA,CAAA,CAAA,CAEpB,CAAA;AAEH,IAAA,SAAS,CAAC,YAAA;QACR,iBAAiB,CACf,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,UAAC,UAAU,EAAE,GAAG,EAAA;;YACxC,IAAM,IAAI,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,qBAAqB,EAAE,CAAA;AACjD,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,CAAC,EAAE,UAAU,CAAC,CAAA;AAC/C,SAAC,EAAE,CAAC,CAAC,CACN,CAAA;KACF,EAAE,EAAE,CAAC,CAAA;;IAGA,IAAA,EAAA,GAAwB,UAAU,CAAC;AACvC,QAAA,UAAU,EAAE,IAAI;AAChB,QAAA,QAAQ,EAAE,cAAc;AACzB,KAAA,CAAC,EAHK,WAAW,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,MAAM,QAGxB,CAAA;IAEI,IAAA,EAAA,GAAkC,QAAQ,CAAC,KAAK,CAAC,EAAhD,YAAY,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,eAAe,GAAA,EAAA,CAAA,CAAA,CAAmB,CAAA;AACvD,IAAA,SAAS,CAAC,YAAA;AACR,QAAA,UAAU,CAAC,YAAA;AACT,YAAA,eAAe,CAAC,CAAC,YAAY,CAAC,CAAA;AAChC,SAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAA;;KAE9B,EAAE,EAAE,CAAC,CAAA;AAEN,IAAA,SAAS,CAAC,YAAA;;QACR,IAAI,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAC1C,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,GAAG,KAAK,cAAc,CAA7B,EAA6B,CAC1C,CAAA;QACD,IAAI,cAAc,KAAK,CAAC,CAAC;YAAE,cAAc,GAAG,CAAC,CAAA;QAEvC,IAAA,EAAA,GAA2C,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,UAAU,CAAC,OAAO,CACjE,cAAc,CACf,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,WAAW,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAF1B,KAAK,GAAA,EAAA,CAAA,WAAA,EAAc,IAAI,GAAA,EAAA,CAAA,UAEG,CAAA;QAE/C,MAAM,CAAC,KAAK,CAAC;AACX,YAAA,EAAE,EAAE,EAAE,IAAI,EAAE,EAAG,CAAA,MAAA,CAAA,IAAI,EAAI,IAAA,CAAA,EAAE,KAAK,EAAE,EAAG,CAAA,MAAA,CAAA,KAAK,OAAI,EAAE;AAC/C,SAAA,CAAC,CAAA;AACJ,KAAC,EAAE;AACD,QAAA,KAAK,CAAC,OAAO;AACb,QAAA,KAAK,CAAC,UAAU;QAChB,cAAc;AACd,QAAA,KAAK,CAAC,QAAQ;QACd,MAAM;QACN,QAAQ;QACR,UAAU;QACV,MAAM;QACN,YAAY;AACb,KAAA,CAAC,CAAA;AAEF,IAAA,QACEA,IAAA,CAAA,KAAA,EAAA,QAAA,CAAA,EACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,GAAA,EAAA,GAAA,EAAA;YACxC,EAAC,CAAA,MAAM,CAAC,kBAAkB,CAAA,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS;AAC9C,YAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAG,GAAA,KAAK,CAAC,QAAQ;AACjC,YAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAG,GAAA,KAAK,CAAC,QAAQ;AACjC,YAAA,EAAA,EAAA,EACF,IAAI,EAAC,YAAY,EACL,YAAA,EAAA,KAAK,CAAC,KAAK,EAAA,iBAAA,EACN,KAAK,CAAC,iBAAiB,CAAC,EAAA,EAAA,EAAA,QAAA,EAAA,CAEzCC,IAAC,QAAQ,CAAC,GAAG,EAAC,EAAA,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAI,CAAA,EACjE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,GAAG,EAAA;;;gBAC7B,IAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAA;gBAC1D,QACED,IAAC,CAAA,QAAQ,EACP,EAAA,QAAA,EAAA,CAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,CAAA,EACE,GAAG,EACD,MAAM,CAAC,GAAG,KAAK,cAAc;AAC3B,kCAAE,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;AACnD,kCAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAE7B,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,GAAA,EAAA,GAAA,EAAA;gCACtB,EAAC,CAAA,MAAM,CAAC,YAAY,CAAA,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS;gCACxC,EAAC,CAAA,MAAM,CAAC,QAAQ,CAAG,GAAA,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;AACrD,gCAAA,EAAA,CAAC,MAAM,CAAC,QAAQ,CAAG,GAAA,KAAK,CAAC,QAAQ;AACjC,gCAAA,EAAA,EAAA,EACF,KAAK,EACH,KAAK,CAAC,UAAU,IAAI,cAAc;AAChC,kCAAE,EAAE,KAAK,EAAE,EAAG,CAAA,MAAA,CAAA,cAAc,OAAI,EAAE;kCAChC,SAAS,EAGd,EAAA,EAAA,QAAA,EAAA,CAAA,MAAM,CAAC,IAAI,EACZC,eACE,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,MAAM,CAAC,GAAG,KAAK,cAAc,EACtC,QAAQ,EAAE,YAAA;AACR,wCAAA,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAC3B,qCAAC,EACD,QAAQ,EAAE,gBAAgB,EAC1B,CAAA,EACFA,GAAC,CAAA,IAAI,EACH,QAAA,CAAA,EAAA,KAAK,EACH,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAAK,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAC,EAE9D,GAAG,EAAE;wCACH,MAAM,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS;qCAC9C,EAEA,EAAA,EAAA,QAAA,EAAA,MAAM,CAAC,IAAI,EACP,CAAA,CAAA,CAAA,EAAA,CAAA,CACD,EACP,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAC/BA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,GAAA,EAAA,GAAA,EAAA;gCAC5B,EAAC,CAAA,MAAM,CAAC,SAAS,CAAA;;gCAEf,cAAc,KAAK,MAAM,CAAC,GAAG;;AAE7B,oCAAA,GAAG,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;;oCAEhC,cAAc,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG;oCAC/C,EACF,CAAA,IACA,IAAI,CAlDK,EAAA,EAAA,MAAM,CAAC,GAAG,CAmDd,EACZ;aACF,CAAC,CACE,EAAA,CAAA,CAAA,EACP;AACH;;;;"}
|
|
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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/skeleton/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA"}
|