diff --git a/apps/www/package.json b/apps/www/package.json index 99d95ce3..e521e75e 100644 --- a/apps/www/package.json +++ b/apps/www/package.json @@ -38,7 +38,7 @@ "postcss": "^8.4.24", "radix-vue": "^0.1.30", "tailwind-merge": "^1.14.0", - "tailwindcss": "^3.3.2", + "tailwindcss": "^3.3.3", "typescript": "^5.0.2", "unplugin-icons": "^0.16.6", "vite": "^4.3.9", diff --git a/apps/www/src/content/examples/music.md b/apps/www/src/content/examples/music.md new file mode 100644 index 00000000..77a8b583 --- /dev/null +++ b/apps/www/src/content/examples/music.md @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/apps/www/src/examples/music/Example.vue b/apps/www/src/examples/music/Example.vue new file mode 100644 index 00000000..6705b279 --- /dev/null +++ b/apps/www/src/examples/music/Example.vue @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + Music + + + Podcasts + + + Live + + + + + + Add music + + + + + + + + Listen Now + + + Top picks for you. Updated daily. + + + + + + + + + + + + + + + Made for You + + + Your personal playlists. Updated daily. + + + + + + + + + + + + + + + + + New Episodes + + + Your favorite podcasts. Updated daily. + + + + + + + + + + + + + + diff --git a/apps/www/src/examples/music/components/AlbumArtwork.vue b/apps/www/src/examples/music/components/AlbumArtwork.vue new file mode 100644 index 00000000..7ea2d92e --- /dev/null +++ b/apps/www/src/examples/music/components/AlbumArtwork.vue @@ -0,0 +1,91 @@ + + + + + + + + + + + + Add to Library + + Add to Playlist + + + + New Playlist + + + + + + + {{ playlist }} + + + + + Play Next + Play Later + Create Station + + Like + Share + + + + + {{ album.name }} + + + {{ album.artist }} + + + + diff --git a/apps/www/src/examples/music/components/Menu.vue b/apps/www/src/examples/music/components/Menu.vue new file mode 100644 index 00000000..f06d1e26 --- /dev/null +++ b/apps/www/src/examples/music/components/Menu.vue @@ -0,0 +1,230 @@ + + + + + + + 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... + + + + + diff --git a/apps/www/src/examples/music/components/PodcastEmptyPlaceholder.vue b/apps/www/src/examples/music/components/PodcastEmptyPlaceholder.vue new file mode 100644 index 00000000..fe1dd4b8 --- /dev/null +++ b/apps/www/src/examples/music/components/PodcastEmptyPlaceholder.vue @@ -0,0 +1,66 @@ + + + + + + + + + + + + + No episodes added + + + You have not added any podcasts. Add one below. + + + + + Add Podcast + + + + + Add Podcast + + Copy and paste the podcast feed URL to import. + + + + + Podcast URL + + + + + Import Podcast + + + + + + diff --git a/apps/www/src/examples/music/components/Sidebar.vue b/apps/www/src/examples/music/components/Sidebar.vue new file mode 100644 index 00000000..e6687359 --- /dev/null +++ b/apps/www/src/examples/music/components/Sidebar.vue @@ -0,0 +1,204 @@ + + + + + + + + Discover + + + + + + + + Listen Now + + + + + + + + + Browse + + + + + + + + + + Radio + + + + + + Library + + + + + + + + + + + Playlists + + + + + + + Songs + + + + + + + Made for You + + + + + + + Artists + + + + + + + + + Albums + + + + + + Playlists + + + + + + + + + + + + {{ playlist }} + + + + + + + diff --git a/apps/www/src/examples/music/data/albums.ts b/apps/www/src/examples/music/data/albums.ts new file mode 100644 index 00000000..78ddb478 --- /dev/null +++ b/apps/www/src/examples/music/data/albums.ts @@ -0,0 +1,71 @@ +export interface Album { + name: string + artist: string + cover: string +} + +export const listenNowAlbums: Album[] = [ + { + name: 'React Rendezvous', + artist: 'Ethan Byte', + cover: + 'https://images.unsplash.com/photo-1611348586804-61bf6c080437?w=300&dpr=2&q=80', + }, + { + name: 'Async Awakenings', + artist: 'Nina Netcode', + cover: + 'https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80', + }, + { + name: 'The Art of Reusability', + artist: 'Lena Logic', + cover: + 'https://images.unsplash.com/photo-1528143358888-6d3c7f67bd5d?w=300&dpr=2&q=80', + }, + { + name: 'Stateful Symphony', + artist: 'Beth Binary', + cover: + 'https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80', + }, +] + +export const madeForYouAlbums: Album[] = [ + { + name: 'Thinking Components', + artist: 'Lena Logic', + cover: + 'https://images.unsplash.com/photo-1615247001958-f4bc92fa6a4a?w=300&dpr=2&q=80', + }, + { + name: 'Functional Fury', + artist: 'Beth Binary', + cover: + 'https://images.unsplash.com/photo-1513745405825-efaf9a49315f?w=300&dpr=2&q=80', + }, + { + name: 'React Rendezvous', + artist: 'Ethan Byte', + cover: + 'https://images.unsplash.com/photo-1614113489855-66422ad300a4?w=300&dpr=2&q=80', + }, + { + name: 'Stateful Symphony', + artist: 'Beth Binary', + cover: + 'https://images.unsplash.com/photo-1446185250204-f94591f7d702?w=300&dpr=2&q=80', + }, + { + name: 'Async Awakenings', + artist: 'Nina Netcode', + cover: + 'https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80', + }, + { + name: 'The Art of Reusability', + artist: 'Lena Logic', + cover: + 'https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80', + }, +] diff --git a/apps/www/src/examples/music/data/playlists.ts b/apps/www/src/examples/music/data/playlists.ts new file mode 100644 index 00000000..d395ac4c --- /dev/null +++ b/apps/www/src/examples/music/data/playlists.ts @@ -0,0 +1,16 @@ +export type Playlist = (typeof playlists)[number] + +export 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', +] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8eb6f3e4..a359d836 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -70,7 +70,7 @@ importers: version: 0.268.0(vue@3.3.4) tailwindcss-animate: specifier: ^1.0.6 - version: 1.0.6(tailwindcss@3.3.2) + version: 1.0.6(tailwindcss@3.3.3) v-calendar: specifier: ^3.0.3 version: 3.0.3(@popperjs/core@2.11.8)(vue@3.3.4) @@ -118,8 +118,8 @@ importers: specifier: ^1.14.0 version: 1.14.0 tailwindcss: - specifier: ^3.3.2 - version: 3.3.2(ts-node@10.9.1) + specifier: ^3.3.3 + version: 3.3.3(ts-node@10.9.1) typescript: specifier: ^5.0.2 version: 5.0.2 @@ -4598,16 +4598,6 @@ packages: engines: {node: '>=6.0.0'} dev: false - /fast-glob@3.3.0: - resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - /fast-glob@3.3.1: resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} engines: {node: '>=8.6.0'} @@ -6261,27 +6251,27 @@ packages: enhanced-resolve: 4.5.0 dev: false - /postcss-import@15.1.0(postcss@8.4.24): + /postcss-import@15.1.0(postcss@8.4.28): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.24 + postcss: 8.4.28 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.4 - /postcss-js@4.0.1(postcss@8.4.24): + /postcss-js@4.0.1(postcss@8.4.28): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.24 + postcss: 8.4.28 - /postcss-load-config@4.0.1(postcss@8.4.24)(ts-node@10.9.1): + /postcss-load-config@4.0.1(postcss@8.4.28)(ts-node@10.9.1): resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} engines: {node: '>= 14'} peerDependencies: @@ -6294,17 +6284,17 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.24 + postcss: 8.4.28 ts-node: 10.9.1(@types/node@20.4.7)(typescript@5.2.2) yaml: 2.3.1 - /postcss-nested@6.0.1(postcss@8.4.24): + /postcss-nested@6.0.1(postcss@8.4.28): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.24 + postcss: 8.4.28 postcss-selector-parser: 6.0.13 /postcss-selector-parser@6.0.13: @@ -6967,16 +6957,16 @@ packages: resolution: {integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==} dev: true - /tailwindcss-animate@1.0.6(tailwindcss@3.3.2): + /tailwindcss-animate@1.0.6(tailwindcss@3.3.3): resolution: {integrity: sha512-4WigSGMvbl3gCCact62ZvOngA+PRqhAn7si3TQ3/ZuPuQZcIEtVap+ENSXbzWhpojKB8CpvnIsrwBu8/RnHtuw==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' dependencies: - tailwindcss: 3.3.2(ts-node@10.9.1) + tailwindcss: 3.3.3(ts-node@10.9.1) dev: false - /tailwindcss@3.3.2(ts-node@10.9.1): - resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} + /tailwindcss@3.3.3(ts-node@10.9.1): + resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} engines: {node: '>=14.0.0'} hasBin: true dependencies: @@ -6985,7 +6975,7 @@ packages: chokidar: 3.5.3 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.0 + fast-glob: 3.3.1 glob-parent: 6.0.2 is-glob: 4.0.3 jiti: 1.19.3 @@ -6994,13 +6984,12 @@ packages: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.24 - postcss-import: 15.1.0(postcss@8.4.24) - postcss-js: 4.0.1(postcss@8.4.24) - postcss-load-config: 4.0.1(postcss@8.4.24)(ts-node@10.9.1) - postcss-nested: 6.0.1(postcss@8.4.24) + postcss: 8.4.28 + postcss-import: 15.1.0(postcss@8.4.28) + postcss-js: 4.0.1(postcss@8.4.28) + postcss-load-config: 4.0.1(postcss@8.4.28)(ts-node@10.9.1) + postcss-nested: 6.0.1(postcss@8.4.28) postcss-selector-parser: 6.0.13 - postcss-value-parser: 4.2.0 resolve: 1.22.4 sucrase: 3.34.0 transitivePeerDependencies: @@ -7205,7 +7194,7 @@ packages: execa: 5.1.1 globby: 11.1.0 joycon: 3.1.1 - postcss-load-config: 4.0.1(postcss@8.4.24)(ts-node@10.9.1) + postcss-load-config: 4.0.1(postcss@8.4.28)(ts-node@10.9.1) resolve-from: 5.0.0 rollup: 3.28.1 source-map: 0.8.0-beta.0
+ Top picks for you. Updated daily. +
+ Your personal playlists. Updated daily. +
+ Your favorite podcasts. Updated daily. +
+ {{ album.artist }} +
+ You have not added any podcasts. Add one below. +