diff --git a/package.json b/package.json index 9bcd61d85..782e914aa 100644 --- a/package.json +++ b/package.json @@ -104,12 +104,14 @@ "immer": "^9.0.21", "is-electron": "^2.2.2", "lodash": "^4.17.21", + "mantine-contextmenu": "^8.2.0", "md5": "^2.3.0", "memoize-one": "^6.0.0", "motion": "^12.18.1", "mpris-service": "^2.1.2", "nanoid": "^3.3.3", "node-mpv": "github:jeffvli/Node-MPV#32b4d64395289ad710c41d481d2707a7acfc228f", + "nuqs": "^2.7.1", "overlayscrollbars": "^2.11.1", "overlayscrollbars-react": "^0.5.6", "postcss-simple-vars": "^7.0.1", @@ -124,12 +126,7 @@ "react-player": "^2.11.0", "react-router": "^6.16.0", "react-router-dom": "^6.16.0", - "react-virtualized-auto-sizer": "^1.0.17", - "react-virtuoso": "^4.14.0", - "react-window": "^1.8.9", - "react-window-infinite-loader": "^1.0.9", - "react-window-infinite-loader-v2": "npm:react-window-infinite-loader@2.0.0", - "react-window-v2": "npm:react-window@^2.1.2", + "react-window-v2": "npm:react-window@^2.2.0", "semver": "^7.5.4", "string-to-color": "^2.2.2", "swiper": "^9.3.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2739a9327..8b25729e0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -140,6 +140,9 @@ importers: lodash: specifier: ^4.17.21 version: 4.17.21 + mantine-contextmenu: + specifier: ^8.2.0 + version: 8.2.0(@mantine/core@8.2.8(@mantine/hooks@8.2.8(react@19.1.0))(@types/react@18.3.23)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.2.8(react@19.1.0))(clsx@2.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) md5: specifier: ^2.3.0 version: 2.3.0 @@ -158,6 +161,9 @@ importers: node-mpv: specifier: github:jeffvli/Node-MPV#32b4d64395289ad710c41d481d2707a7acfc228f version: https://codeload.github.com/jeffvli/Node-MPV/tar.gz/32b4d64395289ad710c41d481d2707a7acfc228f + nuqs: + specifier: ^2.7.1 + version: 2.7.1(react-router-dom@6.30.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-router@6.30.1(react@19.1.0))(react@19.1.0) overlayscrollbars: specifier: ^2.11.1 version: 2.11.3 @@ -200,24 +206,9 @@ importers: react-router-dom: specifier: ^6.16.0 version: 6.30.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-virtualized-auto-sizer: - specifier: ^1.0.17 - version: 1.0.26(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-virtuoso: - specifier: ^4.14.0 - version: 4.14.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-window: - specifier: ^1.8.9 - version: 1.8.11(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-window-infinite-loader: - specifier: ^1.0.9 - version: 1.0.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - react-window-infinite-loader-v2: - specifier: npm:react-window-infinite-loader@2.0.0 - version: react-window-infinite-loader@2.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react-window-v2: - specifier: npm:react-window@^2.1.2 - version: react-window@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + specifier: npm:react-window@^2.2.0 + version: react-window@2.2.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) semver: specifier: ^7.5.4 version: 7.7.2 @@ -1310,11 +1301,12 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.11': - resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] + '@standard-schema/spec@1.0.0': + resolution: {integrity: sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==} + + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} '@esbuild/openbsd-x64@0.25.4': resolution: {integrity: sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==} @@ -3363,9 +3355,17 @@ packages: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + mantine-contextmenu@8.2.0: + resolution: {integrity: sha512-GKxC13wTnwCmToh6UvQtXN/vVbdbnScwXYtgzyKOzVGGEPBDmkqhKjG/IYq+JqSIqf/t9WoVHPm/81Jqi5FJgg==} + peerDependencies: + '@mantine/core': '>=8.2' + '@mantine/hooks': '>=8.2' + clsx: '>=2' + react: '>=19' + react-dom: '>=19' + + map-stream@0.1.0: + resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} @@ -3588,11 +3588,29 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + nuqs@2.7.1: + resolution: {integrity: sha512-3WDgrOZWat0QyOheyljTlXK4TGFh1JKSLvXMgusMDcTyMJXe1xL8+q3zuQ6ke1vyeGnpJwztlZl2aDkMW2eIUg==} + peerDependencies: + '@remix-run/react': '>=2' + '@tanstack/react-router': ^1 + next: '>=14.2.0' + react: '>=18.2.0 || ^19.0.0-0' + react-router: ^6 || ^7 + react-router-dom: ^6 || ^7 + peerDependenciesMeta: + '@remix-run/react': + optional: true + '@tanstack/react-router': + optional: true + next: + optional: true + react-router: + optional: true + react-router-dom: + optional: true - is-negated-glob@1.0.0: - resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} is-number-object@1.1.1: @@ -3995,28 +4013,11 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} - minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - - minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - - minipass-fetch@2.1.2: - resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - - minipass-flush@1.0.5: - resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} - engines: {node: '>= 8'} - - minipass-pipeline@1.2.4: - resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} - engines: {node: '>=8'} - - minipass-sized@1.0.3: - resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} - engines: {node: '>=8'} + react-window@2.2.0: + resolution: {integrity: sha512-Y2L7yonHq6K1pQA2P98wT5QdIsEcjBTB7T8o6Mub12hH9eYppXoYu6vgClmcjlh3zfNcW2UrXiJJJqDxUY7GVw==} + peerDependencies: + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} @@ -7378,12 +7379,7 @@ snapshots: '@sindresorhus/is@4.6.0': {} - '@surma/rollup-plugin-off-main-thread@2.2.3': - dependencies: - ejs: 3.1.10 - json5: 2.2.3 - magic-string: 0.25.9 - string.prototype.matchall: 4.0.12 + '@standard-schema/spec@1.0.0': {} '@szmarczak/http-timer@4.0.6': dependencies: @@ -9845,6 +9841,14 @@ snapshots: - bluebird - supports-color + mantine-contextmenu@8.2.0(@mantine/core@8.2.8(@mantine/hooks@8.2.8(react@19.1.0))(@types/react@18.3.23)(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(@mantine/hooks@8.2.8(react@19.1.0))(clsx@2.1.1)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@mantine/core': 8.2.8(@mantine/hooks@8.2.8(react@19.1.0))(@types/react@18.3.23)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@mantine/hooks': 8.2.8(react@19.1.0) + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + map-stream@0.1.0: {} matcher-collection@2.0.1: @@ -10032,6 +10036,14 @@ snapshots: dependencies: boolbase: 1.0.0 + nuqs@2.7.1(react-router-dom@6.30.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0))(react-router@6.30.1(react@19.1.0))(react@19.1.0): + dependencies: + '@standard-schema/spec': 1.0.0 + react: 19.1.0 + optionalDependencies: + react-router: 6.30.1(react@19.1.0) + react-router-dom: 6.30.1(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + object-assign@4.1.1: {} object-inspect@1.13.4: {} @@ -10472,34 +10484,7 @@ snapshots: react: 19.1.0 react-dom: 19.1.0(react@19.1.0) - react-virtualized-auto-sizer@1.0.26(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - react-virtuoso@4.14.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - react-window-infinite-loader@1.0.10(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - react-window-infinite-loader@2.0.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - react-window@1.8.11(react-dom@19.1.0(react@19.1.0))(react@19.1.0): - dependencies: - '@babel/runtime': 7.27.1 - memoize-one: 5.2.1 - react: 19.1.0 - react-dom: 19.1.0(react@19.1.0) - - react-window@2.1.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + react-window@2.2.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0): dependencies: react: 19.1.0 react-dom: 19.1.0(react@19.1.0)