@wordpress/edit-site 5.2.0 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/build/components/add-new-template/add-custom-generic-template-modal.js +8 -10
- package/build/components/add-new-template/add-custom-generic-template-modal.js.map +1 -1
- package/build/components/add-new-template/add-custom-template-modal.js +0 -1
- package/build/components/add-new-template/add-custom-template-modal.js.map +1 -1
- package/build/components/add-new-template/new-template-part.js +5 -29
- package/build/components/add-new-template/new-template-part.js.map +1 -1
- package/build/components/add-new-template/utils.js +1 -9
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/app/index.js +2 -7
- package/build/components/app/index.js.map +1 -1
- package/build/components/block-editor/index.js +13 -11
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/block-editor/inserter-media-categories.js +237 -0
- package/build/components/block-editor/inserter-media-categories.js.map +1 -0
- package/build/components/canvas-spinner/index.js +20 -0
- package/build/components/canvas-spinner/index.js.map +1 -0
- package/build/components/create-template-part-modal/index.js +4 -2
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/editor/index.js +4 -2
- package/build/components/editor/index.js.map +1 -1
- package/build/components/error-boundary/index.js +2 -12
- package/build/components/error-boundary/index.js.map +1 -1
- package/build/components/error-boundary/warning.js +5 -28
- package/build/components/error-boundary/warning.js.map +1 -1
- package/build/components/global-styles/block-preview-panel.js +2 -2
- package/build/components/global-styles/block-preview-panel.js.map +1 -1
- package/build/components/global-styles/border-panel.js +17 -9
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-palette-panel.js +13 -7
- package/build/components/global-styles/color-palette-panel.js.map +1 -1
- package/build/components/global-styles/context-menu.js +39 -4
- package/build/components/global-styles/context-menu.js.map +1 -1
- package/build/components/global-styles/custom-css.js +65 -14
- package/build/components/global-styles/custom-css.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +49 -31
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/global-styles-provider.js +13 -3
- package/build/components/global-styles/global-styles-provider.js.map +1 -1
- package/build/components/global-styles/gradients-palette-panel.js +17 -11
- package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +21 -142
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +0 -28
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/palette.js +11 -4
- package/build/components/global-styles/palette.js.map +1 -1
- package/build/components/global-styles/preview.js +18 -15
- package/build/components/global-styles/preview.js.map +1 -1
- package/build/components/global-styles/screen-background-color.js +27 -13
- package/build/components/global-styles/screen-background-color.js.map +1 -1
- package/build/components/global-styles/screen-border.js +10 -4
- package/build/components/global-styles/screen-border.js.map +1 -1
- package/build/components/global-styles/screen-button-color.js +16 -9
- package/build/components/global-styles/screen-button-color.js.map +1 -1
- package/build/components/global-styles/screen-colors.js +43 -34
- package/build/components/global-styles/screen-colors.js.map +1 -1
- package/build/components/global-styles/screen-css.js +20 -8
- package/build/components/global-styles/screen-css.js.map +1 -1
- package/build/components/global-styles/screen-heading-color.js +23 -16
- package/build/components/global-styles/screen-heading-color.js.map +1 -1
- package/build/components/global-styles/screen-layout.js +3 -3
- package/build/components/global-styles/screen-layout.js.map +1 -1
- package/build/components/global-styles/screen-link-color.js +18 -11
- package/build/components/global-styles/screen-link-color.js.map +1 -1
- package/build/components/global-styles/screen-root.js +25 -9
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/screen-style-variations.js +8 -4
- package/build/components/global-styles/screen-style-variations.js.map +1 -1
- package/build/components/global-styles/screen-text-color.js +14 -7
- package/build/components/global-styles/screen-text-color.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +18 -12
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/shadow-panel.js +196 -0
- package/build/components/global-styles/shadow-panel.js.map +1 -0
- package/build/components/global-styles/typography-panel.js +43 -29
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-preview.js +19 -9
- package/build/components/global-styles/typography-preview.js.map +1 -1
- package/build/components/global-styles/ui.js +85 -34
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/utils.js +5 -334
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/global-styles-renderer/index.js +7 -5
- package/build/components/global-styles-renderer/index.js.map +1 -1
- package/build/components/header-edit-mode/document-actions/index.js +2 -2
- package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/index.js +0 -1
- package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build/components/layout/index.js +6 -8
- package/build/components/layout/index.js.map +1 -1
- package/build/components/list/actions/rename-menu-item.js +8 -11
- package/build/components/list/actions/rename-menu-item.js.map +1 -1
- package/build/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +1 -2
- package/build/components/navigation-inspector/index.js.map +1 -0
- package/build/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +13 -15
- package/build/components/navigation-inspector/navigation-menu.js.map +1 -0
- package/build/components/sidebar/index.js +3 -1
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/global-styles-sidebar.js +3 -18
- package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
- package/build/components/sidebar-edit-mode/index.js +1 -14
- package/build/components/sidebar-edit-mode/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen/index.js +3 -2
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-main/index.js +23 -1
- package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js +35 -0
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -0
- package/build/components/sidebar-navigation-screen-templates/index.js +3 -8
- package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build/components/site-hub/index.js +2 -2
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/site-icon/index.js +1 -1
- package/build/components/site-icon/index.js.map +1 -1
- package/build/components/style-book/index.js +7 -4
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/template-part-converter/convert-to-template-part.js +5 -9
- package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build/experiments.js +19 -0
- package/build/experiments.js.map +1 -0
- package/build/hooks/push-changes-to-global-styles/index.js +65 -6
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/index.js +53 -60
- package/build/index.js.map +1 -1
- package/build/store/selectors.js +7 -27
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +77 -0
- package/build/store/utils.js.map +1 -0
- package/build/utils/template-part-create.js +71 -0
- package/build/utils/template-part-create.js.map +1 -0
- package/build-module/components/add-new-template/add-custom-generic-template-modal.js +9 -11
- package/build-module/components/add-new-template/add-custom-generic-template-modal.js.map +1 -1
- package/build-module/components/add-new-template/add-custom-template-modal.js +0 -1
- package/build-module/components/add-new-template/add-custom-template-modal.js.map +1 -1
- package/build-module/components/add-new-template/new-template-part.js +4 -27
- package/build-module/components/add-new-template/new-template-part.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +0 -5
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/app/index.js +2 -7
- package/build-module/components/app/index.js.map +1 -1
- package/build-module/components/block-editor/index.js +14 -12
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/block-editor/inserter-media-categories.js +225 -0
- package/build-module/components/block-editor/inserter-media-categories.js.map +1 -0
- package/build-module/components/canvas-spinner/index.js +12 -0
- package/build-module/components/canvas-spinner/index.js.map +1 -0
- package/build-module/components/create-template-part-modal/index.js +5 -3
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/editor/index.js +3 -2
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/error-boundary/index.js +2 -12
- package/build-module/components/error-boundary/index.js.map +1 -1
- package/build-module/components/error-boundary/warning.js +5 -28
- package/build-module/components/error-boundary/warning.js.map +1 -1
- package/build-module/components/global-styles/block-preview-panel.js +2 -2
- package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +17 -11
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-palette-panel.js +11 -7
- package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
- package/build-module/components/global-styles/context-menu.js +40 -8
- package/build-module/components/global-styles/context-menu.js.map +1 -1
- package/build-module/components/global-styles/custom-css.js +61 -15
- package/build-module/components/global-styles/custom-css.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +49 -32
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/global-styles-provider.js +7 -2
- package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
- package/build-module/components/global-styles/gradients-palette-panel.js +15 -11
- package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +23 -134
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +0 -2
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/palette.js +10 -5
- package/build-module/components/global-styles/palette.js.map +1 -1
- package/build-module/components/global-styles/preview.js +18 -14
- package/build-module/components/global-styles/preview.js.map +1 -1
- package/build-module/components/global-styles/screen-background-color.js +26 -15
- package/build-module/components/global-styles/screen-background-color.js.map +1 -1
- package/build-module/components/global-styles/screen-border.js +10 -5
- package/build-module/components/global-styles/screen-border.js.map +1 -1
- package/build-module/components/global-styles/screen-button-color.js +16 -11
- package/build-module/components/global-styles/screen-button-color.js.map +1 -1
- package/build-module/components/global-styles/screen-colors.js +43 -37
- package/build-module/components/global-styles/screen-colors.js.map +1 -1
- package/build-module/components/global-styles/screen-css.js +21 -9
- package/build-module/components/global-styles/screen-css.js.map +1 -1
- package/build-module/components/global-styles/screen-heading-color.js +23 -18
- package/build-module/components/global-styles/screen-heading-color.js.map +1 -1
- package/build-module/components/global-styles/screen-layout.js +4 -4
- package/build-module/components/global-styles/screen-layout.js.map +1 -1
- package/build-module/components/global-styles/screen-link-color.js +18 -13
- package/build-module/components/global-styles/screen-link-color.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js +23 -9
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/screen-style-variations.js +5 -2
- package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
- package/build-module/components/global-styles/screen-text-color.js +14 -9
- package/build-module/components/global-styles/screen-text-color.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +16 -12
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel.js +177 -0
- package/build-module/components/global-styles/shadow-panel.js.map +1 -0
- package/build-module/components/global-styles/typography-panel.js +43 -31
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-preview.js +17 -9
- package/build-module/components/global-styles/typography-preview.js.map +1 -1
- package/build-module/components/global-styles/ui.js +80 -35
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/utils.js +4 -319
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/global-styles-renderer/index.js +5 -5
- package/build-module/components/global-styles-renderer/index.js.map +1 -1
- package/build-module/components/header-edit-mode/document-actions/index.js +2 -2
- package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build-module/components/layout/index.js +6 -8
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/list/actions/rename-menu-item.js +9 -12
- package/build-module/components/list/actions/rename-menu-item.js.map +1 -1
- package/build-module/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +1 -2
- package/build-module/components/navigation-inspector/index.js.map +1 -0
- package/build-module/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +13 -16
- package/build-module/components/navigation-inspector/navigation-menu.js.map +1 -0
- package/build-module/components/sidebar/index.js +2 -1
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +6 -21
- package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/index.js +1 -13
- package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen/index.js +3 -2
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-main/index.js +22 -2
- package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +23 -0
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-templates/index.js +4 -9
- package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build-module/components/site-hub/index.js +2 -2
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/site-icon/index.js +1 -1
- package/build-module/components/site-icon/index.js.map +1 -1
- package/build-module/components/style-book/index.js +8 -5
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/components/template-part-converter/convert-to-template-part.js +5 -9
- package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build-module/experiments.js +9 -0
- package/build-module/experiments.js.map +1 -0
- package/build-module/hooks/push-changes-to-global-styles/index.js +62 -3
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/index.js +52 -60
- package/build-module/index.js.map +1 -1
- package/build-module/store/selectors.js +6 -26
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +66 -0
- package/build-module/store/utils.js.map +1 -0
- package/build-module/utils/template-part-create.js +53 -0
- package/build-module/utils/template-part-create.js.map +1 -0
- package/build-style/style-rtl.css +314 -216
- package/build-style/style.css +314 -216
- package/package.json +32 -30
- package/src/components/add-new-template/add-custom-generic-template-modal.js +20 -28
- package/src/components/add-new-template/add-custom-template-modal.js +0 -1
- package/src/components/add-new-template/new-template-part.js +11 -32
- package/src/components/add-new-template/style.scss +0 -4
- package/src/components/add-new-template/utils.js +0 -14
- package/src/components/app/index.js +2 -2
- package/src/components/block-editor/index.js +12 -25
- package/src/components/block-editor/inserter-media-categories.js +247 -0
- package/src/components/block-editor/style.scss +19 -7
- package/src/components/canvas-spinner/index.js +12 -0
- package/src/components/canvas-spinner/style.scss +7 -0
- package/src/components/create-template-part-modal/index.js +75 -67
- package/src/components/create-template-part-modal/style.scss +0 -10
- package/src/components/editor/index.js +4 -2
- package/src/components/error-boundary/index.js +2 -10
- package/src/components/error-boundary/warning.js +6 -35
- package/src/components/global-styles/README.md +1 -75
- package/src/components/global-styles/block-preview-panel.js +2 -2
- package/src/components/global-styles/border-panel.js +19 -17
- package/src/components/global-styles/color-palette-panel.js +10 -7
- package/src/components/global-styles/context-menu.js +114 -44
- package/src/components/global-styles/custom-css.js +76 -19
- package/src/components/global-styles/dimensions-panel.js +46 -36
- package/src/components/global-styles/global-styles-provider.js +6 -2
- package/src/components/global-styles/gradients-palette-panel.js +17 -11
- package/src/components/global-styles/hooks.js +31 -155
- package/src/components/global-styles/index.js +0 -2
- package/src/components/global-styles/palette.js +9 -5
- package/src/components/global-styles/preview.js +19 -13
- package/src/components/global-styles/screen-background-color.js +37 -21
- package/src/components/global-styles/screen-border.js +10 -5
- package/src/components/global-styles/screen-button-color.js +21 -19
- package/src/components/global-styles/screen-colors.js +48 -65
- package/src/components/global-styles/screen-css.js +30 -14
- package/src/components/global-styles/screen-heading-color.js +32 -27
- package/src/components/global-styles/screen-layout.js +4 -7
- package/src/components/global-styles/screen-link-color.js +26 -26
- package/src/components/global-styles/screen-root.js +24 -9
- package/src/components/global-styles/screen-style-variations.js +7 -2
- package/src/components/global-styles/screen-text-color.js +15 -19
- package/src/components/global-styles/screen-typography.js +27 -12
- package/src/components/global-styles/shadow-panel.js +174 -0
- package/src/components/global-styles/style.scss +85 -1
- package/src/components/global-styles/typography-panel.js +60 -48
- package/src/components/global-styles/typography-preview.js +28 -9
- package/src/components/global-styles/ui.js +78 -53
- package/src/components/global-styles/utils.js +4 -371
- package/src/components/global-styles-renderer/index.js +3 -4
- package/src/components/header-edit-mode/document-actions/index.js +1 -1
- package/src/components/keyboard-shortcut-help-modal/index.js +0 -1
- package/src/components/layout/index.js +9 -2
- package/src/components/layout/style.scss +4 -5
- package/src/components/list/actions/rename-menu-item.js +14 -23
- package/src/components/list/style.scss +0 -4
- package/src/components/{sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js → navigation-inspector/index.js} +1 -4
- package/src/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/navigation-menu.js +10 -12
- package/src/components/{sidebar-edit-mode/navigation-menu-sidebar → navigation-inspector}/style.scss +0 -17
- package/src/components/sidebar/index.js +2 -0
- package/src/components/sidebar-edit-mode/global-styles-sidebar.js +8 -32
- package/src/components/sidebar-edit-mode/index.js +0 -11
- package/src/components/sidebar-edit-mode/settings-header/style.scss +8 -0
- package/src/components/sidebar-navigation-item/style.scss +28 -3
- package/src/components/sidebar-navigation-screen/index.js +4 -3
- package/src/components/sidebar-navigation-screen/style.scss +2 -0
- package/src/components/sidebar-navigation-screen-main/index.js +23 -1
- package/src/components/sidebar-navigation-screen-navigation-menus/index.js +25 -0
- package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +12 -0
- package/src/components/sidebar-navigation-screen-templates/index.js +12 -19
- package/src/components/site-hub/index.js +1 -1
- package/src/components/site-hub/style.scss +7 -1
- package/src/components/site-icon/index.js +1 -1
- package/src/components/site-icon/style.scss +2 -2
- package/src/components/style-book/index.js +10 -5
- package/src/components/template-part-converter/convert-to-template-part.js +12 -10
- package/src/experiments.js +10 -0
- package/src/hooks/push-changes-to-global-styles/index.js +63 -5
- package/src/index.js +51 -59
- package/src/store/selectors.js +6 -26
- package/src/store/test/utils.js +181 -0
- package/src/store/utils.js +69 -0
- package/src/style.scss +4 -2
- package/src/utils/template-part-create.js +62 -0
- package/src/utils/test/template-part-create.js +63 -0
- package/build/components/global-styles/context.js +0 -22
- package/build/components/global-styles/context.js.map +0 -1
- package/build/components/global-styles/typography-utils.js +0 -92
- package/build/components/global-styles/typography-utils.js.map +0 -1
- package/build/components/global-styles/use-global-styles-output.js +0 -943
- package/build/components/global-styles/use-global-styles-output.js.map +0 -1
- package/build/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -42
- package/build/components/sidebar-edit-mode/navigation-menu-sidebar/index.js.map +0 -1
- package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +0 -1
- package/build/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +0 -1
- package/build-module/components/global-styles/context.js +0 -12
- package/build-module/components/global-styles/context.js.map +0 -1
- package/build-module/components/global-styles/typography-utils.js +0 -84
- package/build-module/components/global-styles/typography-utils.js.map +0 -1
- package/build-module/components/global-styles/use-global-styles-output.js +0 -901
- package/build-module/components/global-styles/use-global-styles-output.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -28
- package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/index.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-inspector.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/navigation-menu-sidebar/navigation-menu.js.map +0 -1
- package/src/components/global-styles/context.js +0 -15
- package/src/components/global-styles/test/typography-utils.js +0 -393
- package/src/components/global-styles/test/use-global-styles-output.js +0 -814
- package/src/components/global-styles/test/utils.js +0 -206
- package/src/components/global-styles/typography-utils.js +0 -87
- package/src/components/global-styles/use-global-styles-output.js +0 -1059
- package/src/components/sidebar-edit-mode/navigation-menu-sidebar/index.js +0 -37
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/edit-site",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.3.0",
|
|
4
4
|
"description": "Edit Site Page module for WordPress.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -27,40 +27,42 @@
|
|
|
27
27
|
"react-native": "src/index",
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@babel/runtime": "^7.16.0",
|
|
30
|
-
"@wordpress/a11y": "^3.
|
|
31
|
-
"@wordpress/api-fetch": "^6.
|
|
32
|
-
"@wordpress/block-editor": "^11.
|
|
33
|
-
"@wordpress/block-library": "^8.
|
|
34
|
-
"@wordpress/blocks": "^12.
|
|
35
|
-
"@wordpress/components": "^23.
|
|
36
|
-
"@wordpress/compose": "^6.
|
|
37
|
-
"@wordpress/core-data": "^6.
|
|
38
|
-
"@wordpress/data": "^8.
|
|
39
|
-
"@wordpress/deprecated": "^3.
|
|
40
|
-
"@wordpress/editor": "^13.
|
|
41
|
-
"@wordpress/element": "^5.
|
|
42
|
-
"@wordpress/
|
|
43
|
-
"@wordpress/
|
|
44
|
-
"@wordpress/
|
|
45
|
-
"@wordpress/
|
|
46
|
-
"@wordpress/
|
|
47
|
-
"@wordpress/
|
|
48
|
-
"@wordpress/
|
|
49
|
-
"@wordpress/
|
|
50
|
-
"@wordpress/
|
|
51
|
-
"@wordpress/
|
|
52
|
-
"@wordpress/
|
|
53
|
-
"@wordpress/
|
|
54
|
-
"@wordpress/
|
|
55
|
-
"@wordpress/
|
|
56
|
-
"@wordpress/
|
|
57
|
-
"@wordpress/
|
|
30
|
+
"@wordpress/a11y": "^3.26.0",
|
|
31
|
+
"@wordpress/api-fetch": "^6.23.0",
|
|
32
|
+
"@wordpress/block-editor": "^11.3.0",
|
|
33
|
+
"@wordpress/block-library": "^8.3.0",
|
|
34
|
+
"@wordpress/blocks": "^12.3.0",
|
|
35
|
+
"@wordpress/components": "^23.3.0",
|
|
36
|
+
"@wordpress/compose": "^6.3.0",
|
|
37
|
+
"@wordpress/core-data": "^6.3.0",
|
|
38
|
+
"@wordpress/data": "^8.3.0",
|
|
39
|
+
"@wordpress/deprecated": "^3.26.0",
|
|
40
|
+
"@wordpress/editor": "^13.3.0",
|
|
41
|
+
"@wordpress/element": "^5.3.0",
|
|
42
|
+
"@wordpress/experiments": "^0.8.0",
|
|
43
|
+
"@wordpress/hooks": "^3.26.0",
|
|
44
|
+
"@wordpress/html-entities": "^3.26.0",
|
|
45
|
+
"@wordpress/i18n": "^4.26.0",
|
|
46
|
+
"@wordpress/icons": "^9.17.0",
|
|
47
|
+
"@wordpress/interface": "^5.3.0",
|
|
48
|
+
"@wordpress/keyboard-shortcuts": "^4.3.0",
|
|
49
|
+
"@wordpress/keycodes": "^3.26.0",
|
|
50
|
+
"@wordpress/media-utils": "^4.17.0",
|
|
51
|
+
"@wordpress/notices": "^3.26.0",
|
|
52
|
+
"@wordpress/plugins": "^5.3.0",
|
|
53
|
+
"@wordpress/preferences": "^3.3.0",
|
|
54
|
+
"@wordpress/reusable-blocks": "^4.3.0",
|
|
55
|
+
"@wordpress/style-engine": "^1.9.0",
|
|
56
|
+
"@wordpress/url": "^3.27.0",
|
|
57
|
+
"@wordpress/viewport": "^5.3.0",
|
|
58
|
+
"@wordpress/widgets": "^3.3.0",
|
|
58
59
|
"classnames": "^2.3.1",
|
|
59
60
|
"colord": "^2.9.2",
|
|
60
61
|
"downloadjs": "^1.4.7",
|
|
61
62
|
"fast-deep-equal": "^3.1.3",
|
|
62
63
|
"history": "^5.1.0",
|
|
63
64
|
"lodash": "^4.17.21",
|
|
65
|
+
"memize": "^1.1.0",
|
|
64
66
|
"react-autosize-textarea": "^7.1.0",
|
|
65
67
|
"rememo": "^4.0.0"
|
|
66
68
|
},
|
|
@@ -71,5 +73,5 @@
|
|
|
71
73
|
"publishConfig": {
|
|
72
74
|
"access": "public"
|
|
73
75
|
},
|
|
74
|
-
"gitHead": "
|
|
76
|
+
"gitHead": "cab6ebe2b4c5dbacfd753dcae4a2406559c4813c"
|
|
75
77
|
}
|
|
@@ -10,10 +10,10 @@ import { useState } from '@wordpress/element';
|
|
|
10
10
|
import { __ } from '@wordpress/i18n';
|
|
11
11
|
import {
|
|
12
12
|
Button,
|
|
13
|
-
Flex,
|
|
14
|
-
FlexItem,
|
|
15
13
|
Modal,
|
|
16
14
|
TextControl,
|
|
15
|
+
__experimentalHStack as HStack,
|
|
16
|
+
__experimentalVStack as VStack,
|
|
17
17
|
} from '@wordpress/components';
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -52,7 +52,6 @@ function AddCustomGenericTemplateModal( {
|
|
|
52
52
|
return (
|
|
53
53
|
<Modal
|
|
54
54
|
title={ __( 'Create custom template' ) }
|
|
55
|
-
closeLabel={ __( 'Close' ) }
|
|
56
55
|
onRequestClose={ () => {
|
|
57
56
|
onClose();
|
|
58
57
|
} }
|
|
@@ -60,27 +59,22 @@ function AddCustomGenericTemplateModal( {
|
|
|
60
59
|
>
|
|
61
60
|
{ isCreatingTemplate && <TemplateActionsLoadingScreen /> }
|
|
62
61
|
<form onSubmit={ onCreateTemplate }>
|
|
63
|
-
<
|
|
64
|
-
<
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
className="edit-site-custom-generic-template__modal-actions"
|
|
80
|
-
justify="flex-end"
|
|
81
|
-
expanded={ false }
|
|
82
|
-
>
|
|
83
|
-
<FlexItem>
|
|
62
|
+
<VStack spacing={ 6 }>
|
|
63
|
+
<TextControl
|
|
64
|
+
__nextHasNoMarginBottom
|
|
65
|
+
label={ __( 'Name' ) }
|
|
66
|
+
value={ title }
|
|
67
|
+
onChange={ setTitle }
|
|
68
|
+
placeholder={ defaultTitle }
|
|
69
|
+
disabled={ isBusy }
|
|
70
|
+
help={ __(
|
|
71
|
+
'Describe the template, e.g. "Post with sidebar".'
|
|
72
|
+
) }
|
|
73
|
+
/>
|
|
74
|
+
<HStack
|
|
75
|
+
className="edit-site-custom-generic-template__modal-actions"
|
|
76
|
+
justify="right"
|
|
77
|
+
>
|
|
84
78
|
<Button
|
|
85
79
|
variant="tertiary"
|
|
86
80
|
onClick={ () => {
|
|
@@ -89,8 +83,6 @@ function AddCustomGenericTemplateModal( {
|
|
|
89
83
|
>
|
|
90
84
|
{ __( 'Cancel' ) }
|
|
91
85
|
</Button>
|
|
92
|
-
</FlexItem>
|
|
93
|
-
<FlexItem>
|
|
94
86
|
<Button
|
|
95
87
|
variant="primary"
|
|
96
88
|
type="submit"
|
|
@@ -99,8 +91,8 @@ function AddCustomGenericTemplateModal( {
|
|
|
99
91
|
>
|
|
100
92
|
{ __( 'Create' ) }
|
|
101
93
|
</Button>
|
|
102
|
-
</
|
|
103
|
-
</
|
|
94
|
+
</HStack>
|
|
95
|
+
</VStack>
|
|
104
96
|
</form>
|
|
105
97
|
</Modal>
|
|
106
98
|
);
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { kebabCase } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* WordPress dependencies
|
|
8
3
|
*/
|
|
@@ -20,7 +15,11 @@ import { plus } from '@wordpress/icons';
|
|
|
20
15
|
import { useHistory } from '../routes';
|
|
21
16
|
import { store as editSiteStore } from '../../store';
|
|
22
17
|
import CreateTemplatePartModal from '../create-template-part-modal';
|
|
23
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
useExistingTemplateParts,
|
|
20
|
+
getUniqueTemplatePartTitle,
|
|
21
|
+
getCleanTemplatePartSlug,
|
|
22
|
+
} from '../../utils/template-part-create';
|
|
24
23
|
|
|
25
24
|
export default function NewTemplatePart( {
|
|
26
25
|
postType,
|
|
@@ -42,39 +41,19 @@ export default function NewTemplatePart( {
|
|
|
42
41
|
return;
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
const uniqueTitle = () => {
|
|
46
|
-
const lowercaseTitle = title.toLowerCase();
|
|
47
|
-
const existingTitles = existingTemplateParts.map(
|
|
48
|
-
( templatePart ) => templatePart.title.rendered.toLowerCase()
|
|
49
|
-
);
|
|
50
|
-
|
|
51
|
-
if ( ! existingTitles.includes( lowercaseTitle ) ) {
|
|
52
|
-
return title;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
let suffix = 2;
|
|
56
|
-
while (
|
|
57
|
-
existingTitles.includes( `${ lowercaseTitle } ${ suffix }` )
|
|
58
|
-
) {
|
|
59
|
-
suffix++;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return `${ title } ${ suffix }`;
|
|
63
|
-
};
|
|
64
|
-
|
|
65
44
|
try {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
45
|
+
const uniqueTitle = getUniqueTemplatePartTitle(
|
|
46
|
+
title,
|
|
47
|
+
existingTemplateParts
|
|
48
|
+
);
|
|
49
|
+
const cleanSlug = getCleanTemplatePartSlug( uniqueTitle );
|
|
71
50
|
|
|
72
51
|
const templatePart = await saveEntityRecord(
|
|
73
52
|
'postType',
|
|
74
53
|
'wp_template_part',
|
|
75
54
|
{
|
|
76
55
|
slug: cleanSlug,
|
|
77
|
-
title: uniqueTitle
|
|
56
|
+
title: uniqueTitle,
|
|
78
57
|
content: '',
|
|
79
58
|
area,
|
|
80
59
|
},
|
|
@@ -52,20 +52,6 @@ export const useExistingTemplates = () => {
|
|
|
52
52
|
);
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
export const useExistingTemplateParts = () => {
|
|
56
|
-
return useSelect(
|
|
57
|
-
( select ) =>
|
|
58
|
-
select( coreStore ).getEntityRecords(
|
|
59
|
-
'postType',
|
|
60
|
-
'wp_template_part',
|
|
61
|
-
{
|
|
62
|
-
per_page: -1,
|
|
63
|
-
}
|
|
64
|
-
),
|
|
65
|
-
[]
|
|
66
|
-
);
|
|
67
|
-
};
|
|
68
|
-
|
|
69
55
|
export const useDefaultTemplateTypes = () => {
|
|
70
56
|
return useSelect(
|
|
71
57
|
( select ) =>
|
|
@@ -15,7 +15,7 @@ import { PluginArea } from '@wordpress/plugins';
|
|
|
15
15
|
import { Routes } from '../routes';
|
|
16
16
|
import Layout from '../layout';
|
|
17
17
|
|
|
18
|
-
export default function App(
|
|
18
|
+
export default function App() {
|
|
19
19
|
const { createErrorNotice } = useDispatch( noticesStore );
|
|
20
20
|
|
|
21
21
|
function onPluginAreaError( name ) {
|
|
@@ -37,7 +37,7 @@ export default function App( { reboot } ) {
|
|
|
37
37
|
<UnsavedChangesWarning />
|
|
38
38
|
|
|
39
39
|
<Routes>
|
|
40
|
-
<Layout
|
|
40
|
+
<Layout />
|
|
41
41
|
<PluginArea onError={ onPluginAreaError } />
|
|
42
42
|
</Routes>
|
|
43
43
|
</SlotFillProvider>
|
|
@@ -7,22 +7,17 @@ import classnames from 'classnames';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
useEntityBlockEditor,
|
|
13
|
-
__experimentalFetchMedia as fetchMedia,
|
|
14
|
-
store as coreStore,
|
|
15
|
-
} from '@wordpress/core-data';
|
|
10
|
+
import { useMemo, useRef } from '@wordpress/element';
|
|
11
|
+
import { useEntityBlockEditor, store as coreStore } from '@wordpress/core-data';
|
|
16
12
|
import {
|
|
17
13
|
BlockList,
|
|
18
|
-
BlockEditorProvider,
|
|
19
|
-
__experimentalLinkControl,
|
|
20
14
|
BlockInspector,
|
|
21
15
|
BlockTools,
|
|
22
16
|
__unstableUseClipboardHandler as useClipboardHandler,
|
|
23
17
|
__unstableUseTypingObserver as useTypingObserver,
|
|
24
18
|
BlockEditorKeyboardShortcuts,
|
|
25
19
|
store as blockEditorStore,
|
|
20
|
+
experiments as blockEditorExperiments,
|
|
26
21
|
} from '@wordpress/block-editor';
|
|
27
22
|
import {
|
|
28
23
|
useMergeRefs,
|
|
@@ -34,14 +29,17 @@ import { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';
|
|
|
34
29
|
/**
|
|
35
30
|
* Internal dependencies
|
|
36
31
|
*/
|
|
32
|
+
import inserterMediaCategories from './inserter-media-categories';
|
|
37
33
|
import TemplatePartConverter from '../template-part-converter';
|
|
38
|
-
import NavigateToLink from '../navigate-to-link';
|
|
39
34
|
import { SidebarInspectorFill } from '../sidebar-edit-mode';
|
|
40
35
|
import { store as editSiteStore } from '../../store';
|
|
41
36
|
import BackButton from './back-button';
|
|
42
37
|
import ResizableEditor from './resizable-editor';
|
|
43
38
|
import EditorCanvas from './editor-canvas';
|
|
44
39
|
import StyleBook from '../style-book';
|
|
40
|
+
import { unlock } from '../../experiments';
|
|
41
|
+
|
|
42
|
+
const { ExperimentalBlockEditorProvider } = unlock( blockEditorExperiments );
|
|
45
43
|
|
|
46
44
|
const LAYOUT = {
|
|
47
45
|
type: 'default',
|
|
@@ -50,7 +48,7 @@ const LAYOUT = {
|
|
|
50
48
|
};
|
|
51
49
|
|
|
52
50
|
export default function BlockEditor() {
|
|
53
|
-
const {
|
|
51
|
+
const { setIsInserterOpened } = useDispatch( editSiteStore );
|
|
54
52
|
const { storedSettings, templateType, canvasMode } = useSelect(
|
|
55
53
|
( select ) => {
|
|
56
54
|
const { getSettings, getEditedPostType, __unstableGetCanvasMode } =
|
|
@@ -122,7 +120,7 @@ export default function BlockEditor() {
|
|
|
122
120
|
|
|
123
121
|
return {
|
|
124
122
|
...restStoredSettings,
|
|
125
|
-
|
|
123
|
+
inserterMediaCategories,
|
|
126
124
|
__experimentalBlockPatterns: blockPatterns,
|
|
127
125
|
__experimentalBlockPatternCategories: blockPatternCategories,
|
|
128
126
|
};
|
|
@@ -155,7 +153,7 @@ export default function BlockEditor() {
|
|
|
155
153
|
( isTemplatePart && hasBlocks ) || isViewMode ? false : undefined;
|
|
156
154
|
|
|
157
155
|
return (
|
|
158
|
-
<
|
|
156
|
+
<ExperimentalBlockEditorProvider
|
|
159
157
|
settings={ settings }
|
|
160
158
|
value={ blocks }
|
|
161
159
|
onInput={ onInput }
|
|
@@ -163,17 +161,6 @@ export default function BlockEditor() {
|
|
|
163
161
|
useSubRegistry={ false }
|
|
164
162
|
>
|
|
165
163
|
<TemplatePartConverter />
|
|
166
|
-
<__experimentalLinkControl.ViewerFill>
|
|
167
|
-
{ useCallback(
|
|
168
|
-
( fillProps ) => (
|
|
169
|
-
<NavigateToLink
|
|
170
|
-
{ ...fillProps }
|
|
171
|
-
onActivePageChange={ setPage }
|
|
172
|
-
/>
|
|
173
|
-
),
|
|
174
|
-
[]
|
|
175
|
-
) }
|
|
176
|
-
</__experimentalLinkControl.ViewerFill>
|
|
177
164
|
<SidebarInspectorFill>
|
|
178
165
|
<BlockInspector />
|
|
179
166
|
</SidebarInspectorFill>
|
|
@@ -204,7 +191,7 @@ export default function BlockEditor() {
|
|
|
204
191
|
<BackButton />
|
|
205
192
|
<ResizableEditor
|
|
206
193
|
enableResizing={ enableResizing }
|
|
207
|
-
height={ sizes.height }
|
|
194
|
+
height={ sizes.height ?? '100%' }
|
|
208
195
|
>
|
|
209
196
|
<EditorCanvas
|
|
210
197
|
enableResizing={ enableResizing }
|
|
@@ -225,6 +212,6 @@ export default function BlockEditor() {
|
|
|
225
212
|
}
|
|
226
213
|
</StyleBook.Slot>
|
|
227
214
|
<ReusableBlocksMenuItems />
|
|
228
|
-
</
|
|
215
|
+
</ExperimentalBlockEditorProvider>
|
|
229
216
|
);
|
|
230
217
|
}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `edit-site` settings here need to be in sync with the corresponding ones in `site-editor` package.
|
|
3
|
+
* See `packages/edit-site/src/components/block-editor/inserter-media-categories.js`.
|
|
4
|
+
*
|
|
5
|
+
* In the future we could consider creating an Openvese package that can be used in both `editor` and `site-editor`.
|
|
6
|
+
* The rest of the settings would still need to be in sync though.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* WordPress dependencies
|
|
11
|
+
*/
|
|
12
|
+
import { __, sprintf, _x } from '@wordpress/i18n';
|
|
13
|
+
import { resolveSelect } from '@wordpress/data';
|
|
14
|
+
import { decodeEntities } from '@wordpress/html-entities';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Internal dependencies
|
|
18
|
+
*/
|
|
19
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
20
|
+
|
|
21
|
+
/** @typedef {import('@wordpress/block-editor').InserterMediaRequest} InserterMediaRequest */
|
|
22
|
+
/** @typedef {import('@wordpress/block-editor').InserterMediaItem} InserterMediaItem */
|
|
23
|
+
/**
|
|
24
|
+
* Interface for inserter media category labels.
|
|
25
|
+
*
|
|
26
|
+
* @typedef {Object} InserterMediaCategoryLabels
|
|
27
|
+
* @property {string} name General name of the media category. It's used in the inserter media items list.
|
|
28
|
+
* @property {string} [search_items='Search'] Label for searching items. Default is ‘Search Posts’ / ‘Search Pages’.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Interface for inserter media category.
|
|
32
|
+
*
|
|
33
|
+
* @typedef {Object} InserterMediaCategory
|
|
34
|
+
* @property {string} name The name of the media category, that should be unique among all media categories.
|
|
35
|
+
* @property {InserterMediaCategoryLabels} labels Labels for the media category.
|
|
36
|
+
* @property {('image'|'audio'|'video')} mediaType The media type of the media category.
|
|
37
|
+
* @property {(InserterMediaRequest) => Promise<InserterMediaItem[]>} fetch The function to fetch media items for the category.
|
|
38
|
+
* @property {(InserterMediaItem) => string} [getReportUrl] If the media category supports reporting media items, this function should return
|
|
39
|
+
* the report url for the media item. It accepts the `InserterMediaItem` as an argument.
|
|
40
|
+
* @property {boolean} [isExternalResource] If the media category is an external resource, this should be set to true.
|
|
41
|
+
* This is used to avoid making a request to the external resource when the user
|
|
42
|
+
* opens the inserter for the first time.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
const getExternalLink = ( url, text ) =>
|
|
46
|
+
`<a ${ getExternalLinkAttributes( url ) }>${ text }</a>`;
|
|
47
|
+
|
|
48
|
+
const getExternalLinkAttributes = ( url ) =>
|
|
49
|
+
`href="${ url }" target="_blank" rel="noreferrer noopener"`;
|
|
50
|
+
|
|
51
|
+
const getOpenverseLicense = ( license, licenseVersion ) => {
|
|
52
|
+
let licenseName = license.trim();
|
|
53
|
+
// PDM has no abbreviation
|
|
54
|
+
if ( license !== 'pdm' ) {
|
|
55
|
+
licenseName = license.toUpperCase().replace( 'SAMPLING', 'Sampling' );
|
|
56
|
+
}
|
|
57
|
+
// If version is known, append version to the name.
|
|
58
|
+
// The license has to have a version to be valid. Only
|
|
59
|
+
// PDM (public domain mark) doesn't have a version.
|
|
60
|
+
if ( licenseVersion ) {
|
|
61
|
+
licenseName += ` ${ licenseVersion }`;
|
|
62
|
+
}
|
|
63
|
+
// For licenses other than public-domain marks, prepend 'CC' to the name.
|
|
64
|
+
if ( ! [ 'pdm', 'cc0' ].includes( license ) ) {
|
|
65
|
+
licenseName = `CC ${ licenseName }`;
|
|
66
|
+
}
|
|
67
|
+
return licenseName;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
const getOpenverseCaption = ( item ) => {
|
|
71
|
+
const {
|
|
72
|
+
title,
|
|
73
|
+
foreign_landing_url: foreignLandingUrl,
|
|
74
|
+
creator,
|
|
75
|
+
creator_url: creatorUrl,
|
|
76
|
+
license,
|
|
77
|
+
license_version: licenseVersion,
|
|
78
|
+
license_url: licenseUrl,
|
|
79
|
+
} = item;
|
|
80
|
+
const fullLicense = getOpenverseLicense( license, licenseVersion );
|
|
81
|
+
const _creator = decodeEntities( creator );
|
|
82
|
+
let _caption;
|
|
83
|
+
if ( _creator ) {
|
|
84
|
+
_caption = title
|
|
85
|
+
? sprintf(
|
|
86
|
+
// 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".
|
|
87
|
+
_x( '"%1$s" by %2$s/ %3$s', 'caption' ),
|
|
88
|
+
getExternalLink(
|
|
89
|
+
foreignLandingUrl,
|
|
90
|
+
decodeEntities( title )
|
|
91
|
+
),
|
|
92
|
+
creatorUrl
|
|
93
|
+
? getExternalLink( creatorUrl, _creator )
|
|
94
|
+
: _creator,
|
|
95
|
+
licenseUrl
|
|
96
|
+
? getExternalLink(
|
|
97
|
+
`${ licenseUrl }?ref=openverse`,
|
|
98
|
+
fullLicense
|
|
99
|
+
)
|
|
100
|
+
: fullLicense
|
|
101
|
+
)
|
|
102
|
+
: sprintf(
|
|
103
|
+
// 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".
|
|
104
|
+
_x( '<a %1$s>Work</a> by %2$s/ %3$s', 'caption' ),
|
|
105
|
+
getExternalLinkAttributes( foreignLandingUrl ),
|
|
106
|
+
creatorUrl
|
|
107
|
+
? getExternalLink( creatorUrl, _creator )
|
|
108
|
+
: _creator,
|
|
109
|
+
licenseUrl
|
|
110
|
+
? getExternalLink(
|
|
111
|
+
`${ licenseUrl }?ref=openverse`,
|
|
112
|
+
fullLicense
|
|
113
|
+
)
|
|
114
|
+
: fullLicense
|
|
115
|
+
);
|
|
116
|
+
} else {
|
|
117
|
+
_caption = title
|
|
118
|
+
? sprintf(
|
|
119
|
+
// translators: %1s: Title of a media work from Openverse; %2s: Work's licence e.g: "CC0 1.0".
|
|
120
|
+
_x( '"%1$s"/ %2$s', 'caption' ),
|
|
121
|
+
getExternalLink(
|
|
122
|
+
foreignLandingUrl,
|
|
123
|
+
decodeEntities( title )
|
|
124
|
+
),
|
|
125
|
+
licenseUrl
|
|
126
|
+
? getExternalLink(
|
|
127
|
+
`${ licenseUrl }?ref=openverse`,
|
|
128
|
+
fullLicense
|
|
129
|
+
)
|
|
130
|
+
: fullLicense
|
|
131
|
+
)
|
|
132
|
+
: sprintf(
|
|
133
|
+
// translators: %1s: Link attributes for a given Openverse media work; %2s: Works's licence e.g: "CC0 1.0".
|
|
134
|
+
_x( '<a %1$s>Work</a>/ %3$s', 'caption' ),
|
|
135
|
+
getExternalLinkAttributes( foreignLandingUrl ),
|
|
136
|
+
licenseUrl
|
|
137
|
+
? getExternalLink(
|
|
138
|
+
`${ licenseUrl }?ref=openverse`,
|
|
139
|
+
fullLicense
|
|
140
|
+
)
|
|
141
|
+
: fullLicense
|
|
142
|
+
);
|
|
143
|
+
}
|
|
144
|
+
return _caption.replace( /\s{2}/g, ' ' );
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
const coreMediaFetch = async ( query = {} ) => {
|
|
148
|
+
const mediaItems = await resolveSelect( coreStore ).getMediaItems( {
|
|
149
|
+
...query,
|
|
150
|
+
orderBy: !! query?.search ? 'relevance' : 'date',
|
|
151
|
+
} );
|
|
152
|
+
return mediaItems.map( ( mediaItem ) => ( {
|
|
153
|
+
...mediaItem,
|
|
154
|
+
alt: mediaItem.alt_text,
|
|
155
|
+
url: mediaItem.source_url,
|
|
156
|
+
previewUrl: mediaItem.media_details?.sizes?.medium?.source_url,
|
|
157
|
+
caption: mediaItem.caption?.raw,
|
|
158
|
+
} ) );
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
/** @type {InserterMediaCategory[]} */
|
|
162
|
+
const inserterMediaCategories = [
|
|
163
|
+
{
|
|
164
|
+
name: 'images',
|
|
165
|
+
labels: {
|
|
166
|
+
name: __( 'Images' ),
|
|
167
|
+
search_items: __( 'Search images' ),
|
|
168
|
+
},
|
|
169
|
+
mediaType: 'image',
|
|
170
|
+
async fetch( query = {} ) {
|
|
171
|
+
return coreMediaFetch( { ...query, media_type: 'image' } );
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
name: 'videos',
|
|
176
|
+
labels: {
|
|
177
|
+
name: __( 'Videos' ),
|
|
178
|
+
search_items: __( 'Search videos' ),
|
|
179
|
+
},
|
|
180
|
+
mediaType: 'video',
|
|
181
|
+
async fetch( query = {} ) {
|
|
182
|
+
return coreMediaFetch( { ...query, media_type: 'video' } );
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
name: 'audio',
|
|
187
|
+
labels: {
|
|
188
|
+
name: __( 'Audio' ),
|
|
189
|
+
search_items: __( 'Search audio' ),
|
|
190
|
+
},
|
|
191
|
+
mediaType: 'audio',
|
|
192
|
+
async fetch( query = {} ) {
|
|
193
|
+
return coreMediaFetch( { ...query, media_type: 'audio' } );
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: 'openverse',
|
|
198
|
+
labels: {
|
|
199
|
+
name: __( 'Openverse' ),
|
|
200
|
+
search_items: __( 'Search Openverse' ),
|
|
201
|
+
},
|
|
202
|
+
mediaType: 'image',
|
|
203
|
+
async fetch( query = {} ) {
|
|
204
|
+
const defaultArgs = {
|
|
205
|
+
mature: false,
|
|
206
|
+
excluded_source: 'flickr,inaturalist,wikimedia',
|
|
207
|
+
license: 'pdm,cc0',
|
|
208
|
+
};
|
|
209
|
+
const finalQuery = { ...query, ...defaultArgs };
|
|
210
|
+
const mapFromInserterMediaRequest = {
|
|
211
|
+
per_page: 'page_size',
|
|
212
|
+
search: 'q',
|
|
213
|
+
};
|
|
214
|
+
const url = new URL(
|
|
215
|
+
'https://api.openverse.engineering/v1/images/'
|
|
216
|
+
);
|
|
217
|
+
Object.entries( finalQuery ).forEach( ( [ key, value ] ) => {
|
|
218
|
+
const queryKey = mapFromInserterMediaRequest[ key ] || key;
|
|
219
|
+
url.searchParams.set( queryKey, value );
|
|
220
|
+
} );
|
|
221
|
+
const response = await window.fetch( url, {
|
|
222
|
+
headers: {
|
|
223
|
+
'User-Agent': 'WordPress/inserter-media-fetch',
|
|
224
|
+
},
|
|
225
|
+
} );
|
|
226
|
+
const jsonResponse = await response.json();
|
|
227
|
+
const results = jsonResponse.results;
|
|
228
|
+
return results.map( ( result ) => ( {
|
|
229
|
+
...result,
|
|
230
|
+
// This is a temp solution for better titles, until Openverse API
|
|
231
|
+
// completes the cleaning up of some titles of their upstream data.
|
|
232
|
+
title: result.title?.toLowerCase().startsWith( 'file:' )
|
|
233
|
+
? result.title.slice( 5 )
|
|
234
|
+
: result.title,
|
|
235
|
+
sourceId: result.id,
|
|
236
|
+
id: undefined,
|
|
237
|
+
caption: getOpenverseCaption( result ),
|
|
238
|
+
previewUrl: result.thumbnail,
|
|
239
|
+
} ) );
|
|
240
|
+
},
|
|
241
|
+
getReportUrl: ( { sourceId } ) =>
|
|
242
|
+
`https://wordpress.org/openverse/image/${ sourceId }/report/`,
|
|
243
|
+
isExternalResource: true,
|
|
244
|
+
},
|
|
245
|
+
];
|
|
246
|
+
|
|
247
|
+
export default inserterMediaCategories;
|