diff --git a/.changeset/chatty-ravens-collect.md b/.changeset/chatty-ravens-collect.md new file mode 100644 index 000000000..61acbd5d3 --- /dev/null +++ b/.changeset/chatty-ravens-collect.md @@ -0,0 +1,29 @@ +--- +"@vivjs/constants": minor +"@vivjs/extensions": minor +"@vivjs/layers": minor +"@vivjs/loaders": minor +"@hms-dbmi/viv": minor +"@vivjs/types": minor +"@vivjs/viewers": minor +"@vivjs/views": minor +--- + +**This release includes backward-incompatible changes**. To avoid automatically adopting such releases, ensure you are either pinning the exact version of `@hms-dbmi/viv` in your `package.json` file or using a version range syntax that only accepts patch updates, such as `~0.16.1`. Refer to npm's [semver documentation](https://docs.npmjs.com/cli/v6/using-npm/semver/) for details. + +**Migrate to deck.gl v9** + +This update modifies our code internally to support deck.gl v9, dropping compatibility with deck.gl v8. See the [release notes](https://deck.gl/docs/whats-new#deckgl-v90) to learn more. + +**Impact**: + +We haven’t changed Viv's public API, but the upgrade to deck.gl 9.0 is considered **breaking** due to changes in its dependencies, which may require updates to WebGL-related code (e.g., shaders, injections, constants). Here are potential issues users may face in migrating: + +- deprecating WebGL1 +- changing any public-facing GL-specific variables to use the new luma.gl backend-agnostic variables (such as `interpolation` on the `ImageLayer`) +- shader injection-location name changes (i.e., `gl_fragColor` -> `fragColor`) + +**Action**: + +- You will need to upgrade to deck.gl `9.0.x` if you use it directly as having multiple versions of deck.gl is not supported. The above list only includes changes internally to Viv and is not an exhaustive summary of all changes required for our migration. For full details on upgrading to deck.gl `9.0.x`, please refer to the [upgrade guide](https://deck.gl/docs/upgrade-guide#upgrading-to-v90). +- Pin a specific Viv version or semver range to prevent unintended updates. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 973cd9824..9d3371fe6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -295,21 +295,27 @@ importers: sites/avivator: dependencies: + '@emotion/react': + specifier: ^11.13.5 + version: 11.13.5(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': + specifier: ^11.13.5 + version: 11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) '@hms-dbmi/viv': specifier: workspace:* version: link:../../packages/main - '@material-ui/core': - specifier: ^4.11.0 - version: 4.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@material-ui/icons': - specifier: ^4.9.1 - version: 4.11.3(@material-ui/core@4.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@material-ui/lab': - specifier: ^4.0.0-alpha.56 - version: 4.0.0-alpha.61(@material-ui/core@4.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@math.gl/core': specifier: 'catalog:' version: 4.0.1 + '@mui/icons-material': + specifier: ^6.0.0 + version: 6.1.8(@mui/material@6.1.8(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@mui/material': + specifier: ^6.0.0 + version: 6.1.8(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mui/styles': + specifier: ^6.0.0 + version: 6.1.8(@types/react@18.3.3)(react@18.3.1) geotiff: specifier: ^2.0.5 version: 2.1.3 @@ -326,8 +332,8 @@ importers: specifier: ^14.2.3 version: 14.2.3(react@18.3.1) zustand: - specifier: ^3.4.1 - version: 3.7.2(react@18.3.1) + specifier: ^5.0.1 + version: 5.0.1(@types/react@18.3.3)(react@18.3.1) devDependencies: '@vitejs/plugin-react': specifier: ^4.2.1 @@ -456,6 +462,10 @@ packages: resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + '@babel/standalone@7.24.10': resolution: {integrity: sha512-nGC37EKfmelpyCXto1pw6SBkD5ZQRdMbL6WISi28xWit9dtiy9dChU1WgEfzturUTxrmOGkMDRrCydFMA7uOaQ==} engines: {node: '>=6.9.0'} @@ -638,8 +648,59 @@ packages: resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} engines: {node: '>=12'} - '@emotion/hash@0.8.0': - resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} + '@emotion/babel-plugin@11.13.5': + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} + + '@emotion/cache@11.13.5': + resolution: {integrity: sha512-Z3xbtJ+UcK76eWkagZ1onvn/wAVb1GOMuR15s30Fm2wrMgC7jzpnO2JZXr4eujTTqoQFUrZIw/rT0c6Zzjca1g==} + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + + '@emotion/is-prop-valid@1.3.1': + resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/react@11.13.5': + resolution: {integrity: sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ==} + peerDependencies: + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/serialize@1.3.3': + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} + + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/styled@11.13.5': + resolution: {integrity: sha512-gnOQ+nGLPvDXgIx119JqGalys64lhMdnNQA9TMxhDA4K0Hq5+++OE20Zs5GxiCV9r814xQ2K5WmtofSpHVW6BQ==} + peerDependencies: + '@emotion/react': ^11.0.0-rc.0 + '@types/react': '*' + react: '>=16.8.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0': + resolution: {integrity: sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==} + peerDependencies: + react: '>=16.8.0' + + '@emotion/utils@1.4.2': + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} + + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} '@esbuild-plugins/node-globals-polyfill@0.2.3': resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} @@ -1257,101 +1318,127 @@ packages: '@mapbox/vector-tile@1.3.1': resolution: {integrity: sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==} - '@material-ui/core@4.12.4': - resolution: {integrity: sha512-tr7xekNlM9LjA6pagJmL8QCgZXaubWUwkJnoYcMKd4gw/t4XiyvnTkjdGrUVicyB2BsdaAv1tvow45bPM4sSwQ==} - engines: {node: '>=8.0.0'} - deprecated: Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5. + '@math.gl/core@4.0.1': + resolution: {integrity: sha512-9IewNjR9V66o+gYIIq5agFoHy6ZT6DRpRGQBfsUpZz4glAqOjVt64he8GGzjpmqfT+kKT4qwQ7nQl/hZLF15qA==} + + '@math.gl/culling@4.0.1': + resolution: {integrity: sha512-lv83sMKp0n1HjORhuNtWgX9ylYyj+/zHEPF0xxRXZvcpurB85fhgFLhvR81KLjmSbhQmFgzl0fZe7Ei3WxEP5Q==} + + '@math.gl/geospatial@4.0.1': + resolution: {integrity: sha512-FfTUMk8uRlBa4W3dMSFwPjRgdEBnOeVjBr3mcGqb3lHA/PPMvKuE+o7OJfA61Wj6ItuZqCEZHbLbA3WRAENoqQ==} + + '@math.gl/polygon@4.0.1': + resolution: {integrity: sha512-pwtEbwW3N5qy09K/1FwRYW7M2u9XMPBfIe8BNpkbJh8uH3DPXQdT4uCNFiwrQPPQUQTDdlQyLu/0mRHm2R/fbg==} + + '@math.gl/sun@4.0.1': + resolution: {integrity: sha512-nDkQZ9PKd5iMySRM1j01hYG6MwA/MkKXZe4JvArggWUtPXL6nCcPSeiifPXQGIvE9eZdQkbn81StNY9q5l0cFg==} + + '@math.gl/types@4.0.1': + resolution: {integrity: sha512-E9qBKAjVBiZD8Is7TbygiLGtYBP3GSLus6RUJSuzFQegdYXeVagvrs4UkBJxhrRAxw4crfH0Tq7IhTMKuuJNQw==} + + '@math.gl/web-mercator@4.0.1': + resolution: {integrity: sha512-eJ0nDw8140kJorf8ASyKRC53rI+UG6vPxpsKJiGRD6lXsoKTeKYebeEAXiGDWTvi2AMe6+xngxTqqwm58fL3Fw==} + + '@mui/core-downloads-tracker@6.1.8': + resolution: {integrity: sha512-TGAvzwUg9hybDacwfIGFjI2bXYXrIqky+vMfaeay8rvT56/PNAlvIDUJ54kpT5KRc9AWAihOvtDI7/LJOThOmQ==} + + '@mui/icons-material@6.1.8': + resolution: {integrity: sha512-6frsXcf1TcJKWevWwRup6V4L8lzI33cbHcAjT83YLgKw0vYRZKY0kjMI9fhrJZdRWXgFFgKKvEv3GjoxbqFF7A==} + engines: {node: '>=14.0.0'} peerDependencies: - '@types/react': ^16.8.6 || ^17.0.0 - react: ^16.8.0 || ^17.0.0 - react-dom: ^16.8.0 || ^17.0.0 + '@mui/material': ^6.1.8 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@material-ui/icons@4.11.3': - resolution: {integrity: sha512-IKHlyx6LDh8n19vzwH5RtHIOHl9Tu90aAAxcbWME6kp4dmvODM3UvOHJeMIDzUbd4muuJKHmlNoBN+mDY4XkBA==} - engines: {node: '>=8.0.0'} + '@mui/material@6.1.8': + resolution: {integrity: sha512-QZdQFnXct+7NXIzHgT3qt+sQiO7HYGZU2vymP9Xl9tUMXEOA/S1mZMMb7+WGZrk5TzNlU/kP/85K0da5V1jXoQ==} + engines: {node: '>=14.0.0'} peerDependencies: - '@material-ui/core': ^4.0.0 - '@types/react': ^16.8.6 || ^17.0.0 - react: ^16.8.0 || ^17.0.0 - react-dom: ^16.8.0 || ^17.0.0 + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@mui/material-pigment-css': ^6.1.8 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true + '@mui/material-pigment-css': + optional: true '@types/react': optional: true - '@material-ui/lab@4.0.0-alpha.61': - resolution: {integrity: sha512-rSzm+XKiNUjKegj8bzt5+pygZeckNLOr+IjykH8sYdVk7dE9y2ZuUSofiMV2bJk3qU+JHwexmw+q0RyNZB9ugg==} - engines: {node: '>=8.0.0'} - deprecated: Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5. + '@mui/private-theming@6.1.8': + resolution: {integrity: sha512-TuKl7msynCNCVvhX3c0ef1sF0Qb3VHcPs8XOGB/8bdOGBr/ynmIG1yTMjZeiFQXk8yN9fzK/FDEKMFxILNn3wg==} + engines: {node: '>=14.0.0'} peerDependencies: - '@material-ui/core': ^4.12.1 - '@types/react': ^16.8.6 || ^17.0.0 - react: ^16.8.0 || ^17.0.0 - react-dom: ^16.8.0 || ^17.0.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@material-ui/styles@4.11.5': - resolution: {integrity: sha512-o/41ot5JJiUsIETME9wVLAJrmIWL3j0R0Bj2kCOLbSfqEkKf0fmaPt+5vtblUh5eXr2S+J/8J3DaCb10+CzPGA==} - engines: {node: '>=8.0.0'} - deprecated: Material UI v4 doesn't receive active development since September 2021. See the guide https://mui.com/material-ui/migration/migration-v4/ to upgrade to v5. + '@mui/styled-engine@6.1.8': + resolution: {integrity: sha512-ZvEoT0U2nPLSLI+B4by4cVjaZnPT2f20f4JUPkyHdwLv65ZzuoHiTlwyhqX1Ch63p8bcJzKTHQVGisEoMK6PGA==} + engines: {node: '>=14.0.0'} peerDependencies: - '@types/react': ^16.8.6 || ^17.0.0 - react: ^16.8.0 || ^17.0.0 - react-dom: ^16.8.0 || ^17.0.0 + '@emotion/react': ^11.4.1 + '@emotion/styled': ^11.3.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: - '@types/react': + '@emotion/react': + optional: true + '@emotion/styled': optional: true - '@material-ui/system@4.12.2': - resolution: {integrity: sha512-6CSKu2MtmiJgcCGf6nBQpM8fLkuB9F55EKfbdTC80NND5wpTmKzwdhLYLH3zL4cLlK0gVaaltW7/wMuyTnN0Lw==} - engines: {node: '>=8.0.0'} + '@mui/styles@6.1.8': + resolution: {integrity: sha512-i6x01fNV/pqHMZStP6N90vCq8I+z8FacIAjCdsH1dFyBqfQldhtrBHDHqEZ860jkwG5ER/EEmG7ug7nUf8xsJA==} + engines: {node: '>=14.0.0'} peerDependencies: - '@types/react': ^16.8.6 || ^17.0.0 - react: ^16.8.0 || ^17.0.0 - react-dom: ^16.8.0 || ^17.0.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - '@material-ui/types@5.1.0': - resolution: {integrity: sha512-7cqRjrY50b8QzRSYyhSpx4WRw2YuO0KKIGQEVk5J8uoz2BanawykgZGoWEqKm7pVIbzFDN0SpPcVV4IhOFkl8A==} + '@mui/system@6.1.8': + resolution: {integrity: sha512-i1kLfQoWxzFpXTBQIuPoA3xKnAnP3en4I2T8xIolovSolGQX5k8vGjw1JaydQS40td++cFsgCdEU458HDNTGUA==} + engines: {node: '>=14.0.0'} peerDependencies: - '@types/react': '*' + '@emotion/react': ^11.5.0 + '@emotion/styled': ^11.3.0 + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: + '@emotion/react': + optional: true + '@emotion/styled': + optional: true '@types/react': optional: true - '@material-ui/utils@4.11.3': - resolution: {integrity: sha512-ZuQPV4rBK/V1j2dIkSSEcH5uT6AaHuKWFfotADHsC0wVL1NLd2WkFCm4ZZbX33iO4ydl6V0GPngKm8HZQ2oujg==} - engines: {node: '>=8.0.0'} + '@mui/types@7.2.19': + resolution: {integrity: sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 - react-dom: ^16.8.0 || ^17.0.0 - - '@math.gl/core@4.0.1': - resolution: {integrity: sha512-9IewNjR9V66o+gYIIq5agFoHy6ZT6DRpRGQBfsUpZz4glAqOjVt64he8GGzjpmqfT+kKT4qwQ7nQl/hZLF15qA==} - - '@math.gl/culling@4.0.1': - resolution: {integrity: sha512-lv83sMKp0n1HjORhuNtWgX9ylYyj+/zHEPF0xxRXZvcpurB85fhgFLhvR81KLjmSbhQmFgzl0fZe7Ei3WxEP5Q==} - - '@math.gl/geospatial@4.0.1': - resolution: {integrity: sha512-FfTUMk8uRlBa4W3dMSFwPjRgdEBnOeVjBr3mcGqb3lHA/PPMvKuE+o7OJfA61Wj6ItuZqCEZHbLbA3WRAENoqQ==} - - '@math.gl/polygon@4.0.1': - resolution: {integrity: sha512-pwtEbwW3N5qy09K/1FwRYW7M2u9XMPBfIe8BNpkbJh8uH3DPXQdT4uCNFiwrQPPQUQTDdlQyLu/0mRHm2R/fbg==} - - '@math.gl/sun@4.0.1': - resolution: {integrity: sha512-nDkQZ9PKd5iMySRM1j01hYG6MwA/MkKXZe4JvArggWUtPXL6nCcPSeiifPXQGIvE9eZdQkbn81StNY9q5l0cFg==} - - '@math.gl/types@4.0.1': - resolution: {integrity: sha512-E9qBKAjVBiZD8Is7TbygiLGtYBP3GSLus6RUJSuzFQegdYXeVagvrs4UkBJxhrRAxw4crfH0Tq7IhTMKuuJNQw==} + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@math.gl/web-mercator@4.0.1': - resolution: {integrity: sha512-eJ0nDw8140kJorf8ASyKRC53rI+UG6vPxpsKJiGRD6lXsoKTeKYebeEAXiGDWTvi2AMe6+xngxTqqwm58fL3Fw==} + '@mui/utils@6.1.8': + resolution: {integrity: sha512-O2DWb1kz8hiANVcR7Z4gOB3SvPPsSQGUmStpyBDzde6dJIfBzgV9PbEQOBZd3EBsd1pB+Uv1z5LAJAbymmawrA==} + engines: {node: '>=14.0.0'} + peerDependencies: + '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1376,6 +1463,9 @@ packages: resolution: {integrity: sha512-wnlOhu7hjv9/qsf2cbK0YqpaV9c4LS69Utxd+r8hq/GWhyrOHcM1QOlfQb0Mzci0q4DDgB8VXT4dhBnEBL4c5g==} engines: {node: '>=18.12'} + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + '@probe.gl/env@3.6.0': resolution: {integrity: sha512-4tTZYUg/8BICC3Yyb9rOeoKeijKbZHRXBEKObrfPmX4sQmYB15ZOUpoVBhAyJkOYVAM8EkPci6Uw5dLCwx2BEQ==} @@ -1731,14 +1821,20 @@ packages: '@types/pako@1.0.7': resolution: {integrity: sha512-YBtzT2ztNF6R/9+UXj2wTGFnC9NklAnASt3sC0h2m1bbH7G6FyBIkt4AN8ThZpNfxUo1b2iMVO0UawiJymEt8A==} + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + '@types/parse5@6.0.3': resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} '@types/prop-types@15.7.12': resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} - '@types/react-transition-group@4.4.10': - resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} + + '@types/react-transition-group@4.4.11': + resolution: {integrity: sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==} '@types/react@18.3.3': resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} @@ -1884,6 +1980,10 @@ packages: b4a@1.6.6: resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -2060,8 +2160,8 @@ packages: clone-response@1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - clsx@1.2.1: - resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} color-convert@1.9.3: @@ -2116,6 +2216,9 @@ packages: resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} engines: {node: '>= 0.6'} + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -2126,6 +2229,10 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} @@ -2203,9 +2310,6 @@ packages: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - csstype@2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} - csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -2564,6 +2668,9 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -3786,9 +3893,6 @@ packages: resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} engines: {node: '>=4.0.0'} - popper.js@1.16.1-lts: - resolution: {integrity: sha512-Kjw8nKRl1m+VrSFCoVGPph93W/qrSO7ZkqPpTf7F4bk/sqcfWK019dWBUpE/fBOsOQY1dks/Bmcbfn1heM/IsA==} - possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -4078,8 +4182,8 @@ packages: react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} react-refresh@0.14.2: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} @@ -4476,6 +4580,9 @@ packages: peerDependencies: postcss: ^8.4.31 + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -4899,6 +5006,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + yargs-parser@20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} @@ -4939,14 +5050,23 @@ packages: zstddec@0.1.0: resolution: {integrity: sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==} - zustand@3.7.2: - resolution: {integrity: sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==} - engines: {node: '>=12.7.0'} + zustand@5.0.1: + resolution: {integrity: sha512-pRET7Lao2z+n5R/HduXMio35TncTlSW68WsYBq2Lg1ASspsNGjpwLAsij3RpouyV6+kHMwwwzP0bZPD70/Jx/w==} + engines: {node: '>=12.20.0'} peerDependencies: - react: '>=16.8' + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true react: optional: true + use-sync-external-store: + optional: true zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -5080,6 +5200,10 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/standalone@7.24.10': {} '@babel/template@7.24.7': @@ -5418,7 +5542,88 @@ snapshots: transitivePeerDependencies: - supports-color - '@emotion/hash@0.8.0': {} + '@emotion/babel-plugin@11.13.5': + dependencies: + '@babel/helper-module-imports': 7.24.7 + '@babel/runtime': 7.24.8 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.3 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + '@emotion/cache@11.13.5': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + + '@emotion/hash@0.9.2': {} + + '@emotion/is-prop-valid@1.3.1': + dependencies: + '@emotion/memoize': 0.9.0 + + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.24.8 + '@emotion/babel-plugin': 11.13.5 + '@emotion/cache': 11.13.5 + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + transitivePeerDependencies: + - supports-color + + '@emotion/serialize@1.3.3': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.2 + csstype: 3.1.3 + + '@emotion/sheet@1.4.0': {} + + '@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.24.8 + '@emotion/babel-plugin': 11.13.5 + '@emotion/is-prop-valid': 1.3.1 + '@emotion/react': 11.13.5(@types/react@18.3.3)(react@18.3.1) + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.1.0(react@18.3.1) + '@emotion/utils': 1.4.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + transitivePeerDependencies: + - supports-color + + '@emotion/unitless@0.10.0': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.1.0(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@emotion/utils@1.4.2': {} + + '@emotion/weak-memoize@0.4.0': {} '@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.19.12)': dependencies: @@ -5932,49 +6137,90 @@ snapshots: dependencies: '@mapbox/point-geometry': 0.1.0 - '@material-ui/core@4.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@math.gl/core@4.0.1': dependencies: - '@babel/runtime': 7.24.8 - '@material-ui/styles': 4.11.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@material-ui/system': 4.12.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@material-ui/types': 5.1.0 - '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@types/react-transition-group': 4.4.10 - clsx: 1.2.1 - hoist-non-react-statics: 3.3.2 - popper.js: 1.16.1-lts + '@math.gl/types': 4.0.1 + + '@math.gl/culling@4.0.1': + dependencies: + '@math.gl/core': 4.0.1 + + '@math.gl/geospatial@4.0.1': + dependencies: + '@math.gl/core': 4.0.1 + + '@math.gl/polygon@4.0.1': + dependencies: + '@math.gl/core': 4.0.1 + + '@math.gl/sun@4.0.1': {} + + '@math.gl/types@4.0.1': {} + + '@math.gl/web-mercator@4.0.1': {} + + '@mui/core-downloads-tracker@6.1.8': {} + + '@mui/icons-material@6.1.8(@mui/material@6.1.8(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@mui/material': 6.1.8(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + + '@mui/material@6.1.8(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.0 + '@mui/core-downloads-tracker': 6.1.8 + '@mui/system': 6.1.8(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@mui/types': 7.2.19(@types/react@18.3.3) + '@mui/utils': 6.1.8(@types/react@18.3.3)(react@18.3.1) + '@popperjs/core': 2.11.8 + '@types/react-transition-group': 4.4.11 + clsx: 2.1.1 + csstype: 3.1.3 prop-types: 15.8.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-is: 17.0.2 + react-is: 18.3.1 react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + optionalDependencies: + '@emotion/react': 11.13.5(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 - '@material-ui/icons@4.11.3(@material-ui/core@4.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/private-theming@6.1.8(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 - '@material-ui/core': 4.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@babel/runtime': 7.26.0 + '@mui/utils': 6.1.8(@types/react@18.3.3)(react@18.3.1) + prop-types: 15.8.1 react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 - '@material-ui/lab@4.0.0-alpha.61(@material-ui/core@4.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/styled-engine@6.1.8(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 - '@material-ui/core': 4.12.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - clsx: 1.2.1 + '@babel/runtime': 7.26.0 + '@emotion/cache': 11.13.5 + '@emotion/serialize': 1.3.3 + '@emotion/sheet': 1.4.0 + csstype: 3.1.3 prop-types: 15.8.1 react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 17.0.2 + optionalDependencies: + '@emotion/react': 11.13.5(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) - '@material-ui/styles@4.11.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/styles@6.1.8(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 - '@emotion/hash': 0.8.0 - '@material-ui/types': 5.1.0 - '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - clsx: 1.2.1 - csstype: 2.6.21 + '@babel/runtime': 7.26.0 + '@emotion/hash': 0.9.2 + '@mui/private-theming': 6.1.8(@types/react@18.3.3)(react@18.3.1) + '@mui/types': 7.2.19(@types/react@18.3.3) + '@mui/utils': 6.1.8(@types/react@18.3.3)(react@18.3.1) + clsx: 2.1.1 + csstype: 3.1.3 hoist-non-react-statics: 3.3.2 jss: 10.10.0 jss-plugin-camel-case: 10.10.0 @@ -5986,48 +6232,40 @@ snapshots: jss-plugin-vendor-prefixer: 10.10.0 prop-types: 15.8.1 react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.3 - '@material-ui/system@4.12.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/system@6.1.8(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 - '@material-ui/utils': 4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - csstype: 2.6.21 + '@babel/runtime': 7.26.0 + '@mui/private-theming': 6.1.8(@types/react@18.3.3)(react@18.3.1) + '@mui/styled-engine': 6.1.8(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@emotion/styled@11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1))(react@18.3.1) + '@mui/types': 7.2.19(@types/react@18.3.3) + '@mui/utils': 6.1.8(@types/react@18.3.3)(react@18.3.1) + clsx: 2.1.1 + csstype: 3.1.3 prop-types: 15.8.1 react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@emotion/react': 11.13.5(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.13.5(@emotion/react@11.13.5(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@types/react': 18.3.3 - '@material-ui/types@5.1.0': {} + '@mui/types@7.2.19(@types/react@18.3.3)': + optionalDependencies: + '@types/react': 18.3.3 - '@material-ui/utils@4.11.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mui/utils@6.1.8(@types/react@18.3.3)(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 + '@mui/types': 7.2.19(@types/react@18.3.3) + '@types/prop-types': 15.7.13 + clsx: 2.1.1 prop-types: 15.8.1 react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - react-is: 17.0.2 - - '@math.gl/core@4.0.1': - dependencies: - '@math.gl/types': 4.0.1 - - '@math.gl/culling@4.0.1': - dependencies: - '@math.gl/core': 4.0.1 - - '@math.gl/geospatial@4.0.1': - dependencies: - '@math.gl/core': 4.0.1 - - '@math.gl/polygon@4.0.1': - dependencies: - '@math.gl/core': 4.0.1 - - '@math.gl/sun@4.0.1': {} - - '@math.gl/types@4.0.1': {} - - '@math.gl/web-mercator@4.0.1': {} + react-is: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -6048,6 +6286,8 @@ snapshots: '@pnpm/types@11.1.0': {} + '@popperjs/core@2.11.8': {} + '@probe.gl/env@3.6.0': dependencies: '@babel/runtime': 7.24.8 @@ -6385,11 +6625,15 @@ snapshots: '@types/pako@1.0.7': {} + '@types/parse-json@4.0.2': {} + '@types/parse5@6.0.3': {} '@types/prop-types@15.7.12': {} - '@types/react-transition-group@4.4.10': + '@types/prop-types@15.7.13': {} + + '@types/react-transition-group@4.4.11': dependencies: '@types/react': 18.3.3 @@ -6558,6 +6802,12 @@ snapshots: b4a@1.6.6: {} + babel-plugin-macros@3.1.0: + dependencies: + '@babel/runtime': 7.24.8 + cosmiconfig: 7.1.0 + resolve: 1.22.8 + bail@2.0.2: {} balanced-match@1.0.2: {} @@ -6769,7 +7019,7 @@ snapshots: dependencies: mimic-response: 1.0.1 - clsx@1.2.1: {} + clsx@2.1.1: {} color-convert@1.9.3: dependencies: @@ -6810,6 +7060,8 @@ snapshots: content-disposition@0.5.2: {} + convert-source-map@1.9.0: {} + convert-source-map@2.0.0: {} core-assert@0.2.1: @@ -6819,6 +7071,14 @@ snapshots: core-util-is@1.0.3: {} + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + cosmiconfig@9.0.0(typescript@5.6.2): dependencies: env-paths: 2.2.1 @@ -6868,7 +7128,7 @@ snapshots: css-vendor@2.0.8: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 is-in-browser: 1.1.3 css-what@6.1.0: {} @@ -6927,8 +7187,6 @@ snapshots: dependencies: css-tree: 2.2.1 - csstype@2.6.21: {} - csstype@3.1.3: {} data-uri-to-buffer@6.0.2: {} @@ -7090,7 +7348,7 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 csstype: 3.1.3 dom-serializer@2.0.0: @@ -7463,6 +7721,8 @@ snapshots: dependencies: to-regex-range: 5.0.1 + find-root@1.1.0: {} + find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -8097,46 +8357,46 @@ snapshots: jss-plugin-camel-case@10.10.0: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 hyphenate-style-name: 1.1.0 jss: 10.10.0 jss-plugin-default-unit@10.10.0: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 jss: 10.10.0 jss-plugin-global@10.10.0: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 jss: 10.10.0 jss-plugin-nested@10.10.0: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 jss: 10.10.0 tiny-warning: 1.0.3 jss-plugin-props-sort@10.10.0: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 jss: 10.10.0 jss-plugin-rule-value-function@10.10.0: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 jss: 10.10.0 tiny-warning: 1.0.3 jss-plugin-vendor-prefixer@10.10.0: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 css-vendor: 2.0.8 jss: 10.10.0 jss@10.10.0: dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 csstype: 3.1.3 is-in-browser: 1.1.3 tiny-warning: 1.0.3 @@ -8910,8 +9170,6 @@ snapshots: pngjs@3.4.0: {} - popper.js@1.16.1-lts: {} - possible-typed-array-names@1.0.0: {} postcss-calc@10.0.0(postcss@8.4.39): @@ -9195,13 +9453,13 @@ snapshots: react-is@16.13.1: {} - react-is@17.0.2: {} + react-is@18.3.1: {} react-refresh@0.14.2: {} react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.24.8 + '@babel/runtime': 7.26.0 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -9724,6 +9982,8 @@ snapshots: postcss: 8.4.39 postcss-selector-parser: 6.1.1 + stylis@4.2.0: {} + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.5 @@ -10256,6 +10516,8 @@ snapshots: yallist@4.0.0: {} + yaml@1.10.2: {} + yargs-parser@20.2.9: {} yargs-parser@21.1.1: {} @@ -10301,8 +10563,9 @@ snapshots: zstddec@0.1.0: {} - zustand@3.7.2(react@18.3.1): + zustand@5.0.1(@types/react@18.3.3)(react@18.3.1): optionalDependencies: + '@types/react': 18.3.3 react: 18.3.1 zwitch@2.0.4: {} diff --git a/sites/avivator/package.json b/sites/avivator/package.json index aa869ce02..7d7297fdb 100644 --- a/sites/avivator/package.json +++ b/sites/avivator/package.json @@ -9,20 +9,24 @@ }, "dependencies": { "@hms-dbmi/viv": "workspace:*", - "@material-ui/core": "^4.11.0", - "@material-ui/icons": "^4.9.1", - "@material-ui/lab": "^4.0.0-alpha.56", + "@mui/material": "^6.0.0", + "@mui/icons-material": "^6.0.0", + "@mui/styles": "^6.0.0", "@math.gl/core": "catalog:", "geotiff": "^2.0.5", "lodash": "^4.17.21", "react": "^18.2.0", "react-dom": "^18.2.0", "react-dropzone": "^14.2.3", - "zustand": "^3.4.1" + "zustand": "^5.0.1" }, "devDependencies": { "@vitejs/plugin-react": "^4.2.1", "vite": "^5.3.2" }, + "peerDependencies": { + "@emotion/react": "^11.13.5", + "@emotion/styled": "^11.13.5" + }, "version": null } diff --git a/sites/avivator/src/components/Controller/Controller.jsx b/sites/avivator/src/components/Controller/Controller.jsx index ec353e42f..570e2cd95 100644 --- a/sites/avivator/src/components/Controller/Controller.jsx +++ b/sites/avivator/src/components/Controller/Controller.jsx @@ -1,10 +1,10 @@ -import CircularProgress from '@material-ui/core/CircularProgress'; -import Divider from '@material-ui/core/Divider'; -import Grid from '@material-ui/core/Grid'; -import Tab from '@material-ui/core/Tab'; -import Tabs from '@material-ui/core/Tabs'; +import CircularProgress from '@mui/material/CircularProgress'; +import Divider from '@mui/material/Divider'; +import Grid from '@mui/material/Grid2'; +import Tab from '@mui/material/Tab'; +import Tabs from '@mui/material/Tabs'; import React, { useState } from 'react'; -import shallow from 'zustand/shallow'; +import { useShallow } from 'zustand/shallow'; import { GLOBAL_SLIDER_DIMENSION_FIELDS } from '../../constants'; import { @@ -58,7 +58,7 @@ const Controller = () => { toggleIsOnSetter, removeChannel ] = useChannelsStore( - store => [ + useShallow(store => [ store.channelsVisible, store.contrastLimits, store.colors, @@ -68,8 +68,7 @@ const Controller = () => { store.setPropertiesForChannel, store.toggleIsOn, store.removeChannel - ], - shallow + ]) ); const loader = useLoader(); @@ -86,7 +85,7 @@ const Controller = () => { pixelValues, isViewerLoading ] = useViewerStore( - store => [ + useShallow(store => [ store.channelOptions, store.useLinkedView, store.use3d, @@ -97,8 +96,7 @@ const Controller = () => { store.removeIsChannelLoading, store.pixelValues, store.isViewerLoading - ], - shallow + ]) ); const metadata = useMetadata(); const viewSize = useWindowSize(); @@ -191,7 +189,8 @@ const Controller = () => { @@ -209,7 +208,12 @@ const Controller = () => { {!isViewerLoading && !isRgb ? ( {channelControllers} ) : ( - + {!isRgb && } )} diff --git a/sites/avivator/src/components/Controller/components/AddChannel.jsx b/sites/avivator/src/components/Controller/components/AddChannel.jsx index 899e6f9db..de44d4f98 100644 --- a/sites/avivator/src/components/Controller/components/AddChannel.jsx +++ b/sites/avivator/src/components/Controller/components/AddChannel.jsx @@ -1,7 +1,7 @@ -import Button from '@material-ui/core/Button'; -import AddIcon from '@material-ui/icons/Add'; +import AddIcon from '@mui/icons-material/Add'; +import Button from '@mui/material/Button'; import React, { useCallback } from 'react'; -import shallow from 'zustand/shallow'; +import { useShallow } from 'zustand/shallow'; import { COLOR_PALLETE, MAX_CHANNELS } from '../../../constants'; import { @@ -21,22 +21,20 @@ const AddChannel = () => { setIsChannelLoading, addIsChannelLoading ] = useViewerStore( - store => [ + useShallow(store => [ store.globalSelection, store.isViewerLoading, store.use3d, store.setIsChannelLoading, store.addIsChannelLoading - ], - shallow + ]) ); const [selections, addChannel, setPropertiesForChannel] = useChannelsStore( - store => [ + useShallow(store => [ store.selections, store.addChannel, store.setPropertiesForChannel - ], - shallow + ]) ); const loader = useLoader(); const metadata = useMetadata(); diff --git a/sites/avivator/src/components/Controller/components/CameraOptions.jsx b/sites/avivator/src/components/Controller/components/CameraOptions.jsx index b95c62ec1..35b9a0300 100644 --- a/sites/avivator/src/components/Controller/components/CameraOptions.jsx +++ b/sites/avivator/src/components/Controller/components/CameraOptions.jsx @@ -1,10 +1,11 @@ -import Button from '@material-ui/core/Button'; -import Checkbox from '@material-ui/core/Checkbox'; -import Grid from '@material-ui/core/Grid'; -import Typography from '@material-ui/core/Typography'; -import { createStyles, makeStyles } from '@material-ui/core/styles'; +import Button from '@mui/material/Button'; +import Checkbox from '@mui/material/Checkbox'; +import Grid from '@mui/material/Grid2'; +import Typography from '@mui/material/Typography'; +import createStyles from '@mui/styles/createStyles'; +import makeStyles from '@mui/styles/makeStyles'; import React from 'react'; -import shallow from 'zustand/shallow'; +import { useShallow } from 'zustand/shallow'; import { getDefaultInitialViewState } from '@hms-dbmi/viv'; import { @@ -29,17 +30,15 @@ const useStyles = makeStyles(theme => const CameraOptions = () => { const loader = useLoader(); const [useFixedAxis, toggleUseFixedAxis] = useImageSettingsStore( - store => [store.useFixedAxis, store.toggleUseFixedAxis], - shallow + useShallow(store => [store.useFixedAxis, store.toggleUseFixedAxis]) + ); + const [viewState, use3d] = useViewerStore( + useShallow(store => [store.viewState, store.use3d]) ); - const [viewState, use3d] = useViewerStore(store => [ - store.viewState, - store.use3d - ]); const { height, width } = useWindowSize(); const classes = useStyles(); const toggleFixedAxisButton = ( - + { ); const reCenterButton = ( - +