import * as React from "react" import Image from "next/image" import { Album, CreditCard, Globe, Keyboard, LayoutGrid, Library, ListMusic, LogOut, Mail, MessageSquare, Mic, Mic2, Music, Music2, PlayCircle, Plus, PlusCircle, Podcast, Radio, Settings, User, UserPlus, Users, } from "lucide-react" import { cn } from "@/lib/utils" import { AspectRatio } from "@/components/ui/aspect-ratio" import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" import { Button } from "@/components/ui/button" import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, } from "@/components/ui/context-menu" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog" import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Menubar, MenubarCheckboxItem, MenubarContent, MenubarItem, MenubarLabel, MenubarMenu, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, } from "@/components/ui/menubar" import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area" import { Separator } from "@/components/ui/separator" import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" const playlists = [ "Recently Added", "Recently Played", "Top Songs", "Top Albums", "Top Artists", "Logic Discography", "Bedtime Beats", "Feeling Happy", "I miss Y2K Pop", "Runtober", "Mellow Days", "Eminem Essentials", ] interface Album { name: string artist: string cover: string } const listenNowAlbums: Album[] = [ { name: "Async Awakenings", artist: "Nina Netcode", cover: "https://images.unsplash.com/photo-1547355253-ff0740f6e8c1?w=300&dpr=2&q=80", }, { name: "The Art of Reusability", artist: "Lena Logic", cover: "https://images.unsplash.com/photo-1576075796033-848c2a5f3696?w=300&dpr=2&q=80", }, { name: "Stateful Symphony", artist: "Beth Binary", cover: "https://images.unsplash.com/photo-1606542758304-820b04394ac2?w=300&dpr=2&q=80", }, { name: "React Rendezvous", artist: "Ethan Byte", cover: "https://images.unsplash.com/photo-1598295893369-1918ffaf89a2?w=300&dpr=2&q=80", }, ] const madeForYouAlbums: Album[] = [ { name: "Async Awakenings", artist: "Nina Netcode", cover: "https://images.unsplash.com/photo-1580428180098-24b353d7e9d9?w=300&dpr=2&q=80", }, { name: "Stateful Symphony", artist: "Beth Binary", cover: "https://images.unsplash.com/photo-1606542758304-820b04394ac2?w=300&dpr=2&q=80", }, { name: "Stateful Symphony", artist: "Beth Binary", cover: "https://images.unsplash.com/photo-1598062548091-a6fb6a052562?w=300&dpr=2&q=80", }, { name: "The Art of Reusability", artist: "Lena Logic", cover: "https://images.unsplash.com/photo-1626759486966-c067e3f79982?w=300&dpr=2&q=80", }, { name: "Thinking Components", artist: "Lena Logic", cover: "https://images.unsplash.com/photo-1576075796033-848c2a5f3696?w=300&dpr=2&q=80", }, { name: "Functional Fury", artist: "Beth Binary", cover: "https://images.unsplash.com/photo-1606542758304-820b04394ac2?w=300&dpr=2&q=80", }, { name: "React Rendezvous", artist: "Ethan Byte", cover: "https://images.unsplash.com/photo-1598295893369-1918ffaf89a2?w=300&dpr=2&q=80", }, ] export function AppleMusicDemo() { return (
Music About Music Preferences... ⌘, Hide Music... ⌘H Hide Others... ⇧⌘H Quit Music ⌘Q File New Playlist ⌘N Playlist from Selection ⇧⌘N Smart Playlist... ⌥⌘N Playlist Folder Genius Playlist Open Stream URL... ⌘U Close Window ⌘W Library Update Cloud Library Update Genius Organize Library... Export Library... Import Playlist... Export Playlist... Show Duplicate Items Get Album Artwork Get Track Names Import... ⌘O Burn Playlist to Disc... Show in Finder ⇧⌘R{" "} Convert Page Setup... Print... ⌘P Edit Undo ⌘Z Redo ⇧⌘Z Cut ⌘X Copy ⌘C Paste ⌘V Select All ⌘A Deselect All ⇧⌘A Smart Dictation...{" "} Emoji & Symbols{" "} View Show Playing Next Show Lyrics Show Status Bar Hide Sidebar Enter Full Screen Account Switch Account Andy Benoit Luis Manage Famliy... Add Account...
Music Podcasts Live

Welcome back

My Account Profile ⇧⌘P Billing ⌘B Settings ⌘S Keyboard shortcuts ⌘K Team Invite users Email Message More... Log out ⇧⌘Q

Listen Now

Top picks for you. Updated daily.

{listenNowAlbums.map((album) => ( ))}

Made for You

Your personal playlists. Updated daily.

{madeForYouAlbums.map((album) => ( ))}

New Episodes

Your favorite podcasts. Updated daily.

No episodes added

You have not added any podcasts. Add one below.

Add Podcast Copy and paste the podcast feed URL to import.
) } interface AlbumArtworkProps extends React.HTMLAttributes { album: Album aspectRatio?: number } function AlbumArtwork({ album, aspectRatio = 3 / 4, className, ...props }: AlbumArtworkProps) { return (
{album.name} Add to Library Add to Playlist New Playlist {playlists.map((playlist) => ( {playlist} ))} Play Next Play Later Create Station Like Share

{album.name}

{album.artist}

) } interface DemoIndicatorProps extends React.HTMLAttributes {} export function DemoIndicator({ className }: DemoIndicatorProps) { return ( ) }