diff --git a/__tests__/src/components/CanvasLayers.test.js b/__tests__/src/components/CanvasLayers.test.js
index e831f31a994d879be0cc51a1f000a0d8a989384b..b5eed71c8006a7f6e5b173e9decd750fcd7d8de5 100644
--- a/__tests__/src/components/CanvasLayers.test.js
+++ b/__tests__/src/components/CanvasLayers.test.js
@@ -3,7 +3,7 @@ import { shallow } from 'enzyme';
 import Input from '@material-ui/core/Input';
 import Slider from '@material-ui/core/Slider';
 import Typography from '@material-ui/core/Typography';
-import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
+import { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd';
 import { CanvasLayers } from '../../../src/components/CanvasLayers';
 import IIIFThumbnail from '../../../src/containers/IIIFThumbnail';
 
diff --git a/jest.json b/jest.json
index d635140982349d0f2b6e906c1b113cdc4ab04b88..11e5bf3bf4b7ce35fb03a5d1e94df87db634b3c3 100644
--- a/jest.json
+++ b/jest.json
@@ -8,7 +8,8 @@
   "coverageDirectory": "<rootDir>/coverage",
   "coverageReporters": ["html", "lcov"],
   "moduleNameMapper": {
-    "\\.s?css$": "<rootDir>/__mocks__/css.js"
+    "\\.s?css$": "<rootDir>/__mocks__/css.js",
+    "^uuid$": "uuid"
   },
   "setupFiles": [
     "<rootDir>/setupJest.js"
diff --git a/package.json b/package.json
index 01e0104c8f35f185197f00ec298b623dd7bcdfd2..179a809c5decd0500a50d9119a897429a9767ddc 100644
--- a/package.json
+++ b/package.json
@@ -33,6 +33,7 @@
   ],
   "repository": "https://github.com/ProjectMirador/mirador",
   "dependencies": {
+    "@hello-pangea/dnd": "^16.0.1",
     "@material-ui/core": "^4.12.3",
     "@material-ui/icons": "^4.9.1",
     "@material-ui/lab": "^4.0.0-alpha.53",
@@ -54,7 +55,6 @@
     "prop-types": "^15.6.2",
     "re-reselect": "^4.0.0",
     "react-aria-live": "^2.0.5",
-    "react-beautiful-dnd": "^13.0.0",
     "react-copy-to-clipboard": "^5.0.1",
     "react-dnd": "^10.0.2",
     "react-dnd-html5-backend": "^10.0.2",
@@ -64,10 +64,10 @@
     "react-i18next": "^11.7.0",
     "react-image": "^4.0.1",
     "react-mosaic-component": "^4.0.1",
-    "react-redux": "^7.1.0",
+    "react-redux": "^7.1.0 || ^8.0.0",
     "react-resize-observer": "^1.1.1",
     "react-rnd": "^10.1",
-    "react-sizeme": "^2.6.7",
+    "react-sizeme": "^2.6.7 || ^3.0.0",
     "react-virtualized-auto-sizer": "^1.0.2",
     "react-window": "^1.8.5",
     "redux": "^4.0.5",
@@ -76,7 +76,7 @@
     "redux-thunk": "^2.3.0",
     "reselect": "^4.0.0",
     "url": "^0.11.0",
-    "uuid": "^8.1.0"
+    "uuid": "^8.1.0 || ^9.0.0"
   },
   "devDependencies": {
     "@babel/cli": "^7.17.6",
@@ -90,8 +90,8 @@
     "@pmmmwh/react-refresh-webpack-plugin": "^0.5.4",
     "@typescript-eslint/eslint-plugin": "^5.15.0",
     "@typescript-eslint/parser": "^5.15.0",
-    "babel-jest": "^27.5.1",
-    "babel-loader": "^8.0.6",
+    "babel-jest": "^29.3.1",
+    "babel-loader": "^9.1.0",
     "babel-plugin-lodash": "^3.3.4",
     "babel-plugin-macros": "^3.0.1",
     "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
@@ -106,27 +106,27 @@
     "eslint-config-react-app": "^7.0.0",
     "eslint-plugin-flowtype": "^8.0.3",
     "eslint-plugin-import": "^2.25.4",
-    "eslint-plugin-jest": "^26.1.1",
+    "eslint-plugin-jest": "^27.1.5",
     "eslint-plugin-jsx-a11y": "^6.4.1",
     "eslint-plugin-react": "^7.29.4",
     "eslint-plugin-react-hooks": "^4.2.0",
-    "glob": "^7.1.4",
+    "glob": "^8.0.3",
     "http-server": "^14.1.0",
-    "jest": "^27.5.1",
+    "jest": "^29.3.1",
     "jest-fetch-mock": "^3.0.0",
     "jest-puppeteer": "^6.1.0",
-    "jsdom": "^19.0.0",
+    "jsdom": "^21.0.0",
     "puppeteer": "^13.5.1",
     "react": "^16.8.6",
     "react-dom": "^16.8.6",
-    "react-refresh": "^0.11.0",
+    "react-refresh": "^0.14.0",
     "redux-mock-store": "^1.5.1",
     "redux-saga-test-plan": "^4.0.0-rc.3",
     "terser-webpack-plugin": "^5.3.1",
     "unfetch": "^4.1.0",
     "url-polyfill": "^1.1.7",
     "webpack": "^5.70.0",
-    "webpack-cli": "^4.9.2",
+    "webpack-cli": "^5.0.0",
     "webpack-dev-server": "^4.7.4"
   },
   "peerDependencies": {
diff --git a/src/components/CanvasLayers.js b/src/components/CanvasLayers.js
index 3058725144710ac1240ba79139e02abec5aadff9..7847eefbf2a3cf1377bc2e524aef171aed6b02f0 100644
--- a/src/components/CanvasLayers.js
+++ b/src/components/CanvasLayers.js
@@ -14,7 +14,7 @@ import VisibilityIcon from '@material-ui/icons/VisibilitySharp';
 import VisibilityOffIcon from '@material-ui/icons/VisibilityOffSharp';
 import OpacityIcon from '@material-ui/icons/OpacitySharp';
 import Typography from '@material-ui/core/Typography';
-import { DragDropContext, Droppable, Draggable } from 'react-beautiful-dnd';
+import { DragDropContext, Droppable, Draggable } from '@hello-pangea/dnd';
 import MiradorMenuButton from '../containers/MiradorMenuButton';
 import IIIFThumbnail from '../containers/IIIFThumbnail';