@wordpress/edit-site 5.32.0 → 5.34.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 +4 -0
- package/build/components/add-new-page/index.js +3 -0
- package/build/components/add-new-page/index.js.map +1 -1
- package/build/components/add-new-pattern/index.js +8 -7
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/add-new-template/add-custom-generic-template-modal-content.js +3 -0
- package/build/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
- package/build/components/add-new-template/add-custom-template-modal-content.js +3 -1
- package/build/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build/components/add-new-template/index.js +282 -13
- package/build/components/add-new-template/index.js.map +1 -1
- package/build/components/add-new-template/utils.js +22 -11
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/app/index.js.map +1 -1
- package/build/components/async/index.js +51 -0
- package/build/components/async/index.js.map +1 -0
- package/build/components/block-editor/block-inspector-button.js +10 -9
- package/build/components/block-editor/block-inspector-button.js.map +1 -1
- package/build/components/block-editor/editor-canvas.js +15 -6
- package/build/components/block-editor/editor-canvas.js.map +1 -1
- package/build/components/block-editor/inserter-media-categories.js.map +1 -1
- package/build/components/block-editor/resizable-editor.js.map +1 -1
- package/build/components/block-editor/resize-handle.js +20 -5
- package/build/components/block-editor/resize-handle.js.map +1 -1
- package/build/components/block-editor/site-editor-canvas.js +5 -1
- package/build/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build/components/block-editor/use-navigate-to-entity-record.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/canvas-loader/index.js.map +1 -1
- package/build/components/code-editor/index.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +3 -0
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/editor/index.js +61 -11
- package/build/components/editor/index.js.map +1 -1
- package/build/components/editor-canvas-container/index.js.map +1 -1
- package/build/components/error-boundary/index.js.map +1 -1
- package/build/components/error-boundary/warning.js.map +1 -1
- package/build/components/global-styles/background-panel.js +13 -1
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/block-preview-panel.js +6 -1
- package/build/components/global-styles/block-preview-panel.js.map +1 -1
- package/build/components/global-styles/color-indicator-wrapper.js.map +1 -1
- package/build/components/global-styles/color-palette-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/font-families.js +1 -1
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-family-item.js.map +1 -1
- package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +69 -35
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-card.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +18 -6
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -1
- package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
- package/build/components/global-styles/font-library-modal/index.js +1 -1
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +31 -28
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
- package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -1
- package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js +6 -2
- package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -1
- package/build/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -1
- package/build/components/global-styles/global-styles-provider.js.map +1 -1
- package/build/components/global-styles/gradients-palette-panel.js.map +1 -1
- package/build/components/global-styles/header.js.map +1 -1
- package/build/components/global-styles/highlighted-colors.js +1 -1
- package/build/components/global-styles/highlighted-colors.js.map +1 -1
- package/build/components/global-styles/hooks.js +11 -3
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/icon-with-current-color.js.map +1 -1
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/navigation-button.js.map +1 -1
- package/build/components/global-styles/palette.js.map +1 -1
- package/build/components/global-styles/preview-colors.js.map +1 -1
- package/build/components/global-styles/preview-iframe.js.map +1 -1
- package/build/components/global-styles/preview-styles.js.map +1 -1
- package/build/components/global-styles/root-menu.js +2 -2
- package/build/components/global-styles/root-menu.js.map +1 -1
- package/build/components/global-styles/screen-background.js +1 -1
- package/build/components/global-styles/screen-background.js.map +1 -1
- package/build/components/global-styles/screen-block-list.js.map +1 -1
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-color-palette.js.map +1 -1
- package/build/components/global-styles/screen-colors.js.map +1 -1
- package/build/components/global-styles/screen-css.js.map +1 -1
- package/build/components/global-styles/screen-layout.js.map +1 -1
- package/build/components/global-styles/screen-revisions/index.js +1 -1
- package/build/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build/components/global-styles/screen-root.js.map +1 -1
- package/build/components/global-styles/screen-style-variations.js.map +1 -1
- package/build/components/global-styles/screen-typography-element.js.map +1 -1
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/style-variations-container.js +8 -2
- package/build/components/global-styles/style-variations-container.js.map +1 -1
- package/build/components/global-styles/subtitle.js.map +1 -1
- package/build/components/global-styles/typography-elements.js.map +1 -1
- package/build/components/global-styles/typography-example.js.map +1 -1
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/typography-preview.js.map +1 -1
- package/build/components/global-styles/ui.js +1 -1
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/global-styles/variations/variation.js.map +1 -1
- package/build/components/global-styles/variations/variations-color.js.map +1 -1
- package/build/components/global-styles/variations/variations-panel.js.map +1 -1
- package/build/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build/components/global-styles-renderer/index.js.map +1 -1
- package/build/components/header-edit-mode/document-tools/index.js.map +1 -1
- package/build/components/header-edit-mode/index.js +36 -52
- package/build/components/header-edit-mode/index.js.map +1 -1
- package/build/components/header-edit-mode/more-menu/index.js +4 -100
- package/build/components/header-edit-mode/more-menu/index.js.map +1 -1
- package/build/components/header-edit-mode/more-menu/site-export.js.map +1 -1
- package/build/components/header-edit-mode/more-menu/welcome-guide-menu-item.js.map +1 -1
- package/build/components/keyboard-shortcuts/global.js.map +1 -1
- package/build/components/keyboard-shortcuts/register.js +0 -67
- package/build/components/keyboard-shortcuts/register.js.map +1 -1
- package/build/components/layout/animation.js +3 -2
- package/build/components/layout/animation.js.map +1 -1
- package/build/components/layout/hooks.js.map +1 -1
- package/build/components/layout/index.js +20 -52
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/router.js +70 -33
- package/build/components/layout/router.js.map +1 -1
- package/build/components/media/index.js.map +1 -1
- package/build/components/page/header.js.map +1 -1
- package/build/components/page/index.js +5 -2
- package/build/components/page/index.js.map +1 -1
- package/build/components/page-pages/index.js +18 -19
- package/build/components/page-pages/index.js.map +1 -1
- package/build/components/page-patterns/dataviews-pattern-actions.js +16 -11
- package/build/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
- package/build/components/page-patterns/delete-category-menu-item.js.map +1 -1
- package/build/components/page-patterns/header.js +5 -3
- package/build/components/page-patterns/header.js.map +1 -1
- package/build/components/page-patterns/index.js +140 -62
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/rename-category-menu-item.js.map +1 -1
- package/build/components/page-patterns/search-items.js +2 -1
- package/build/components/page-patterns/search-items.js.map +1 -1
- package/build/components/page-patterns/use-pattern-settings.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +6 -10
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-patterns/utils.js.map +1 -1
- package/build/components/page-templates/hooks.js.map +1 -0
- package/build/components/{page-templates-template-parts → page-templates}/index.js +78 -103
- package/build/components/page-templates/index.js.map +1 -0
- package/build/components/pagination/index.js.map +1 -1
- package/build/components/pattern-modal/duplicate.js +13 -8
- package/build/components/pattern-modal/duplicate.js.map +1 -1
- package/build/components/pattern-modal/index.js.map +1 -1
- package/build/components/pattern-modal/rename.js +6 -3
- package/build/components/pattern-modal/rename.js.map +1 -1
- package/build/components/plugin-template-setting-panel/index.js +9 -0
- package/build/components/plugin-template-setting-panel/index.js.map +1 -1
- package/build/components/{template-actions/rename-menu-item.js → rename-post-menu-item/index.js} +18 -16
- package/build/components/rename-post-menu-item/index.js.map +1 -0
- package/build/components/resizable-frame/index.js +10 -11
- package/build/components/resizable-frame/index.js.map +1 -1
- package/build/components/revisions/index.js.map +1 -1
- package/build/components/routes/link.js.map +1 -1
- package/build/components/routes/use-title.js.map +1 -1
- package/build/components/save-button/index.js.map +1 -1
- package/build/components/save-hub/index.js.map +1 -1
- package/build/components/save-panel/index.js +3 -3
- package/build/components/save-panel/index.js.map +1 -1
- package/build/components/sidebar/index.js +41 -75
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/sidebar-button/index.js.map +1 -1
- package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +1 -1
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +1 -1
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/default-sidebar.js +18 -7
- package/build/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
- package/build/components/sidebar-edit-mode/global-styles-sidebar.js +5 -3
- package/build/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
- package/build/components/sidebar-edit-mode/index.js +31 -55
- package/build/components/sidebar-edit-mode/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/index.js +55 -3
- package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js +23 -16
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build/components/sidebar-edit-mode/settings-header/index.js +4 -5
- package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/index.js +3 -6
- package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
- package/build/components/sidebar-navigation-item/index.js +31 -0
- package/build/components/sidebar-navigation-item/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen/index.js +36 -9
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-panel/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.js +1 -2
- package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-main/index.js +6 -15
- package/build/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/index.js +7 -2
- package/build/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +20 -15
- package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +6 -5
- package/build/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/index.js +53 -12
- package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/index.js +17 -15
- package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/category-item.js +3 -2
- package/build/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js +64 -52
- package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
- package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-template/index.js +11 -8
- package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-template/template-areas.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/content.js +3 -3
- package/build/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/index.js +4 -36
- package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build/components/site-hub/index.js +22 -21
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/site-icon/index.js.map +1 -1
- package/build/components/start-template-options/index.js.map +1 -1
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +14 -13
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
- package/build/components/table/index.js.map +1 -1
- package/build/components/template-actions/index.js +7 -8
- package/build/components/template-actions/index.js.map +1 -1
- package/build/components/template-part-converter/convert-to-regular.js.map +1 -1
- package/build/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build/components/template-part-converter/index.js.map +1 -1
- package/build/components/use-edited-entity-record/index.js.map +1 -1
- package/build/components/welcome-guide/editor.js.map +1 -1
- package/build/components/welcome-guide/image.js.map +1 -1
- package/build/components/welcome-guide/index.js.map +1 -1
- package/build/components/welcome-guide/page.js.map +1 -1
- package/build/components/welcome-guide/styles.js +6 -3
- package/build/components/welcome-guide/styles.js.map +1 -1
- package/build/components/welcome-guide/template.js.map +1 -1
- package/build/deprecated.js +55 -0
- package/build/deprecated.js.map +1 -0
- package/build/hooks/commands/use-common-commands.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +10 -28
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build/hooks/components.js.map +1 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +3 -40
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +36 -5
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build/index.js +18 -23
- package/build/index.js.map +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/store/actions.js +21 -96
- package/build/store/actions.js.map +1 -1
- package/build/store/constants.js.map +1 -1
- package/build/store/index.js +1 -1
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +1 -85
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/clone-deep.js.map +1 -1
- package/build/utils/constants.js +2 -2
- package/build/utils/constants.js.map +1 -1
- package/build/utils/get-is-list-page.js.map +1 -1
- package/build/utils/is-previewing-theme.js.map +1 -1
- package/build/utils/is-template-removable.js.map +1 -1
- package/build/utils/is-template-revertable.js.map +1 -1
- package/build/utils/math.js.map +1 -1
- package/build/utils/set-nested-value.js +44 -0
- package/build/utils/set-nested-value.js.map +1 -0
- package/build/utils/template-part-create.js.map +1 -1
- package/build/utils/use-activate-theme.js.map +1 -1
- package/build/utils/use-actual-current-theme.js.map +1 -1
- package/build-module/components/add-new-page/index.js +3 -0
- package/build-module/components/add-new-page/index.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +8 -7
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js +3 -0
- package/build-module/components/add-new-template/add-custom-generic-template-modal-content.js.map +1 -1
- package/build-module/components/add-new-template/add-custom-template-modal-content.js +3 -1
- package/build-module/components/add-new-template/add-custom-template-modal-content.js.map +1 -1
- package/build-module/components/add-new-template/index.js +283 -14
- package/build-module/components/add-new-template/index.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +21 -11
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/app/index.js.map +1 -1
- package/build-module/components/async/index.js +44 -0
- package/build-module/components/async/index.js.map +1 -0
- package/build-module/components/block-editor/block-inspector-button.js +9 -8
- package/build-module/components/block-editor/block-inspector-button.js.map +1 -1
- package/build-module/components/block-editor/editor-canvas.js +16 -7
- package/build-module/components/block-editor/editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/inserter-media-categories.js.map +1 -1
- package/build-module/components/block-editor/resizable-editor.js.map +1 -1
- package/build-module/components/block-editor/resize-handle.js +21 -6
- package/build-module/components/block-editor/resize-handle.js.map +1 -1
- package/build-module/components/block-editor/site-editor-canvas.js +5 -1
- package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/use-navigate-to-entity-record.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/canvas-loader/index.js.map +1 -1
- package/build-module/components/code-editor/index.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +3 -0
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/editor/index.js +61 -11
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/editor-canvas-container/index.js.map +1 -1
- package/build-module/components/error-boundary/index.js.map +1 -1
- package/build-module/components/error-boundary/warning.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +14 -1
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/block-preview-panel.js +6 -1
- package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
- package/build-module/components/global-styles/color-indicator-wrapper.js.map +1 -1
- package/build-module/components/global-styles/color-palette-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-family-item.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +68 -35
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +19 -7
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/index.js +2 -2
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +32 -29
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js +6 -2
- package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -1
- package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
- package/build-module/components/global-styles/gradients-palette-panel.js.map +1 -1
- package/build-module/components/global-styles/header.js.map +1 -1
- package/build-module/components/global-styles/highlighted-colors.js +1 -1
- package/build-module/components/global-styles/highlighted-colors.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +11 -3
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/icon-with-current-color.js.map +1 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/navigation-button.js.map +1 -1
- package/build-module/components/global-styles/palette.js.map +1 -1
- package/build-module/components/global-styles/preview-colors.js.map +1 -1
- package/build-module/components/global-styles/preview-iframe.js.map +1 -1
- package/build-module/components/global-styles/preview-styles.js.map +1 -1
- package/build-module/components/global-styles/root-menu.js +2 -2
- package/build-module/components/global-styles/root-menu.js.map +1 -1
- package/build-module/components/global-styles/screen-background.js +1 -1
- package/build-module/components/global-styles/screen-background.js.map +1 -1
- package/build-module/components/global-styles/screen-block-list.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-color-palette.js.map +1 -1
- package/build-module/components/global-styles/screen-colors.js.map +1 -1
- package/build-module/components/global-styles/screen-css.js.map +1 -1
- package/build-module/components/global-styles/screen-layout.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/index.js +1 -1
- package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/revisions-buttons.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build-module/components/global-styles/screen-root.js.map +1 -1
- package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
- package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/style-variations-container.js +8 -2
- package/build-module/components/global-styles/style-variations-container.js.map +1 -1
- package/build-module/components/global-styles/subtitle.js.map +1 -1
- package/build-module/components/global-styles/typography-elements.js.map +1 -1
- package/build-module/components/global-styles/typography-example.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-preview.js.map +1 -1
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/global-styles/variations/variation.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-panel.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build-module/components/global-styles-renderer/index.js.map +1 -1
- package/build-module/components/header-edit-mode/document-tools/index.js.map +1 -1
- package/build-module/components/header-edit-mode/index.js +41 -57
- package/build-module/components/header-edit-mode/index.js.map +1 -1
- package/build-module/components/header-edit-mode/more-menu/index.js +6 -100
- package/build-module/components/header-edit-mode/more-menu/index.js.map +1 -1
- package/build-module/components/header-edit-mode/more-menu/site-export.js.map +1 -1
- package/build-module/components/header-edit-mode/more-menu/welcome-guide-menu-item.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/global.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/register.js +0 -67
- package/build-module/components/keyboard-shortcuts/register.js.map +1 -1
- package/build-module/components/layout/animation.js +4 -3
- package/build-module/components/layout/animation.js.map +1 -1
- package/build-module/components/layout/hooks.js.map +1 -1
- package/build-module/components/layout/index.js +20 -52
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/router.js +70 -33
- package/build-module/components/layout/router.js.map +1 -1
- package/build-module/components/media/index.js.map +1 -1
- package/build-module/components/page/header.js.map +1 -1
- package/build-module/components/page/index.js +5 -2
- package/build-module/components/page/index.js.map +1 -1
- package/build-module/components/page-pages/index.js +18 -19
- package/build-module/components/page-pages/index.js.map +1 -1
- package/build-module/components/page-patterns/dataviews-pattern-actions.js +16 -11
- package/build-module/components/page-patterns/dataviews-pattern-actions.js.map +1 -1
- package/build-module/components/page-patterns/delete-category-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/header.js +5 -3
- package/build-module/components/page-patterns/header.js.map +1 -1
- package/build-module/components/page-patterns/index.js +143 -65
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/rename-category-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/search-items.js +3 -2
- package/build-module/components/page-patterns/search-items.js.map +1 -1
- package/build-module/components/page-patterns/use-pattern-settings.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +3 -6
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-patterns/utils.js.map +1 -1
- package/build-module/components/page-templates/hooks.js.map +1 -0
- package/build-module/components/{page-templates-template-parts → page-templates}/index.js +77 -102
- package/build-module/components/page-templates/index.js.map +1 -0
- package/build-module/components/pagination/index.js.map +1 -1
- package/build-module/components/pattern-modal/duplicate.js +11 -6
- package/build-module/components/pattern-modal/duplicate.js.map +1 -1
- package/build-module/components/pattern-modal/index.js.map +1 -1
- package/build-module/components/pattern-modal/rename.js +4 -1
- package/build-module/components/pattern-modal/rename.js.map +1 -1
- package/build-module/components/plugin-template-setting-panel/index.js +8 -0
- package/build-module/components/plugin-template-setting-panel/index.js.map +1 -1
- package/build-module/components/{template-actions/rename-menu-item.js → rename-post-menu-item/index.js} +17 -15
- package/build-module/components/rename-post-menu-item/index.js.map +1 -0
- package/build-module/components/resizable-frame/index.js +10 -11
- package/build-module/components/resizable-frame/index.js.map +1 -1
- package/build-module/components/revisions/index.js.map +1 -1
- package/build-module/components/routes/link.js.map +1 -1
- package/build-module/components/routes/use-title.js.map +1 -1
- package/build-module/components/save-button/index.js.map +1 -1
- package/build-module/components/save-hub/index.js.map +1 -1
- package/build-module/components/save-panel/index.js +2 -2
- package/build-module/components/save-panel/index.js.map +1 -1
- package/build-module/components/sidebar/index.js +42 -75
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/sidebar-button/index.js.map +1 -1
- package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build-module/components/sidebar-dataviews/custom-dataviews-list.js.map +1 -1
- package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +1 -1
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/default-sidebar.js +16 -5
- package/build-module/components/sidebar-edit-mode/default-sidebar.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js +5 -3
- package/build-module/components/sidebar-edit-mode/global-styles-sidebar.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/index.js +30 -54
- package/build-module/components/sidebar-edit-mode/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/index.js +58 -6
- package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-content.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +25 -17
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/settings-header/index.js +4 -5
- package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/hooks.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/index.js +4 -7
- package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-item/index.js +31 -0
- package/build-module/components/sidebar-navigation-item/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen/index.js +37 -10
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-panel/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-label.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-value.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -3
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-main/index.js +7 -16
- package/build-module/components/sidebar-navigation-screen-main/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js +8 -3
- package/build-module/components/sidebar-navigation-screen-navigation-menu/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/more-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/navigation-menu-editor.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/rename-modal.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +20 -15
- package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/build-navigation-label.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/constants.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +6 -5
- package/build-module/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/navigation-menu-content.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/index.js +56 -15
- package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/status-label.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/index.js +17 -15
- package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/category-item.js +3 -2
- package/build-module/components/sidebar-navigation-screen-patterns/category-item.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.js +66 -54
- package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-default-pattern-categories.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-template/index.js +13 -9
- package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-template/template-areas.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.js +3 -3
- package/build-module/components/sidebar-navigation-screen-templates-browse/content.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +4 -36
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build-module/components/site-hub/index.js +22 -21
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/site-icon/index.js.map +1 -1
- package/build-module/components/start-template-options/index.js.map +1 -1
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +14 -13
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-sync-canvas-mode-with-url.js.map +1 -1
- package/build-module/components/table/index.js.map +1 -1
- package/build-module/components/template-actions/index.js +7 -8
- package/build-module/components/template-actions/index.js.map +1 -1
- package/build-module/components/template-part-converter/convert-to-regular.js.map +1 -1
- package/build-module/components/template-part-converter/convert-to-template-part.js.map +1 -1
- package/build-module/components/template-part-converter/index.js.map +1 -1
- package/build-module/components/use-edited-entity-record/index.js.map +1 -1
- package/build-module/components/welcome-guide/editor.js.map +1 -1
- package/build-module/components/welcome-guide/image.js.map +1 -1
- package/build-module/components/welcome-guide/index.js.map +1 -1
- package/build-module/components/welcome-guide/page.js.map +1 -1
- package/build-module/components/welcome-guide/styles.js +6 -3
- package/build-module/components/welcome-guide/styles.js.map +1 -1
- package/build-module/components/welcome-guide/template.js.map +1 -1
- package/build-module/deprecated.js +45 -0
- package/build-module/deprecated.js.map +1 -0
- package/build-module/hooks/commands/use-common-commands.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +11 -29
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/hooks/components.js.map +1 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +1 -38
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +35 -5
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build-module/index.js +1 -5
- package/build-module/index.js.map +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/store/actions.js +16 -92
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/constants.js.map +1 -1
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +0 -83
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/clone-deep.js.map +1 -1
- package/build-module/utils/constants.js +1 -1
- package/build-module/utils/constants.js.map +1 -1
- package/build-module/utils/get-is-list-page.js.map +1 -1
- package/build-module/utils/is-previewing-theme.js.map +1 -1
- package/build-module/utils/is-template-removable.js.map +1 -1
- package/build-module/utils/is-template-revertable.js.map +1 -1
- package/build-module/utils/math.js.map +1 -1
- package/build-module/utils/set-nested-value.js +38 -0
- package/build-module/utils/set-nested-value.js.map +1 -0
- package/build-module/utils/template-part-create.js.map +1 -1
- package/build-module/utils/use-activate-theme.js.map +1 -1
- package/build-module/utils/use-actual-current-theme.js.map +1 -1
- package/build-style/style-rtl.css +261 -720
- package/build-style/style.css +261 -720
- package/package.json +43 -44
- package/src/components/add-new-page/index.js +7 -1
- package/src/components/add-new-pattern/index.js +15 -12
- package/src/components/add-new-template/add-custom-generic-template-modal-content.js +3 -0
- package/src/components/add-new-template/add-custom-template-modal-content.js +3 -1
- package/src/components/add-new-template/index.js +412 -12
- package/src/components/add-new-template/style.scss +0 -22
- package/src/components/add-new-template/utils.js +44 -24
- package/src/components/async/index.js +43 -0
- package/src/components/block-editor/block-inspector-button.js +9 -11
- package/src/components/block-editor/editor-canvas.js +45 -21
- package/src/components/block-editor/resize-handle.js +30 -11
- package/src/components/block-editor/site-editor-canvas.js +6 -1
- package/src/components/block-editor/style.scss +10 -15
- package/src/components/create-template-part-modal/index.js +3 -0
- package/src/components/editor/index.js +91 -15
- package/src/components/editor/style.scss +6 -1
- package/src/components/global-styles/background-panel.js +16 -0
- package/src/components/global-styles/block-preview-panel.js +6 -1
- package/src/components/global-styles/font-library-modal/context.js +85 -54
- package/src/components/global-styles/font-library-modal/font-collection.js +265 -222
- package/src/components/global-styles/font-library-modal/index.js +2 -2
- package/src/components/global-styles/font-library-modal/installed-fonts.js +184 -147
- package/src/components/global-styles/font-library-modal/style.scss +48 -13
- package/src/components/global-styles/font-library-modal/utils/sort-font-faces.js +6 -2
- package/src/components/global-styles/highlighted-colors.js +1 -1
- package/src/components/global-styles/hooks.js +20 -3
- package/src/components/global-styles/root-menu.js +2 -2
- package/src/components/global-styles/screen-background.js +1 -1
- package/src/components/global-styles/screen-revisions/index.js +1 -1
- package/src/components/global-styles/style-variations-container.js +11 -2
- package/src/components/header-edit-mode/index.js +56 -78
- package/src/components/header-edit-mode/more-menu/index.js +9 -157
- package/src/components/header-edit-mode/style.scss +14 -86
- package/src/components/keyboard-shortcuts/register.js +0 -78
- package/src/components/layout/animation.js +6 -3
- package/src/components/layout/index.js +23 -52
- package/src/components/layout/router.js +73 -50
- package/src/components/layout/style.scss +15 -37
- package/src/components/page/index.js +7 -2
- package/src/components/page-pages/index.js +46 -26
- package/src/components/page-pages/style.scss +40 -22
- package/src/components/page-patterns/dataviews-pattern-actions.js +13 -15
- package/src/components/page-patterns/header.js +7 -3
- package/src/components/page-patterns/index.js +162 -109
- package/src/components/page-patterns/search-items.js +3 -0
- package/src/components/page-patterns/style.scss +21 -7
- package/src/components/page-patterns/use-patterns.js +3 -6
- package/src/components/{page-templates-template-parts → page-templates}/index.js +46 -84
- package/src/components/{page-templates-template-parts → page-templates}/style.scss +2 -2
- package/src/components/pattern-modal/duplicate.js +6 -4
- package/src/components/pattern-modal/rename.js +2 -1
- package/src/components/plugin-template-setting-panel/index.js +8 -0
- package/src/components/{template-actions/rename-menu-item.js → rename-post-menu-item/index.js} +20 -24
- package/src/components/resizable-frame/index.js +6 -9
- package/src/components/save-panel/index.js +2 -2
- package/src/components/sidebar/index.js +52 -100
- package/src/components/sidebar/style.scss +41 -6
- package/src/components/sidebar-dataviews/default-views.js +1 -1
- package/src/components/sidebar-dataviews/index.js +1 -1
- package/src/components/sidebar-edit-mode/default-sidebar.js +13 -6
- package/src/components/sidebar-edit-mode/global-styles-sidebar.js +7 -3
- package/src/components/sidebar-edit-mode/index.js +50 -75
- package/src/components/sidebar-edit-mode/page-panels/index.js +65 -14
- package/src/components/sidebar-edit-mode/page-panels/page-summary.js +40 -20
- package/src/components/sidebar-edit-mode/settings-header/index.js +4 -5
- package/src/components/sidebar-edit-mode/style.scss +1 -1
- package/src/components/sidebar-edit-mode/template-panel/index.js +3 -13
- package/src/components/sidebar-navigation-item/index.js +29 -0
- package/src/components/sidebar-navigation-screen/index.js +29 -12
- package/src/components/sidebar-navigation-screen/style.scss +1 -21
- package/src/components/sidebar-navigation-screen-global-styles/index.js +2 -11
- package/src/components/sidebar-navigation-screen-main/index.js +11 -23
- package/src/components/sidebar-navigation-screen-navigation-menu/delete-confirm-dialog.js +1 -1
- package/src/components/sidebar-navigation-screen-navigation-menu/index.js +7 -6
- package/src/components/sidebar-navigation-screen-navigation-menu/single-navigation-menu.js +1 -1
- package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +14 -14
- package/src/components/sidebar-navigation-screen-navigation-menus/index.js +1 -1
- package/src/components/sidebar-navigation-screen-navigation-menus/leaf-more-menu.js +4 -5
- package/src/components/sidebar-navigation-screen-page/index.js +63 -14
- package/src/components/sidebar-navigation-screen-page/style.scss +8 -2
- package/src/components/sidebar-navigation-screen-pattern/index.js +13 -15
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menus.js +3 -1
- package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +1 -1
- package/src/components/sidebar-navigation-screen-patterns/category-item.js +2 -1
- package/src/components/sidebar-navigation-screen-patterns/index.js +97 -95
- package/src/components/sidebar-navigation-screen-patterns/style.scss +5 -0
- package/src/components/sidebar-navigation-screen-template/index.js +9 -13
- package/src/components/sidebar-navigation-screen-templates-browse/content.js +3 -3
- package/src/components/sidebar-navigation-screen-templates-browse/index.js +6 -43
- package/src/components/site-hub/index.js +80 -90
- package/src/components/site-hub/style.scss +14 -34
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +50 -39
- package/src/components/template-actions/index.js +8 -11
- package/src/components/welcome-guide/style.scss +1 -1
- package/src/components/welcome-guide/styles.js +6 -5
- package/src/deprecated.js +42 -0
- package/src/hooks/commands/use-edit-mode-commands.js +12 -33
- package/src/hooks/push-changes-to-global-styles/index.js +1 -40
- package/src/hooks/use-theme-style-variations/test/use-theme-style-variations-by-property.js +4 -0
- package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +74 -17
- package/src/index.js +1 -9
- package/src/store/actions.js +25 -141
- package/src/store/private-actions.js +0 -133
- package/src/store/test/actions.js +7 -2
- package/src/style.scss +1 -7
- package/src/utils/constants.js +2 -1
- package/src/utils/set-nested-value.js +39 -0
- package/build/components/add-new-template/new-template.js +0 -298
- package/build/components/add-new-template/new-template.js.map +0 -1
- package/build/components/add-new-template/template-actions-loading-screen.js +0 -27
- package/build/components/add-new-template/template-actions-loading-screen.js.map +0 -1
- package/build/components/header-edit-mode/more-menu/copy-content-menu-item.js +0 -59
- package/build/components/header-edit-mode/more-menu/copy-content-menu-item.js.map +0 -1
- package/build/components/header-edit-mode/plugin-more-menu-item/index.js +0 -78
- package/build/components/header-edit-mode/plugin-more-menu-item/index.js.map +0 -1
- package/build/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js +0 -71
- package/build/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js.map +0 -1
- package/build/components/header-edit-mode/tools-more-menu-group/index.js +0 -23
- package/build/components/header-edit-mode/tools-more-menu-group/index.js.map +0 -1
- package/build/components/keyboard-shortcut-help-modal/config.js +0 -78
- package/build/components/keyboard-shortcut-help-modal/config.js.map +0 -1
- package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +0 -48
- package/build/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +0 -1
- package/build/components/keyboard-shortcut-help-modal/index.js +0 -119
- package/build/components/keyboard-shortcut-help-modal/index.js.map +0 -1
- package/build/components/keyboard-shortcut-help-modal/shortcut.js +0 -54
- package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +0 -1
- package/build/components/keyboard-shortcuts/edit-mode.js +0 -79
- package/build/components/keyboard-shortcuts/edit-mode.js.map +0 -1
- package/build/components/page-actions/index.js +0 -35
- package/build/components/page-actions/index.js.map +0 -1
- package/build/components/page-actions/trash-page-menu-item.js +0 -54
- package/build/components/page-actions/trash-page-menu-item.js.map +0 -1
- package/build/components/page-templates-template-parts/actions.js +0 -207
- package/build/components/page-templates-template-parts/actions.js.map +0 -1
- package/build/components/page-templates-template-parts/add-new-template-part.js +0 -64
- package/build/components/page-templates-template-parts/add-new-template-part.js.map +0 -1
- package/build/components/page-templates-template-parts/hooks.js.map +0 -1
- package/build/components/page-templates-template-parts/index.js.map +0 -1
- package/build/components/preferences-modal/index.js +0 -38
- package/build/components/preferences-modal/index.js.map +0 -1
- package/build/components/sidebar-edit-mode/constants.js +0 -9
- package/build/components/sidebar-edit-mode/constants.js.map +0 -1
- package/build/components/sidebar-edit-mode/page-panels/page-status.js +0 -188
- package/build/components/sidebar-edit-mode/page-panels/page-status.js.map +0 -1
- package/build/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -89
- package/build/components/sidebar-edit-mode/plugin-sidebar/index.js.map +0 -1
- package/build/components/sidebar-navigation-screen-navigation-item/index.js +0 -54
- package/build/components/sidebar-navigation-screen-navigation-item/index.js.map +0 -1
- package/build/components/sync-state-with-url/use-sync-path-with-url.js +0 -132
- package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +0 -1
- package/build/components/template-actions/rename-menu-item.js.map +0 -1
- package/build-module/components/add-new-template/new-template.js +0 -290
- package/build-module/components/add-new-template/new-template.js.map +0 -1
- package/build-module/components/add-new-template/template-actions-loading-screen.js +0 -20
- package/build-module/components/add-new-template/template-actions-loading-screen.js.map +0 -1
- package/build-module/components/header-edit-mode/more-menu/copy-content-menu-item.js +0 -52
- package/build-module/components/header-edit-mode/more-menu/copy-content-menu-item.js.map +0 -1
- package/build-module/components/header-edit-mode/plugin-more-menu-item/index.js +0 -73
- package/build-module/components/header-edit-mode/plugin-more-menu-item/index.js.map +0 -1
- package/build-module/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js +0 -65
- package/build-module/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js.map +0 -1
- package/build-module/components/header-edit-mode/tools-more-menu-group/index.js +0 -16
- package/build-module/components/header-edit-mode/tools-more-menu-group/index.js.map +0 -1
- package/build-module/components/keyboard-shortcut-help-modal/config.js +0 -71
- package/build-module/components/keyboard-shortcut-help-modal/config.js.map +0 -1
- package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +0 -40
- package/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js.map +0 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -110
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +0 -1
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +0 -47
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +0 -1
- package/build-module/components/keyboard-shortcuts/edit-mode.js +0 -72
- package/build-module/components/keyboard-shortcuts/edit-mode.js.map +0 -1
- package/build-module/components/page-actions/index.js +0 -27
- package/build-module/components/page-actions/index.js.map +0 -1
- package/build-module/components/page-actions/trash-page-menu-item.js +0 -47
- package/build-module/components/page-actions/trash-page-menu-item.js.map +0 -1
- package/build-module/components/page-templates-template-parts/actions.js +0 -199
- package/build-module/components/page-templates-template-parts/actions.js.map +0 -1
- package/build-module/components/page-templates-template-parts/add-new-template-part.js +0 -56
- package/build-module/components/page-templates-template-parts/add-new-template-part.js.map +0 -1
- package/build-module/components/page-templates-template-parts/hooks.js.map +0 -1
- package/build-module/components/page-templates-template-parts/index.js.map +0 -1
- package/build-module/components/preferences-modal/index.js +0 -30
- package/build-module/components/preferences-modal/index.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/constants.js +0 -3
- package/build-module/components/sidebar-edit-mode/constants.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-status.js +0 -180
- package/build-module/components/sidebar-edit-mode/page-panels/page-status.js.map +0 -1
- package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -83
- package/build-module/components/sidebar-edit-mode/plugin-sidebar/index.js.map +0 -1
- package/build-module/components/sidebar-navigation-screen-navigation-item/index.js +0 -46
- package/build-module/components/sidebar-navigation-screen-navigation-item/index.js.map +0 -1
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +0 -124
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +0 -1
- package/build-module/components/template-actions/rename-menu-item.js.map +0 -1
- package/src/components/add-new-template/new-template.js +0 -429
- package/src/components/add-new-template/template-actions-loading-screen.js +0 -23
- package/src/components/header-edit-mode/more-menu/copy-content-menu-item.js +0 -51
- package/src/components/header-edit-mode/plugin-more-menu-item/index.js +0 -73
- package/src/components/header-edit-mode/plugin-sidebar-more-menu-item/index.js +0 -64
- package/src/components/header-edit-mode/tools-more-menu-group/index.js +0 -16
- package/src/components/keyboard-shortcut-help-modal/config.js +0 -53
- package/src/components/keyboard-shortcut-help-modal/dynamic-shortcut.js +0 -41
- package/src/components/keyboard-shortcut-help-modal/index.js +0 -151
- package/src/components/keyboard-shortcut-help-modal/shortcut.js +0 -70
- package/src/components/keyboard-shortcut-help-modal/style.scss +0 -61
- package/src/components/keyboard-shortcuts/edit-mode.js +0 -88
- package/src/components/page-actions/index.js +0 -30
- package/src/components/page-actions/trash-page-menu-item.js +0 -63
- package/src/components/page-templates-template-parts/actions.js +0 -277
- package/src/components/page-templates-template-parts/add-new-template-part.js +0 -60
- package/src/components/preferences-modal/index.js +0 -29
- package/src/components/sidebar-edit-mode/constants.js +0 -2
- package/src/components/sidebar-edit-mode/page-panels/page-status.js +0 -249
- package/src/components/sidebar-edit-mode/page-panels/style.scss +0 -40
- package/src/components/sidebar-edit-mode/plugin-sidebar/index.js +0 -80
- package/src/components/sidebar-navigation-screen-navigation-item/index.js +0 -59
- package/src/components/sync-state-with-url/use-sync-path-with-url.js +0 -147
- /package/build/components/{page-templates-template-parts → page-templates}/hooks.js +0 -0
- /package/build-module/components/{page-templates-template-parts → page-templates}/hooks.js +0 -0
- /package/src/components/{page-templates-template-parts → page-templates}/hooks.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSelect","store","coreStore","editorStore","decodeEntities","useMemo","useCallback","__","sprintf","blockMeta","post","archive","TEMPLATE_POST_TYPE","getValueFromObjectPath","object","path","value","split","forEach","fieldName","mapToIHasNameAndId","entities","map","entity","name","useExistingTemplates","select","getEntityRecords","per_page","useDefaultTemplateTypes","__experimentalGetDefaultTemplateTypes","usePublicPostTypes","postTypes","getPostTypes","excludedPostTypes","filter","viewable","slug","includes","usePublicTaxonomies","taxonomies","getTaxonomies","visibility","publicly_queryable","usePostTypeNeedsUniqueIdentifier","publicPostTypes","postTypeLabels","reduce","accumulator","labels","singularName","singular_name","toLowerCase","usePostTypeArchiveMenuItems","postTypesWithArchives","postType","has_archive","existingTemplates","needsUniqueIdentifier","some","existingTemplate","title","description","icon","startsWith","slice","templatePrefix","usePostTypeMenuItems","onClickMenuItem","defaultTemplateTypes","templatePrefixes","suffix","postTypesInfo","useEntitiesInfo","existingTemplateSlugs","menuItems","generalTemplateSlug","defaultTemplateType","find","_slug","hasGeneralTemplate","_needsUniqueIdentifier","menuItemTitle","menuItem","hasEntities","onClick","template","type","config","recordNamePath","queryArgs","search","_fields","orderBy","exclude","existingEntitiesIds","getSpecificTemplate","suggestion","templateSlug","push","postTypesMenuItems","key","defaultPostTypesMenuItems","useTaxonomiesMenuItems","publicTaxonomies","taxonomyLabels","taxonomiesInfo","taxonomy","taxonomiesMenuItems","defaultTaxonomiesMenuItems","USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX","user","USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS","who","useAuthorMenuItem","authorInfo","authorMenuItem","search_items","not_found","all_items","useExistingTemplateSlugs","existingSlugs","Object","entries","prefix","slugsWithTemplates","_accumulator","_prefix","substring","length","useTemplatesToExclude","entityName","additionalQueryParameters","slugsToExcludePerEntity","recordsToExcludePerEntity","entitiesWithTemplates","context","entitiesInfo","keys","id"],"sources":["@wordpress/edit-site/src/components/add-new-template/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { blockMeta, post, archive } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.split( '.' ).forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of enitities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * @typedef {Object} EntitiesInfo\n * @property {boolean} hasEntities If an entity has available records(posts, terms, etc..).\n * @property {number[]} existingEntitiesIds An array of the existing entities ids.\n */\n\nexport const useExistingTemplates = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t),\n\t\t[]\n\t);\n};\n\nexport const useDefaultTemplateTypes = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplateTypes(),\n\t\t[]\n\t);\n};\n\nconst usePublicPostTypes = () => {\n\tconst postTypes = useSelect(\n\t\t( select ) => select( coreStore ).getPostTypes( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\treturn postTypes?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t}, [ postTypes ] );\n};\n\nconst usePublicTaxonomies = () => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\treturn taxonomies?.filter(\n\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t);\n\t}, [ taxonomies ] );\n};\n\nfunction usePostTypeNeedsUniqueIdentifier( publicPostTypes ) {\n\tconst postTypeLabels = useMemo( () =>\n\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\taccumulator[ singularName ] =\n\t\t\t\t( accumulator[ singularName ] || 0 ) + 1;\n\t\t\treturn accumulator;\n\t\t}, {} )\n\t);\n\treturn useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\treturn postTypeLabels[ singularName ] > 1 && singularName !== slug;\n\t\t},\n\t\t[ postTypeLabels ]\n\t);\n}\n\nexport function usePostTypeArchiveMenuItems() {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst postTypesWithArchives = useMemo(\n\t\t() => publicPostTypes?.filter( ( postType ) => postType.has_archive ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst existingTemplates = useExistingTemplates();\n\tconst needsUniqueIdentifier = usePostTypeNeedsUniqueIdentifier(\n\t\tpostTypesWithArchives\n\t);\n\treturn useMemo(\n\t\t() =>\n\t\t\tpostTypesWithArchives\n\t\t\t\t?.filter(\n\t\t\t\t\t( postType ) =>\n\t\t\t\t\t\t! ( existingTemplates || [] ).some(\n\t\t\t\t\t\t\t( existingTemplate ) =>\n\t\t\t\t\t\t\t\texistingTemplate.slug ===\n\t\t\t\t\t\t\t\t'archive-' + postType.slug\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( postType ) => {\n\t\t\t\t\tlet title;\n\t\t\t\t\tif ( needsUniqueIdentifier( postType ) ) {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t__( 'Archive: %1$s (%2$s)' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name,\n\t\t\t\t\t\t\tpostType.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Archive: %s' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tslug: 'archive-' + postType.slug,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Displays an archive with the latest posts of type: %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon: postType.icon?.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t? postType.icon.slice( 10 )\n\t\t\t\t\t\t\t: archive,\n\t\t\t\t\t\ttemplatePrefix: 'archive',\n\t\t\t\t\t};\n\t\t\t\t} ) || [],\n\t\t[ postTypesWithArchives, existingTemplates, needsUniqueIdentifier ]\n\t);\n}\n\nexport const usePostTypeMenuItems = ( onClickMenuItem ) => {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst needsUniqueIdentifier =\n\t\tusePostTypeNeedsUniqueIdentifier( publicPostTypes );\n\t// `page`is a special case in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( slug !== 'page' ) {\n\t\t\t\t\tsuffix = `single-${ suffix }`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst postTypesInfo = useEntitiesInfo( 'postType', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicPostTypes || [] ).reduce(\n\t\t( accumulator, postType ) => {\n\t\t\tconst { slug, labels, icon } = postType;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier( postType );\n\t\t\tlet menuItemTitle = sprintf(\n\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t__( 'Single item: %s' ),\n\t\t\t\tlabels.singular_name\n\t\t\t);\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = sprintf(\n\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t__( 'Single item: %1$s (%2$s)' ),\n\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\tslug\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Displays a single item: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon: icon?.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t? icon.slice( 10 )\n\t\t\t\t\t\t\t: post,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = postTypesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'postType',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\trecordNamePath: 'title.rendered',\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,title,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'relevance' : 'modified',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\tpostTypesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default post types\n\t// and one for the rest.\n\tconst postTypesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, postType ) => {\n\t\t\t\t\tconst { slug } = postType;\n\t\t\t\t\tlet key = 'postTypesMenuItems';\n\t\t\t\t\tif ( slug === 'page' ) {\n\t\t\t\t\t\tkey = 'defaultPostTypesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( postType );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultPostTypesMenuItems: [], postTypesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn postTypesMenuItems;\n};\n\nexport const useTaxonomiesMenuItems = ( onClickMenuItem ) => {\n\tconst publicTaxonomies = usePublicTaxonomies();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// `category` and `post_tag` are special cases in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicTaxonomies?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( ! [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\t\t\tsuffix = `taxonomy-${ suffix }`;\n\t\t\t\t}\n\t\t\t\tif ( slug === 'post_tag' ) {\n\t\t\t\t\tsuffix = `tag`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicTaxonomies ]\n\t);\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst taxonomyLabels = publicTaxonomies?.reduce(\n\t\t( accumulator, { labels } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\taccumulator[ singularName ] =\n\t\t\t\t( accumulator[ singularName ] || 0 ) + 1;\n\t\t\treturn accumulator;\n\t\t},\n\t\t{}\n\t);\n\tconst needsUniqueIdentifier = ( labels, slug ) => {\n\t\tif ( [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\treturn taxonomyLabels[ singularName ] > 1 && singularName !== slug;\n\t};\n\tconst taxonomiesInfo = useEntitiesInfo( 'taxonomy', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicTaxonomies || [] ).reduce(\n\t\t( accumulator, taxonomy ) => {\n\t\t\tconst { slug, labels } = taxonomy;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier(\n\t\t\t\tlabels,\n\t\t\t\tslug\n\t\t\t);\n\t\t\tlet menuItemTitle = labels.singular_name;\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = sprintf(\n\t\t\t\t\t// translators: %1s: Name of the taxonomy e.g: \"Category\"; %2s: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t__( '%1$s (%2$s)' ),\n\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\tslug\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the taxonomy e.g: \"Product Categories\".\n\t\t\t\t\t\t\t__( 'Displays taxonomy: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ticon: blockMeta,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = taxonomiesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'taxonomy',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'name' : 'count',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\ttaxonomiesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default taxonomies\n\t// and one for the rest.\n\tconst taxonomiesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, taxonomy ) => {\n\t\t\t\t\tconst { slug } = taxonomy;\n\t\t\t\t\tlet key = 'taxonomiesMenuItems';\n\t\t\t\t\tif ( [ 'category', 'tag' ].includes( slug ) ) {\n\t\t\t\t\t\tkey = 'defaultTaxonomiesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( taxonomy );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultTaxonomiesMenuItems: [], taxonomiesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn taxonomiesMenuItems;\n};\n\nconst USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX = { user: 'author' };\nconst USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS = { user: { who: 'authors' } };\nexport function useAuthorMenuItem( onClickMenuItem ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst authorInfo = useEntitiesInfo(\n\t\t'root',\n\t\tUSE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX,\n\t\tUSE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS\n\t);\n\tlet authorMenuItem = defaultTemplateTypes?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( ! authorMenuItem ) {\n\t\tauthorMenuItem = {\n\t\t\tdescription: __(\n\t\t\t\t'Displays latest posts written by a single author.'\n\t\t\t),\n\t\t\tslug: 'author',\n\t\t\ttitle: 'Author',\n\t\t};\n\t}\n\tconst hasGeneralTemplate = !! existingTemplates?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( authorInfo.user?.hasEntities ) {\n\t\tauthorMenuItem = { ...authorMenuItem, templatePrefix: 'author' };\n\t\tauthorMenuItem.onClick = ( template ) => {\n\t\t\tonClickMenuItem( {\n\t\t\t\ttype: 'root',\n\t\t\t\tslug: 'user',\n\t\t\t\tconfig: {\n\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\torderBy: search ? 'name' : 'registered_date',\n\t\t\t\t\t\t\texclude: authorInfo.user.existingEntitiesIds,\n\t\t\t\t\t\t\twho: 'authors',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\tconst templateSlug = `author-${ suggestion.slug }`;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\ttemplatePrefix: 'author',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tsingular_name: __( 'Author' ),\n\t\t\t\t\tsearch_items: __( 'Search Authors' ),\n\t\t\t\t\tnot_found: __( 'No authors found.' ),\n\t\t\t\t\tall_items: __( 'All Authors' ),\n\t\t\t\t},\n\t\t\t\thasGeneralTemplate,\n\t\t\t\ttemplate,\n\t\t\t} );\n\t\t};\n\t}\n\tif ( ! hasGeneralTemplate || authorInfo.user?.hasEntities ) {\n\t\treturn authorMenuItem;\n\t}\n}\n\n/**\n * Helper hook that filters all the existing templates by the given\n * object with the entity's slug as key and the template prefix as value.\n *\n * Example:\n * `existingTemplates` is: [ { slug: 'tag-apple' }, { slug: 'page-about' }, { slug: 'tag' } ]\n * `templatePrefixes` is: { post_tag: 'tag' }\n * It will return: { post_tag: ['apple'] }\n *\n * Note: We append the `-` to the given template prefix in this function for our checks.\n *\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @return {Record<string,string[]>} An object with the entity's slug as key and an array with the existing template slugs as value.\n */\nconst useExistingTemplateSlugs = ( templatePrefixes ) => {\n\tconst existingTemplates = useExistingTemplates();\n\tconst existingSlugs = useMemo( () => {\n\t\treturn Object.entries( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, [ slug, prefix ] ) => {\n\t\t\t\tconst slugsWithTemplates = ( existingTemplates || [] ).reduce(\n\t\t\t\t\t( _accumulator, existingTemplate ) => {\n\t\t\t\t\t\tconst _prefix = `${ prefix }-`;\n\t\t\t\t\t\tif ( existingTemplate.slug.startsWith( _prefix ) ) {\n\t\t\t\t\t\t\t_accumulator.push(\n\t\t\t\t\t\t\t\texistingTemplate.slug.substring(\n\t\t\t\t\t\t\t\t\t_prefix.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn _accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t[]\n\t\t\t\t);\n\t\t\t\tif ( slugsWithTemplates.length ) {\n\t\t\t\t\taccumulator[ slug ] = slugsWithTemplates;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, existingTemplates ] );\n\treturn existingSlugs;\n};\n\n/**\n * Helper hook that finds the existing records with an associated template,\n * as they need to be excluded from the template suggestions.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the existing records as value.\n */\nconst useTemplatesToExclude = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = {}\n) => {\n\tconst slugsToExcludePerEntity =\n\t\tuseExistingTemplateSlugs( templatePrefixes );\n\tconst recordsToExcludePerEntity = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.entries( slugsToExcludePerEntity || {} ).reduce(\n\t\t\t\t( accumulator, [ slug, slugsWithTemplates ] ) => {\n\t\t\t\t\tconst entitiesWithTemplates = select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\tslug: slugsWithTemplates,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} );\n\t\t\t\t\tif ( entitiesWithTemplates?.length ) {\n\t\t\t\t\t\taccumulator[ slug ] = entitiesWithTemplates;\n\t\t\t\t\t}\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[ slugsToExcludePerEntity ]\n\t);\n\treturn recordsToExcludePerEntity;\n};\n\n/**\n * Helper hook that returns information about an entity having\n * records that we can create a specific template for.\n *\n * For example we can search for `terms` in `taxonomy` entity or\n * `posts` in `postType` entity.\n *\n * First we need to find the existing records with an associated template,\n * to query afterwards for any remaining record, by excluding them.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the EntitiesInfo as value.\n */\nconst useEntitiesInfo = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = {}\n) => {\n\tconst recordsToExcludePerEntity = useTemplatesToExclude(\n\t\tentityName,\n\t\ttemplatePrefixes,\n\t\tadditionalQueryParameters\n\t);\n\tconst entitiesInfo = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t\t( accumulator, slug ) => {\n\t\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t\t) || [];\n\t\t\t\t\taccumulator[ slug ] = {\n\t\t\t\t\t\thasEntities: !! select( coreStore ).getEntityRecords(\n\t\t\t\t\t\t\tentityName,\n\t\t\t\t\t\t\tslug,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tper_page: 1,\n\t\t\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\t\t\texclude: existingEntitiesIds,\n\t\t\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)?.length,\n\t\t\t\t\t\texistingEntitiesIds,\n\t\t\t\t\t};\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[ templatePrefixes, recordsToExcludePerEntity ]\n\t);\n\treturn entitiesInfo;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["useSelect","store","coreStore","editorStore","decodeEntities","useMemo","useCallback","__","sprintf","blockMeta","post","archive","TEMPLATE_POST_TYPE","EMPTY_OBJECT","getValueFromObjectPath","object","path","value","split","forEach","fieldName","mapToIHasNameAndId","entities","map","entity","name","useExistingTemplates","select","getEntityRecords","per_page","useDefaultTemplateTypes","__experimentalGetDefaultTemplateTypes","usePublicPostTypes","postTypes","getPostTypes","excludedPostTypes","filter","viewable","slug","includes","usePublicTaxonomies","taxonomies","getTaxonomies","visibility","publicly_queryable","usePostTypeNeedsUniqueIdentifier","publicPostTypes","postTypeLabels","reduce","accumulator","labels","singularName","singular_name","toLowerCase","usePostTypeArchiveMenuItems","postTypesWithArchives","postType","has_archive","existingTemplates","needsUniqueIdentifier","some","existingTemplate","title","description","icon","startsWith","slice","templatePrefix","usePostTypeMenuItems","onClickMenuItem","defaultTemplateTypes","templatePrefixes","suffix","postTypesInfo","useEntitiesInfo","existingTemplateSlugs","menuItems","generalTemplateSlug","defaultTemplateType","find","_slug","hasGeneralTemplate","_needsUniqueIdentifier","menuItemTitle","menuItem","hasEntities","onClick","template","type","config","recordNamePath","queryArgs","search","_fields","orderBy","exclude","existingEntitiesIds","getSpecificTemplate","suggestion","templateSlug","push","postTypesMenuItems","key","defaultPostTypesMenuItems","useTaxonomiesMenuItems","publicTaxonomies","taxonomyLabels","taxonomiesInfo","taxonomy","taxonomiesMenuItems","defaultTaxonomiesMenuItems","USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX","user","USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS","who","useAuthorMenuItem","authorInfo","authorMenuItem","search_items","not_found","all_items","useExistingTemplateSlugs","existingSlugs","Object","entries","prefix","slugsWithTemplates","_accumulator","_prefix","substring","length","useTemplatesToExclude","entityName","additionalQueryParameters","slugsToExcludePerEntity","recordsToExcludePerEntity","entitiesWithTemplates","context","entitiesHasRecords","keys","id","entitiesInfo"],"sources":["@wordpress/edit-site/src/components/add-new-template/utils.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as editorStore } from '@wordpress/editor';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useMemo, useCallback } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { blockMeta, post, archive } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { TEMPLATE_POST_TYPE } from '../../utils/constants';\n\nconst EMPTY_OBJECT = {};\n\n/**\n * @typedef IHasNameAndId\n * @property {string|number} id The entity's id.\n * @property {string} name The entity's name.\n */\n\nconst getValueFromObjectPath = ( object, path ) => {\n\tlet value = object;\n\tpath.split( '.' ).forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value;\n};\n\n/**\n * Helper util to map records to add a `name` prop from a\n * provided path, in order to handle all entities in the same\n * fashion(implementing`IHasNameAndId` interface).\n *\n * @param {Object[]} entities The array of entities.\n * @param {string} path The path to map a `name` property from the entity.\n * @return {IHasNameAndId[]} An array of enitities that now implement the `IHasNameAndId` interface.\n */\nexport const mapToIHasNameAndId = ( entities, path ) => {\n\treturn ( entities || [] ).map( ( entity ) => ( {\n\t\t...entity,\n\t\tname: decodeEntities( getValueFromObjectPath( entity, path ) ),\n\t} ) );\n};\n\n/**\n * @typedef {Object} EntitiesInfo\n * @property {boolean} hasEntities If an entity has available records(posts, terms, etc..).\n * @property {number[]} existingEntitiesIds An array of the existing entities ids.\n */\n\nexport const useExistingTemplates = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_POST_TYPE,\n\t\t\t\t{\n\t\t\t\t\tper_page: -1,\n\t\t\t\t}\n\t\t\t),\n\t\t[]\n\t);\n};\n\nexport const useDefaultTemplateTypes = () => {\n\treturn useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplateTypes(),\n\t\t[]\n\t);\n};\n\nconst usePublicPostTypes = () => {\n\tconst postTypes = useSelect(\n\t\t( select ) => select( coreStore ).getPostTypes( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\tconst excludedPostTypes = [ 'attachment' ];\n\t\treturn postTypes?.filter(\n\t\t\t( { viewable, slug } ) =>\n\t\t\t\tviewable && ! excludedPostTypes.includes( slug )\n\t\t);\n\t}, [ postTypes ] );\n};\n\nconst usePublicTaxonomies = () => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\treturn taxonomies?.filter(\n\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t);\n\t}, [ taxonomies ] );\n};\n\nfunction usePostTypeNeedsUniqueIdentifier( publicPostTypes ) {\n\tconst postTypeLabels = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { labels } ) => {\n\t\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\t\taccumulator[ singularName ] =\n\t\t\t\t\t( accumulator[ singularName ] || 0 ) + 1;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\treturn useCallback(\n\t\t( { labels, slug } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\treturn postTypeLabels[ singularName ] > 1 && singularName !== slug;\n\t\t},\n\t\t[ postTypeLabels ]\n\t);\n}\n\nexport function usePostTypeArchiveMenuItems() {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst postTypesWithArchives = useMemo(\n\t\t() => publicPostTypes?.filter( ( postType ) => postType.has_archive ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst existingTemplates = useExistingTemplates();\n\tconst needsUniqueIdentifier = usePostTypeNeedsUniqueIdentifier(\n\t\tpostTypesWithArchives\n\t);\n\treturn useMemo(\n\t\t() =>\n\t\t\tpostTypesWithArchives\n\t\t\t\t?.filter(\n\t\t\t\t\t( postType ) =>\n\t\t\t\t\t\t! ( existingTemplates || [] ).some(\n\t\t\t\t\t\t\t( existingTemplate ) =>\n\t\t\t\t\t\t\t\texistingTemplate.slug ===\n\t\t\t\t\t\t\t\t'archive-' + postType.slug\n\t\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t\t.map( ( postType ) => {\n\t\t\t\t\tlet title;\n\t\t\t\t\tif ( needsUniqueIdentifier( postType ) ) {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t\t\t__( 'Archive: %1$s (%2$s)' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name,\n\t\t\t\t\t\t\tpostType.slug\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Archive: %s' ),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\treturn {\n\t\t\t\t\t\tslug: 'archive-' + postType.slug,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t'Displays an archive with the latest posts of type: %s.'\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tpostType.labels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon: postType.icon?.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t? postType.icon.slice( 10 )\n\t\t\t\t\t\t\t: archive,\n\t\t\t\t\t\ttemplatePrefix: 'archive',\n\t\t\t\t\t};\n\t\t\t\t} ) || [],\n\t\t[ postTypesWithArchives, existingTemplates, needsUniqueIdentifier ]\n\t);\n}\n\nexport const usePostTypeMenuItems = ( onClickMenuItem ) => {\n\tconst publicPostTypes = usePublicPostTypes();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst needsUniqueIdentifier =\n\t\tusePostTypeNeedsUniqueIdentifier( publicPostTypes );\n\t// `page`is a special case in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicPostTypes?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( slug !== 'page' ) {\n\t\t\t\t\tsuffix = `single-${ suffix }`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicPostTypes ]\n\t);\n\tconst postTypesInfo = useEntitiesInfo( 'postType', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicPostTypes || [] ).reduce(\n\t\t( accumulator, postType ) => {\n\t\t\tconst { slug, labels, icon } = postType;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier( postType );\n\t\t\tlet menuItemTitle = sprintf(\n\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t__( 'Single item: %s' ),\n\t\t\t\tlabels.singular_name\n\t\t\t);\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = sprintf(\n\t\t\t\t\t// translators: %1s: Name of the post type e.g: \"Post\"; %2s: Slug of the post type e.g: \"book\".\n\t\t\t\t\t__( 'Single item: %1$s (%2$s)' ),\n\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\tslug\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the post type e.g: \"Post\".\n\t\t\t\t\t\t\t__( 'Displays a single item: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\t// `icon` is the `menu_icon` property of a post type. We\n\t\t\t\t\t\t// only handle `dashicons` for now, even if the `menu_icon`\n\t\t\t\t\t\t// also supports urls and svg as values.\n\t\t\t\t\t\ticon: icon?.startsWith( 'dashicons-' )\n\t\t\t\t\t\t\t? icon.slice( 10 )\n\t\t\t\t\t\t\t: post,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = postTypesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'postType',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\trecordNamePath: 'title.rendered',\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,title,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'relevance' : 'modified',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\tpostTypesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default post types\n\t// and one for the rest.\n\tconst postTypesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, postType ) => {\n\t\t\t\t\tconst { slug } = postType;\n\t\t\t\t\tlet key = 'postTypesMenuItems';\n\t\t\t\t\tif ( slug === 'page' ) {\n\t\t\t\t\t\tkey = 'defaultPostTypesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( postType );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultPostTypesMenuItems: [], postTypesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn postTypesMenuItems;\n};\n\nexport const useTaxonomiesMenuItems = ( onClickMenuItem ) => {\n\tconst publicTaxonomies = usePublicTaxonomies();\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\t// `category` and `post_tag` are special cases in template hierarchy.\n\tconst templatePrefixes = useMemo(\n\t\t() =>\n\t\t\tpublicTaxonomies?.reduce( ( accumulator, { slug } ) => {\n\t\t\t\tlet suffix = slug;\n\t\t\t\tif ( ! [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\t\t\tsuffix = `taxonomy-${ suffix }`;\n\t\t\t\t}\n\t\t\t\tif ( slug === 'post_tag' ) {\n\t\t\t\t\tsuffix = `tag`;\n\t\t\t\t}\n\t\t\t\taccumulator[ slug ] = suffix;\n\t\t\t\treturn accumulator;\n\t\t\t}, {} ),\n\t\t[ publicTaxonomies ]\n\t);\n\t// We need to keep track of naming conflicts. If a conflict\n\t// occurs, we need to add slug.\n\tconst taxonomyLabels = publicTaxonomies?.reduce(\n\t\t( accumulator, { labels } ) => {\n\t\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\t\taccumulator[ singularName ] =\n\t\t\t\t( accumulator[ singularName ] || 0 ) + 1;\n\t\t\treturn accumulator;\n\t\t},\n\t\t{}\n\t);\n\tconst needsUniqueIdentifier = ( labels, slug ) => {\n\t\tif ( [ 'category', 'post_tag' ].includes( slug ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tconst singularName = labels.singular_name.toLowerCase();\n\t\treturn taxonomyLabels[ singularName ] > 1 && singularName !== slug;\n\t};\n\tconst taxonomiesInfo = useEntitiesInfo( 'taxonomy', templatePrefixes );\n\tconst existingTemplateSlugs = ( existingTemplates || [] ).map(\n\t\t( { slug } ) => slug\n\t);\n\tconst menuItems = ( publicTaxonomies || [] ).reduce(\n\t\t( accumulator, taxonomy ) => {\n\t\t\tconst { slug, labels } = taxonomy;\n\t\t\t// We need to check if the general template is part of the\n\t\t\t// defaultTemplateTypes. If it is, just use that info and\n\t\t\t// augment it with the specific template functionality.\n\t\t\tconst generalTemplateSlug = templatePrefixes[ slug ];\n\t\t\tconst defaultTemplateType = defaultTemplateTypes?.find(\n\t\t\t\t( { slug: _slug } ) => _slug === generalTemplateSlug\n\t\t\t);\n\t\t\tconst hasGeneralTemplate =\n\t\t\t\texistingTemplateSlugs?.includes( generalTemplateSlug );\n\t\t\tconst _needsUniqueIdentifier = needsUniqueIdentifier(\n\t\t\t\tlabels,\n\t\t\t\tslug\n\t\t\t);\n\t\t\tlet menuItemTitle = labels.singular_name;\n\t\t\tif ( _needsUniqueIdentifier ) {\n\t\t\t\tmenuItemTitle = sprintf(\n\t\t\t\t\t// translators: %1s: Name of the taxonomy e.g: \"Category\"; %2s: Slug of the taxonomy e.g: \"product_cat\".\n\t\t\t\t\t__( '%1$s (%2$s)' ),\n\t\t\t\t\tlabels.singular_name,\n\t\t\t\t\tslug\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst menuItem = defaultTemplateType\n\t\t\t\t? {\n\t\t\t\t\t\t...defaultTemplateType,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\tslug: generalTemplateSlug,\n\t\t\t\t\t\ttitle: menuItemTitle,\n\t\t\t\t\t\tdescription: sprintf(\n\t\t\t\t\t\t\t// translators: %s: Name of the taxonomy e.g: \"Product Categories\".\n\t\t\t\t\t\t\t__( 'Displays taxonomy: %s.' ),\n\t\t\t\t\t\t\tlabels.singular_name\n\t\t\t\t\t\t),\n\t\t\t\t\t\ticon: blockMeta,\n\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t };\n\t\t\tconst hasEntities = taxonomiesInfo?.[ slug ]?.hasEntities;\n\t\t\t// We have a different template creation flow only if they have entities.\n\t\t\tif ( hasEntities ) {\n\t\t\t\tmenuItem.onClick = ( template ) => {\n\t\t\t\t\tonClickMenuItem( {\n\t\t\t\t\t\ttype: 'taxonomy',\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\tconfig: {\n\t\t\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\t\t\torderBy: search ? 'name' : 'count',\n\t\t\t\t\t\t\t\t\texclude:\n\t\t\t\t\t\t\t\t\t\ttaxonomiesInfo[ slug ]\n\t\t\t\t\t\t\t\t\t\t\t.existingEntitiesIds,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\t\t\tconst templateSlug = `${ templatePrefixes[ slug ] }-${ suggestion.slug }`;\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\t\t\ttemplatePrefix: templatePrefixes[ slug ],\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tlabels,\n\t\t\t\t\t\thasGeneralTemplate,\n\t\t\t\t\t\ttemplate,\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t}\n\t\t\t// We don't need to add the menu item if there are no\n\t\t\t// entities and the general template exists.\n\t\t\tif ( ! hasGeneralTemplate || hasEntities ) {\n\t\t\t\taccumulator.push( menuItem );\n\t\t\t}\n\t\t\treturn accumulator;\n\t\t},\n\t\t[]\n\t);\n\t// Split menu items into two groups: one for the default taxonomies\n\t// and one for the rest.\n\tconst taxonomiesMenuItems = useMemo(\n\t\t() =>\n\t\t\tmenuItems.reduce(\n\t\t\t\t( accumulator, taxonomy ) => {\n\t\t\t\t\tconst { slug } = taxonomy;\n\t\t\t\t\tlet key = 'taxonomiesMenuItems';\n\t\t\t\t\tif ( [ 'category', 'tag' ].includes( slug ) ) {\n\t\t\t\t\t\tkey = 'defaultTaxonomiesMenuItems';\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[ key ].push( taxonomy );\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{ defaultTaxonomiesMenuItems: [], taxonomiesMenuItems: [] }\n\t\t\t),\n\t\t[ menuItems ]\n\t);\n\treturn taxonomiesMenuItems;\n};\n\nconst USE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX = { user: 'author' };\nconst USE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS = { user: { who: 'authors' } };\nexport function useAuthorMenuItem( onClickMenuItem ) {\n\tconst existingTemplates = useExistingTemplates();\n\tconst defaultTemplateTypes = useDefaultTemplateTypes();\n\tconst authorInfo = useEntitiesInfo(\n\t\t'root',\n\t\tUSE_AUTHOR_MENU_ITEM_TEMPLATE_PREFIX,\n\t\tUSE_AUTHOR_MENU_ITEM_QUERY_PARAMETERS\n\t);\n\tlet authorMenuItem = defaultTemplateTypes?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( ! authorMenuItem ) {\n\t\tauthorMenuItem = {\n\t\t\tdescription: __(\n\t\t\t\t'Displays latest posts written by a single author.'\n\t\t\t),\n\t\t\tslug: 'author',\n\t\t\ttitle: 'Author',\n\t\t};\n\t}\n\tconst hasGeneralTemplate = !! existingTemplates?.find(\n\t\t( { slug } ) => slug === 'author'\n\t);\n\tif ( authorInfo.user?.hasEntities ) {\n\t\tauthorMenuItem = { ...authorMenuItem, templatePrefix: 'author' };\n\t\tauthorMenuItem.onClick = ( template ) => {\n\t\t\tonClickMenuItem( {\n\t\t\t\ttype: 'root',\n\t\t\t\tslug: 'user',\n\t\t\t\tconfig: {\n\t\t\t\t\tqueryArgs: ( { search } ) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t_fields: 'id,name,slug,link',\n\t\t\t\t\t\t\torderBy: search ? 'name' : 'registered_date',\n\t\t\t\t\t\t\texclude: authorInfo.user.existingEntitiesIds,\n\t\t\t\t\t\t\twho: 'authors',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\tgetSpecificTemplate: ( suggestion ) => {\n\t\t\t\t\t\tconst templateSlug = `author-${ suggestion.slug }`;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttitle: templateSlug,\n\t\t\t\t\t\t\tslug: templateSlug,\n\t\t\t\t\t\t\ttemplatePrefix: 'author',\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlabels: {\n\t\t\t\t\tsingular_name: __( 'Author' ),\n\t\t\t\t\tsearch_items: __( 'Search Authors' ),\n\t\t\t\t\tnot_found: __( 'No authors found.' ),\n\t\t\t\t\tall_items: __( 'All Authors' ),\n\t\t\t\t},\n\t\t\t\thasGeneralTemplate,\n\t\t\t\ttemplate,\n\t\t\t} );\n\t\t};\n\t}\n\tif ( ! hasGeneralTemplate || authorInfo.user?.hasEntities ) {\n\t\treturn authorMenuItem;\n\t}\n}\n\n/**\n * Helper hook that filters all the existing templates by the given\n * object with the entity's slug as key and the template prefix as value.\n *\n * Example:\n * `existingTemplates` is: [ { slug: 'tag-apple' }, { slug: 'page-about' }, { slug: 'tag' } ]\n * `templatePrefixes` is: { post_tag: 'tag' }\n * It will return: { post_tag: ['apple'] }\n *\n * Note: We append the `-` to the given template prefix in this function for our checks.\n *\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @return {Record<string,string[]>} An object with the entity's slug as key and an array with the existing template slugs as value.\n */\nconst useExistingTemplateSlugs = ( templatePrefixes ) => {\n\tconst existingTemplates = useExistingTemplates();\n\tconst existingSlugs = useMemo( () => {\n\t\treturn Object.entries( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, [ slug, prefix ] ) => {\n\t\t\t\tconst slugsWithTemplates = ( existingTemplates || [] ).reduce(\n\t\t\t\t\t( _accumulator, existingTemplate ) => {\n\t\t\t\t\t\tconst _prefix = `${ prefix }-`;\n\t\t\t\t\t\tif ( existingTemplate.slug.startsWith( _prefix ) ) {\n\t\t\t\t\t\t\t_accumulator.push(\n\t\t\t\t\t\t\t\texistingTemplate.slug.substring(\n\t\t\t\t\t\t\t\t\t_prefix.length\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn _accumulator;\n\t\t\t\t\t},\n\t\t\t\t\t[]\n\t\t\t\t);\n\t\t\t\tif ( slugsWithTemplates.length ) {\n\t\t\t\t\taccumulator[ slug ] = slugsWithTemplates;\n\t\t\t\t}\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, existingTemplates ] );\n\treturn existingSlugs;\n};\n\n/**\n * Helper hook that finds the existing records with an associated template,\n * as they need to be excluded from the template suggestions.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the existing records as value.\n */\nconst useTemplatesToExclude = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = {}\n) => {\n\tconst slugsToExcludePerEntity =\n\t\tuseExistingTemplateSlugs( templatePrefixes );\n\tconst recordsToExcludePerEntity = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.entries( slugsToExcludePerEntity || {} ).reduce(\n\t\t\t\t( accumulator, [ slug, slugsWithTemplates ] ) => {\n\t\t\t\t\tconst entitiesWithTemplates = select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\tslug: slugsWithTemplates,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} );\n\t\t\t\t\tif ( entitiesWithTemplates?.length ) {\n\t\t\t\t\t\taccumulator[ slug ] = entitiesWithTemplates;\n\t\t\t\t\t}\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[ slugsToExcludePerEntity ]\n\t);\n\treturn recordsToExcludePerEntity;\n};\n\n/**\n * Helper hook that returns information about an entity having\n * records that we can create a specific template for.\n *\n * For example we can search for `terms` in `taxonomy` entity or\n * `posts` in `postType` entity.\n *\n * First we need to find the existing records with an associated template,\n * to query afterwards for any remaining record, by excluding them.\n *\n * @param {string} entityName The entity's name.\n * @param {Record<string,string>} templatePrefixes An object with the entity's slug as key and the template prefix as value.\n * @param {Record<string,Object>} additionalQueryParameters An object with the entity's slug as key and additional query parameters as value.\n * @return {Record<string,EntitiesInfo>} An object with the entity's slug as key and the EntitiesInfo as value.\n */\nconst useEntitiesInfo = (\n\tentityName,\n\ttemplatePrefixes,\n\tadditionalQueryParameters = EMPTY_OBJECT\n) => {\n\tconst recordsToExcludePerEntity = useTemplatesToExclude(\n\t\tentityName,\n\t\ttemplatePrefixes,\n\t\tadditionalQueryParameters\n\t);\n\tconst entitiesHasRecords = useSelect(\n\t\t( select ) => {\n\t\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t\t( accumulator, slug ) => {\n\t\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t\t) || [];\n\t\t\t\t\taccumulator[ slug ] = !! select(\n\t\t\t\t\t\tcoreStore\n\t\t\t\t\t).getEntityRecords( entityName, slug, {\n\t\t\t\t\t\tper_page: 1,\n\t\t\t\t\t\t_fields: 'id',\n\t\t\t\t\t\tcontext: 'view',\n\t\t\t\t\t\texclude: existingEntitiesIds,\n\t\t\t\t\t\t...additionalQueryParameters[ slug ],\n\t\t\t\t\t} )?.length;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t},\n\t\t[\n\t\t\ttemplatePrefixes,\n\t\t\trecordsToExcludePerEntity,\n\t\t\tentityName,\n\t\t\tadditionalQueryParameters,\n\t\t]\n\t);\n\tconst entitiesInfo = useMemo( () => {\n\t\treturn Object.keys( templatePrefixes || {} ).reduce(\n\t\t\t( accumulator, slug ) => {\n\t\t\t\tconst existingEntitiesIds =\n\t\t\t\t\trecordsToExcludePerEntity?.[ slug ]?.map(\n\t\t\t\t\t\t( { id } ) => id\n\t\t\t\t\t) || [];\n\t\t\t\taccumulator[ slug ] = {\n\t\t\t\t\thasEntities: entitiesHasRecords[ slug ],\n\t\t\t\t\texistingEntitiesIds,\n\t\t\t\t};\n\t\t\t\treturn accumulator;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t}, [ templatePrefixes, recordsToExcludePerEntity, entitiesHasRecords ] );\n\treturn entitiesInfo;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SlotFillProvider","UnsavedChangesWarning","store","noticesStore","useDispatch","__","sprintf","PluginArea","privateApis","routerPrivateApis","Layout","GlobalStylesProvider","unlock","RouterProvider","App","createErrorNotice","onPluginAreaError","name","createElement","onError"],"sources":["@wordpress/edit-site/src/components/app/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\nimport { UnsavedChangesWarning } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { PluginArea } from '@wordpress/plugins';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport Layout from '../layout';\nimport { GlobalStylesProvider } from '../global-styles/global-styles-provider';\nimport { unlock } from '../../lock-unlock';\n\nconst { RouterProvider } = unlock( routerPrivateApis );\n\nexport default function App() {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tfunction onPluginAreaError( name ) {\n\t\tcreateErrorNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: plugin name */\n\t\t\t\t__(\n\t\t\t\t\t'The \"%s\" plugin has encountered an error and cannot be rendered.'\n\t\t\t\t),\n\t\t\t\tname\n\t\t\t)\n\t\t);\n\t}\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<GlobalStylesProvider>\n\t\t\t\t<UnsavedChangesWarning />\n\t\t\t\t<RouterProvider>\n\t\t\t\t\t<Layout />\n\t\t\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t\t\t</RouterProvider>\n\t\t\t</GlobalStylesProvider>\n\t\t</SlotFillProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,qBAAqB,QAAQ,mBAAmB;AACzD,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,OAAOC,MAAM,MAAM,WAAW;AAC9B,SAASC,oBAAoB,QAAQ,yCAAyC;AAC9E,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAe,CAAC,GAAGD,MAAM,CAAEH,iBAAkB,CAAC;AAEtD,eAAe,SAASK,GAAGA,CAAA,EAAG;EAC7B,MAAM;IAAEC;EAAkB,CAAC,GAAGX,WAAW,CAAED,YAAa,CAAC;EAEzD,SAASa,iBAAiBA,CAAEC,IAAI,EAAG;IAClCF,iBAAiB,CAChBT,OAAO,EACN;IACAD,EAAE,CACD,kEACD,CAAC,EACDY,IACD,CACD,CAAC;EACF;EAEA,OACCC,aAAA,CAAClB,gBAAgB,QAChBkB,aAAA,CAACP,oBAAoB,QACpBO,aAAA,CAACjB,qBAAqB,MAAE,CAAC,EACzBiB,aAAA,CAACL,cAAc,QACdK,aAAA,CAACR,MAAM,MAAE,CAAC,EACVQ,aAAA,CAACX,UAAU;IAACY,OAAO,EAAGH;EAAmB,CAAE,CAC5B,CACK,CACL,CAAC;AAErB"}
|
|
1
|
+
{"version":3,"names":["SlotFillProvider","UnsavedChangesWarning","store","noticesStore","useDispatch","__","sprintf","PluginArea","privateApis","routerPrivateApis","Layout","GlobalStylesProvider","unlock","RouterProvider","App","createErrorNotice","onPluginAreaError","name","createElement","onError"],"sources":["@wordpress/edit-site/src/components/app/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { SlotFillProvider } from '@wordpress/components';\nimport { UnsavedChangesWarning } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { PluginArea } from '@wordpress/plugins';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport Layout from '../layout';\nimport { GlobalStylesProvider } from '../global-styles/global-styles-provider';\nimport { unlock } from '../../lock-unlock';\n\nconst { RouterProvider } = unlock( routerPrivateApis );\n\nexport default function App() {\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tfunction onPluginAreaError( name ) {\n\t\tcreateErrorNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: plugin name */\n\t\t\t\t__(\n\t\t\t\t\t'The \"%s\" plugin has encountered an error and cannot be rendered.'\n\t\t\t\t),\n\t\t\t\tname\n\t\t\t)\n\t\t);\n\t}\n\n\treturn (\n\t\t<SlotFillProvider>\n\t\t\t<GlobalStylesProvider>\n\t\t\t\t<UnsavedChangesWarning />\n\t\t\t\t<RouterProvider>\n\t\t\t\t\t<Layout />\n\t\t\t\t\t<PluginArea onError={ onPluginAreaError } />\n\t\t\t\t</RouterProvider>\n\t\t\t</GlobalStylesProvider>\n\t\t</SlotFillProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,qBAAqB,QAAQ,mBAAmB;AACzD,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,OAAOC,MAAM,MAAM,WAAW;AAC9B,SAASC,oBAAoB,QAAQ,yCAAyC;AAC9E,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAe,CAAC,GAAGD,MAAM,CAAEH,iBAAkB,CAAC;AAEtD,eAAe,SAASK,GAAGA,CAAA,EAAG;EAC7B,MAAM;IAAEC;EAAkB,CAAC,GAAGX,WAAW,CAAED,YAAa,CAAC;EAEzD,SAASa,iBAAiBA,CAAEC,IAAI,EAAG;IAClCF,iBAAiB,CAChBT,OAAO,EACN;IACAD,EAAE,CACD,kEACD,CAAC,EACDY,IACD,CACD,CAAC;EACF;EAEA,OACCC,aAAA,CAAClB,gBAAgB,QAChBkB,aAAA,CAACP,oBAAoB,QACpBO,aAAA,CAACjB,qBAAqB,MAAE,CAAC,EACzBiB,aAAA,CAACL,cAAc,QACdK,aAAA,CAACR,MAAM,MAAE,CAAC,EACVQ,aAAA,CAACX,UAAU;IAACY,OAAO,EAAGH;EAAmB,CAAE,CAC5B,CACK,CACL,CAAC;AAErB","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useEffect, useState, flushSync } from '@wordpress/element';
|
|
5
|
+
import { createQueue } from '@wordpress/priority-queue';
|
|
6
|
+
const blockPreviewQueue = createQueue();
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Renders a component at the next idle time.
|
|
10
|
+
* @param {*} props
|
|
11
|
+
*/
|
|
12
|
+
export function Async({
|
|
13
|
+
children,
|
|
14
|
+
placeholder
|
|
15
|
+
}) {
|
|
16
|
+
const [shouldRender, setShouldRender] = useState(false);
|
|
17
|
+
|
|
18
|
+
// In the future, we could try to use startTransition here, but currently
|
|
19
|
+
// react will batch all transitions, which means all previews will be
|
|
20
|
+
// rendered at the same time.
|
|
21
|
+
// https://react.dev/reference/react/startTransition#caveats
|
|
22
|
+
// > If there are multiple ongoing Transitions, React currently batches them
|
|
23
|
+
// > together. This is a limitation that will likely be removed in a future
|
|
24
|
+
// > release.
|
|
25
|
+
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
const context = {};
|
|
28
|
+
blockPreviewQueue.add(context, () => {
|
|
29
|
+
// Synchronously run all renders so it consumes timeRemaining.
|
|
30
|
+
// See https://github.com/WordPress/gutenberg/pull/48238
|
|
31
|
+
flushSync(() => {
|
|
32
|
+
setShouldRender(true);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
return () => {
|
|
36
|
+
blockPreviewQueue.cancel(context);
|
|
37
|
+
};
|
|
38
|
+
}, []);
|
|
39
|
+
if (!shouldRender) {
|
|
40
|
+
return placeholder;
|
|
41
|
+
}
|
|
42
|
+
return children;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","flushSync","createQueue","blockPreviewQueue","Async","children","placeholder","shouldRender","setShouldRender","context","add","cancel"],"sources":["@wordpress/edit-site/src/components/async/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useState, flushSync } from '@wordpress/element';\nimport { createQueue } from '@wordpress/priority-queue';\n\nconst blockPreviewQueue = createQueue();\n\n/**\n * Renders a component at the next idle time.\n * @param {*} props\n */\nexport function Async( { children, placeholder } ) {\n\tconst [ shouldRender, setShouldRender ] = useState( false );\n\n\t// In the future, we could try to use startTransition here, but currently\n\t// react will batch all transitions, which means all previews will be\n\t// rendered at the same time.\n\t// https://react.dev/reference/react/startTransition#caveats\n\t// > If there are multiple ongoing Transitions, React currently batches them\n\t// > together. This is a limitation that will likely be removed in a future\n\t// > release.\n\n\tuseEffect( () => {\n\t\tconst context = {};\n\t\tblockPreviewQueue.add( context, () => {\n\t\t\t// Synchronously run all renders so it consumes timeRemaining.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/48238\n\t\t\tflushSync( () => {\n\t\t\t\tsetShouldRender( true );\n\t\t\t} );\n\t\t} );\n\t\treturn () => {\n\t\t\tblockPreviewQueue.cancel( context );\n\t\t};\n\t}, [] );\n\n\tif ( ! shouldRender ) {\n\t\treturn placeholder;\n\t}\n\n\treturn children;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,oBAAoB;AACnE,SAASC,WAAW,QAAQ,2BAA2B;AAEvD,MAAMC,iBAAiB,GAAGD,WAAW,CAAC,CAAC;;AAEvC;AACA;AACA;AACA;AACA,OAAO,SAASE,KAAKA,CAAE;EAAEC,QAAQ;EAAEC;AAAY,CAAC,EAAG;EAClD,MAAM,CAAEC,YAAY,EAAEC,eAAe,CAAE,GAAGR,QAAQ,CAAE,KAAM,CAAC;;EAE3D;EACA;EACA;EACA;EACA;EACA;EACA;;EAEAD,SAAS,CAAE,MAAM;IAChB,MAAMU,OAAO,GAAG,CAAC,CAAC;IAClBN,iBAAiB,CAACO,GAAG,CAAED,OAAO,EAAE,MAAM;MACrC;MACA;MACAR,SAAS,CAAE,MAAM;QAChBO,eAAe,CAAE,IAAK,CAAC;MACxB,CAAE,CAAC;IACJ,CAAE,CAAC;IACH,OAAO,MAAM;MACZL,iBAAiB,CAACQ,MAAM,CAAEF,OAAQ,CAAC;IACpC,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAK,CAAEF,YAAY,EAAG;IACrB,OAAOD,WAAW;EACnB;EAEA,OAAOD,QAAQ;AAChB","ignoreList":[]}
|
|
@@ -6,15 +6,16 @@ import { __ } from '@wordpress/i18n';
|
|
|
6
6
|
import { speak } from '@wordpress/a11y';
|
|
7
7
|
import { MenuItem } from '@wordpress/components';
|
|
8
8
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
9
|
-
import { store as interfaceStore } from '@wordpress/interface';
|
|
10
9
|
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
10
|
+
import { privateApis as editorPrivateApis } from '@wordpress/editor';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Internal dependencies
|
|
14
14
|
*/
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
import { unlock } from '../../lock-unlock';
|
|
16
|
+
const {
|
|
17
|
+
interfaceStore
|
|
18
|
+
} = unlock(editorPrivateApis);
|
|
18
19
|
export default function BlockInspectorButton({
|
|
19
20
|
onClick = () => {}
|
|
20
21
|
}) {
|
|
@@ -22,8 +23,8 @@ export default function BlockInspectorButton({
|
|
|
22
23
|
shortcut,
|
|
23
24
|
isBlockInspectorOpen
|
|
24
25
|
} = useSelect(select => ({
|
|
25
|
-
shortcut: select(keyboardShortcutsStore).getShortcutRepresentation('core/
|
|
26
|
-
isBlockInspectorOpen: select(interfaceStore).getActiveComplementaryArea(
|
|
26
|
+
shortcut: select(keyboardShortcutsStore).getShortcutRepresentation('core/editor/toggle-sidebar'),
|
|
27
|
+
isBlockInspectorOpen: select(interfaceStore).getActiveComplementaryArea('core') === 'edit-post/block'
|
|
27
28
|
}), []);
|
|
28
29
|
const {
|
|
29
30
|
enableComplementaryArea,
|
|
@@ -33,10 +34,10 @@ export default function BlockInspectorButton({
|
|
|
33
34
|
return createElement(MenuItem, {
|
|
34
35
|
onClick: () => {
|
|
35
36
|
if (isBlockInspectorOpen) {
|
|
36
|
-
disableComplementaryArea(
|
|
37
|
+
disableComplementaryArea('core');
|
|
37
38
|
speak(__('Block settings closed'));
|
|
38
39
|
} else {
|
|
39
|
-
enableComplementaryArea(
|
|
40
|
+
enableComplementaryArea('core', 'edit-post/block');
|
|
40
41
|
speak(__('Additional settings are now available in the Editor block settings sidebar'));
|
|
41
42
|
}
|
|
42
43
|
// Close dropdown menu.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","speak","MenuItem","useSelect","useDispatch","store","
|
|
1
|
+
{"version":3,"names":["__","speak","MenuItem","useSelect","useDispatch","store","keyboardShortcutsStore","privateApis","editorPrivateApis","unlock","interfaceStore","BlockInspectorButton","onClick","shortcut","isBlockInspectorOpen","select","getShortcutRepresentation","getActiveComplementaryArea","enableComplementaryArea","disableComplementaryArea","label","createElement"],"sources":["@wordpress/edit-site/src/components/block-editor/block-inspector-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport { MenuItem } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { privateApis as editorPrivateApis } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { interfaceStore } = unlock( editorPrivateApis );\n\nexport default function BlockInspectorButton( { onClick = () => {} } ) {\n\tconst { shortcut, isBlockInspectorOpen } = useSelect(\n\t\t( select ) => ( {\n\t\t\tshortcut: select(\n\t\t\t\tkeyboardShortcutsStore\n\t\t\t).getShortcutRepresentation( 'core/editor/toggle-sidebar' ),\n\t\t\tisBlockInspectorOpen:\n\t\t\t\tselect( interfaceStore ).getActiveComplementaryArea(\n\t\t\t\t\t'core'\n\t\t\t\t) === 'edit-post/block',\n\t\t} ),\n\t\t[]\n\t);\n\tconst { enableComplementaryArea, disableComplementaryArea } =\n\t\tuseDispatch( interfaceStore );\n\n\tconst label = isBlockInspectorOpen\n\t\t? __( 'Hide more settings' )\n\t\t: __( 'Show more settings' );\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\tif ( isBlockInspectorOpen ) {\n\t\t\t\t\tdisableComplementaryArea( 'core' );\n\t\t\t\t\tspeak( __( 'Block settings closed' ) );\n\t\t\t\t} else {\n\t\t\t\t\tenableComplementaryArea( 'core', 'edit-post/block' );\n\t\t\t\t\tspeak(\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Additional settings are now available in the Editor block settings sidebar'\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t// Close dropdown menu.\n\t\t\t\tonClick();\n\t\t\t} }\n\t\t\tshortcut={ shortcut }\n\t\t>\n\t\t\t{ label }\n\t\t</MenuItem>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,sBAAsB,QAAQ,+BAA+B;AAC/E,SAASC,WAAW,IAAIC,iBAAiB,QAAQ,mBAAmB;;AAEpE;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAe,CAAC,GAAGD,MAAM,CAAED,iBAAkB,CAAC;AAEtD,eAAe,SAASG,oBAAoBA,CAAE;EAAEC,OAAO,GAAGA,CAAA,KAAM,CAAC;AAAE,CAAC,EAAG;EACtE,MAAM;IAAEC,QAAQ;IAAEC;EAAqB,CAAC,GAAGX,SAAS,CACjDY,MAAM,KAAQ;IACfF,QAAQ,EAAEE,MAAM,CACfT,sBACD,CAAC,CAACU,yBAAyB,CAAE,4BAA6B,CAAC;IAC3DF,oBAAoB,EACnBC,MAAM,CAAEL,cAAe,CAAC,CAACO,0BAA0B,CAClD,MACD,CAAC,KAAK;EACR,CAAC,CAAE,EACH,EACD,CAAC;EACD,MAAM;IAAEC,uBAAuB;IAAEC;EAAyB,CAAC,GAC1Df,WAAW,CAAEM,cAAe,CAAC;EAE9B,MAAMU,KAAK,GAAGN,oBAAoB,GAC/Bd,EAAE,CAAE,oBAAqB,CAAC,GAC1BA,EAAE,CAAE,oBAAqB,CAAC;EAE7B,OACCqB,aAAA,CAACnB,QAAQ;IACRU,OAAO,EAAGA,CAAA,KAAM;MACf,IAAKE,oBAAoB,EAAG;QAC3BK,wBAAwB,CAAE,MAAO,CAAC;QAClClB,KAAK,CAAED,EAAE,CAAE,uBAAwB,CAAE,CAAC;MACvC,CAAC,MAAM;QACNkB,uBAAuB,CAAE,MAAM,EAAE,iBAAkB,CAAC;QACpDjB,KAAK,CACJD,EAAE,CACD,4EACD,CACD,CAAC;MACF;MACA;MACAY,OAAO,CAAC,CAAC;IACV,CAAG;IACHC,QAAQ,EAAGA;EAAU,GAEnBO,KACO,CAAC;AAEb","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ import { useSelect, useDispatch } from '@wordpress/data';
|
|
|
12
12
|
import { ENTER, SPACE } from '@wordpress/keycodes';
|
|
13
13
|
import { useState, useEffect, useMemo } from '@wordpress/element';
|
|
14
14
|
import { __ } from '@wordpress/i18n';
|
|
15
|
-
import { privateApis as editorPrivateApis } from '@wordpress/editor';
|
|
15
|
+
import { store as editorStore, privateApis as editorPrivateApis } from '@wordpress/editor';
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Internal dependencies
|
|
@@ -36,7 +36,8 @@ function EditorCanvas({
|
|
|
36
36
|
isFocusMode,
|
|
37
37
|
templateType,
|
|
38
38
|
canvasMode,
|
|
39
|
-
isZoomOutMode
|
|
39
|
+
isZoomOutMode,
|
|
40
|
+
currentPostIsTrashed
|
|
40
41
|
} = useSelect(select => {
|
|
41
42
|
const {
|
|
42
43
|
getBlockCount,
|
|
@@ -52,7 +53,8 @@ function EditorCanvas({
|
|
|
52
53
|
isFocusMode: FOCUSABLE_ENTITIES.includes(_templateType),
|
|
53
54
|
isZoomOutMode: __unstableGetEditorMode() === 'zoom-out',
|
|
54
55
|
canvasMode: getCanvasMode(),
|
|
55
|
-
hasBlocks: !!getBlockCount()
|
|
56
|
+
hasBlocks: !!getBlockCount(),
|
|
57
|
+
currentPostIsTrashed: select(editorStore).getCurrentPostAttribute('status') === 'trash'
|
|
56
58
|
};
|
|
57
59
|
}, []);
|
|
58
60
|
const {
|
|
@@ -69,6 +71,7 @@ function EditorCanvas({
|
|
|
69
71
|
// to switch to edit mode, with a meaningful label and no title attribute.
|
|
70
72
|
const viewModeIframeProps = {
|
|
71
73
|
'aria-label': __('Edit'),
|
|
74
|
+
'aria-disabled': currentPostIsTrashed,
|
|
72
75
|
title: null,
|
|
73
76
|
role: 'button',
|
|
74
77
|
tabIndex: 0,
|
|
@@ -78,7 +81,7 @@ function EditorCanvas({
|
|
|
78
81
|
const {
|
|
79
82
|
keyCode
|
|
80
83
|
} = event;
|
|
81
|
-
if (keyCode === ENTER || keyCode === SPACE) {
|
|
84
|
+
if ((keyCode === ENTER || keyCode === SPACE) && !currentPostIsTrashed) {
|
|
82
85
|
event.preventDefault();
|
|
83
86
|
setCanvasMode('edit');
|
|
84
87
|
}
|
|
@@ -90,6 +93,12 @@ function EditorCanvas({
|
|
|
90
93
|
setCanvasMode('edit');
|
|
91
94
|
}
|
|
92
95
|
},
|
|
96
|
+
onClickCapture: event => {
|
|
97
|
+
if (currentPostIsTrashed) {
|
|
98
|
+
event.preventDefault();
|
|
99
|
+
event.stopPropagation();
|
|
100
|
+
}
|
|
101
|
+
},
|
|
93
102
|
readonly: true
|
|
94
103
|
};
|
|
95
104
|
const isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;
|
|
@@ -105,12 +114,12 @@ function EditorCanvas({
|
|
|
105
114
|
css: `.is-root-container{display:flow-root;${
|
|
106
115
|
// Some themes will have `min-height: 100vh` for the root container,
|
|
107
116
|
// which isn't a requirement in auto resize mode.
|
|
108
|
-
enableResizing ? 'min-height:0!important;' : ''}}body{position:relative; ${canvasMode === 'view' ?
|
|
109
|
-
}], [settings.styles, enableResizing, canvasMode]);
|
|
117
|
+
enableResizing ? 'min-height:0!important;' : ''}}body{position:relative; ${canvasMode === 'view' ? `min-height: 100vh; ${currentPostIsTrashed ? '' : 'cursor: pointer;'}` : ''}}}`
|
|
118
|
+
}], [settings.styles, enableResizing, canvasMode, currentPostIsTrashed]);
|
|
110
119
|
const frameSize = isZoomOutMode ? 20 : undefined;
|
|
111
120
|
const scale = isZoomOutMode ? contentWidth => computeIFrameScale({
|
|
112
121
|
width: 1000,
|
|
113
|
-
scale: 0.
|
|
122
|
+
scale: 0.55
|
|
114
123
|
}, {
|
|
115
124
|
width: 400,
|
|
116
125
|
scale: 0.9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","store","blockEditorStore","useSelect","useDispatch","ENTER","SPACE","useState","useEffect","useMemo","__","privateApis","editorPrivateApis","unlock","editSiteStore","FOCUSABLE_ENTITIES","NAVIGATION_POST_TYPE","computeIFrameScale","EditorCanvas","EditorCanvasRoot","enableResizing","settings","children","onClick","props","hasBlocks","isFocusMode","templateType","canvasMode","isZoomOutMode","select","getBlockCount","__unstableGetEditorMode","getEditedPostType","getCanvasMode","_templateType","includes","setCanvasMode","isFocused","setIsFocused","viewModeIframeProps","title","role","tabIndex","onFocus","onBlur","onKeyDown","event","keyCode","preventDefault","readonly","isTemplateTypeNavigation","isNavigationFocusMode","showBlockAppender","undefined","styles","css","frameSize","scale","contentWidth","width","createElement","className","renderAppender","iframeProps"],"sources":["@wordpress/edit-site/src/components/block-editor/editor-canvas.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {
|
|
1
|
+
{"version":3,"names":["classnames","store","blockEditorStore","useSelect","useDispatch","ENTER","SPACE","useState","useEffect","useMemo","__","editorStore","privateApis","editorPrivateApis","unlock","editSiteStore","FOCUSABLE_ENTITIES","NAVIGATION_POST_TYPE","computeIFrameScale","EditorCanvas","EditorCanvasRoot","enableResizing","settings","children","onClick","props","hasBlocks","isFocusMode","templateType","canvasMode","isZoomOutMode","currentPostIsTrashed","select","getBlockCount","__unstableGetEditorMode","getEditedPostType","getCanvasMode","_templateType","includes","getCurrentPostAttribute","setCanvasMode","isFocused","setIsFocused","viewModeIframeProps","title","role","tabIndex","onFocus","onBlur","onKeyDown","event","keyCode","preventDefault","onClickCapture","stopPropagation","readonly","isTemplateTypeNavigation","isNavigationFocusMode","showBlockAppender","undefined","styles","css","frameSize","scale","contentWidth","width","createElement","className","renderAppender","iframeProps"],"sources":["@wordpress/edit-site/src/components/block-editor/editor-canvas.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { ENTER, SPACE } from '@wordpress/keycodes';\nimport { useState, useEffect, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tstore as editorStore,\n\tprivateApis as editorPrivateApis,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editSiteStore } from '../../store';\nimport {\n\tFOCUSABLE_ENTITIES,\n\tNAVIGATION_POST_TYPE,\n} from '../../utils/constants';\nimport { computeIFrameScale } from '../../utils/math';\n\nconst { EditorCanvas: EditorCanvasRoot } = unlock( editorPrivateApis );\n\nfunction EditorCanvas( {\n\tenableResizing,\n\tsettings,\n\tchildren,\n\tonClick,\n\t...props\n} ) {\n\tconst {\n\t\thasBlocks,\n\t\tisFocusMode,\n\t\ttemplateType,\n\t\tcanvasMode,\n\t\tisZoomOutMode,\n\t\tcurrentPostIsTrashed,\n\t} = useSelect( ( select ) => {\n\t\tconst { getBlockCount, __unstableGetEditorMode } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { getEditedPostType, getCanvasMode } = unlock(\n\t\t\tselect( editSiteStore )\n\t\t);\n\t\tconst _templateType = getEditedPostType();\n\n\t\treturn {\n\t\t\ttemplateType: _templateType,\n\t\t\tisFocusMode: FOCUSABLE_ENTITIES.includes( _templateType ),\n\t\t\tisZoomOutMode: __unstableGetEditorMode() === 'zoom-out',\n\t\t\tcanvasMode: getCanvasMode(),\n\t\t\thasBlocks: !! getBlockCount(),\n\t\t\tcurrentPostIsTrashed:\n\t\t\t\tselect( editorStore ).getCurrentPostAttribute( 'status' ) ===\n\t\t\t\t'trash',\n\t\t};\n\t}, [] );\n\tconst { setCanvasMode } = unlock( useDispatch( editSiteStore ) );\n\tconst [ isFocused, setIsFocused ] = useState( false );\n\n\tuseEffect( () => {\n\t\tif ( canvasMode === 'edit' ) {\n\t\t\tsetIsFocused( false );\n\t\t}\n\t}, [ canvasMode ] );\n\n\t// In view mode, make the canvas iframe be perceived and behave as a button\n\t// to switch to edit mode, with a meaningful label and no title attribute.\n\tconst viewModeIframeProps = {\n\t\t'aria-label': __( 'Edit' ),\n\t\t'aria-disabled': currentPostIsTrashed,\n\t\ttitle: null,\n\t\trole: 'button',\n\t\ttabIndex: 0,\n\t\tonFocus: () => setIsFocused( true ),\n\t\tonBlur: () => setIsFocused( false ),\n\t\tonKeyDown: ( event ) => {\n\t\t\tconst { keyCode } = event;\n\t\t\tif (\n\t\t\t\t( keyCode === ENTER || keyCode === SPACE ) &&\n\t\t\t\t! currentPostIsTrashed\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tsetCanvasMode( 'edit' );\n\t\t\t}\n\t\t},\n\t\tonClick: () => {\n\t\t\tif ( !! onClick ) {\n\t\t\t\tonClick();\n\t\t\t} else {\n\t\t\t\tsetCanvasMode( 'edit' );\n\t\t\t}\n\t\t},\n\t\tonClickCapture: ( event ) => {\n\t\t\tif ( currentPostIsTrashed ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t},\n\t\treadonly: true,\n\t};\n\tconst isTemplateTypeNavigation = templateType === NAVIGATION_POST_TYPE;\n\tconst isNavigationFocusMode = isTemplateTypeNavigation && isFocusMode;\n\t// Hide the appender when:\n\t// - In navigation focus mode (should only allow the root Nav block).\n\t// - In view mode (i.e. not editing).\n\tconst showBlockAppender =\n\t\t( isNavigationFocusMode && hasBlocks ) || canvasMode === 'view'\n\t\t\t? false\n\t\t\t: undefined;\n\n\tconst styles = useMemo(\n\t\t() => [\n\t\t\t...settings.styles,\n\t\t\t{\n\t\t\t\t// Forming a \"block formatting context\" to prevent margin collapsing.\n\t\t\t\t// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context\n\n\t\t\t\tcss: `.is-root-container{display:flow-root;${\n\t\t\t\t\t// Some themes will have `min-height: 100vh` for the root container,\n\t\t\t\t\t// which isn't a requirement in auto resize mode.\n\t\t\t\t\tenableResizing ? 'min-height:0!important;' : ''\n\t\t\t\t}}body{position:relative; ${\n\t\t\t\t\tcanvasMode === 'view'\n\t\t\t\t\t\t? `min-height: 100vh; ${\n\t\t\t\t\t\t\t\tcurrentPostIsTrashed ? '' : 'cursor: pointer;'\n\t\t\t\t\t\t }`\n\t\t\t\t\t\t: ''\n\t\t\t\t}}}`,\n\t\t\t},\n\t\t],\n\t\t[ settings.styles, enableResizing, canvasMode, currentPostIsTrashed ]\n\t);\n\n\tconst frameSize = isZoomOutMode ? 20 : undefined;\n\n\tconst scale = isZoomOutMode\n\t\t? ( contentWidth ) =>\n\t\t\t\tcomputeIFrameScale(\n\t\t\t\t\t{ width: 1000, scale: 0.55 },\n\t\t\t\t\t{ width: 400, scale: 0.9 },\n\t\t\t\t\tcontentWidth\n\t\t\t\t)\n\t\t: undefined;\n\n\treturn (\n\t\t<EditorCanvasRoot\n\t\t\tclassName={ classnames( 'edit-site-editor-canvas__block-list', {\n\t\t\t\t'is-navigation-block': isTemplateTypeNavigation,\n\t\t\t} ) }\n\t\t\trenderAppender={ showBlockAppender }\n\t\t\tstyles={ styles }\n\t\t\tiframeProps={ {\n\t\t\t\tscale,\n\t\t\t\tframeSize,\n\t\t\t\tclassName: classnames(\n\t\t\t\t\t'edit-site-visual-editor__editor-canvas',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-focused': isFocused && canvasMode === 'view',\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\t...props,\n\t\t\t\t...( canvasMode === 'view' ? viewModeIframeProps : {} ),\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</EditorCanvasRoot>\n\t);\n}\n\nexport default EditorCanvas;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","sprintf","_x","resolveSelect","decodeEntities","store","coreStore","getExternalLink","url","text","getExternalLinkAttributes","getOpenverseLicense","license","licenseVersion","licenseName","trim","toUpperCase","replace","includes","getOpenverseCaption","item","title","foreign_landing_url","foreignLandingUrl","creator","creator_url","creatorUrl","license_version","license_url","licenseUrl","fullLicense","_creator","_caption","coreMediaFetch","query","mediaItems","getMediaItems","orderBy","search","map","mediaItem","alt","alt_text","source_url","previewUrl","media_details","sizes","medium","caption","raw","inserterMediaCategories","name","labels","search_items","mediaType","fetch","media_type","defaultArgs","mature","excluded_source","finalQuery","mapFromInserterMediaRequest","per_page","URL","Object","entries","forEach","key","value","queryKey","searchParams","set","response","window","headers","jsonResponse","json","results","result","toLowerCase","startsWith","slice","sourceId","id","undefined","thumbnail","getReportUrl","isExternalResource"],"sources":["@wordpress/edit-site/src/components/block-editor/inserter-media-categories.js"],"sourcesContent":["/**\n * The `edit-site` settings here need to be in sync with the corresponding ones in `site-editor` package.\n * See `packages/edit-site/src/components/block-editor/inserter-media-categories.js`.\n *\n * In the future we could consider creating an Openvese package that can be used in both `editor` and `site-editor`.\n * The rest of the settings would still need to be in sync though.\n */\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf, _x } from '@wordpress/i18n';\nimport { resolveSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\n\n/** @typedef {import('@wordpress/block-editor').InserterMediaRequest} InserterMediaRequest */\n/** @typedef {import('@wordpress/block-editor').InserterMediaItem} InserterMediaItem */\n/** @typedef {import('@wordpress/block-editor').InserterMediaCategory} InserterMediaCategory */\n\nconst getExternalLink = ( url, text ) =>\n\t`<a ${ getExternalLinkAttributes( url ) }>${ text }</a>`;\n\nconst getExternalLinkAttributes = ( url ) =>\n\t`href=\"${ url }\" target=\"_blank\" rel=\"noreferrer noopener\"`;\n\nconst getOpenverseLicense = ( license, licenseVersion ) => {\n\tlet licenseName = license.trim();\n\t// PDM has no abbreviation\n\tif ( license !== 'pdm' ) {\n\t\tlicenseName = license.toUpperCase().replace( 'SAMPLING', 'Sampling' );\n\t}\n\t// If version is known, append version to the name.\n\t// The license has to have a version to be valid. Only\n\t// PDM (public domain mark) doesn't have a version.\n\tif ( licenseVersion ) {\n\t\tlicenseName += ` ${ licenseVersion }`;\n\t}\n\t// For licenses other than public-domain marks, prepend 'CC' to the name.\n\tif ( ! [ 'pdm', 'cc0' ].includes( license ) ) {\n\t\tlicenseName = `CC ${ licenseName }`;\n\t}\n\treturn licenseName;\n};\n\nconst getOpenverseCaption = ( item ) => {\n\tconst {\n\t\ttitle,\n\t\tforeign_landing_url: foreignLandingUrl,\n\t\tcreator,\n\t\tcreator_url: creatorUrl,\n\t\tlicense,\n\t\tlicense_version: licenseVersion,\n\t\tlicense_url: licenseUrl,\n\t} = item;\n\tconst fullLicense = getOpenverseLicense( license, licenseVersion );\n\tconst _creator = decodeEntities( creator );\n\tlet _caption;\n\tif ( _creator ) {\n\t\t_caption = title\n\t\t\t? sprintf(\n\t\t\t\t\t// 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\".\n\t\t\t\t\t_x( '\"%1$s\" by %2$s/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLink(\n\t\t\t\t\t\tforeignLandingUrl,\n\t\t\t\t\t\tdecodeEntities( title )\n\t\t\t\t\t),\n\t\t\t\t\tcreatorUrl\n\t\t\t\t\t\t? getExternalLink( creatorUrl, _creator )\n\t\t\t\t\t\t: _creator,\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// 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\".\n\t\t\t\t\t_x( '<a %1$s>Work</a> by %2$s/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLinkAttributes( foreignLandingUrl ),\n\t\t\t\t\tcreatorUrl\n\t\t\t\t\t\t? getExternalLink( creatorUrl, _creator )\n\t\t\t\t\t\t: _creator,\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t );\n\t} else {\n\t\t_caption = title\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %1s: Title of a media work from Openverse; %2s: Work's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '\"%1$s\"/ %2$s', 'caption' ),\n\t\t\t\t\tgetExternalLink(\n\t\t\t\t\t\tforeignLandingUrl,\n\t\t\t\t\t\tdecodeEntities( title )\n\t\t\t\t\t),\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %1s: Link attributes for a given Openverse media work; %2s: Works's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '<a %1$s>Work</a>/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLinkAttributes( foreignLandingUrl ),\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t );\n\t}\n\treturn _caption.replace( /\\s{2}/g, ' ' );\n};\n\nconst coreMediaFetch = async ( query = {} ) => {\n\tconst mediaItems = await resolveSelect( coreStore ).getMediaItems( {\n\t\t...query,\n\t\torderBy: !! query?.search ? 'relevance' : 'date',\n\t} );\n\treturn mediaItems.map( ( mediaItem ) => ( {\n\t\t...mediaItem,\n\t\talt: mediaItem.alt_text,\n\t\turl: mediaItem.source_url,\n\t\tpreviewUrl: mediaItem.media_details?.sizes?.medium?.source_url,\n\t\tcaption: mediaItem.caption?.raw,\n\t} ) );\n};\n\n/** @type {InserterMediaCategory[]} */\nconst inserterMediaCategories = [\n\t{\n\t\tname: 'images',\n\t\tlabels: {\n\t\t\tname: __( 'Images' ),\n\t\t\tsearch_items: __( 'Search images' ),\n\t\t},\n\t\tmediaType: 'image',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'image' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'videos',\n\t\tlabels: {\n\t\t\tname: __( 'Videos' ),\n\t\t\tsearch_items: __( 'Search videos' ),\n\t\t},\n\t\tmediaType: 'video',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'video' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'audio',\n\t\tlabels: {\n\t\t\tname: __( 'Audio' ),\n\t\t\tsearch_items: __( 'Search audio' ),\n\t\t},\n\t\tmediaType: 'audio',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'audio' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'openverse',\n\t\tlabels: {\n\t\t\tname: __( 'Openverse' ),\n\t\t\tsearch_items: __( 'Search Openverse' ),\n\t\t},\n\t\tmediaType: 'image',\n\t\tasync fetch( query = {} ) {\n\t\t\tconst defaultArgs = {\n\t\t\t\tmature: false,\n\t\t\t\texcluded_source: 'flickr,inaturalist,wikimedia',\n\t\t\t\tlicense: 'pdm,cc0',\n\t\t\t};\n\t\t\tconst finalQuery = { ...query, ...defaultArgs };\n\t\t\tconst mapFromInserterMediaRequest = {\n\t\t\t\tper_page: 'page_size',\n\t\t\t\tsearch: 'q',\n\t\t\t};\n\t\t\tconst url = new URL(\n\t\t\t\t'https://api.openverse.engineering/v1/images/'\n\t\t\t);\n\t\t\tObject.entries( finalQuery ).forEach( ( [ key, value ] ) => {\n\t\t\t\tconst queryKey = mapFromInserterMediaRequest[ key ] || key;\n\t\t\t\turl.searchParams.set( queryKey, value );\n\t\t\t} );\n\t\t\tconst response = await window.fetch( url, {\n\t\t\t\theaders: {\n\t\t\t\t\t'User-Agent': 'WordPress/inserter-media-fetch',\n\t\t\t\t},\n\t\t\t} );\n\t\t\tconst jsonResponse = await response.json();\n\t\t\tconst results = jsonResponse.results;\n\t\t\treturn results.map( ( result ) => ( {\n\t\t\t\t...result,\n\t\t\t\t// This is a temp solution for better titles, until Openverse API\n\t\t\t\t// completes the cleaning up of some titles of their upstream data.\n\t\t\t\ttitle: result.title?.toLowerCase().startsWith( 'file:' )\n\t\t\t\t\t? result.title.slice( 5 )\n\t\t\t\t\t: result.title,\n\t\t\t\tsourceId: result.id,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: getOpenverseCaption( result ),\n\t\t\t\tpreviewUrl: result.thumbnail,\n\t\t\t} ) );\n\t\t},\n\t\tgetReportUrl: ( { sourceId } ) =>\n\t\t\t`https://wordpress.org/openverse/image/${ sourceId }/report/`,\n\t\tisExternalResource: true,\n\t},\n];\n\nexport default inserterMediaCategories;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["__","sprintf","_x","resolveSelect","decodeEntities","store","coreStore","getExternalLink","url","text","getExternalLinkAttributes","getOpenverseLicense","license","licenseVersion","licenseName","trim","toUpperCase","replace","includes","getOpenverseCaption","item","title","foreign_landing_url","foreignLandingUrl","creator","creator_url","creatorUrl","license_version","license_url","licenseUrl","fullLicense","_creator","_caption","coreMediaFetch","query","mediaItems","getMediaItems","orderBy","search","map","mediaItem","alt","alt_text","source_url","previewUrl","media_details","sizes","medium","caption","raw","inserterMediaCategories","name","labels","search_items","mediaType","fetch","media_type","defaultArgs","mature","excluded_source","finalQuery","mapFromInserterMediaRequest","per_page","URL","Object","entries","forEach","key","value","queryKey","searchParams","set","response","window","headers","jsonResponse","json","results","result","toLowerCase","startsWith","slice","sourceId","id","undefined","thumbnail","getReportUrl","isExternalResource"],"sources":["@wordpress/edit-site/src/components/block-editor/inserter-media-categories.js"],"sourcesContent":["/**\n * The `edit-site` settings here need to be in sync with the corresponding ones in `site-editor` package.\n * See `packages/edit-site/src/components/block-editor/inserter-media-categories.js`.\n *\n * In the future we could consider creating an Openvese package that can be used in both `editor` and `site-editor`.\n * The rest of the settings would still need to be in sync though.\n */\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf, _x } from '@wordpress/i18n';\nimport { resolveSelect } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { store as coreStore } from '@wordpress/core-data';\n\n/** @typedef {import('@wordpress/block-editor').InserterMediaRequest} InserterMediaRequest */\n/** @typedef {import('@wordpress/block-editor').InserterMediaItem} InserterMediaItem */\n/** @typedef {import('@wordpress/block-editor').InserterMediaCategory} InserterMediaCategory */\n\nconst getExternalLink = ( url, text ) =>\n\t`<a ${ getExternalLinkAttributes( url ) }>${ text }</a>`;\n\nconst getExternalLinkAttributes = ( url ) =>\n\t`href=\"${ url }\" target=\"_blank\" rel=\"noreferrer noopener\"`;\n\nconst getOpenverseLicense = ( license, licenseVersion ) => {\n\tlet licenseName = license.trim();\n\t// PDM has no abbreviation\n\tif ( license !== 'pdm' ) {\n\t\tlicenseName = license.toUpperCase().replace( 'SAMPLING', 'Sampling' );\n\t}\n\t// If version is known, append version to the name.\n\t// The license has to have a version to be valid. Only\n\t// PDM (public domain mark) doesn't have a version.\n\tif ( licenseVersion ) {\n\t\tlicenseName += ` ${ licenseVersion }`;\n\t}\n\t// For licenses other than public-domain marks, prepend 'CC' to the name.\n\tif ( ! [ 'pdm', 'cc0' ].includes( license ) ) {\n\t\tlicenseName = `CC ${ licenseName }`;\n\t}\n\treturn licenseName;\n};\n\nconst getOpenverseCaption = ( item ) => {\n\tconst {\n\t\ttitle,\n\t\tforeign_landing_url: foreignLandingUrl,\n\t\tcreator,\n\t\tcreator_url: creatorUrl,\n\t\tlicense,\n\t\tlicense_version: licenseVersion,\n\t\tlicense_url: licenseUrl,\n\t} = item;\n\tconst fullLicense = getOpenverseLicense( license, licenseVersion );\n\tconst _creator = decodeEntities( creator );\n\tlet _caption;\n\tif ( _creator ) {\n\t\t_caption = title\n\t\t\t? sprintf(\n\t\t\t\t\t// 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\".\n\t\t\t\t\t_x( '\"%1$s\" by %2$s/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLink(\n\t\t\t\t\t\tforeignLandingUrl,\n\t\t\t\t\t\tdecodeEntities( title )\n\t\t\t\t\t),\n\t\t\t\t\tcreatorUrl\n\t\t\t\t\t\t? getExternalLink( creatorUrl, _creator )\n\t\t\t\t\t\t: _creator,\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// 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\".\n\t\t\t\t\t_x( '<a %1$s>Work</a> by %2$s/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLinkAttributes( foreignLandingUrl ),\n\t\t\t\t\tcreatorUrl\n\t\t\t\t\t\t? getExternalLink( creatorUrl, _creator )\n\t\t\t\t\t\t: _creator,\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t );\n\t} else {\n\t\t_caption = title\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %1s: Title of a media work from Openverse; %2s: Work's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '\"%1$s\"/ %2$s', 'caption' ),\n\t\t\t\t\tgetExternalLink(\n\t\t\t\t\t\tforeignLandingUrl,\n\t\t\t\t\t\tdecodeEntities( title )\n\t\t\t\t\t),\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t )\n\t\t\t: sprintf(\n\t\t\t\t\t// translators: %1s: Link attributes for a given Openverse media work; %2s: Works's licence e.g: \"CC0 1.0\".\n\t\t\t\t\t_x( '<a %1$s>Work</a>/ %3$s', 'caption' ),\n\t\t\t\t\tgetExternalLinkAttributes( foreignLandingUrl ),\n\t\t\t\t\tlicenseUrl\n\t\t\t\t\t\t? getExternalLink(\n\t\t\t\t\t\t\t\t`${ licenseUrl }?ref=openverse`,\n\t\t\t\t\t\t\t\tfullLicense\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: fullLicense\n\t\t\t );\n\t}\n\treturn _caption.replace( /\\s{2}/g, ' ' );\n};\n\nconst coreMediaFetch = async ( query = {} ) => {\n\tconst mediaItems = await resolveSelect( coreStore ).getMediaItems( {\n\t\t...query,\n\t\torderBy: !! query?.search ? 'relevance' : 'date',\n\t} );\n\treturn mediaItems.map( ( mediaItem ) => ( {\n\t\t...mediaItem,\n\t\talt: mediaItem.alt_text,\n\t\turl: mediaItem.source_url,\n\t\tpreviewUrl: mediaItem.media_details?.sizes?.medium?.source_url,\n\t\tcaption: mediaItem.caption?.raw,\n\t} ) );\n};\n\n/** @type {InserterMediaCategory[]} */\nconst inserterMediaCategories = [\n\t{\n\t\tname: 'images',\n\t\tlabels: {\n\t\t\tname: __( 'Images' ),\n\t\t\tsearch_items: __( 'Search images' ),\n\t\t},\n\t\tmediaType: 'image',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'image' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'videos',\n\t\tlabels: {\n\t\t\tname: __( 'Videos' ),\n\t\t\tsearch_items: __( 'Search videos' ),\n\t\t},\n\t\tmediaType: 'video',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'video' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'audio',\n\t\tlabels: {\n\t\t\tname: __( 'Audio' ),\n\t\t\tsearch_items: __( 'Search audio' ),\n\t\t},\n\t\tmediaType: 'audio',\n\t\tasync fetch( query = {} ) {\n\t\t\treturn coreMediaFetch( { ...query, media_type: 'audio' } );\n\t\t},\n\t},\n\t{\n\t\tname: 'openverse',\n\t\tlabels: {\n\t\t\tname: __( 'Openverse' ),\n\t\t\tsearch_items: __( 'Search Openverse' ),\n\t\t},\n\t\tmediaType: 'image',\n\t\tasync fetch( query = {} ) {\n\t\t\tconst defaultArgs = {\n\t\t\t\tmature: false,\n\t\t\t\texcluded_source: 'flickr,inaturalist,wikimedia',\n\t\t\t\tlicense: 'pdm,cc0',\n\t\t\t};\n\t\t\tconst finalQuery = { ...query, ...defaultArgs };\n\t\t\tconst mapFromInserterMediaRequest = {\n\t\t\t\tper_page: 'page_size',\n\t\t\t\tsearch: 'q',\n\t\t\t};\n\t\t\tconst url = new URL(\n\t\t\t\t'https://api.openverse.engineering/v1/images/'\n\t\t\t);\n\t\t\tObject.entries( finalQuery ).forEach( ( [ key, value ] ) => {\n\t\t\t\tconst queryKey = mapFromInserterMediaRequest[ key ] || key;\n\t\t\t\turl.searchParams.set( queryKey, value );\n\t\t\t} );\n\t\t\tconst response = await window.fetch( url, {\n\t\t\t\theaders: {\n\t\t\t\t\t'User-Agent': 'WordPress/inserter-media-fetch',\n\t\t\t\t},\n\t\t\t} );\n\t\t\tconst jsonResponse = await response.json();\n\t\t\tconst results = jsonResponse.results;\n\t\t\treturn results.map( ( result ) => ( {\n\t\t\t\t...result,\n\t\t\t\t// This is a temp solution for better titles, until Openverse API\n\t\t\t\t// completes the cleaning up of some titles of their upstream data.\n\t\t\t\ttitle: result.title?.toLowerCase().startsWith( 'file:' )\n\t\t\t\t\t? result.title.slice( 5 )\n\t\t\t\t\t: result.title,\n\t\t\t\tsourceId: result.id,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: getOpenverseCaption( result ),\n\t\t\t\tpreviewUrl: result.thumbnail,\n\t\t\t} ) );\n\t\t},\n\t\tgetReportUrl: ( { sourceId } ) =>\n\t\t\t`https://wordpress.org/openverse/image/${ sourceId }/report/`,\n\t\tisExternalResource: true,\n\t},\n];\n\nexport default inserterMediaCategories;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useRef","useCallback","ResizableBox","ResizeHandle","HANDLE_STYLES_OVERRIDE","position","undefined","userSelect","cursor","width","height","top","right","bottom","left","ResizableEditor","enableResizing","children","setWidth","resizableRef","resizeWidthBy","deltaPixels","current","offsetWidth","createElement","ref","api","resizable","size","onResizeStop","event","direction","element","style","minWidth","maxWidth","maxHeight","enable","showHandle","resizeRatio","handleComponent","handleClasses","handleStyles"],"sources":["@wordpress/edit-site/src/components/block-editor/resizable-editor.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useRef, useCallback } from '@wordpress/element';\nimport { ResizableBox } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ResizeHandle from './resize-handle';\n\n// Removes the inline styles in the drag handles.\nconst HANDLE_STYLES_OVERRIDE = {\n\tposition: undefined,\n\tuserSelect: undefined,\n\tcursor: undefined,\n\twidth: undefined,\n\theight: undefined,\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\nfunction ResizableEditor( { enableResizing, height, children } ) {\n\tconst [ width, setWidth ] = useState( '100%' );\n\tconst resizableRef = useRef();\n\tconst resizeWidthBy = useCallback( ( deltaPixels ) => {\n\t\tif ( resizableRef.current ) {\n\t\t\tsetWidth( resizableRef.current.offsetWidth + deltaPixels );\n\t\t}\n\t}, [] );\n\treturn (\n\t\t<ResizableBox\n\t\t\tref={ ( api ) => {\n\t\t\t\tresizableRef.current = api?.resizable;\n\t\t\t} }\n\t\t\tsize={ {\n\t\t\t\twidth: enableResizing ? width : '100%',\n\t\t\t\theight: enableResizing && height ? height : '100%',\n\t\t\t} }\n\t\t\tonResizeStop={ ( event, direction, element ) => {\n\t\t\t\tsetWidth( element.style.width );\n\t\t\t} }\n\t\t\tminWidth={ 300 }\n\t\t\tmaxWidth=\"100%\"\n\t\t\tmaxHeight=\"100%\"\n\t\t\tenable={ {\n\t\t\t\tleft: enableResizing,\n\t\t\t\tright: enableResizing,\n\t\t\t} }\n\t\t\tshowHandle={ enableResizing }\n\t\t\t// The editor is centered horizontally, resizing it only\n\t\t\t// moves half the distance. Hence double the ratio to correctly\n\t\t\t// align the cursor to the resizer handle.\n\t\t\tresizeRatio={ 2 }\n\t\t\thandleComponent={ {\n\t\t\t\tleft: (\n\t\t\t\t\t<ResizeHandle\n\t\t\t\t\t\tdirection=\"left\"\n\t\t\t\t\t\tresizeWidthBy={ resizeWidthBy }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tright: (\n\t\t\t\t\t<ResizeHandle\n\t\t\t\t\t\tdirection=\"right\"\n\t\t\t\t\t\tresizeWidthBy={ resizeWidthBy }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t} }\n\t\t\thandleClasses={ undefined }\n\t\t\thandleStyles={ {\n\t\t\t\tleft: HANDLE_STYLES_OVERRIDE,\n\t\t\t\tright: HANDLE_STYLES_OVERRIDE,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</ResizableBox>\n\t);\n}\n\nexport default ResizableEditor;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,WAAW,QAAQ,oBAAoB;AAClE,SAASC,YAAY,QAAQ,uBAAuB;;AAEpD;AACA;AACA;AACA,OAAOC,YAAY,MAAM,iBAAiB;;AAE1C;AACA,MAAMC,sBAAsB,GAAG;EAC9BC,QAAQ,EAAEC,SAAS;EACnBC,UAAU,EAAED,SAAS;EACrBE,MAAM,EAAEF,SAAS;EACjBG,KAAK,EAAEH,SAAS;EAChBI,MAAM,EAAEJ,SAAS;EACjBK,GAAG,EAAEL,SAAS;EACdM,KAAK,EAAEN,SAAS;EAChBO,MAAM,EAAEP,SAAS;EACjBQ,IAAI,EAAER;AACP,CAAC;AAED,SAASS,eAAeA,CAAE;EAAEC,cAAc;EAAEN,MAAM;EAAEO;AAAS,CAAC,EAAG;EAChE,MAAM,CAAER,KAAK,EAAES,QAAQ,CAAE,GAAGnB,QAAQ,CAAE,MAAO,CAAC;EAC9C,MAAMoB,YAAY,GAAGnB,MAAM,CAAC,CAAC;EAC7B,MAAMoB,aAAa,GAAGnB,WAAW,CAAIoB,WAAW,IAAM;IACrD,IAAKF,YAAY,CAACG,OAAO,EAAG;MAC3BJ,QAAQ,CAAEC,YAAY,CAACG,OAAO,CAACC,WAAW,GAAGF,WAAY,CAAC;IAC3D;EACD,CAAC,EAAE,EAAG,CAAC;EACP,OACCG,aAAA,CAACtB,YAAY;IACZuB,GAAG,EAAKC,GAAG,IAAM;MAChBP,YAAY,CAACG,OAAO,GAAGI,GAAG,EAAEC,SAAS;IACtC,CAAG;IACHC,IAAI,EAAG;MACNnB,KAAK,EAAEO,cAAc,GAAGP,KAAK,GAAG,MAAM;MACtCC,MAAM,EAAEM,cAAc,IAAIN,MAAM,GAAGA,MAAM,GAAG;IAC7C,CAAG;IACHmB,YAAY,EAAGA,CAAEC,KAAK,EAAEC,SAAS,EAAEC,OAAO,KAAM;MAC/Cd,QAAQ,CAAEc,OAAO,CAACC,KAAK,CAACxB,KAAM,CAAC;IAChC,CAAG;IACHyB,QAAQ,EAAG,GAAK;IAChBC,QAAQ,EAAC,MAAM;IACfC,SAAS,EAAC,MAAM;IAChBC,MAAM,EAAG;MACRvB,IAAI,EAAEE,cAAc;MACpBJ,KAAK,EAAEI;IACR,CAAG;IACHsB,UAAU,EAAGtB;IACb;IACA;IACA;IAAA;IACAuB,WAAW,EAAG,CAAG;IACjBC,eAAe,EAAG;MACjB1B,IAAI,EACHU,aAAA,CAACrB,YAAY;QACZ4B,SAAS,EAAC,MAAM;QAChBX,aAAa,EAAGA;MAAe,CAC/B,CACD;MACDR,KAAK,EACJY,aAAA,CAACrB,YAAY;QACZ4B,SAAS,EAAC,OAAO;QACjBX,aAAa,EAAGA;MAAe,CAC/B;IAEH,CAAG;IACHqB,aAAa,EAAGnC,SAAW;IAC3BoC,YAAY,EAAG;MACd5B,IAAI,EAAEV,sBAAsB;MAC5BQ,KAAK,EAAER;IACR;EAAG,GAEDa,QACW,CAAC;AAEjB;AAEA,eAAeF,eAAe"}
|
|
1
|
+
{"version":3,"names":["useState","useRef","useCallback","ResizableBox","ResizeHandle","HANDLE_STYLES_OVERRIDE","position","undefined","userSelect","cursor","width","height","top","right","bottom","left","ResizableEditor","enableResizing","children","setWidth","resizableRef","resizeWidthBy","deltaPixels","current","offsetWidth","createElement","ref","api","resizable","size","onResizeStop","event","direction","element","style","minWidth","maxWidth","maxHeight","enable","showHandle","resizeRatio","handleComponent","handleClasses","handleStyles"],"sources":["@wordpress/edit-site/src/components/block-editor/resizable-editor.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useState, useRef, useCallback } from '@wordpress/element';\nimport { ResizableBox } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport ResizeHandle from './resize-handle';\n\n// Removes the inline styles in the drag handles.\nconst HANDLE_STYLES_OVERRIDE = {\n\tposition: undefined,\n\tuserSelect: undefined,\n\tcursor: undefined,\n\twidth: undefined,\n\theight: undefined,\n\ttop: undefined,\n\tright: undefined,\n\tbottom: undefined,\n\tleft: undefined,\n};\n\nfunction ResizableEditor( { enableResizing, height, children } ) {\n\tconst [ width, setWidth ] = useState( '100%' );\n\tconst resizableRef = useRef();\n\tconst resizeWidthBy = useCallback( ( deltaPixels ) => {\n\t\tif ( resizableRef.current ) {\n\t\t\tsetWidth( resizableRef.current.offsetWidth + deltaPixels );\n\t\t}\n\t}, [] );\n\treturn (\n\t\t<ResizableBox\n\t\t\tref={ ( api ) => {\n\t\t\t\tresizableRef.current = api?.resizable;\n\t\t\t} }\n\t\t\tsize={ {\n\t\t\t\twidth: enableResizing ? width : '100%',\n\t\t\t\theight: enableResizing && height ? height : '100%',\n\t\t\t} }\n\t\t\tonResizeStop={ ( event, direction, element ) => {\n\t\t\t\tsetWidth( element.style.width );\n\t\t\t} }\n\t\t\tminWidth={ 300 }\n\t\t\tmaxWidth=\"100%\"\n\t\t\tmaxHeight=\"100%\"\n\t\t\tenable={ {\n\t\t\t\tleft: enableResizing,\n\t\t\t\tright: enableResizing,\n\t\t\t} }\n\t\t\tshowHandle={ enableResizing }\n\t\t\t// The editor is centered horizontally, resizing it only\n\t\t\t// moves half the distance. Hence double the ratio to correctly\n\t\t\t// align the cursor to the resizer handle.\n\t\t\tresizeRatio={ 2 }\n\t\t\thandleComponent={ {\n\t\t\t\tleft: (\n\t\t\t\t\t<ResizeHandle\n\t\t\t\t\t\tdirection=\"left\"\n\t\t\t\t\t\tresizeWidthBy={ resizeWidthBy }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t\tright: (\n\t\t\t\t\t<ResizeHandle\n\t\t\t\t\t\tdirection=\"right\"\n\t\t\t\t\t\tresizeWidthBy={ resizeWidthBy }\n\t\t\t\t\t/>\n\t\t\t\t),\n\t\t\t} }\n\t\t\thandleClasses={ undefined }\n\t\t\thandleStyles={ {\n\t\t\t\tleft: HANDLE_STYLES_OVERRIDE,\n\t\t\t\tright: HANDLE_STYLES_OVERRIDE,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</ResizableBox>\n\t);\n}\n\nexport default ResizableEditor;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,WAAW,QAAQ,oBAAoB;AAClE,SAASC,YAAY,QAAQ,uBAAuB;;AAEpD;AACA;AACA;AACA,OAAOC,YAAY,MAAM,iBAAiB;;AAE1C;AACA,MAAMC,sBAAsB,GAAG;EAC9BC,QAAQ,EAAEC,SAAS;EACnBC,UAAU,EAAED,SAAS;EACrBE,MAAM,EAAEF,SAAS;EACjBG,KAAK,EAAEH,SAAS;EAChBI,MAAM,EAAEJ,SAAS;EACjBK,GAAG,EAAEL,SAAS;EACdM,KAAK,EAAEN,SAAS;EAChBO,MAAM,EAAEP,SAAS;EACjBQ,IAAI,EAAER;AACP,CAAC;AAED,SAASS,eAAeA,CAAE;EAAEC,cAAc;EAAEN,MAAM;EAAEO;AAAS,CAAC,EAAG;EAChE,MAAM,CAAER,KAAK,EAAES,QAAQ,CAAE,GAAGnB,QAAQ,CAAE,MAAO,CAAC;EAC9C,MAAMoB,YAAY,GAAGnB,MAAM,CAAC,CAAC;EAC7B,MAAMoB,aAAa,GAAGnB,WAAW,CAAIoB,WAAW,IAAM;IACrD,IAAKF,YAAY,CAACG,OAAO,EAAG;MAC3BJ,QAAQ,CAAEC,YAAY,CAACG,OAAO,CAACC,WAAW,GAAGF,WAAY,CAAC;IAC3D;EACD,CAAC,EAAE,EAAG,CAAC;EACP,OACCG,aAAA,CAACtB,YAAY;IACZuB,GAAG,EAAKC,GAAG,IAAM;MAChBP,YAAY,CAACG,OAAO,GAAGI,GAAG,EAAEC,SAAS;IACtC,CAAG;IACHC,IAAI,EAAG;MACNnB,KAAK,EAAEO,cAAc,GAAGP,KAAK,GAAG,MAAM;MACtCC,MAAM,EAAEM,cAAc,IAAIN,MAAM,GAAGA,MAAM,GAAG;IAC7C,CAAG;IACHmB,YAAY,EAAGA,CAAEC,KAAK,EAAEC,SAAS,EAAEC,OAAO,KAAM;MAC/Cd,QAAQ,CAAEc,OAAO,CAACC,KAAK,CAACxB,KAAM,CAAC;IAChC,CAAG;IACHyB,QAAQ,EAAG,GAAK;IAChBC,QAAQ,EAAC,MAAM;IACfC,SAAS,EAAC,MAAM;IAChBC,MAAM,EAAG;MACRvB,IAAI,EAAEE,cAAc;MACpBJ,KAAK,EAAEI;IACR,CAAG;IACHsB,UAAU,EAAGtB;IACb;IACA;IACA;IAAA;IACAuB,WAAW,EAAG,CAAG;IACjBC,eAAe,EAAG;MACjB1B,IAAI,EACHU,aAAA,CAACrB,YAAY;QACZ4B,SAAS,EAAC,MAAM;QAChBX,aAAa,EAAGA;MAAe,CAC/B,CACD;MACDR,KAAK,EACJY,aAAA,CAACrB,YAAY;QACZ4B,SAAS,EAAC,OAAO;QACjBX,aAAa,EAAGA;MAAe,CAC/B;IAEH,CAAG;IACHqB,aAAa,EAAGnC,SAAW;IAC3BoC,YAAY,EAAG;MACd5B,IAAI,EAAEV,sBAAsB;MAC5BQ,KAAK,EAAER;IACR;EAAG,GAEDa,QACW,CAAC;AAEjB;AAEA,eAAeF,eAAe","ignoreList":[]}
|