@wordpress/edit-site 5.18.1-next.5a1d1283.0 → 5.19.1
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 +2 -0
- package/build/components/add-new-pattern/index.js +65 -4
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/add-new-template/index.js +3 -2
- package/build/components/add-new-template/index.js.map +1 -1
- package/build/components/add-new-template/new-template.js +6 -1
- package/build/components/add-new-template/new-template.js.map +1 -1
- package/build/components/add-new-template/utils.js +6 -1
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/app/index.js +2 -7
- package/build/components/app/index.js.map +1 -1
- package/build/components/block-editor/back-button.js +3 -2
- package/build/components/block-editor/back-button.js.map +1 -1
- package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +73 -0
- package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
- package/build/components/block-editor/block-editor-provider/index.js +31 -0
- package/build/components/block-editor/block-editor-provider/index.js.map +1 -0
- package/build/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
- package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
- package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +76 -0
- package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
- package/build/components/block-editor/editor-canvas.js +20 -16
- package/build/components/block-editor/editor-canvas.js.map +1 -1
- package/build/components/block-editor/index.js +2 -9
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/block-editor/site-editor-canvas.js +2 -4
- package/build/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js +8 -4
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/canvas-loader/index.js +18 -1
- package/build/components/canvas-loader/index.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +8 -12
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/editor/index.js +7 -9
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +5 -4
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/font-families.js +68 -0
- package/build/components/global-styles/font-families.js.map +1 -0
- package/build/components/global-styles/font-family-item.js +47 -0
- package/build/components/global-styles/font-family-item.js.map +1 -0
- package/build/components/global-styles/font-library-modal/collection-font-details.js +49 -0
- package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
- package/build/components/global-styles/font-library-modal/collection-font-variant.js +55 -0
- package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
- package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +31 -0
- package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
- package/build/components/global-styles/font-library-modal/context.js +309 -0
- package/build/components/global-styles/font-library-modal/context.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-card.js +61 -0
- package/build/components/global-styles/font-library-modal/font-card.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-collection.js +172 -0
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-demo.js +86 -0
- package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-variant.js +51 -0
- package/build/components/global-styles/font-library-modal/font-variant.js.map +1 -0
- package/build/components/global-styles/font-library-modal/fonts-grid.js +54 -0
- package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
- package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +41 -0
- package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
- package/build/components/global-styles/font-library-modal/index.js +65 -0
- package/build/components/global-styles/font-library-modal/index.js.map +1 -0
- package/build/components/global-styles/font-library-modal/installed-fonts.js +128 -0
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
- package/build/components/global-styles/font-library-modal/library-font-card.js +39 -0
- package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
- package/build/components/global-styles/font-library-modal/library-font-details.js +44 -0
- package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
- package/build/components/global-styles/font-library-modal/library-font-variant.js +59 -0
- package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
- package/build/components/global-styles/font-library-modal/local-fonts.js +143 -0
- package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
- package/build/components/global-styles/font-library-modal/resolvers.js +53 -0
- package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -0
- package/build/components/global-styles/font-library-modal/tab-layout.js +45 -0
- package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/constants.js +31 -0
- package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +21 -0
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +20 -0
- package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/index.js +155 -0
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js +22 -0
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js +76 -0
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js +36 -0
- package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/toggleFont.js +92 -0
- package/build/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
- package/build/components/global-styles/global-styles-provider.js +7 -12
- package/build/components/global-styles/global-styles-provider.js.map +1 -1
- package/build/components/global-styles/screen-block.js +34 -21
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-revisions/index.js +1 -3
- package/build/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +4 -72
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/style-variations-container.js +3 -5
- package/build/components/global-styles/style-variations-container.js.map +1 -1
- package/build/components/global-styles/typogrphy-elements.js +96 -0
- package/build/components/global-styles/typogrphy-elements.js.map +1 -0
- package/build/components/header-edit-mode/document-actions/index.js +9 -8
- package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build/components/header-edit-mode/index.js +4 -1
- package/build/components/header-edit-mode/index.js.map +1 -1
- package/build/components/layout/index.js +5 -1
- package/build/components/layout/index.js.map +1 -1
- package/build/components/list/added-by.js +13 -8
- package/build/components/list/added-by.js.map +1 -1
- package/build/components/list/index.js +2 -1
- package/build/components/list/index.js.map +1 -1
- package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
- package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
- package/build/components/page-patterns/duplicate-menu-item.js +56 -20
- package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build/components/page-patterns/grid-item.js +48 -22
- package/build/components/page-patterns/grid-item.js.map +1 -1
- package/build/components/page-patterns/header.js +3 -7
- package/build/components/page-patterns/header.js.map +1 -1
- package/build/components/page-patterns/index.js +3 -3
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/patterns-list.js +7 -7
- package/build/components/page-patterns/patterns-list.js.map +1 -1
- package/build/components/page-patterns/rename-menu-item.js +6 -5
- package/build/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build/components/page-patterns/search-items.js +8 -2
- package/build/components/page-patterns/search-items.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +71 -51
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-patterns/utils.js +1 -20
- package/build/components/page-patterns/utils.js.map +1 -1
- package/build/components/page-template-parts/add-new-template-part.js +3 -2
- package/build/components/page-template-parts/add-new-template-part.js.map +1 -1
- package/build/components/page-template-parts/index.js +2 -1
- package/build/components/page-template-parts/index.js.map +1 -1
- package/build/components/page-templates/index.js +3 -2
- package/build/components/page-templates/index.js.map +1 -1
- package/build/components/save-hub/index.js +2 -1
- package/build/components/save-hub/index.js.map +1 -1
- package/build/components/secondary-sidebar/list-view-sidebar.js +24 -17
- package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js +53 -26
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/hooks.js +65 -0
- package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
- package/build/components/sidebar-edit-mode/page-panels/index.js +1 -4
- package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +56 -0
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
- package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +91 -0
- package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
- package/build/components/sidebar-edit-mode/settings-header/index.js +2 -6
- package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/index.js +11 -9
- package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js +6 -4
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +218 -0
- package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
- package/build/components/sidebar-navigation-screen/index.js +6 -4
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-footer/index.js +32 -4
- package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
- package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.js +4 -31
- package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +2 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/index.js +3 -3
- package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/page-details.js +2 -1
- package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pages/index.js +5 -4
- package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/index.js +20 -9
- 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 +3 -2
- 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.js +2 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +41 -11
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js +9 -37
- package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +44 -5
- 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 +7 -2
- 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 +2 -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 +2 -1
- package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-template/index.js +2 -2
- package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates/index.js +5 -4
- package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
- package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build/components/start-template-options/index.js +20 -2
- package/build/components/start-template-options/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
- 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-path-with-url.js +4 -3
- package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build/components/template-actions/index.js +8 -4
- package/build/components/template-actions/index.js.map +1 -1
- package/build/components/template-actions/rename-menu-item.js +9 -3
- package/build/components/template-actions/rename-menu-item.js.map +1 -1
- package/build/components/welcome-guide/styles.js +2 -2
- package/build/components/welcome-guide/styles.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +4 -3
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build/hooks/navigation-menu-edit.js +2 -1
- package/build/hooks/navigation-menu-edit.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +5 -37
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/template-part-edit.js +2 -1
- package/build/hooks/template-part-edit.js.map +1 -1
- package/build/store/actions.js +38 -14
- package/build/store/actions.js.map +1 -1
- package/build/store/constants.js +1 -9
- package/build/store/constants.js.map +1 -1
- package/build/store/private-actions.js +21 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +23 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +19 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +3 -2
- package/build/store/selectors.js.map +1 -1
- package/build/utils/constants.js +64 -2
- package/build/utils/constants.js.map +1 -1
- package/build/utils/is-template-removable.js +6 -1
- package/build/utils/is-template-removable.js.map +1 -1
- package/build/utils/is-template-revertable.js +6 -1
- package/build/utils/is-template-revertable.js.map +1 -1
- package/build/utils/template-part-create.js +6 -1
- package/build/utils/template-part-create.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +69 -8
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/add-new-template/index.js +3 -2
- package/build-module/components/add-new-template/index.js.map +1 -1
- package/build-module/components/add-new-template/new-template.js +6 -1
- package/build-module/components/add-new-template/new-template.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +6 -1
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/app/index.js +2 -7
- package/build-module/components/app/index.js.map +1 -1
- package/build-module/components/block-editor/back-button.js +3 -2
- package/build-module/components/block-editor/back-button.js.map +1 -1
- package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +65 -0
- package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
- package/build-module/components/block-editor/block-editor-provider/index.js +23 -0
- package/build-module/components/block-editor/block-editor-provider/index.js.map +1 -0
- package/build-module/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
- package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
- package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +70 -0
- package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
- package/build-module/components/block-editor/editor-canvas.js +21 -17
- package/build-module/components/block-editor/editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/index.js +1 -8
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/block-editor/site-editor-canvas.js +5 -7
- package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js +8 -4
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/canvas-loader/index.js +18 -1
- package/build-module/components/canvas-loader/index.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +8 -12
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/editor/index.js +7 -9
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +5 -4
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +58 -0
- package/build-module/components/global-styles/font-families.js.map +1 -0
- package/build-module/components/global-styles/font-family-item.js +40 -0
- package/build-module/components/global-styles/font-family-item.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/collection-font-details.js +40 -0
- package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +23 -0
- package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/context.js +300 -0
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-card.js +52 -0
- package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-collection.js +164 -0
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-demo.js +79 -0
- package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-variant.js +42 -0
- package/build-module/components/global-styles/font-library-modal/font-variant.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js +47 -0
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +33 -0
- package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/index.js +57 -0
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +120 -0
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/library-font-card.js +31 -0
- package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/library-font-details.js +35 -0
- package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js +50 -0
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/local-fonts.js +135 -0
- package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/resolvers.js +42 -0
- package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/tab-layout.js +37 -0
- package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/constants.js +21 -0
- package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +15 -0
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +13 -0
- package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +52 -0
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/index.js +141 -0
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js +16 -0
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +68 -0
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js +30 -0
- package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js +86 -0
- package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
- package/build-module/components/global-styles/global-styles-provider.js +7 -12
- package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +34 -21
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/index.js +1 -3
- package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +6 -74
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/style-variations-container.js +3 -5
- package/build-module/components/global-styles/style-variations-container.js.map +1 -1
- package/build-module/components/global-styles/typogrphy-elements.js +87 -0
- package/build-module/components/global-styles/typogrphy-elements.js.map +1 -0
- package/build-module/components/header-edit-mode/document-actions/index.js +9 -8
- package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build-module/components/header-edit-mode/index.js +4 -1
- package/build-module/components/header-edit-mode/index.js.map +1 -1
- package/build-module/components/layout/index.js +5 -1
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/list/added-by.js +13 -8
- package/build-module/components/list/added-by.js.map +1 -1
- package/build-module/components/list/index.js +2 -1
- package/build-module/components/list/index.js.map +1 -1
- package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
- package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
- package/build-module/components/page-patterns/duplicate-menu-item.js +55 -20
- package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/grid-item.js +49 -23
- package/build-module/components/page-patterns/grid-item.js.map +1 -1
- package/build-module/components/page-patterns/header.js +3 -7
- package/build-module/components/page-patterns/header.js.map +1 -1
- package/build-module/components/page-patterns/index.js +3 -3
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/patterns-list.js +7 -7
- package/build-module/components/page-patterns/patterns-list.js.map +1 -1
- package/build-module/components/page-patterns/rename-menu-item.js +6 -5
- package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/search-items.js +8 -2
- package/build-module/components/page-patterns/search-items.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +71 -52
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-patterns/utils.js +0 -11
- package/build-module/components/page-patterns/utils.js.map +1 -1
- package/build-module/components/page-template-parts/add-new-template-part.js +3 -2
- package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -1
- package/build-module/components/page-template-parts/index.js +2 -1
- package/build-module/components/page-template-parts/index.js.map +1 -1
- package/build-module/components/page-templates/index.js +3 -2
- package/build-module/components/page-templates/index.js.map +1 -1
- package/build-module/components/save-hub/index.js +2 -1
- package/build-module/components/save-hub/index.js.map +1 -1
- package/build-module/components/secondary-sidebar/list-view-sidebar.js +26 -19
- package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +54 -29
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +55 -0
- package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/page-panels/index.js +1 -4
- package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +49 -0
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +85 -0
- package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/settings-header/index.js +2 -6
- package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/index.js +12 -10
- package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +8 -6
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +209 -0
- package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen/index.js +6 -4
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-footer/index.js +32 -5
- package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
- 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-global-styles/index.js +6 -33
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
- 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/index.js +3 -2
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/index.js +3 -3
- package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/page-details.js +2 -1
- package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pages/index.js +5 -4
- package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/index.js +21 -10
- 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 +3 -2
- 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.js +2 -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/use-navigation-menu-content.js +2 -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-pattern-details.js +41 -11
- package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.js +12 -40
- package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +44 -5
- 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 +7 -2
- 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 +3 -2
- 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 +2 -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 +2 -2
- package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates/index.js +5 -4
- package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build-module/components/start-template-options/index.js +20 -2
- package/build-module/components/start-template-options/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
- 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-path-with-url.js +4 -3
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build-module/components/template-actions/index.js +8 -4
- package/build-module/components/template-actions/index.js.map +1 -1
- package/build-module/components/template-actions/rename-menu-item.js +9 -3
- package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
- package/build-module/components/welcome-guide/styles.js +2 -2
- package/build-module/components/welcome-guide/styles.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +4 -3
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/hooks/navigation-menu-edit.js +2 -1
- package/build-module/hooks/navigation-menu-edit.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +5 -37
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/template-part-edit.js +2 -1
- package/build-module/hooks/template-part-edit.js.map +1 -1
- package/build-module/store/actions.js +39 -16
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/constants.js +0 -4
- package/build-module/store/constants.js.map +1 -1
- package/build-module/store/private-actions.js +19 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +22 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +18 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +3 -3
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/constants.js +51 -1
- package/build-module/utils/constants.js.map +1 -1
- package/build-module/utils/is-template-removable.js +6 -1
- package/build-module/utils/is-template-removable.js.map +1 -1
- package/build-module/utils/is-template-revertable.js +6 -1
- package/build-module/utils/is-template-revertable.js.map +1 -1
- package/build-module/utils/template-part-create.js +6 -1
- package/build-module/utils/template-part-create.js.map +1 -1
- package/build-style/style-rtl.css +267 -37
- package/build-style/style.css +267 -37
- package/lib/inflate.js +4082 -0
- package/lib/lib-font.browser.js +3831 -0
- package/lib/unbrotli.js +2679 -0
- package/package.json +40 -40
- package/src/components/add-new-pattern/index.js +86 -8
- package/src/components/add-new-template/index.js +3 -2
- package/src/components/add-new-template/new-template.js +6 -1
- package/src/components/add-new-template/utils.js +12 -3
- package/src/components/app/index.js +9 -12
- package/src/components/block-editor/back-button.js +6 -2
- package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +70 -0
- package/src/components/block-editor/block-editor-provider/index.js +29 -0
- package/src/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
- package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +87 -0
- package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +77 -0
- package/src/components/block-editor/editor-canvas.js +31 -19
- package/src/components/block-editor/index.js +1 -14
- package/src/components/block-editor/site-editor-canvas.js +7 -12
- package/src/components/block-editor/style.scss +88 -1
- package/src/components/block-editor/use-site-editor-settings.js +26 -19
- package/src/components/canvas-loader/index.js +12 -1
- package/src/components/canvas-loader/style.scss +1 -1
- package/src/components/create-template-part-modal/index.js +11 -12
- package/src/components/editor/index.js +9 -10
- package/src/components/global-styles/dimensions-panel.js +8 -4
- package/src/components/global-styles/font-families.js +71 -0
- package/src/components/global-styles/font-family-item.js +44 -0
- package/src/components/global-styles/font-library-modal/collection-font-details.js +56 -0
- package/src/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
- package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +33 -0
- package/src/components/global-styles/font-library-modal/context.js +378 -0
- package/src/components/global-styles/font-library-modal/font-card.js +75 -0
- package/src/components/global-styles/font-library-modal/font-collection.js +257 -0
- package/src/components/global-styles/font-library-modal/font-demo.js +83 -0
- package/src/components/global-styles/font-library-modal/font-variant.js +53 -0
- package/src/components/global-styles/font-library-modal/fonts-grid.js +55 -0
- package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +50 -0
- package/src/components/global-styles/font-library-modal/index.js +67 -0
- package/src/components/global-styles/font-library-modal/installed-fonts.js +174 -0
- package/src/components/global-styles/font-library-modal/library-font-card.js +33 -0
- package/src/components/global-styles/font-library-modal/library-font-details.js +45 -0
- package/src/components/global-styles/font-library-modal/library-font-variant.js +54 -0
- package/src/components/global-styles/font-library-modal/local-fonts.js +160 -0
- package/src/components/global-styles/font-library-modal/resolvers.js +45 -0
- package/src/components/global-styles/font-library-modal/style.scss +139 -0
- package/src/components/global-styles/font-library-modal/tab-layout.js +50 -0
- package/src/components/global-styles/font-library-modal/utils/constants.js +23 -0
- package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +18 -0
- package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +21 -0
- package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
- package/src/components/global-styles/font-library-modal/utils/index.js +153 -0
- package/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js +15 -0
- package/src/components/global-styles/font-library-modal/utils/preview-styles.js +86 -0
- package/src/components/global-styles/font-library-modal/utils/sort-font-faces.js +33 -0
- package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +69 -0
- package/src/components/global-styles/font-library-modal/utils/test/fonts-outline.spec.js +109 -0
- package/src/components/global-styles/font-library-modal/utils/test/getDisplaySrcFromFontFace.spec.js +53 -0
- package/src/components/global-styles/font-library-modal/utils/test/getFontFaceVariantName.spec.js +30 -0
- package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +240 -0
- package/src/components/global-styles/font-library-modal/utils/test/isUrlEncoded.spec.js +31 -0
- package/src/components/global-styles/font-library-modal/utils/test/makeFamiliesFromFaces.spec.js +57 -0
- package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +62 -0
- package/src/components/global-styles/font-library-modal/utils/test/mergeFontFaces.spec.js +56 -0
- package/src/components/global-styles/font-library-modal/utils/test/mergeFontFamilies.spec.js +108 -0
- package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +161 -0
- package/src/components/global-styles/font-library-modal/utils/test/setUIValuesNeeded.spec.js +41 -0
- package/src/components/global-styles/font-library-modal/utils/test/sort-font-faces.js +74 -0
- package/src/components/global-styles/font-library-modal/utils/test/toggleFont.spec.js +141 -0
- package/src/components/global-styles/font-library-modal/utils/toggleFont.js +90 -0
- package/src/components/global-styles/global-styles-provider.js +2 -7
- package/src/components/global-styles/screen-block.js +42 -20
- package/src/components/global-styles/screen-revisions/index.js +0 -2
- package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
- package/src/components/global-styles/screen-typography.js +9 -95
- package/src/components/global-styles/style-variations-container.js +0 -2
- package/src/components/global-styles/typogrphy-elements.js +110 -0
- package/src/components/header-edit-mode/document-actions/index.js +17 -8
- package/src/components/header-edit-mode/index.js +2 -1
- package/src/components/layout/index.js +10 -1
- package/src/components/list/added-by.js +29 -11
- package/src/components/list/index.js +7 -1
- package/src/components/list/style.scss +2 -0
- package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -8
- package/src/components/page-patterns/duplicate-menu-item.js +67 -24
- package/src/components/page-patterns/grid-item.js +80 -33
- package/src/components/page-patterns/header.js +3 -12
- package/src/components/page-patterns/index.js +3 -3
- package/src/components/page-patterns/patterns-list.js +7 -7
- package/src/components/page-patterns/rename-menu-item.js +18 -7
- package/src/components/page-patterns/search-items.js +20 -2
- package/src/components/page-patterns/style.scss +1 -5
- package/src/components/page-patterns/use-patterns.js +217 -127
- package/src/components/page-patterns/utils.js +0 -19
- package/src/components/page-template-parts/add-new-template-part.js +5 -2
- package/src/components/page-template-parts/index.js +2 -1
- package/src/components/page-templates/index.js +3 -2
- package/src/components/save-hub/index.js +2 -1
- package/src/components/secondary-sidebar/list-view-sidebar.js +31 -26
- package/src/components/sidebar-edit-mode/page-panels/edit-template.js +94 -52
- package/src/components/sidebar-edit-mode/page-panels/hooks.js +88 -0
- package/src/components/sidebar-edit-mode/page-panels/index.js +0 -4
- package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
- package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +44 -0
- package/src/components/sidebar-edit-mode/page-panels/style.scss +46 -9
- package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +82 -0
- package/src/components/sidebar-edit-mode/settings-header/index.js +4 -7
- package/src/components/sidebar-edit-mode/template-panel/index.js +28 -24
- package/src/components/sidebar-edit-mode/template-panel/last-revision.js +19 -15
- package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +277 -0
- package/src/components/sidebar-navigation-screen/index.js +4 -9
- package/src/components/sidebar-navigation-screen/style.scss +7 -1
- package/src/components/sidebar-navigation-screen-details-footer/index.js +38 -10
- package/src/components/sidebar-navigation-screen-details-footer/style.scss +10 -3
- package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +2 -0
- package/src/components/sidebar-navigation-screen-global-styles/index.js +6 -44
- package/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
- package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
- package/src/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
- package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +0 -4
- package/src/components/sidebar-navigation-screen-page/index.js +3 -3
- package/src/components/sidebar-navigation-screen-page/page-details.js +2 -1
- package/src/components/sidebar-navigation-screen-pages/index.js +5 -4
- package/src/components/sidebar-navigation-screen-pattern/index.js +22 -8
- package/src/components/sidebar-navigation-screen-pattern/style.scss +0 -3
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +8 -2
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +7 -1
- package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
- package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +63 -20
- package/src/components/sidebar-navigation-screen-patterns/index.js +20 -51
- package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +61 -6
- package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +12 -2
- package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -5
- package/src/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
- package/src/components/sidebar-navigation-screen-template/index.js +2 -4
- package/src/components/sidebar-navigation-screen-templates/index.js +5 -4
- package/src/components/sidebar-navigation-screen-templates-browse/index.js +6 -2
- package/src/components/start-template-options/index.js +39 -2
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -4
- package/src/components/sync-state-with-url/use-sync-path-with-url.js +8 -3
- package/src/components/template-actions/index.js +15 -8
- package/src/components/template-actions/rename-menu-item.js +21 -5
- package/src/components/welcome-guide/styles.js +2 -2
- package/src/hooks/commands/use-edit-mode-commands.js +4 -3
- package/src/hooks/navigation-menu-edit.js +2 -1
- package/src/hooks/push-changes-to-global-styles/index.js +6 -49
- package/src/hooks/template-part-edit.js +2 -1
- package/src/store/actions.js +56 -22
- package/src/store/constants.js +0 -5
- package/src/store/private-actions.js +19 -0
- package/src/store/private-selectors.js +22 -0
- package/src/store/reducer.js +18 -0
- package/src/store/selectors.js +6 -3
- package/src/store/test/reducer.js +18 -0
- package/src/style.scss +1 -1
- package/src/utils/constants.js +54 -3
- package/src/utils/is-template-removable.js +8 -1
- package/src/utils/is-template-revertable.js +8 -1
- package/src/utils/template-part-create.js +6 -1
- package/build/components/block-editor/get-block-editor-provider.js +0 -35
- package/build/components/block-editor/get-block-editor-provider.js.map +0 -1
- package/build/components/block-editor/providers/default-block-editor-provider.js +0 -49
- package/build/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
- package/build/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
- package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -30
- package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
- package/build-module/components/block-editor/get-block-editor-provider.js +0 -28
- package/build-module/components/block-editor/get-block-editor-provider.js.map +0 -1
- package/build-module/components/block-editor/providers/default-block-editor-provider.js +0 -41
- package/build-module/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
- package/build-module/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -23
- package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
- package/src/components/block-editor/get-block-editor-provider.js +0 -29
- package/src/components/block-editor/providers/default-block-editor-provider.js +0 -44
- package/src/components/sidebar-navigation-screen-global-styles/style.scss +0 -12
- package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -24
|
@@ -12,22 +12,23 @@ import { privateApis as routerPrivateApis } from '@wordpress/router';
|
|
|
12
12
|
/**
|
|
13
13
|
* Internal dependencies
|
|
14
14
|
*/
|
|
15
|
-
import {
|
|
15
|
+
import { TEMPLATE_PART_POST_TYPE, PATTERN_TYPES, PATTERN_SYNC_TYPES } from '../../utils/constants';
|
|
16
16
|
import { useExistingTemplateParts, getUniqueTemplatePartTitle, getCleanTemplatePartSlug } from '../../utils/template-part-create';
|
|
17
17
|
import { unlock } from '../../lock-unlock';
|
|
18
|
+
import usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';
|
|
18
19
|
const {
|
|
19
20
|
useHistory
|
|
20
21
|
} = unlock(routerPrivateApis);
|
|
21
22
|
function getPatternMeta(item) {
|
|
22
|
-
if (item.type ===
|
|
23
|
+
if (item.type === PATTERN_TYPES.theme) {
|
|
23
24
|
return {
|
|
24
|
-
wp_pattern_sync_status:
|
|
25
|
+
wp_pattern_sync_status: PATTERN_SYNC_TYPES.unsynced
|
|
25
26
|
};
|
|
26
27
|
}
|
|
27
|
-
const syncStatus = item.
|
|
28
|
-
const isUnsynced = syncStatus ===
|
|
28
|
+
const syncStatus = item.patternBlock.wp_pattern_sync_status;
|
|
29
|
+
const isUnsynced = syncStatus === PATTERN_SYNC_TYPES.unsynced;
|
|
29
30
|
return {
|
|
30
|
-
...item.
|
|
31
|
+
...item.patternBlock.meta,
|
|
31
32
|
wp_pattern_sync_status: isUnsynced ? syncStatus : undefined
|
|
32
33
|
};
|
|
33
34
|
}
|
|
@@ -38,7 +39,8 @@ export default function DuplicateMenuItem({
|
|
|
38
39
|
onClose
|
|
39
40
|
}) {
|
|
40
41
|
const {
|
|
41
|
-
saveEntityRecord
|
|
42
|
+
saveEntityRecord,
|
|
43
|
+
invalidateResolution
|
|
42
44
|
} = useDispatch(coreStore);
|
|
43
45
|
const {
|
|
44
46
|
createErrorNotice,
|
|
@@ -46,6 +48,9 @@ export default function DuplicateMenuItem({
|
|
|
46
48
|
} = useDispatch(noticesStore);
|
|
47
49
|
const history = useHistory();
|
|
48
50
|
const existingTemplateParts = useExistingTemplateParts();
|
|
51
|
+
const {
|
|
52
|
+
patternCategories
|
|
53
|
+
} = usePatternCategories();
|
|
49
54
|
async function createTemplatePart() {
|
|
50
55
|
try {
|
|
51
56
|
const copiedTitle = sprintf( /* translators: %s: Existing template part title */
|
|
@@ -56,7 +61,7 @@ export default function DuplicateMenuItem({
|
|
|
56
61
|
area,
|
|
57
62
|
content
|
|
58
63
|
} = item.templatePart;
|
|
59
|
-
const result = await saveEntityRecord('postType',
|
|
64
|
+
const result = await saveEntityRecord('postType', TEMPLATE_PART_POST_TYPE, {
|
|
60
65
|
slug,
|
|
61
66
|
title,
|
|
62
67
|
content,
|
|
@@ -71,9 +76,9 @@ export default function DuplicateMenuItem({
|
|
|
71
76
|
id: 'edit-site-patterns-success'
|
|
72
77
|
});
|
|
73
78
|
history.push({
|
|
74
|
-
postType:
|
|
79
|
+
postType: TEMPLATE_PART_POST_TYPE,
|
|
75
80
|
postId: result?.id,
|
|
76
|
-
categoryType:
|
|
81
|
+
categoryType: TEMPLATE_PART_POST_TYPE,
|
|
77
82
|
categoryId
|
|
78
83
|
});
|
|
79
84
|
onClose();
|
|
@@ -86,29 +91,59 @@ export default function DuplicateMenuItem({
|
|
|
86
91
|
onClose();
|
|
87
92
|
}
|
|
88
93
|
}
|
|
94
|
+
async function findOrCreateTerm(term) {
|
|
95
|
+
try {
|
|
96
|
+
const newTerm = await saveEntityRecord('taxonomy', 'wp_pattern_category', {
|
|
97
|
+
name: term.label,
|
|
98
|
+
slug: term.name,
|
|
99
|
+
description: term.description
|
|
100
|
+
}, {
|
|
101
|
+
throwOnError: true
|
|
102
|
+
});
|
|
103
|
+
invalidateResolution('getUserPatternCategories');
|
|
104
|
+
return newTerm.id;
|
|
105
|
+
} catch (error) {
|
|
106
|
+
if (error.code !== 'term_exists') {
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
109
|
+
return error.data.term_id;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async function getCategories(categories) {
|
|
113
|
+
const terms = categories.map(category => {
|
|
114
|
+
const fullCategory = patternCategories.find(cat => cat.name === category);
|
|
115
|
+
if (fullCategory.id) {
|
|
116
|
+
return fullCategory.id;
|
|
117
|
+
}
|
|
118
|
+
return findOrCreateTerm(fullCategory);
|
|
119
|
+
});
|
|
120
|
+
return Promise.all(terms);
|
|
121
|
+
}
|
|
89
122
|
async function createPattern() {
|
|
90
123
|
try {
|
|
91
|
-
const isThemePattern = item.type ===
|
|
124
|
+
const isThemePattern = item.type === PATTERN_TYPES.theme;
|
|
92
125
|
const title = sprintf( /* translators: %s: Existing pattern title */
|
|
93
|
-
__('%s (Copy)'), item.title);
|
|
94
|
-
const
|
|
95
|
-
|
|
126
|
+
__('%s (Copy)'), item.title || item.name);
|
|
127
|
+
const categories = await getCategories(item.categories || []);
|
|
128
|
+
const result = await saveEntityRecord('postType', PATTERN_TYPES.user, {
|
|
129
|
+
content: isThemePattern ? item.content : item.patternBlock.content,
|
|
96
130
|
meta: getPatternMeta(item),
|
|
97
131
|
status: 'publish',
|
|
98
|
-
title
|
|
132
|
+
title,
|
|
133
|
+
wp_pattern_category: categories
|
|
99
134
|
}, {
|
|
100
135
|
throwOnError: true
|
|
101
136
|
});
|
|
102
137
|
createSuccessNotice(sprintf(
|
|
103
138
|
// translators: %s: The new pattern's title e.g. 'Call to action (copy)'.
|
|
104
|
-
__('"%s" duplicated.'), item.title), {
|
|
139
|
+
__('"%s" duplicated.'), item.title || item.name), {
|
|
105
140
|
type: 'snackbar',
|
|
106
141
|
id: 'edit-site-patterns-success'
|
|
107
142
|
});
|
|
108
143
|
history.push({
|
|
109
|
-
categoryType:
|
|
110
|
-
categoryId
|
|
111
|
-
postType:
|
|
144
|
+
categoryType: PATTERN_TYPES.theme,
|
|
145
|
+
categoryId,
|
|
146
|
+
postType: PATTERN_TYPES.user,
|
|
112
147
|
postId: result?.id
|
|
113
148
|
});
|
|
114
149
|
onClose();
|
|
@@ -121,7 +156,7 @@ export default function DuplicateMenuItem({
|
|
|
121
156
|
onClose();
|
|
122
157
|
}
|
|
123
158
|
}
|
|
124
|
-
const createItem = item.type ===
|
|
159
|
+
const createItem = item.type === TEMPLATE_PART_POST_TYPE ? createTemplatePart : createPattern;
|
|
125
160
|
return createElement(MenuItem, {
|
|
126
161
|
onClick: createItem
|
|
127
162
|
}, label);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MenuItem","store","coreStore","useDispatch","__","sprintf","noticesStore","privateApis","routerPrivateApis","TEMPLATE_PARTS","PATTERNS","SYNC_TYPES","USER_PATTERNS","USER_PATTERN_CATEGORY","useExistingTemplateParts","getUniqueTemplatePartTitle","getCleanTemplatePartSlug","unlock","useHistory","getPatternMeta","item","type","wp_pattern_sync_status","unsynced","syncStatus","reusableBlock","isUnsynced","meta","undefined","DuplicateMenuItem","categoryId","label","onClose","saveEntityRecord","createErrorNotice","createSuccessNotice","history","existingTemplateParts","createTemplatePart","copiedTitle","title","slug","area","content","templatePart","result","throwOnError","id","push","postType","postId","categoryType","error","errorMessage","message","code","createPattern","isThemePattern","status","createItem","createElement","onClick"],"sources":["@wordpress/edit-site/src/components/page-patterns/duplicate-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PARTS,\n\tPATTERNS,\n\tSYNC_TYPES,\n\tUSER_PATTERNS,\n\tUSER_PATTERN_CATEGORY,\n} from './utils';\nimport {\n\tuseExistingTemplateParts,\n\tgetUniqueTemplatePartTitle,\n\tgetCleanTemplatePartSlug,\n} from '../../utils/template-part-create';\nimport { unlock } from '../../lock-unlock';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nfunction getPatternMeta( item ) {\n\tif ( item.type === PATTERNS ) {\n\t\treturn { wp_pattern_sync_status: SYNC_TYPES.unsynced };\n\t}\n\n\tconst syncStatus = item.reusableBlock.wp_pattern_sync_status;\n\tconst isUnsynced = syncStatus === SYNC_TYPES.unsynced;\n\n\treturn {\n\t\t...item.reusableBlock.meta,\n\t\twp_pattern_sync_status: isUnsynced ? syncStatus : undefined,\n\t};\n}\n\nexport default function DuplicateMenuItem( {\n\tcategoryId,\n\titem,\n\tlabel = __( 'Duplicate' ),\n\tonClose,\n} ) {\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst history = useHistory();\n\tconst existingTemplateParts = useExistingTemplateParts();\n\n\tasync function createTemplatePart() {\n\t\ttry {\n\t\t\tconst copiedTitle = sprintf(\n\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\titem.title\n\t\t\t);\n\t\t\tconst title = getUniqueTemplatePartTitle(\n\t\t\t\tcopiedTitle,\n\t\t\t\texistingTemplateParts\n\t\t\t);\n\t\t\tconst slug = getCleanTemplatePartSlug( title );\n\t\t\tconst { area, content } = item.templatePart;\n\n\t\t\tconst result = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_template_part',\n\t\t\t\t{ slug, title, content, area },\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t\t}\n\t\t\t);\n\n\t\t\thistory.push( {\n\t\t\t\tpostType: TEMPLATE_PARTS,\n\t\t\t\tpostId: result?.id,\n\t\t\t\tcategoryType: TEMPLATE_PARTS,\n\t\t\t\tcategoryId,\n\t\t\t} );\n\n\t\t\tonClose();\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while creating the template part.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tasync function createPattern() {\n\t\ttry {\n\t\t\tconst isThemePattern = item.type === PATTERNS;\n\t\t\tconst title = sprintf(\n\t\t\t\t/* translators: %s: Existing pattern title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\titem.title\n\t\t\t);\n\n\t\t\tconst result = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_block',\n\t\t\t\t{\n\t\t\t\t\tcontent: isThemePattern\n\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t: item.reusableBlock.content,\n\t\t\t\t\tmeta: getPatternMeta( item ),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new pattern's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t\t}\n\t\t\t);\n\n\t\t\thistory.push( {\n\t\t\t\tcategoryType: USER_PATTERNS,\n\t\t\t\tcategoryId: USER_PATTERN_CATEGORY,\n\t\t\t\tpostType: USER_PATTERNS,\n\t\t\t\tpostId: result?.id,\n\t\t\t} );\n\n\t\t\tonClose();\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the pattern.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tconst createItem =\n\t\titem.type === TEMPLATE_PARTS ? createTemplatePart : createPattern;\n\n\treturn <MenuItem onClick={ createItem }>{ label }</MenuItem>;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["MenuItem","store","coreStore","useDispatch","__","sprintf","noticesStore","privateApis","routerPrivateApis","TEMPLATE_PART_POST_TYPE","PATTERN_TYPES","PATTERN_SYNC_TYPES","useExistingTemplateParts","getUniqueTemplatePartTitle","getCleanTemplatePartSlug","unlock","usePatternCategories","useHistory","getPatternMeta","item","type","theme","wp_pattern_sync_status","unsynced","syncStatus","patternBlock","isUnsynced","meta","undefined","DuplicateMenuItem","categoryId","label","onClose","saveEntityRecord","invalidateResolution","createErrorNotice","createSuccessNotice","history","existingTemplateParts","patternCategories","createTemplatePart","copiedTitle","title","slug","area","content","templatePart","result","throwOnError","id","push","postType","postId","categoryType","error","errorMessage","message","code","findOrCreateTerm","term","newTerm","name","description","data","term_id","getCategories","categories","terms","map","category","fullCategory","find","cat","Promise","all","createPattern","isThemePattern","user","status","wp_pattern_category","createItem","createElement","onClick"],"sources":["@wordpress/edit-site/src/components/page-patterns/duplicate-menu-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { MenuItem } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { privateApis as routerPrivateApis } from '@wordpress/router';\n\n/**\n * Internal dependencies\n */\nimport {\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_TYPES,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport {\n\tuseExistingTemplateParts,\n\tgetUniqueTemplatePartTitle,\n\tgetCleanTemplatePartSlug,\n} from '../../utils/template-part-create';\nimport { unlock } from '../../lock-unlock';\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\n\nconst { useHistory } = unlock( routerPrivateApis );\n\nfunction getPatternMeta( item ) {\n\tif ( item.type === PATTERN_TYPES.theme ) {\n\t\treturn { wp_pattern_sync_status: PATTERN_SYNC_TYPES.unsynced };\n\t}\n\n\tconst syncStatus = item.patternBlock.wp_pattern_sync_status;\n\tconst isUnsynced = syncStatus === PATTERN_SYNC_TYPES.unsynced;\n\n\treturn {\n\t\t...item.patternBlock.meta,\n\t\twp_pattern_sync_status: isUnsynced ? syncStatus : undefined,\n\t};\n}\n\nexport default function DuplicateMenuItem( {\n\tcategoryId,\n\titem,\n\tlabel = __( 'Duplicate' ),\n\tonClose,\n} ) {\n\tconst { saveEntityRecord, invalidateResolution } = useDispatch( coreStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst history = useHistory();\n\tconst existingTemplateParts = useExistingTemplateParts();\n\tconst { patternCategories } = usePatternCategories();\n\n\tasync function createTemplatePart() {\n\t\ttry {\n\t\t\tconst copiedTitle = sprintf(\n\t\t\t\t/* translators: %s: Existing template part title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\titem.title\n\t\t\t);\n\t\t\tconst title = getUniqueTemplatePartTitle(\n\t\t\t\tcopiedTitle,\n\t\t\t\texistingTemplateParts\n\t\t\t);\n\t\t\tconst slug = getCleanTemplatePartSlug( title );\n\t\t\tconst { area, content } = item.templatePart;\n\n\t\t\tconst result = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tTEMPLATE_PART_POST_TYPE,\n\t\t\t\t{ slug, title, content, area },\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new template part's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t\t}\n\t\t\t);\n\n\t\t\thistory.push( {\n\t\t\t\tpostType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tpostId: result?.id,\n\t\t\t\tcategoryType: TEMPLATE_PART_POST_TYPE,\n\t\t\t\tcategoryId,\n\t\t\t} );\n\n\t\t\tonClose();\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __(\n\t\t\t\t\t\t\t'An error occurred while creating the template part.'\n\t\t\t\t\t );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord(\n\t\t\t\t'taxonomy',\n\t\t\t\t'wp_pattern_category',\n\t\t\t\t{\n\t\t\t\t\tname: term.label,\n\t\t\t\t\tslug: term.name,\n\t\t\t\t\tdescription: term.description,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tthrowOnError: true,\n\t\t\t\t}\n\t\t\t);\n\t\t\tinvalidateResolution( 'getUserPatternCategories' );\n\t\t\treturn newTerm.id;\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn error.data.term_id;\n\t\t}\n\t}\n\n\tasync function getCategories( categories ) {\n\t\tconst terms = categories.map( ( category ) => {\n\t\t\tconst fullCategory = patternCategories.find(\n\t\t\t\t( cat ) => cat.name === category\n\t\t\t);\n\t\t\tif ( fullCategory.id ) {\n\t\t\t\treturn fullCategory.id;\n\t\t\t}\n\t\t\treturn findOrCreateTerm( fullCategory );\n\t\t} );\n\n\t\treturn Promise.all( terms );\n\t}\n\n\tasync function createPattern() {\n\t\ttry {\n\t\t\tconst isThemePattern = item.type === PATTERN_TYPES.theme;\n\t\t\tconst title = sprintf(\n\t\t\t\t/* translators: %s: Existing pattern title */\n\t\t\t\t__( '%s (Copy)' ),\n\t\t\t\titem.title || item.name\n\t\t\t);\n\t\t\tconst categories = await getCategories( item.categories || [] );\n\n\t\t\tconst result = await saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tPATTERN_TYPES.user,\n\t\t\t\t{\n\t\t\t\t\tcontent: isThemePattern\n\t\t\t\t\t\t? item.content\n\t\t\t\t\t\t: item.patternBlock.content,\n\t\t\t\t\tmeta: getPatternMeta( item ),\n\t\t\t\t\tstatus: 'publish',\n\t\t\t\t\ttitle,\n\t\t\t\t\twp_pattern_category: categories,\n\t\t\t\t},\n\t\t\t\t{ throwOnError: true }\n\t\t\t);\n\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The new pattern's title e.g. 'Call to action (copy)'.\n\t\t\t\t\t__( '\"%s\" duplicated.' ),\n\t\t\t\t\titem.title || item.name\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'edit-site-patterns-success',\n\t\t\t\t}\n\t\t\t);\n\n\t\t\thistory.push( {\n\t\t\t\tcategoryType: PATTERN_TYPES.theme,\n\t\t\t\tcategoryId,\n\t\t\t\tpostType: PATTERN_TYPES.user,\n\t\t\t\tpostId: result?.id,\n\t\t\t} );\n\n\t\t\tonClose();\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while creating the pattern.' );\n\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tconst createItem =\n\t\titem.type === TEMPLATE_PART_POST_TYPE\n\t\t\t? createTemplatePart\n\t\t\t: createPattern;\n\n\treturn <MenuItem onClick={ createItem }>{ label }</MenuItem>;\n}\n"],"mappings":"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"}
|
|
@@ -3,11 +3,13 @@ import { createElement } from "@wordpress/element";
|
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
5
5
|
import classnames from 'classnames';
|
|
6
|
+
import downloadjs from 'downloadjs';
|
|
7
|
+
import { paramCase as kebabCase } from 'change-case';
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* WordPress dependencies
|
|
9
11
|
*/
|
|
10
|
-
import { BlockPreview } from '@wordpress/block-editor';
|
|
12
|
+
import { BlockPreview, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
11
13
|
import { Button, __experimentalConfirmDialog as ConfirmDialog, DropdownMenu, MenuGroup, MenuItem, __experimentalHeading as Heading, __experimentalHStack as HStack, Tooltip, Flex } from '@wordpress/components';
|
|
12
14
|
import { useDispatch } from '@wordpress/data';
|
|
13
15
|
import { useState, useId, memo } from '@wordpress/element';
|
|
@@ -21,9 +23,13 @@ import { store as reusableBlocksStore } from '@wordpress/reusable-blocks';
|
|
|
21
23
|
*/
|
|
22
24
|
import RenameMenuItem from './rename-menu-item';
|
|
23
25
|
import DuplicateMenuItem from './duplicate-menu-item';
|
|
24
|
-
import {
|
|
26
|
+
import { PATTERN_TYPES, TEMPLATE_PART_POST_TYPE, PATTERN_SYNC_TYPES } from '../../utils/constants';
|
|
25
27
|
import { store as editSiteStore } from '../../store';
|
|
26
28
|
import { useLink } from '../routes/link';
|
|
29
|
+
import { unlock } from '../../lock-unlock';
|
|
30
|
+
const {
|
|
31
|
+
useGlobalStyle
|
|
32
|
+
} = unlock(blockEditorPrivateApis);
|
|
27
33
|
const templatePartIcons = {
|
|
28
34
|
header,
|
|
29
35
|
footer,
|
|
@@ -36,6 +42,7 @@ function GridItem({
|
|
|
36
42
|
}) {
|
|
37
43
|
const descriptionId = useId();
|
|
38
44
|
const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false);
|
|
45
|
+
const [backgroundColor] = useGlobalStyle('color.background');
|
|
39
46
|
const {
|
|
40
47
|
removeTemplate
|
|
41
48
|
} = useDispatch(editSiteStore);
|
|
@@ -46,16 +53,16 @@ function GridItem({
|
|
|
46
53
|
createErrorNotice,
|
|
47
54
|
createSuccessNotice
|
|
48
55
|
} = useDispatch(noticesStore);
|
|
49
|
-
const isUserPattern = item.type ===
|
|
50
|
-
const isNonUserPattern = item.type ===
|
|
51
|
-
const isTemplatePart = item.type ===
|
|
56
|
+
const isUserPattern = item.type === PATTERN_TYPES.user;
|
|
57
|
+
const isNonUserPattern = item.type === PATTERN_TYPES.theme;
|
|
58
|
+
const isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;
|
|
52
59
|
const {
|
|
53
60
|
onClick
|
|
54
61
|
} = useLink({
|
|
55
62
|
postType: item.type,
|
|
56
63
|
postId: isUserPattern ? item.id : item.name,
|
|
57
64
|
categoryId,
|
|
58
|
-
categoryType: item.type
|
|
65
|
+
categoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme
|
|
59
66
|
});
|
|
60
67
|
const isEmpty = !item.blocks?.length;
|
|
61
68
|
const patternClassNames = classnames('edit-site-patterns__pattern', {
|
|
@@ -82,6 +89,15 @@ function GridItem({
|
|
|
82
89
|
}
|
|
83
90
|
};
|
|
84
91
|
const deleteItem = () => isTemplatePart ? removeTemplate(item) : deletePattern();
|
|
92
|
+
const exportAsJSON = () => {
|
|
93
|
+
const json = {
|
|
94
|
+
__file: item.type,
|
|
95
|
+
title: item.title || item.name,
|
|
96
|
+
content: item.patternBlock.content.raw,
|
|
97
|
+
syncStatus: item.patternBlock.wp_pattern_sync_status
|
|
98
|
+
};
|
|
99
|
+
return downloadjs(JSON.stringify(json, null, 2), `${kebabCase(item.title || item.name)}.json`, 'application/json');
|
|
100
|
+
};
|
|
85
101
|
|
|
86
102
|
// Only custom patterns or custom template parts can be renamed or deleted.
|
|
87
103
|
const isCustomPattern = isUserPattern || isTemplatePart && item.isCustom;
|
|
@@ -96,11 +112,19 @@ function GridItem({
|
|
|
96
112
|
if (isNonUserPattern) {
|
|
97
113
|
ariaDescriptions.push(__('Theme & plugin patterns cannot be edited.'));
|
|
98
114
|
}
|
|
99
|
-
|
|
115
|
+
let itemIcon;
|
|
116
|
+
if (!isUserPattern && templatePartIcons[categoryId]) {
|
|
117
|
+
itemIcon = templatePartIcons[categoryId];
|
|
118
|
+
} else {
|
|
119
|
+
itemIcon = item.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;
|
|
120
|
+
}
|
|
100
121
|
const confirmButtonText = hasThemeFile ? __('Clear') : __('Delete');
|
|
101
122
|
const confirmPrompt = hasThemeFile ? __('Are you sure you want to clear these customizations?') : sprintf(
|
|
102
123
|
// translators: %s: The pattern or template part's title e.g. 'Call to action'.
|
|
103
|
-
__('Are you sure you want to delete "%s"?'), item.title);
|
|
124
|
+
__('Are you sure you want to delete "%s"?'), item.title || item.name);
|
|
125
|
+
const additionalStyles = !backgroundColor ? [{
|
|
126
|
+
css: 'body { background: #fff; }'
|
|
127
|
+
}] : undefined;
|
|
104
128
|
return createElement("li", {
|
|
105
129
|
className: patternClassNames
|
|
106
130
|
}, createElement("button", {
|
|
@@ -110,12 +134,13 @@ function GridItem({
|
|
|
110
134
|
,
|
|
111
135
|
id: `edit-site-patterns-${item.name}`,
|
|
112
136
|
...props,
|
|
113
|
-
onClick: item.type !==
|
|
114
|
-
"aria-disabled": item.type !==
|
|
137
|
+
onClick: item.type !== PATTERN_TYPES.theme ? onClick : undefined,
|
|
138
|
+
"aria-disabled": item.type !== PATTERN_TYPES.theme ? 'false' : 'true',
|
|
115
139
|
"aria-label": item.title,
|
|
116
140
|
"aria-describedby": ariaDescriptions.length ? ariaDescriptions.map((_, index) => `${descriptionId}-${index}`).join(' ') : undefined
|
|
117
|
-
}, isEmpty && __('Empty pattern'), !isEmpty && createElement(BlockPreview, {
|
|
118
|
-
blocks: item.blocks
|
|
141
|
+
}, isEmpty && isTemplatePart && __('Empty template part'), isEmpty && !isTemplatePart && __('Empty pattern'), !isEmpty && createElement(BlockPreview, {
|
|
142
|
+
blocks: item.blocks,
|
|
143
|
+
additionalStyles: additionalStyles
|
|
119
144
|
})), ariaDescriptions.map((ariaDescription, index) => createElement("div", {
|
|
120
145
|
key: index,
|
|
121
146
|
hidden: true,
|
|
@@ -129,16 +154,16 @@ function GridItem({
|
|
|
129
154
|
spacing: 3,
|
|
130
155
|
className: "edit-site-patterns__pattern-title"
|
|
131
156
|
}, itemIcon && !isNonUserPattern && createElement(Tooltip, {
|
|
132
|
-
|
|
157
|
+
placement: "top",
|
|
133
158
|
text: __('Editing this pattern will also update anywhere it is used')
|
|
134
|
-
}, createElement(
|
|
159
|
+
}, createElement(Icon, {
|
|
135
160
|
className: "edit-site-patterns__pattern-icon",
|
|
136
161
|
icon: itemIcon
|
|
137
|
-
}))
|
|
162
|
+
})), createElement(Flex, {
|
|
138
163
|
as: "span",
|
|
139
164
|
gap: 0,
|
|
140
165
|
justify: "left"
|
|
141
|
-
}, item.type ===
|
|
166
|
+
}, item.type === PATTERN_TYPES.theme ? item.title : createElement(Heading, {
|
|
142
167
|
level: 5
|
|
143
168
|
}, createElement(Button, {
|
|
144
169
|
variant: "link",
|
|
@@ -147,15 +172,14 @@ function GridItem({
|
|
|
147
172
|
// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.
|
|
148
173
|
,
|
|
149
174
|
tabIndex: "-1"
|
|
150
|
-
}, item.title)), item.type ===
|
|
151
|
-
|
|
175
|
+
}, item.title || item.name)), item.type === PATTERN_TYPES.theme && createElement(Tooltip, {
|
|
176
|
+
placement: "top",
|
|
152
177
|
text: __('This pattern cannot be edited.')
|
|
153
|
-
}, createElement("span", {
|
|
154
|
-
className: "edit-site-patterns__pattern-lock-icon"
|
|
155
178
|
}, createElement(Icon, {
|
|
179
|
+
className: "edit-site-patterns__pattern-lock-icon",
|
|
156
180
|
icon: lockSmall,
|
|
157
181
|
size: 24
|
|
158
|
-
}))))
|
|
182
|
+
})))), createElement(DropdownMenu, {
|
|
159
183
|
icon: moreVertical,
|
|
160
184
|
label: __('Actions'),
|
|
161
185
|
className: "edit-site-patterns__dropdown",
|
|
@@ -176,8 +200,10 @@ function GridItem({
|
|
|
176
200
|
categoryId: categoryId,
|
|
177
201
|
item: item,
|
|
178
202
|
onClose: onClose,
|
|
179
|
-
label:
|
|
180
|
-
}),
|
|
203
|
+
label: __('Duplicate')
|
|
204
|
+
}), item.type === PATTERN_TYPES.user && createElement(MenuItem, {
|
|
205
|
+
onClick: () => exportAsJSON()
|
|
206
|
+
}, __('Export as JSON')), isCustomPattern && createElement(MenuItem, {
|
|
181
207
|
isDestructive: !hasThemeFile,
|
|
182
208
|
onClick: () => setIsDeleteDialogOpen(true)
|
|
183
209
|
}, hasThemeFile ? __('Clear customizations') : __('Delete'))))), isDeleteDialogOpen && createElement(ConfirmDialog, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","BlockPreview","Button","__experimentalConfirmDialog","ConfirmDialog","DropdownMenu","MenuGroup","MenuItem","__experimentalHeading","Heading","__experimentalHStack","HStack","Tooltip","Flex","useDispatch","useState","useId","memo","__","sprintf","Icon","header","footer","symbolFilled","uncategorized","symbol","moreVertical","lockSmall","store","noticesStore","reusableBlocksStore","RenameMenuItem","DuplicateMenuItem","PATTERNS","TEMPLATE_PARTS","USER_PATTERNS","SYNC_TYPES","editSiteStore","useLink","templatePartIcons","GridItem","categoryId","item","props","descriptionId","isDeleteDialogOpen","setIsDeleteDialogOpen","removeTemplate","__experimentalDeleteReusableBlock","createErrorNotice","createSuccessNotice","isUserPattern","type","isNonUserPattern","isTemplatePart","onClick","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","previewClassNames","deletePattern","title","error","errorMessage","message","code","deleteItem","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","syncStatus","full","undefined","confirmButtonText","confirmPrompt","createElement","className","map","_","index","join","ariaDescription","key","hidden","justify","alignment","spacing","position","text","icon","as","gap","level","variant","tabIndex","size","label","popoverProps","placement","toggleProps","describedBy","onClose","isDestructive","onConfirm","onCancel"],"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { BlockPreview } from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreVertical,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport { PATTERNS, TEMPLATE_PARTS, USER_PATTERNS, SYNC_TYPES } from './utils';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === USER_PATTERNS;\n\tconst isNonUserPattern = item.type === PATTERNS;\n\tconst isTemplatePart = item.type === TEMPLATE_PARTS;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: item.type,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\n\tconst itemIcon =\n\t\ttemplatePartIcons[ categoryId ] ||\n\t\t( item.syncStatus === SYNC_TYPES.full ? symbol : undefined );\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title\n\t\t );\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t// Even though still incomplete, passing ids helps performance.\n\t\t\t\t// @see https://reakit.io/docs/composite/#performance.\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={ item.type !== PATTERNS ? onClick : undefined }\n\t\t\t\taria-disabled={ item.type !== PATTERNS ? 'false' : 'true' }\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && <BlockPreview blocks={ item.blocks } /> }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERNS ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERNS && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tposition=\"top center\"\n\t\t\t\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span className=\"edit-site-patterns__pattern-lock-icon\">\n\t\t\t\t\t\t\t\t\t<Icon icon={ lockSmall } size={ 24 } />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisNonUserPattern\n\t\t\t\t\t\t\t\t\t\t? __( 'Copy to My patterns' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Duplicate' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tisDestructive={ ! hasThemeFile }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","downloadjs","paramCase","kebabCase","BlockPreview","privateApis","blockEditorPrivateApis","Button","__experimentalConfirmDialog","ConfirmDialog","DropdownMenu","MenuGroup","MenuItem","__experimentalHeading","Heading","__experimentalHStack","HStack","Tooltip","Flex","useDispatch","useState","useId","memo","__","sprintf","Icon","header","footer","symbolFilled","uncategorized","symbol","moreVertical","lockSmall","store","noticesStore","reusableBlocksStore","RenameMenuItem","DuplicateMenuItem","PATTERN_TYPES","TEMPLATE_PART_POST_TYPE","PATTERN_SYNC_TYPES","editSiteStore","useLink","unlock","useGlobalStyle","templatePartIcons","GridItem","categoryId","item","props","descriptionId","isDeleteDialogOpen","setIsDeleteDialogOpen","backgroundColor","removeTemplate","__experimentalDeleteReusableBlock","createErrorNotice","createSuccessNotice","isUserPattern","type","user","isNonUserPattern","theme","isTemplatePart","onClick","postType","postId","id","name","categoryType","isEmpty","blocks","length","patternClassNames","previewClassNames","deletePattern","title","error","errorMessage","message","code","deleteItem","exportAsJSON","json","__file","content","patternBlock","raw","syncStatus","wp_pattern_sync_status","JSON","stringify","isCustomPattern","isCustom","hasThemeFile","templatePart","has_theme_file","ariaDescriptions","push","description","itemIcon","full","undefined","confirmButtonText","confirmPrompt","additionalStyles","css","createElement","className","map","_","index","join","ariaDescription","key","hidden","justify","alignment","spacing","placement","text","icon","as","gap","level","variant","tabIndex","size","label","popoverProps","toggleProps","describedBy","onClose","isDestructive","onConfirm","onCancel"],"sources":["@wordpress/edit-site/src/components/page-patterns/grid-item.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport downloadjs from 'downloadjs';\nimport { paramCase as kebabCase } from 'change-case';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockPreview,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\t__experimentalHeading as Heading,\n\t__experimentalHStack as HStack,\n\tTooltip,\n\tFlex,\n} from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport { useState, useId, memo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tIcon,\n\theader,\n\tfooter,\n\tsymbolFilled as uncategorized,\n\tsymbol,\n\tmoreVertical,\n\tlockSmall,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n\n/**\n * Internal dependencies\n */\nimport RenameMenuItem from './rename-menu-item';\nimport DuplicateMenuItem from './duplicate-menu-item';\nimport {\n\tPATTERN_TYPES,\n\tTEMPLATE_PART_POST_TYPE,\n\tPATTERN_SYNC_TYPES,\n} from '../../utils/constants';\nimport { store as editSiteStore } from '../../store';\nimport { useLink } from '../routes/link';\nimport { unlock } from '../../lock-unlock';\n\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nconst templatePartIcons = { header, footer, uncategorized };\n\nfunction GridItem( { categoryId, item, ...props } ) {\n\tconst descriptionId = useId();\n\tconst [ isDeleteDialogOpen, setIsDeleteDialogOpen ] = useState( false );\n\tconst [ backgroundColor ] = useGlobalStyle( 'color.background' );\n\n\tconst { removeTemplate } = useDispatch( editSiteStore );\n\tconst { __experimentalDeleteReusableBlock } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst isUserPattern = item.type === PATTERN_TYPES.user;\n\tconst isNonUserPattern = item.type === PATTERN_TYPES.theme;\n\tconst isTemplatePart = item.type === TEMPLATE_PART_POST_TYPE;\n\n\tconst { onClick } = useLink( {\n\t\tpostType: item.type,\n\t\tpostId: isUserPattern ? item.id : item.name,\n\t\tcategoryId,\n\t\tcategoryType: isTemplatePart ? item.type : PATTERN_TYPES.theme,\n\t} );\n\n\tconst isEmpty = ! item.blocks?.length;\n\tconst patternClassNames = classnames( 'edit-site-patterns__pattern', {\n\t\t'is-placeholder': isEmpty,\n\t} );\n\tconst previewClassNames = classnames( 'edit-site-patterns__preview', {\n\t\t'is-inactive': isNonUserPattern,\n\t} );\n\n\tconst deletePattern = async () => {\n\t\ttry {\n\t\t\tawait __experimentalDeleteReusableBlock( item.id );\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t// translators: %s: The pattern's title e.g. 'Call to action'.\n\t\t\t\t\t__( '\"%s\" deleted.' ),\n\t\t\t\t\titem.title\n\t\t\t\t),\n\t\t\t\t{ type: 'snackbar', id: 'edit-site-patterns-success' }\n\t\t\t);\n\t\t} catch ( error ) {\n\t\t\tconst errorMessage =\n\t\t\t\terror.message && error.code !== 'unknown_error'\n\t\t\t\t\t? error.message\n\t\t\t\t\t: __( 'An error occurred while deleting the pattern.' );\n\t\t\tcreateErrorNotice( errorMessage, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t\tid: 'edit-site-patterns-error',\n\t\t\t} );\n\t\t}\n\t};\n\tconst deleteItem = () =>\n\t\tisTemplatePart ? removeTemplate( item ) : deletePattern();\n\tconst exportAsJSON = () => {\n\t\tconst json = {\n\t\t\t__file: item.type,\n\t\t\ttitle: item.title || item.name,\n\t\t\tcontent: item.patternBlock.content.raw,\n\t\t\tsyncStatus: item.patternBlock.wp_pattern_sync_status,\n\t\t};\n\n\t\treturn downloadjs(\n\t\t\tJSON.stringify( json, null, 2 ),\n\t\t\t`${ kebabCase( item.title || item.name ) }.json`,\n\t\t\t'application/json'\n\t\t);\n\t};\n\n\t// Only custom patterns or custom template parts can be renamed or deleted.\n\tconst isCustomPattern =\n\t\tisUserPattern || ( isTemplatePart && item.isCustom );\n\tconst hasThemeFile = isTemplatePart && item.templatePart.has_theme_file;\n\tconst ariaDescriptions = [];\n\n\tif ( isCustomPattern ) {\n\t\t// User patterns don't have descriptions, but can be edited and deleted, so include some help text.\n\t\tariaDescriptions.push(\n\t\t\t__( 'Press Enter to edit, or Delete to delete the pattern.' )\n\t\t);\n\t} else if ( item.description ) {\n\t\tariaDescriptions.push( item.description );\n\t}\n\n\tif ( isNonUserPattern ) {\n\t\tariaDescriptions.push(\n\t\t\t__( 'Theme & plugin patterns cannot be edited.' )\n\t\t);\n\t}\n\n\tlet itemIcon;\n\tif ( ! isUserPattern && templatePartIcons[ categoryId ] ) {\n\t\titemIcon = templatePartIcons[ categoryId ];\n\t} else {\n\t\titemIcon =\n\t\t\titem.syncStatus === PATTERN_SYNC_TYPES.full ? symbol : undefined;\n\t}\n\n\tconst confirmButtonText = hasThemeFile ? __( 'Clear' ) : __( 'Delete' );\n\tconst confirmPrompt = hasThemeFile\n\t\t? __( 'Are you sure you want to clear these customizations?' )\n\t\t: sprintf(\n\t\t\t\t// translators: %s: The pattern or template part's title e.g. 'Call to action'.\n\t\t\t\t__( 'Are you sure you want to delete \"%s\"?' ),\n\t\t\t\titem.title || item.name\n\t\t );\n\n\tconst additionalStyles = ! backgroundColor\n\t\t? [ { css: 'body { background: #fff; }' } ]\n\t\t: undefined;\n\n\treturn (\n\t\t<li className={ patternClassNames }>\n\t\t\t<button\n\t\t\t\tclassName={ previewClassNames }\n\t\t\t\t// Even though still incomplete, passing ids helps performance.\n\t\t\t\t// @see https://reakit.io/docs/composite/#performance.\n\t\t\t\tid={ `edit-site-patterns-${ item.name }` }\n\t\t\t\t{ ...props }\n\t\t\t\tonClick={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? onClick : undefined\n\t\t\t\t}\n\t\t\t\taria-disabled={\n\t\t\t\t\titem.type !== PATTERN_TYPES.theme ? 'false' : 'true'\n\t\t\t\t}\n\t\t\t\taria-label={ item.title }\n\t\t\t\taria-describedby={\n\t\t\t\t\tariaDescriptions.length\n\t\t\t\t\t\t? ariaDescriptions\n\t\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t\t( _, index ) =>\n\t\t\t\t\t\t\t\t\t\t`${ descriptionId }-${ index }`\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t.join( ' ' )\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ isEmpty && isTemplatePart && __( 'Empty template part' ) }\n\t\t\t\t{ isEmpty && ! isTemplatePart && __( 'Empty pattern' ) }\n\t\t\t\t{ ! isEmpty && (\n\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\tblocks={ item.blocks }\n\t\t\t\t\t\tadditionalStyles={ additionalStyles }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</button>\n\t\t\t{ ariaDescriptions.map( ( ariaDescription, index ) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={ index }\n\t\t\t\t\thidden\n\t\t\t\t\tid={ `${ descriptionId }-${ index }` }\n\t\t\t\t>\n\t\t\t\t\t{ ariaDescription }\n\t\t\t\t</div>\n\t\t\t) ) }\n\t\t\t<HStack\n\t\t\t\tclassName=\"edit-site-patterns__footer\"\n\t\t\t\tjustify=\"space-between\"\n\t\t\t>\n\t\t\t\t<HStack\n\t\t\t\t\talignment=\"center\"\n\t\t\t\t\tjustify=\"left\"\n\t\t\t\t\tspacing={ 3 }\n\t\t\t\t\tclassName=\"edit-site-patterns__pattern-title\"\n\t\t\t\t>\n\t\t\t\t\t{ itemIcon && ! isNonUserPattern && (\n\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\ttext={ __(\n\t\t\t\t\t\t\t\t'Editing this pattern will also update anywhere it is used'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-icon\"\n\t\t\t\t\t\t\t\ticon={ itemIcon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t) }\n\t\t\t\t\t<Flex as=\"span\" gap={ 0 } justify=\"left\">\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme ? (\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Heading level={ 5 }>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\t\tonClick={ onClick }\n\t\t\t\t\t\t\t\t\t// Required for the grid's roving tab index system.\n\t\t\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/51898#discussion_r1243399243.\n\t\t\t\t\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ item.title || item.name }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ item.type === PATTERN_TYPES.theme && (\n\t\t\t\t\t\t\t<Tooltip\n\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\ttext={ __( 'This pattern cannot be edited.' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-patterns__pattern-lock-icon\"\n\t\t\t\t\t\t\t\t\ticon={ lockSmall }\n\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Flex>\n\t\t\t\t</HStack>\n\t\t\t\t<DropdownMenu\n\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\tlabel={ __( 'Actions' ) }\n\t\t\t\t\tclassName=\"edit-site-patterns__dropdown\"\n\t\t\t\t\tpopoverProps={ { placement: 'bottom-end' } }\n\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\tclassName: 'edit-site-patterns__button',\n\t\t\t\t\t\tdescribedBy: sprintf(\n\t\t\t\t\t\t\t/* translators: %s: pattern name */\n\t\t\t\t\t\t\t__( 'Action menu for %s pattern' ),\n\t\t\t\t\t\t\titem.title\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ isCustomPattern && ! hasThemeFile && (\n\t\t\t\t\t\t\t\t<RenameMenuItem\n\t\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<DuplicateMenuItem\n\t\t\t\t\t\t\t\tcategoryId={ categoryId }\n\t\t\t\t\t\t\t\titem={ item }\n\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\tlabel={ __( 'Duplicate' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ item.type === PATTERN_TYPES.user && (\n\t\t\t\t\t\t\t\t<MenuItem onClick={ () => exportAsJSON() }>\n\t\t\t\t\t\t\t\t\t{ __( 'Export as JSON' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\n\t\t\t\t\t\t\t{ isCustomPattern && (\n\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\tisDestructive={ ! hasThemeFile }\n\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetIsDeleteDialogOpen( true )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ hasThemeFile\n\t\t\t\t\t\t\t\t\t\t? __( 'Clear customizations' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Delete' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenu>\n\t\t\t</HStack>\n\n\t\t\t{ isDeleteDialogOpen && (\n\t\t\t\t<ConfirmDialog\n\t\t\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\t\t\tonConfirm={ deleteItem }\n\t\t\t\t\tonCancel={ () => setIsDeleteDialogOpen( false ) }\n\t\t\t\t>\n\t\t\t\t\t{ confirmPrompt }\n\t\t\t\t</ConfirmDialog>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nexport default memo( GridItem );\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,SAAS,IAAIC,SAAS,QAAQ,aAAa;;AAEpD;AACA;AACA;AACA,SACCC,YAAY,EACZC,WAAW,IAAIC,sBAAsB,QAC/B,yBAAyB;AAChC,SACCC,MAAM,EACNC,2BAA2B,IAAIC,aAAa,EAC5CC,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,qBAAqB,IAAIC,OAAO,EAChCC,oBAAoB,IAAIC,MAAM,EAC9BC,OAAO,EACPC,IAAI,QACE,uBAAuB;AAC9B,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,QAAQ,oBAAoB;AAC1D,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SACCC,IAAI,EACJC,MAAM,EACNC,MAAM,EACNC,YAAY,IAAIC,aAAa,EAC7BC,MAAM,EACNC,YAAY,EACZC,SAAS,QACH,kBAAkB;AACzB,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;AAC1D,SAASD,KAAK,IAAIE,mBAAmB,QAAQ,4BAA4B;;AAEzE;AACA;AACA;AACA,OAAOC,cAAc,MAAM,oBAAoB;AAC/C,OAAOC,iBAAiB,MAAM,uBAAuB;AACrD,SACCC,aAAa,EACbC,uBAAuB,EACvBC,kBAAkB,QACZ,uBAAuB;AAC9B,SAASP,KAAK,IAAIQ,aAAa,QAAQ,aAAa;AACpD,SAASC,OAAO,QAAQ,gBAAgB;AACxC,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAe,CAAC,GAAGD,MAAM,CAAErC,sBAAuB,CAAC;AAE3D,MAAMuC,iBAAiB,GAAG;EAAEnB,MAAM;EAAEC,MAAM;EAAEE;AAAc,CAAC;AAE3D,SAASiB,QAAQA,CAAE;EAAEC,UAAU;EAAEC,IAAI;EAAE,GAAGC;AAAM,CAAC,EAAG;EACnD,MAAMC,aAAa,GAAG7B,KAAK,CAAC,CAAC;EAC7B,MAAM,CAAE8B,kBAAkB,EAAEC,qBAAqB,CAAE,GAAGhC,QAAQ,CAAE,KAAM,CAAC;EACvE,MAAM,CAAEiC,eAAe,CAAE,GAAGT,cAAc,CAAE,kBAAmB,CAAC;EAEhE,MAAM;IAAEU;EAAe,CAAC,GAAGnC,WAAW,CAAEsB,aAAc,CAAC;EACvD,MAAM;IAAEc;EAAkC,CAAC,GAC1CpC,WAAW,CAAEgB,mBAAoB,CAAC;EACnC,MAAM;IAAEqB,iBAAiB;IAAEC;EAAoB,CAAC,GAC/CtC,WAAW,CAAEe,YAAa,CAAC;EAE5B,MAAMwB,aAAa,GAAGV,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACsB,IAAI;EACtD,MAAMC,gBAAgB,GAAGb,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACwB,KAAK;EAC1D,MAAMC,cAAc,GAAGf,IAAI,CAACW,IAAI,KAAKpB,uBAAuB;EAE5D,MAAM;IAAEyB;EAAQ,CAAC,GAAGtB,OAAO,CAAE;IAC5BuB,QAAQ,EAAEjB,IAAI,CAACW,IAAI;IACnBO,MAAM,EAAER,aAAa,GAAGV,IAAI,CAACmB,EAAE,GAAGnB,IAAI,CAACoB,IAAI;IAC3CrB,UAAU;IACVsB,YAAY,EAAEN,cAAc,GAAGf,IAAI,CAACW,IAAI,GAAGrB,aAAa,CAACwB;EAC1D,CAAE,CAAC;EAEH,MAAMQ,OAAO,GAAG,CAAEtB,IAAI,CAACuB,MAAM,EAAEC,MAAM;EACrC,MAAMC,iBAAiB,GAAGzE,UAAU,CAAE,6BAA6B,EAAE;IACpE,gBAAgB,EAAEsE;EACnB,CAAE,CAAC;EACH,MAAMI,iBAAiB,GAAG1E,UAAU,CAAE,6BAA6B,EAAE;IACpE,aAAa,EAAE6D;EAChB,CAAE,CAAC;EAEH,MAAMc,aAAa,GAAG,MAAAA,CAAA,KAAY;IACjC,IAAI;MACH,MAAMpB,iCAAiC,CAAEP,IAAI,CAACmB,EAAG,CAAC;MAClDV,mBAAmB,CAClBjC,OAAO;MACN;MACAD,EAAE,CAAE,eAAgB,CAAC,EACrByB,IAAI,CAAC4B,KACN,CAAC,EACD;QAAEjB,IAAI,EAAE,UAAU;QAAEQ,EAAE,EAAE;MAA6B,CACtD,CAAC;IACF,CAAC,CAAC,OAAQU,KAAK,EAAG;MACjB,MAAMC,YAAY,GACjBD,KAAK,CAACE,OAAO,IAAIF,KAAK,CAACG,IAAI,KAAK,eAAe,GAC5CH,KAAK,CAACE,OAAO,GACbxD,EAAE,CAAE,+CAAgD,CAAC;MACzDiC,iBAAiB,CAAEsB,YAAY,EAAE;QAChCnB,IAAI,EAAE,UAAU;QAChBQ,EAAE,EAAE;MACL,CAAE,CAAC;IACJ;EACD,CAAC;EACD,MAAMc,UAAU,GAAGA,CAAA,KAClBlB,cAAc,GAAGT,cAAc,CAAEN,IAAK,CAAC,GAAG2B,aAAa,CAAC,CAAC;EAC1D,MAAMO,YAAY,GAAGA,CAAA,KAAM;IAC1B,MAAMC,IAAI,GAAG;MACZC,MAAM,EAAEpC,IAAI,CAACW,IAAI;MACjBiB,KAAK,EAAE5B,IAAI,CAAC4B,KAAK,IAAI5B,IAAI,CAACoB,IAAI;MAC9BiB,OAAO,EAAErC,IAAI,CAACsC,YAAY,CAACD,OAAO,CAACE,GAAG;MACtCC,UAAU,EAAExC,IAAI,CAACsC,YAAY,CAACG;IAC/B,CAAC;IAED,OAAOxF,UAAU,CAChByF,IAAI,CAACC,SAAS,CAAER,IAAI,EAAE,IAAI,EAAE,CAAE,CAAC,EAC9B,GAAGhF,SAAS,CAAE6C,IAAI,CAAC4B,KAAK,IAAI5B,IAAI,CAACoB,IAAK,CAAG,OAAM,EAChD,kBACD,CAAC;EACF,CAAC;;EAED;EACA,MAAMwB,eAAe,GACpBlC,aAAa,IAAMK,cAAc,IAAIf,IAAI,CAAC6C,QAAU;EACrD,MAAMC,YAAY,GAAG/B,cAAc,IAAIf,IAAI,CAAC+C,YAAY,CAACC,cAAc;EACvE,MAAMC,gBAAgB,GAAG,EAAE;EAE3B,IAAKL,eAAe,EAAG;IACtB;IACAK,gBAAgB,CAACC,IAAI,CACpB3E,EAAE,CAAE,uDAAwD,CAC7D,CAAC;EACF,CAAC,MAAM,IAAKyB,IAAI,CAACmD,WAAW,EAAG;IAC9BF,gBAAgB,CAACC,IAAI,CAAElD,IAAI,CAACmD,WAAY,CAAC;EAC1C;EAEA,IAAKtC,gBAAgB,EAAG;IACvBoC,gBAAgB,CAACC,IAAI,CACpB3E,EAAE,CAAE,2CAA4C,CACjD,CAAC;EACF;EAEA,IAAI6E,QAAQ;EACZ,IAAK,CAAE1C,aAAa,IAAIb,iBAAiB,CAAEE,UAAU,CAAE,EAAG;IACzDqD,QAAQ,GAAGvD,iBAAiB,CAAEE,UAAU,CAAE;EAC3C,CAAC,MAAM;IACNqD,QAAQ,GACPpD,IAAI,CAACwC,UAAU,KAAKhD,kBAAkB,CAAC6D,IAAI,GAAGvE,MAAM,GAAGwE,SAAS;EAClE;EAEA,MAAMC,iBAAiB,GAAGT,YAAY,GAAGvE,EAAE,CAAE,OAAQ,CAAC,GAAGA,EAAE,CAAE,QAAS,CAAC;EACvE,MAAMiF,aAAa,GAAGV,YAAY,GAC/BvE,EAAE,CAAE,sDAAuD,CAAC,GAC5DC,OAAO;EACP;EACAD,EAAE,CAAE,uCAAwC,CAAC,EAC7CyB,IAAI,CAAC4B,KAAK,IAAI5B,IAAI,CAACoB,IACnB,CAAC;EAEJ,MAAMqC,gBAAgB,GAAG,CAAEpD,eAAe,GACvC,CAAE;IAAEqD,GAAG,EAAE;EAA6B,CAAC,CAAE,GACzCJ,SAAS;EAEZ,OACCK,aAAA;IAAIC,SAAS,EAAGnC;EAAmB,GAClCkC,aAAA;IACCC,SAAS,EAAGlC;IACZ;IACA;IAAA;IACAP,EAAE,EAAI,sBAAsBnB,IAAI,CAACoB,IAAM,EAAG;IAAA,GACrCnB,KAAK;IACVe,OAAO,EACNhB,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACwB,KAAK,GAAGE,OAAO,GAAGsC,SAC9C;IACD,iBACCtD,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACwB,KAAK,GAAG,OAAO,GAAG,MAC9C;IACD,cAAad,IAAI,CAAC4B,KAAO;IACzB,oBACCqB,gBAAgB,CAACzB,MAAM,GACpByB,gBAAgB,CACfY,GAAG,CACH,CAAEC,CAAC,EAAEC,KAAK,KACR,GAAG7D,aAAe,IAAI6D,KAAO,EAChC,CAAC,CACAC,IAAI,CAAE,GAAI,CAAC,GACZV;EACH,GAEChC,OAAO,IAAIP,cAAc,IAAIxC,EAAE,CAAE,qBAAsB,CAAC,EACxD+C,OAAO,IAAI,CAAEP,cAAc,IAAIxC,EAAE,CAAE,eAAgB,CAAC,EACpD,CAAE+C,OAAO,IACVqC,aAAA,CAACvG,YAAY;IACZmE,MAAM,EAAGvB,IAAI,CAACuB,MAAQ;IACtBkC,gBAAgB,EAAGA;EAAkB,CACrC,CAEK,CAAC,EACPR,gBAAgB,CAACY,GAAG,CAAE,CAAEI,eAAe,EAAEF,KAAK,KAC/CJ,aAAA;IACCO,GAAG,EAAGH,KAAO;IACbI,MAAM;IACNhD,EAAE,EAAI,GAAGjB,aAAe,IAAI6D,KAAO;EAAG,GAEpCE,eACE,CACJ,CAAC,EACHN,aAAA,CAAC3F,MAAM;IACN4F,SAAS,EAAC,4BAA4B;IACtCQ,OAAO,EAAC;EAAe,GAEvBT,aAAA,CAAC3F,MAAM;IACNqG,SAAS,EAAC,QAAQ;IAClBD,OAAO,EAAC,MAAM;IACdE,OAAO,EAAG,CAAG;IACbV,SAAS,EAAC;EAAmC,GAE3CR,QAAQ,IAAI,CAAEvC,gBAAgB,IAC/B8C,aAAA,CAAC1F,OAAO;IACPsG,SAAS,EAAC,KAAK;IACfC,IAAI,EAAGjG,EAAE,CACR,2DACD;EAAG,GAEHoF,aAAA,CAAClF,IAAI;IACJmF,SAAS,EAAC,kCAAkC;IAC5Ca,IAAI,EAAGrB;EAAU,CACjB,CACO,CACT,EACDO,aAAA,CAACzF,IAAI;IAACwG,EAAE,EAAC,MAAM;IAACC,GAAG,EAAG,CAAG;IAACP,OAAO,EAAC;EAAM,GACrCpE,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACwB,KAAK,GAClCd,IAAI,CAAC4B,KAAK,GAEV+B,aAAA,CAAC7F,OAAO;IAAC8G,KAAK,EAAG;EAAG,GACnBjB,aAAA,CAACpG,MAAM;IACNsH,OAAO,EAAC,MAAM;IACd7D,OAAO,EAAGA;IACV;IACA;IAAA;IACA8D,QAAQ,EAAC;EAAI,GAEX9E,IAAI,CAAC4B,KAAK,IAAI5B,IAAI,CAACoB,IACd,CACA,CACT,EACCpB,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACwB,KAAK,IAClC6C,aAAA,CAAC1F,OAAO;IACPsG,SAAS,EAAC,KAAK;IACfC,IAAI,EAAGjG,EAAE,CAAE,gCAAiC;EAAG,GAE/CoF,aAAA,CAAClF,IAAI;IACJmF,SAAS,EAAC,uCAAuC;IACjDa,IAAI,EAAGzF,SAAW;IAClB+F,IAAI,EAAG;EAAI,CACX,CACO,CAEL,CACC,CAAC,EACTpB,aAAA,CAACjG,YAAY;IACZ+G,IAAI,EAAG1F,YAAc;IACrBiG,KAAK,EAAGzG,EAAE,CAAE,SAAU,CAAG;IACzBqF,SAAS,EAAC,8BAA8B;IACxCqB,YAAY,EAAG;MAAEV,SAAS,EAAE;IAAa,CAAG;IAC5CW,WAAW,EAAG;MACbtB,SAAS,EAAE,4BAA4B;MACvCuB,WAAW,EAAE3G,OAAO,EACnB;MACAD,EAAE,CAAE,4BAA6B,CAAC,EAClCyB,IAAI,CAAC4B,KACN;IACD;EAAG,GAED,CAAE;IAAEwD;EAAQ,CAAC,KACdzB,aAAA,CAAChG,SAAS,QACPiF,eAAe,IAAI,CAAEE,YAAY,IAClCa,aAAA,CAACvE,cAAc;IACdY,IAAI,EAAGA,IAAM;IACboF,OAAO,EAAGA;EAAS,CACnB,CACD,EACDzB,aAAA,CAACtE,iBAAiB;IACjBU,UAAU,EAAGA,UAAY;IACzBC,IAAI,EAAGA,IAAM;IACboF,OAAO,EAAGA,OAAS;IACnBJ,KAAK,EAAGzG,EAAE,CAAE,WAAY;EAAG,CAC3B,CAAC,EACAyB,IAAI,CAACW,IAAI,KAAKrB,aAAa,CAACsB,IAAI,IACjC+C,aAAA,CAAC/F,QAAQ;IAACoD,OAAO,EAAGA,CAAA,KAAMkB,YAAY,CAAC;EAAG,GACvC3D,EAAE,CAAE,gBAAiB,CACd,CACV,EAECqE,eAAe,IAChBe,aAAA,CAAC/F,QAAQ;IACRyH,aAAa,EAAG,CAAEvC,YAAc;IAChC9B,OAAO,EAAGA,CAAA,KACTZ,qBAAqB,CAAE,IAAK;EAC5B,GAEC0C,YAAY,GACXvE,EAAE,CAAE,sBAAuB,CAAC,GAC5BA,EAAE,CAAE,QAAS,CACP,CAED,CAEC,CACP,CAAC,EAEP4B,kBAAkB,IACnBwD,aAAA,CAAClG,aAAa;IACb8F,iBAAiB,EAAGA,iBAAmB;IACvC+B,SAAS,EAAGrD,UAAY;IACxBsD,QAAQ,EAAGA,CAAA,KAAMnF,qBAAqB,CAAE,KAAM;EAAG,GAE/CoD,aACY,CAEb,CAAC;AAEP;AAEA,eAAelF,IAAI,CAAEwB,QAAS,CAAC"}
|
|
@@ -3,7 +3,6 @@ import { createElement } from "@wordpress/element";
|
|
|
3
3
|
* WordPress dependencies
|
|
4
4
|
*/
|
|
5
5
|
import { __experimentalVStack as VStack, __experimentalHeading as Heading, __experimentalText as Text } from '@wordpress/components';
|
|
6
|
-
import { __ } from '@wordpress/i18n';
|
|
7
6
|
import { store as editorStore } from '@wordpress/editor';
|
|
8
7
|
import { useSelect } from '@wordpress/data';
|
|
9
8
|
|
|
@@ -11,7 +10,7 @@ import { useSelect } from '@wordpress/data';
|
|
|
11
10
|
* Internal dependencies
|
|
12
11
|
*/
|
|
13
12
|
import usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';
|
|
14
|
-
import {
|
|
13
|
+
import { TEMPLATE_PART_POST_TYPE, PATTERN_TYPES } from '../../utils/constants';
|
|
15
14
|
export default function PatternsHeader({
|
|
16
15
|
categoryId,
|
|
17
16
|
type,
|
|
@@ -23,14 +22,11 @@ export default function PatternsHeader({
|
|
|
23
22
|
} = usePatternCategories();
|
|
24
23
|
const templatePartAreas = useSelect(select => select(editorStore).__experimentalGetDefaultTemplatePartAreas(), []);
|
|
25
24
|
let title, description;
|
|
26
|
-
if (
|
|
27
|
-
title = __('My Patterns');
|
|
28
|
-
description = '';
|
|
29
|
-
} else if (type === TEMPLATE_PARTS) {
|
|
25
|
+
if (type === TEMPLATE_PART_POST_TYPE) {
|
|
30
26
|
const templatePartArea = templatePartAreas.find(area => area.area === categoryId);
|
|
31
27
|
title = templatePartArea?.label;
|
|
32
28
|
description = templatePartArea?.description;
|
|
33
|
-
} else if (type ===
|
|
29
|
+
} else if (type === PATTERN_TYPES.theme) {
|
|
34
30
|
const patternCategory = patternCategories.find(category => category.name === categoryId);
|
|
35
31
|
title = patternCategory?.label;
|
|
36
32
|
description = patternCategory?.description;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__experimentalVStack","VStack","__experimentalHeading","Heading","__experimentalText","Text","
|
|
1
|
+
{"version":3,"names":["__experimentalVStack","VStack","__experimentalHeading","Heading","__experimentalText","Text","store","editorStore","useSelect","usePatternCategories","TEMPLATE_PART_POST_TYPE","PATTERN_TYPES","PatternsHeader","categoryId","type","titleId","descriptionId","patternCategories","templatePartAreas","select","__experimentalGetDefaultTemplatePartAreas","title","description","templatePartArea","find","area","label","theme","patternCategory","category","name","createElement","className","as","level","id","variant"],"sources":["@wordpress/edit-site/src/components/page-patterns/header.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalVStack as VStack,\n\t__experimentalHeading as Heading,\n\t__experimentalText as Text,\n} from '@wordpress/components';\nimport { store as editorStore } from '@wordpress/editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport usePatternCategories from '../sidebar-navigation-screen-patterns/use-pattern-categories';\nimport { TEMPLATE_PART_POST_TYPE, PATTERN_TYPES } from '../../utils/constants';\n\nexport default function PatternsHeader( {\n\tcategoryId,\n\ttype,\n\ttitleId,\n\tdescriptionId,\n} ) {\n\tconst { patternCategories } = usePatternCategories();\n\tconst templatePartAreas = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).__experimentalGetDefaultTemplatePartAreas(),\n\t\t[]\n\t);\n\n\tlet title, description;\n\tif ( type === TEMPLATE_PART_POST_TYPE ) {\n\t\tconst templatePartArea = templatePartAreas.find(\n\t\t\t( area ) => area.area === categoryId\n\t\t);\n\t\ttitle = templatePartArea?.label;\n\t\tdescription = templatePartArea?.description;\n\t} else if ( type === PATTERN_TYPES.theme ) {\n\t\tconst patternCategory = patternCategories.find(\n\t\t\t( category ) => category.name === categoryId\n\t\t);\n\t\ttitle = patternCategory?.label;\n\t\tdescription = patternCategory?.description;\n\t}\n\n\tif ( ! title ) return null;\n\n\treturn (\n\t\t<VStack className=\"edit-site-patterns__section-header\">\n\t\t\t<Heading as=\"h2\" level={ 4 } id={ titleId }>\n\t\t\t\t{ title }\n\t\t\t</Heading>\n\t\t\t{ description ? (\n\t\t\t\t<Text variant=\"muted\" as=\"p\" id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</Text>\n\t\t\t) : null }\n\t\t</VStack>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SACCA,oBAAoB,IAAIC,MAAM,EAC9BC,qBAAqB,IAAIC,OAAO,EAChCC,kBAAkB,IAAIC,IAAI,QACpB,uBAAuB;AAC9B,SAASC,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACxD,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,OAAOC,oBAAoB,MAAM,8DAA8D;AAC/F,SAASC,uBAAuB,EAAEC,aAAa,QAAQ,uBAAuB;AAE9E,eAAe,SAASC,cAAcA,CAAE;EACvCC,UAAU;EACVC,IAAI;EACJC,OAAO;EACPC;AACD,CAAC,EAAG;EACH,MAAM;IAAEC;EAAkB,CAAC,GAAGR,oBAAoB,CAAC,CAAC;EACpD,MAAMS,iBAAiB,GAAGV,SAAS,CAChCW,MAAM,IACPA,MAAM,CAAEZ,WAAY,CAAC,CAACa,yCAAyC,CAAC,CAAC,EAClE,EACD,CAAC;EAED,IAAIC,KAAK,EAAEC,WAAW;EACtB,IAAKR,IAAI,KAAKJ,uBAAuB,EAAG;IACvC,MAAMa,gBAAgB,GAAGL,iBAAiB,CAACM,IAAI,CAC5CC,IAAI,IAAMA,IAAI,CAACA,IAAI,KAAKZ,UAC3B,CAAC;IACDQ,KAAK,GAAGE,gBAAgB,EAAEG,KAAK;IAC/BJ,WAAW,GAAGC,gBAAgB,EAAED,WAAW;EAC5C,CAAC,MAAM,IAAKR,IAAI,KAAKH,aAAa,CAACgB,KAAK,EAAG;IAC1C,MAAMC,eAAe,GAAGX,iBAAiB,CAACO,IAAI,CAC3CK,QAAQ,IAAMA,QAAQ,CAACC,IAAI,KAAKjB,UACnC,CAAC;IACDQ,KAAK,GAAGO,eAAe,EAAEF,KAAK;IAC9BJ,WAAW,GAAGM,eAAe,EAAEN,WAAW;EAC3C;EAEA,IAAK,CAAED,KAAK,EAAG,OAAO,IAAI;EAE1B,OACCU,aAAA,CAAC9B,MAAM;IAAC+B,SAAS,EAAC;EAAoC,GACrDD,aAAA,CAAC5B,OAAO;IAAC8B,EAAE,EAAC,IAAI;IAACC,KAAK,EAAG,CAAG;IAACC,EAAE,EAAGpB;EAAS,GACxCM,KACM,CAAC,EACRC,WAAW,GACZS,aAAA,CAAC1B,IAAI;IAAC+B,OAAO,EAAC,OAAO;IAACH,EAAE,EAAC,GAAG;IAACE,EAAE,EAAGnB;EAAe,GAC9CM,WACG,CAAC,GACJ,IACG,CAAC;AAEX"}
|
|
@@ -9,7 +9,7 @@ import { getQueryArgs } from '@wordpress/url';
|
|
|
9
9
|
/**
|
|
10
10
|
* Internal dependencies
|
|
11
11
|
*/
|
|
12
|
-
import {
|
|
12
|
+
import { PATTERN_DEFAULT_CATEGORY, PATTERN_TYPES } from '../../utils/constants';
|
|
13
13
|
import Page from '../page';
|
|
14
14
|
import PatternsList from './patterns-list';
|
|
15
15
|
import usePatternSettings from './use-pattern-settings';
|
|
@@ -22,8 +22,8 @@ export default function PagePatterns() {
|
|
|
22
22
|
categoryType,
|
|
23
23
|
categoryId
|
|
24
24
|
} = getQueryArgs(window.location.href);
|
|
25
|
-
const type = categoryType ||
|
|
26
|
-
const category = categoryId ||
|
|
25
|
+
const type = categoryType || PATTERN_TYPES.theme;
|
|
26
|
+
const category = categoryId || PATTERN_DEFAULT_CATEGORY;
|
|
27
27
|
const settings = usePatternSettings();
|
|
28
28
|
|
|
29
29
|
// Wrap everything in a block editor provider.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","privateApis","blockEditorPrivateApis","getQueryArgs","
|
|
1
|
+
{"version":3,"names":["__","privateApis","blockEditorPrivateApis","getQueryArgs","PATTERN_DEFAULT_CATEGORY","PATTERN_TYPES","Page","PatternsList","usePatternSettings","unlock","ExperimentalBlockEditorProvider","PagePatterns","categoryType","categoryId","window","location","href","type","theme","category","settings","createElement","className","title","hideTitleFromUI","key"],"sources":["@wordpress/edit-site/src/components/page-patterns/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { getQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { PATTERN_DEFAULT_CATEGORY, PATTERN_TYPES } from '../../utils/constants';\nimport Page from '../page';\nimport PatternsList from './patterns-list';\nimport usePatternSettings from './use-pattern-settings';\nimport { unlock } from '../../lock-unlock';\n\nconst { ExperimentalBlockEditorProvider } = unlock( blockEditorPrivateApis );\n\nexport default function PagePatterns() {\n\tconst { categoryType, categoryId } = getQueryArgs( window.location.href );\n\tconst type = categoryType || PATTERN_TYPES.theme;\n\tconst category = categoryId || PATTERN_DEFAULT_CATEGORY;\n\tconst settings = usePatternSettings();\n\n\t// Wrap everything in a block editor provider.\n\t// This ensures 'styles' that are needed for the previews are synced\n\t// from the site editor store to the block editor store.\n\treturn (\n\t\t<ExperimentalBlockEditorProvider settings={ settings }>\n\t\t\t<Page\n\t\t\t\tclassName=\"edit-site-patterns\"\n\t\t\t\ttitle={ __( 'Patterns content' ) }\n\t\t\t\thideTitleFromUI\n\t\t\t>\n\t\t\t\t<PatternsList\n\t\t\t\t\t// Reset the states when switching between categories and types.\n\t\t\t\t\tkey={ `${ type }-${ category }` }\n\t\t\t\t\ttype={ type }\n\t\t\t\t\tcategoryId={ category }\n\t\t\t\t/>\n\t\t\t</Page>\n\t\t</ExperimentalBlockEditorProvider>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,IAAIC,sBAAsB,QAAQ,yBAAyB;AAC/E,SAASC,YAAY,QAAQ,gBAAgB;;AAE7C;AACA;AACA;AACA,SAASC,wBAAwB,EAAEC,aAAa,QAAQ,uBAAuB;AAC/E,OAAOC,IAAI,MAAM,SAAS;AAC1B,OAAOC,YAAY,MAAM,iBAAiB;AAC1C,OAAOC,kBAAkB,MAAM,wBAAwB;AACvD,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,MAAM;EAAEC;AAAgC,CAAC,GAAGD,MAAM,CAAEP,sBAAuB,CAAC;AAE5E,eAAe,SAASS,YAAYA,CAAA,EAAG;EACtC,MAAM;IAAEC,YAAY;IAAEC;EAAW,CAAC,GAAGV,YAAY,CAAEW,MAAM,CAACC,QAAQ,CAACC,IAAK,CAAC;EACzE,MAAMC,IAAI,GAAGL,YAAY,IAAIP,aAAa,CAACa,KAAK;EAChD,MAAMC,QAAQ,GAAGN,UAAU,IAAIT,wBAAwB;EACvD,MAAMgB,QAAQ,GAAGZ,kBAAkB,CAAC,CAAC;;EAErC;EACA;EACA;EACA,OACCa,aAAA,CAACX,+BAA+B;IAACU,QAAQ,EAAGA;EAAU,GACrDC,aAAA,CAACf,IAAI;IACJgB,SAAS,EAAC,oBAAoB;IAC9BC,KAAK,EAAGvB,EAAE,CAAE,kBAAmB,CAAG;IAClCwB,eAAe;EAAA,GAEfH,aAAA,CAACd;EACA;EAAA;IACAkB,GAAG,EAAI,GAAGR,IAAM,IAAIE,QAAU,EAAG;IACjCF,IAAI,EAAGA,IAAM;IACbJ,UAAU,EAAGM;EAAU,CACvB,CACI,CAC0B,CAAC;AAEpC"}
|
|
@@ -19,7 +19,7 @@ import usePatterns from './use-patterns';
|
|
|
19
19
|
import SidebarButton from '../sidebar-button';
|
|
20
20
|
import useDebouncedInput from '../../utils/use-debounced-input';
|
|
21
21
|
import { unlock } from '../../lock-unlock';
|
|
22
|
-
import {
|
|
22
|
+
import { PATTERN_SYNC_TYPES, PATTERN_TYPES } from '../../utils/constants';
|
|
23
23
|
import Pagination from './pagination';
|
|
24
24
|
const {
|
|
25
25
|
useLocation,
|
|
@@ -27,13 +27,13 @@ const {
|
|
|
27
27
|
} = unlock(routerPrivateApis);
|
|
28
28
|
const SYNC_FILTERS = {
|
|
29
29
|
all: __('All'),
|
|
30
|
-
[
|
|
31
|
-
[
|
|
30
|
+
[PATTERN_SYNC_TYPES.full]: __('Synced'),
|
|
31
|
+
[PATTERN_SYNC_TYPES.unsynced]: __('Standard')
|
|
32
32
|
};
|
|
33
33
|
const SYNC_DESCRIPTIONS = {
|
|
34
34
|
all: '',
|
|
35
|
-
[
|
|
36
|
-
[
|
|
35
|
+
[PATTERN_SYNC_TYPES.full]: __('Patterns that are kept in sync across the site.'),
|
|
36
|
+
[PATTERN_SYNC_TYPES.unsynced]: __('Patterns that can be changed freely without affecting the site.')
|
|
37
37
|
};
|
|
38
38
|
const PAGE_SIZE = 20;
|
|
39
39
|
export default function PatternsList({
|
|
@@ -48,7 +48,7 @@ export default function PatternsList({
|
|
|
48
48
|
const [syncFilter, setSyncFilter] = useState('all');
|
|
49
49
|
const [currentPage, setCurrentPage] = useState(1);
|
|
50
50
|
const deferredSyncedFilter = useDeferredValue(syncFilter);
|
|
51
|
-
const isUncategorizedThemePatterns = type ===
|
|
51
|
+
const isUncategorizedThemePatterns = type === PATTERN_TYPES.theme && categoryId === 'uncategorized';
|
|
52
52
|
const {
|
|
53
53
|
patterns,
|
|
54
54
|
isResolving
|
|
@@ -118,7 +118,7 @@ export default function PatternsList({
|
|
|
118
118
|
label: __('Search patterns'),
|
|
119
119
|
value: filterValue,
|
|
120
120
|
__nextHasNoMarginBottom: true
|
|
121
|
-
})),
|
|
121
|
+
})), type === PATTERN_TYPES.theme && createElement(ToggleGroupControl, {
|
|
122
122
|
className: "edit-site-patterns__sync-status-filter",
|
|
123
123
|
hideLabelFromVision: true,
|
|
124
124
|
label: __('Filter by sync status'),
|