diff --git a/packages/edit-site/src/components/block-editor/block-inspector-button.js b/packages/edit-site/src/components/block-editor/block-inspector-button.js
deleted file mode 100644
index 0c669b21fda83..0000000000000
--- a/packages/edit-site/src/components/block-editor/block-inspector-button.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * WordPress dependencies
- */
-import { __ } from '@wordpress/i18n';
-import { speak } from '@wordpress/a11y';
-import { MenuItem } from '@wordpress/components';
-import { useSelect, useDispatch } from '@wordpress/data';
-import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
-import { privateApis as editorPrivateApis } from '@wordpress/editor';
-
-/**
- * Internal dependencies
- */
-import { unlock } from '../../lock-unlock';
-
-const { interfaceStore } = unlock( editorPrivateApis );
-
-export default function BlockInspectorButton( { onClick = () => {} } ) {
- const { shortcut, isBlockInspectorOpen } = useSelect(
- ( select ) => ( {
- shortcut: select(
- keyboardShortcutsStore
- ).getShortcutRepresentation( 'core/editor/toggle-sidebar' ),
- isBlockInspectorOpen:
- select( interfaceStore ).getActiveComplementaryArea(
- 'core'
- ) === 'edit-post/block',
- } ),
- []
- );
- const { enableComplementaryArea, disableComplementaryArea } =
- useDispatch( interfaceStore );
-
- const label = isBlockInspectorOpen
- ? __( 'Hide more settings' )
- : __( 'Show more settings' );
-
- return (
-
- );
-}
diff --git a/packages/edit-site/src/components/block-editor/inserter-media-categories.js b/packages/edit-site/src/components/block-editor/inserter-media-categories.js
deleted file mode 100644
index 7ebc771126122..0000000000000
--- a/packages/edit-site/src/components/block-editor/inserter-media-categories.js
+++ /dev/null
@@ -1,225 +0,0 @@
-/**
- * The `edit-site` settings here need to be in sync with the corresponding ones in `site-editor` package.
- * See `packages/edit-site/src/components/block-editor/inserter-media-categories.js`.
- *
- * In the future we could consider creating an Openvese package that can be used in both `editor` and `site-editor`.
- * The rest of the settings would still need to be in sync though.
- */
-
-/**
- * WordPress dependencies
- */
-import { __, sprintf, _x } from '@wordpress/i18n';
-import { resolveSelect } from '@wordpress/data';
-import { decodeEntities } from '@wordpress/html-entities';
-
-/**
- * Internal dependencies
- */
-import { store as coreStore } from '@wordpress/core-data';
-
-/** @typedef {import('@wordpress/block-editor').InserterMediaRequest} InserterMediaRequest */
-/** @typedef {import('@wordpress/block-editor').InserterMediaItem} InserterMediaItem */
-/** @typedef {import('@wordpress/block-editor').InserterMediaCategory} InserterMediaCategory */
-
-const getExternalLink = ( url, text ) =>
- `${ text }`;
-
-const getExternalLinkAttributes = ( url ) =>
- `href="${ url }" target="_blank" rel="noreferrer noopener"`;
-
-const getOpenverseLicense = ( license, licenseVersion ) => {
- let licenseName = license.trim();
- // PDM has no abbreviation
- if ( license !== 'pdm' ) {
- licenseName = license.toUpperCase().replace( 'SAMPLING', 'Sampling' );
- }
- // If version is known, append version to the name.
- // The license has to have a version to be valid. Only
- // PDM (public domain mark) doesn't have a version.
- if ( licenseVersion ) {
- licenseName += ` ${ licenseVersion }`;
- }
- // For licenses other than public-domain marks, prepend 'CC' to the name.
- if ( ! [ 'pdm', 'cc0' ].includes( license ) ) {
- licenseName = `CC ${ licenseName }`;
- }
- return licenseName;
-};
-
-const getOpenverseCaption = ( item ) => {
- const {
- title,
- foreign_landing_url: foreignLandingUrl,
- creator,
- creator_url: creatorUrl,
- license,
- license_version: licenseVersion,
- license_url: licenseUrl,
- } = item;
- const fullLicense = getOpenverseLicense( license, licenseVersion );
- const _creator = decodeEntities( creator );
- let _caption;
- if ( _creator ) {
- _caption = title
- ? sprintf(
- // translators: %1s: Title of a media work from Openverse; %2s: Name of the work's creator; %3s: Work's licence e.g: "CC0 1.0".
- _x( '"%1$s" by %2$s/ %3$s', 'caption' ),
- getExternalLink(
- foreignLandingUrl,
- decodeEntities( title )
- ),
- creatorUrl
- ? getExternalLink( creatorUrl, _creator )
- : _creator,
- licenseUrl
- ? getExternalLink(
- `${ licenseUrl }?ref=openverse`,
- fullLicense
- )
- : fullLicense
- )
- : sprintf(
- // translators: %1s: Link attributes for a given Openverse media work; %2s: Name of the work's creator; %3s: Works's licence e.g: "CC0 1.0".
- _x( 'Work by %2$s/ %3$s', 'caption' ),
- getExternalLinkAttributes( foreignLandingUrl ),
- creatorUrl
- ? getExternalLink( creatorUrl, _creator )
- : _creator,
- licenseUrl
- ? getExternalLink(
- `${ licenseUrl }?ref=openverse`,
- fullLicense
- )
- : fullLicense
- );
- } else {
- _caption = title
- ? sprintf(
- // translators: %1s: Title of a media work from Openverse; %2s: Work's licence e.g: "CC0 1.0".
- _x( '"%1$s"/ %2$s', 'caption' ),
- getExternalLink(
- foreignLandingUrl,
- decodeEntities( title )
- ),
- licenseUrl
- ? getExternalLink(
- `${ licenseUrl }?ref=openverse`,
- fullLicense
- )
- : fullLicense
- )
- : sprintf(
- // translators: %1s: Link attributes for a given Openverse media work; %2s: Works's licence e.g: "CC0 1.0".
- _x( 'Work/ %3$s', 'caption' ),
- getExternalLinkAttributes( foreignLandingUrl ),
- licenseUrl
- ? getExternalLink(
- `${ licenseUrl }?ref=openverse`,
- fullLicense
- )
- : fullLicense
- );
- }
- return _caption.replace( /\s{2}/g, ' ' );
-};
-
-const coreMediaFetch = async ( query = {} ) => {
- const mediaItems = await resolveSelect( coreStore ).getMediaItems( {
- ...query,
- orderBy: !! query?.search ? 'relevance' : 'date',
- } );
- return mediaItems.map( ( mediaItem ) => ( {
- ...mediaItem,
- alt: mediaItem.alt_text,
- url: mediaItem.source_url,
- previewUrl: mediaItem.media_details?.sizes?.medium?.source_url,
- caption: mediaItem.caption?.raw,
- } ) );
-};
-
-/** @type {InserterMediaCategory[]} */
-const inserterMediaCategories = [
- {
- name: 'images',
- labels: {
- name: __( 'Images' ),
- search_items: __( 'Search images' ),
- },
- mediaType: 'image',
- async fetch( query = {} ) {
- return coreMediaFetch( { ...query, media_type: 'image' } );
- },
- },
- {
- name: 'videos',
- labels: {
- name: __( 'Videos' ),
- search_items: __( 'Search videos' ),
- },
- mediaType: 'video',
- async fetch( query = {} ) {
- return coreMediaFetch( { ...query, media_type: 'video' } );
- },
- },
- {
- name: 'audio',
- labels: {
- name: __( 'Audio' ),
- search_items: __( 'Search audio' ),
- },
- mediaType: 'audio',
- async fetch( query = {} ) {
- return coreMediaFetch( { ...query, media_type: 'audio' } );
- },
- },
- {
- name: 'openverse',
- labels: {
- name: __( 'Openverse' ),
- search_items: __( 'Search Openverse' ),
- },
- mediaType: 'image',
- async fetch( query = {} ) {
- const defaultArgs = {
- mature: false,
- excluded_source: 'flickr,inaturalist,wikimedia',
- license: 'pdm,cc0',
- };
- const finalQuery = { ...query, ...defaultArgs };
- const mapFromInserterMediaRequest = {
- per_page: 'page_size',
- search: 'q',
- };
- const url = new URL( 'https://api.openverse.org/v1/images/' );
- Object.entries( finalQuery ).forEach( ( [ key, value ] ) => {
- const queryKey = mapFromInserterMediaRequest[ key ] || key;
- url.searchParams.set( queryKey, value );
- } );
- const response = await window.fetch( url, {
- headers: {
- 'User-Agent': 'WordPress/inserter-media-fetch',
- },
- } );
- const jsonResponse = await response.json();
- const results = jsonResponse.results;
- return results.map( ( result ) => ( {
- ...result,
- // This is a temp solution for better titles, until Openverse API
- // completes the cleaning up of some titles of their upstream data.
- title: result.title?.toLowerCase().startsWith( 'file:' )
- ? result.title.slice( 5 )
- : result.title,
- sourceId: result.id,
- id: undefined,
- caption: getOpenverseCaption( result ),
- previewUrl: result.thumbnail,
- } ) );
- },
- getReportUrl: ( { sourceId } ) =>
- `https://wordpress.org/openverse/image/${ sourceId }/report/`,
- isExternalResource: true,
- },
-];
-
-export default inserterMediaCategories;