diff --git a/packages/components/src/components/icons/SlashIcon.tsx b/packages/components/src/components/icons/SlashIcon.tsx
new file mode 100644
index 00000000000..5b92d817da1
--- /dev/null
+++ b/packages/components/src/components/icons/SlashIcon.tsx
@@ -0,0 +1,18 @@
+import React from 'react';
+import { Icon } from '../Icon/Icon';
+import type { IconPropsWithoutChildren } from '../Icon/Icon';
+
+export const SlashIcon = (props: IconPropsWithoutChildren) => {
+ return (
+
+
+
+ );
+};
diff --git a/packages/components/src/components/icons/index.ts b/packages/components/src/components/icons/index.ts
index 79e608eef18..fa6c6b2eec9 100644
--- a/packages/components/src/components/icons/index.ts
+++ b/packages/components/src/components/icons/index.ts
@@ -108,3 +108,4 @@ export { WidthFullIcon } from './WidthFullIcon';
export { WidthLayoutIcon } from './WidthLayoutIcon';
export { WidthNarrowIcon } from './WidthNarrowIcon';
export { WorldIcon } from './WorldIcon';
+export { SlashIcon } from './SlashIcon';
diff --git a/packages/registry/__tests__/fixtures/test-app/node_modules/@plone/layout/components/Logo/Logo.svg b/packages/registry/__tests__/fixtures/test-app/node_modules/@plone/layout/components/Logo/Logo.svg
deleted file mode 100644
index 1aa6adfdf3b..00000000000
--- a/packages/registry/__tests__/fixtures/test-app/node_modules/@plone/layout/components/Logo/Logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/packages/registry/__tests__/fixtures/test-app/node_modules/@plone/layout/index.js b/packages/registry/__tests__/fixtures/test-app/node_modules/@plone/layout/index.js
deleted file mode 100644
index 8cb61d300ac..00000000000
--- a/packages/registry/__tests__/fixtures/test-app/node_modules/@plone/layout/index.js
+++ /dev/null
@@ -1 +0,0 @@
-export default (config) => config;
diff --git a/packages/registry/__tests__/fixtures/test-app/node_modules/@plone/layout/package.json b/packages/registry/__tests__/fixtures/test-app/node_modules/@plone/layout/package.json
deleted file mode 100644
index 40c09fe4ad0..00000000000
--- a/packages/registry/__tests__/fixtures/test-app/node_modules/@plone/layout/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "@plone/layout",
- "main": "index.js"
-}
diff --git a/packages/registry/__tests__/fixtures/test-app/node_modules/my-addon/customizations/@plone/layout/components/Logo/Logo.svg b/packages/registry/__tests__/fixtures/test-app/node_modules/my-addon/customizations/@plone/layout/components/Logo/Logo.svg
deleted file mode 100644
index 3e8fcacea68..00000000000
--- a/packages/registry/__tests__/fixtures/test-app/node_modules/my-addon/customizations/@plone/layout/components/Logo/Logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/packages/registry/__tests__/fixtures/test-app/node_modules/my-addon/index.js b/packages/registry/__tests__/fixtures/test-app/node_modules/my-addon/index.js
deleted file mode 100644
index 8cb61d300ac..00000000000
--- a/packages/registry/__tests__/fixtures/test-app/node_modules/my-addon/index.js
+++ /dev/null
@@ -1 +0,0 @@
-export default (config) => config;
diff --git a/packages/registry/__tests__/fixtures/test-app/node_modules/my-addon/package.json b/packages/registry/__tests__/fixtures/test-app/node_modules/my-addon/package.json
deleted file mode 100644
index ccf0c501c10..00000000000
--- a/packages/registry/__tests__/fixtures/test-app/node_modules/my-addon/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "my-addon",
- "main": "index.js"
-}
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/LanguageSwitcher.jsx b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/LanguageSwitcher.jsx
deleted file mode 100644
index 8337712ea57..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/LanguageSwitcher.jsx
+++ /dev/null
@@ -1 +0,0 @@
-//
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/TSComponent.tsx b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/TSComponent.tsx
deleted file mode 100644
index 8337712ea57..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/TSComponent.tsx
+++ /dev/null
@@ -1 +0,0 @@
-//
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/client.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/client.js
deleted file mode 100644
index 0dae97301d2..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/client.js
+++ /dev/null
@@ -1 +0,0 @@
-//dummy file
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/routes.jsx b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/routes.jsx
deleted file mode 100644
index 8337712ea57..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/routes.jsx
+++ /dev/null
@@ -1 +0,0 @@
-//
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/server.jsx b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/@plone/volto/src/server.jsx
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/my-volto-config-addon-via-env-var/index.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/my-volto-config-addon-via-env-var/index.js
deleted file mode 100644
index 8cb61d300ac..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/my-volto-config-addon-via-env-var/index.js
+++ /dev/null
@@ -1 +0,0 @@
-export default (config) => config;
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/my-volto-config-addon-via-env-var/package.json b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/my-volto-config-addon-via-env-var/package.json
deleted file mode 100644
index ac0652a9b0f..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/my-volto-config-addon-via-env-var/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "my-volto-config-addon-via-env-var",
- "version": "0.0.0",
- "main": "index.js",
- "customizationPaths": [
- "src/custom-addons"
- ],
- "addons": [
- "test-released-dummy"
- ]
-}
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-addon/index.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-addon/index.js
deleted file mode 100644
index 8cb61d300ac..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-addon/index.js
+++ /dev/null
@@ -1 +0,0 @@
-export default (config) => config;
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-addon/package.json b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-addon/package.json
deleted file mode 100644
index 10f0fe2801c..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-addon/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "test-released-addon",
- "version": "0.0.0",
- "main": "index.js",
- "addons": [
- "test-released-unmentioned:extra1,extra2"
- ],
- "theme": "test-released-addon-theme"
-}
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-dummy/index.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-dummy/index.js
deleted file mode 100644
index 53e61140f21..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-dummy/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export default (config) => config;
-
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-dummy/package.json b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-dummy/package.json
deleted file mode 100644
index 4640873bbf9..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-dummy/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "test-released-dummy",
- "main": "index.js",
- "addons": []
-}
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/package.json b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/package.json
deleted file mode 100644
index 18f9ba7a963..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/package.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "name": "test-released-source-addon",
- "version": "0.0.0",
- "main": "src/index.js",
- "theme": "test-released-source-addon-theme"
-}
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/razzle.extend.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/razzle.extend.js
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/@root/marker.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/@root/marker.js
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/LanguageSwitcher.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/LanguageSwitcher.js
deleted file mode 100644
index 8337712ea57..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/LanguageSwitcher.js
+++ /dev/null
@@ -1 +0,0 @@
-//
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/TSComponent.jsx b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/TSComponent.jsx
deleted file mode 100644
index 8337712ea57..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/TSComponent.jsx
+++ /dev/null
@@ -1 +0,0 @@
-//
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/client.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/client.js
deleted file mode 100644
index 8337712ea57..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/client.js
+++ /dev/null
@@ -1 +0,0 @@
-//
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/routes.tsx b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/routes.tsx
deleted file mode 100644
index 8337712ea57..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/customizations/routes.tsx
+++ /dev/null
@@ -1 +0,0 @@
-//
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/index.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-source-addon/src/index.js
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-unmentioned/index.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-unmentioned/index.js
deleted file mode 100644
index 53e61140f21..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-unmentioned/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export default (config) => config;
-
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-unmentioned/package.json b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-unmentioned/package.json
deleted file mode 100644
index b3b3c399f15..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-unmentioned/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "name": "test-released-unmentioned",
- "version": "0.0.0",
- "main": "index.js"
-}
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-via-addons-env-var/index.js b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-via-addons-env-var/index.js
deleted file mode 100644
index 53e61140f21..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-via-addons-env-var/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export default (config) => config;
-
diff --git a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-via-addons-env-var/package.json b/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-via-addons-env-var/package.json
deleted file mode 100644
index c6a44243100..00000000000
--- a/packages/registry/__tests__/fixtures/test-volto-project/node_modules/test-released-via-addons-env-var/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "name": "test-released-via-addons-env-var",
- "main": "index.js"
-}
diff --git a/packages/volto/package.json b/packages/volto/package.json
index 9fa3a3b3232..55eff4f686c 100644
--- a/packages/volto/package.json
+++ b/packages/volto/package.json
@@ -173,6 +173,7 @@
"react": "18.2.0",
"react-anchor-link-smooth-scroll": "1.0.12",
"react-animate-height": "2.0.17",
+ "react-aria-components": "^1.13.0",
"react-beautiful-dnd": "13.0.0",
"react-cookie": "4.1.1",
"react-dates": "21.5.1",
diff --git a/packages/volto/src/components/manage/Contents/ContentsBreadcrumbs.jsx b/packages/volto/src/components/manage/Contents/ContentsBreadcrumbs.jsx
index 307acad0973..3c6d19539f3 100644
--- a/packages/volto/src/components/manage/Contents/ContentsBreadcrumbs.jsx
+++ b/packages/volto/src/components/manage/Contents/ContentsBreadcrumbs.jsx
@@ -1,74 +1,56 @@
import React from 'react';
-import { Breadcrumb } from 'semantic-ui-react';
-import { Link } from 'react-router-dom';
-import { defineMessages, useIntl } from 'react-intl';
+import { Breadcrumbs, Breadcrumb, Menu, MenuItem } from '@plone/components';
import { useSelector } from 'react-redux';
+import { SlashIcon, MoreoptionsIcon } from '@plone/components/Icons';
import ContentsBreadcrumbsRootItem from '@plone/volto/components/manage/Contents/ContentsBreadcrumbsRootItem';
import ContentsBreadcrumbsHomeItem from '@plone/volto/components/manage/Contents/ContentsBreadcrumbsHomeItem';
-const messages = defineMessages({
- home: {
- id: 'Home',
- defaultMessage: 'Home',
- },
- root: {
- id: 'Root',
- defaultMessage: 'Root',
- },
-});
-
const ContentsBreadcrumbs = (props) => {
const { items } = props;
- const intl = useIntl();
const navroot = useSelector((state) => state.navroot.data.navroot);
const navrootIsPortal = navroot?.['@type'] === 'Plone Site';
+ const inner = items ? items.slice(0, -1) : [];
+ const last = items ? items[items.length - 1] : null;
return (
-
+
{navrootIsPortal ? (
-
+ }>
-
+
) : (
<>
-
+ }>
-
-
-
+ }
>
{navroot?.title}
-
+
>
)}
- {items.map((breadcrumb, index, breadcrumbs) => [
- ,
- index < breadcrumbs.length - 1 ? (
- 0 && (
+ }>
+
}
+ placement="bottom"
>
- {breadcrumb.nav_title || breadcrumb.title}
-
- ) : (
-
- {breadcrumb.nav_title || breadcrumb.title}
-
- ),
- ])}
-
+ {(item) => (
+
+ )}
+
+
+ )}
+ }>
+ {last?.title}
+
+
);
};
diff --git a/packages/volto/src/start-client.jsx b/packages/volto/src/start-client.jsx
index acb209e228a..a7b05a19bcc 100644
--- a/packages/volto/src/start-client.jsx
+++ b/packages/volto/src/start-client.jsx
@@ -4,7 +4,9 @@ import React from 'react';
import { hydrateRoot } from 'react-dom/client';
import { Provider } from 'react-redux';
import { IntlProvider } from 'react-intl-redux';
+import { RouterProvider } from 'react-aria-components';
import { ConnectedRouter } from 'connected-react-router';
+import { useHistory } from 'react-router-dom';
import { createBrowserHistory } from 'history';
import { ReduxAsyncConnect } from '@plone/volto/helpers/AsyncConnect';
import { loadableReady } from '@loadable/component';
@@ -22,6 +24,20 @@ function reactIntlErrorHandler(error) {
debug('i18n')(error);
}
+function ReactAriaRouterProvider({ children }) {
+ const history = useHistory();
+
+ const navigate = (to, options = {}) => {
+ if (options.replace) {
+ history.replace(to);
+ } else {
+ history.push(to);
+ }
+ };
+
+ return {children};
+}
+
export default function client() {
const api = new Api();
@@ -73,9 +89,11 @@ export default function client() {
-
-
-
+
+
+
+
+
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ba75e37cee6..5378414a2f3 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -566,6 +566,9 @@ importers:
react-animate-height:
specifier: 2.0.17
version: 2.0.17(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
+ react-aria-components:
+ specifier: ^1.13.0
+ version: 1.16.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
react-beautiful-dnd:
specifier: 13.0.0
version: 13.0.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0)