Merge branch 'dev' into dependabot/npm_and_yarn/react-resizable-panels-3.0.4

This commit is contained in:
2025-08-16 16:04:06 -05:00
3 changed files with 20 additions and 21 deletions

View File

@@ -1,15 +1,13 @@
<p align="left" style="display: flex; align-items: center; gap: 12px;"> <p align="center">
<img src="https://github.com/sillyangel/mice/blob/main/public/icon-512.png?raw=true" alt="Mice Logo" width="64" style="border-radius: 12px;" /> <img src="https://github.com/sillyangel/mice/blob/main/public/icon-512.png?raw=true" alt="Mice Logo" width="120" />
<strong style="font-size: 2rem;">Mice | Navidrome Client</strong>
</p> </p>
<h1 align="center"><strong>Mice | Navidrome Client</strong></h1>
#
> Project based on [shadcn/ui](https://github.com/shadcn-ui/ui)'s music template. > Project based on [shadcn/ui](https://github.com/shadcn-ui/ui)'s music template.
<!-- This is a music streaming web application built with [Next.js](https://nextjs.org/) and [shadcn/ui](https://ui.shadcn.com/), now powered by **Navidrome** for a complete self-hosted music streaming experience. --> <!-- this looks like "ai" lol but its not -->
This is a "Modern" Navidrome (or Subsonic) client built with [Next.js](https://nextjs.org/) and [shadcn/ui](https://ui.shadcn.com/). It creates a beautiful, responsive music streaming web application that connects to your Navidrome server, and fully able to self-host. This is a "Modern" Navidrome (or Subsonic) client built with [Next.js](https://nextjs.org/) and [shadcn/ui](https://ui.shadcn.com/). It creates a beautiful, responsive music streaming web application that connects to your Navidrome server, and fully able to self-host using docker!
## Features ## Features
@@ -20,7 +18,8 @@ This is a "Modern" Navidrome (or Subsonic) client built with [Next.js](https://n
- **Search** - Find music across your entire library - **Search** - Find music across your entire library
- **Audio Player** with queue management - **Audio Player** with queue management
- **Scrobbling** - Track your listening history - **Scrobbling** - Track your listening history
<!-- - **Playlist Management** - Create and manage playlists --> - **Playlist Management** - Create and manage playlists
- **Caching** - Cache/Offline save your server
### Preview ### Preview
![preview](https://github.com/sillyangel/mice/blob/main/public/home-preview.png?raw=true) ![preview](https://github.com/sillyangel/mice/blob/main/public/home-preview.png?raw=true)
@@ -117,7 +116,7 @@ docker run -p 3000:3000 \
sillyangel/mice:latest sillyangel/mice:latest
``` ```
📖 **For detailed Docker configuration, environment variables, troubleshooting, and advanced setups, see [DOCKER.md](./DOCKER.md)** **For detailed Docker configuration, environment variables, troubleshooting, and advanced setups, see [DOCKER.md](./DOCKER.md)**
## Tech Stack ## Tech Stack

View File

@@ -13,7 +13,7 @@
"@dnd-kit/core": "^6.3.1", "@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0", "@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2", "@dnd-kit/utilities": "^3.2.2",
"@hookform/resolvers": "^5.2.0", "@hookform/resolvers": "^5.2.1",
"@radix-ui/react-accordion": "^1.2.11", "@radix-ui/react-accordion": "^1.2.11",
"@radix-ui/react-alert-dialog": "^1.1.14", "@radix-ui/react-alert-dialog": "^1.1.14",
"@radix-ui/react-aspect-ratio": "^1.1.7", "@radix-ui/react-aspect-ratio": "^1.1.7",
@@ -63,7 +63,7 @@
"react-icons": "^5.3.0", "react-icons": "^5.3.0",
"react-resizable-panels": "^3.0.4", "react-resizable-panels": "^3.0.4",
"recharts": "^3.0.2", "recharts": "^3.0.2",
"sonner": "^2.0.5", "sonner": "^2.0.7",
"tailwind-merge": "^3.3.1", "tailwind-merge": "^3.3.1",
"tailwindcss-animate": "^1.0.7", "tailwindcss-animate": "^1.0.7",
"vaul": "^1.1.2", "vaul": "^1.1.2",

20
pnpm-lock.yaml generated
View File

@@ -22,8 +22,8 @@ importers:
specifier: ^3.2.2 specifier: ^3.2.2
version: 3.2.2(react@19.1.0) version: 3.2.2(react@19.1.0)
'@hookform/resolvers': '@hookform/resolvers':
specifier: ^5.2.0 specifier: ^5.2.1
version: 5.2.0(react-hook-form@7.60.0(react@19.1.0)) version: 5.2.1(react-hook-form@7.60.0(react@19.1.0))
'@radix-ui/react-accordion': '@radix-ui/react-accordion':
specifier: ^1.2.11 specifier: ^1.2.11
version: 1.2.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) version: 1.2.11(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
@@ -172,8 +172,8 @@ importers:
specifier: ^3.0.2 specifier: ^3.0.2
version: 3.0.2(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react-is@17.0.2)(react@19.1.0)(redux@5.0.1) version: 3.0.2(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react-is@17.0.2)(react@19.1.0)(redux@5.0.1)
sonner: sonner:
specifier: ^2.0.5 specifier: ^2.0.7
version: 2.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) version: 2.0.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
tailwind-merge: tailwind-merge:
specifier: ^3.3.1 specifier: ^3.3.1
version: 3.3.1 version: 3.3.1
@@ -315,8 +315,8 @@ packages:
'@floating-ui/utils@0.2.10': '@floating-ui/utils@0.2.10':
resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==}
'@hookform/resolvers@5.2.0': '@hookform/resolvers@5.2.1':
resolution: {integrity: sha512-3YI+VqxJQH6ryRWG+j3k+M19Wf37LeSKJDg6Vdjq6makLOqZGYn77iTaYLMLpVi/uHc1N6OTCmcxJwhOQV979g==} resolution: {integrity: sha512-u0+6X58gkjMcxur1wRWokA7XsiiBJ6aK17aPZxhkoYiK5J+HcTx0Vhu9ovXe6H+dVpO6cjrn2FkJTryXEMlryQ==}
peerDependencies: peerDependencies:
react-hook-form: ^7.55.0 react-hook-form: ^7.55.0
@@ -3113,8 +3113,8 @@ packages:
simple-swizzle@0.2.2: simple-swizzle@0.2.2:
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
sonner@2.0.5: sonner@2.0.7:
resolution: {integrity: sha512-YwbHQO6cSso3HBXlbCkgrgzDNIhws14r4MO87Ofy+cV2X7ES4pOoAK3+veSmVTvqNx1BWUxlhPmZzP00Crk2aQ==} resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==}
peerDependencies: peerDependencies:
react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc
@@ -3465,7 +3465,7 @@ snapshots:
'@floating-ui/utils@0.2.10': {} '@floating-ui/utils@0.2.10': {}
'@hookform/resolvers@5.2.0(react-hook-form@7.60.0(react@19.1.0))': '@hookform/resolvers@5.2.1(react-hook-form@7.60.0(react@19.1.0))':
dependencies: dependencies:
'@standard-schema/utils': 0.3.0 '@standard-schema/utils': 0.3.0
react-hook-form: 7.60.0(react@19.1.0) react-hook-form: 7.60.0(react@19.1.0)
@@ -6372,7 +6372,7 @@ snapshots:
dependencies: dependencies:
is-arrayish: 0.3.2 is-arrayish: 0.3.2
sonner@2.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): sonner@2.0.7(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies: dependencies:
react: 19.1.0 react: 19.1.0
react-dom: 19.1.0(react@19.1.0) react-dom: 19.1.0(react@19.1.0)