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 @@ -asdasd 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) => ( + + {item.title} + + )} + + + )} + }> + {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)