@wordpress/edit-site 5.18.1-next.5a1d1283.0 → 5.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/add-new-pattern/index.js +62 -1
- 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/editor-canvas.js +20 -16
- package/build/components/block-editor/editor-canvas.js.map +1 -1
- package/build/components/block-editor/site-editor-canvas.js +1 -3
- 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/editor/index.js +3 -8
- 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/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 +285 -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 +58 -0
- package/build/components/global-styles/font-library-modal/font-card.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-demo.js +69 -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/index.js +47 -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 +44 -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 +43 -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 +37 -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 +37 -0
- package/build/components/global-styles/font-library-modal/utils/constants.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 +205 -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/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/page-patterns/duplicate-menu-item.js +52 -16
- package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build/components/page-patterns/grid-item.js +46 -20
- 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 +53 -27
- 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/sidebar-edit-mode/page-panels/edit-template.js +33 -24
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/hooks.js +64 -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/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 +211 -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-page/index.js +3 -3
- package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/index.js +18 -8
- package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +34 -5
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js +7 -35
- package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +38 -4
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.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/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 +1 -1
- package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build/components/template-actions/index.js +7 -4
- package/build/components/template-actions/index.js.map +1 -1
- package/build/components/template-actions/rename-menu-item.js +3 -2
- 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/push-changes-to-global-styles/index.js +5 -37
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/store/actions.js +29 -6
- package/build/store/actions.js.map +1 -1
- package/build/utils/constants.js +45 -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-module/components/add-new-pattern/index.js +66 -5
- 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/editor-canvas.js +21 -17
- package/build-module/components/block-editor/editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/site-editor-canvas.js +3 -5
- 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/editor/index.js +3 -8
- 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/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 +276 -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 +49 -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-demo.js +62 -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/index.js +38 -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 +36 -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 +34 -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 +28 -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 +26 -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/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 +190 -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/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/page-patterns/duplicate-menu-item.js +51 -16
- package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/grid-item.js +47 -21
- 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 +54 -28
- 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/sidebar-edit-mode/page-panels/edit-template.js +34 -27
- 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 +54 -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/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 +202 -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-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-pattern/index.js +19 -9
- package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +34 -5
- 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 +10 -38
- 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 +38 -4
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.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/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 +1 -1
- package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build-module/components/template-actions/index.js +7 -4
- package/build-module/components/template-actions/index.js.map +1 -1
- package/build-module/components/template-actions/rename-menu-item.js +3 -2
- 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/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/store/actions.js +30 -7
- package/build-module/store/actions.js.map +1 -1
- package/build-module/utils/constants.js +35 -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-style/style-rtl.css +244 -37
- package/build-style/style.css +244 -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 +83 -5
- 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/editor-canvas.js +31 -19
- package/src/components/block-editor/site-editor-canvas.js +2 -10
- 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/editor/index.js +3 -8
- 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/confirm-delete-dialog.js +33 -0
- package/src/components/global-styles/font-library-modal/context.js +347 -0
- package/src/components/global-styles/font-library-modal/font-card.js +70 -0
- package/src/components/global-styles/font-library-modal/font-demo.js +57 -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/index.js +42 -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 +40 -0
- package/src/components/global-styles/font-library-modal/library-font-details.js +46 -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 +29 -0
- package/src/components/global-styles/font-library-modal/style.scss +113 -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 +31 -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 +213 -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/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/getPreviewStyle.spec.js +121 -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/setUIValuesNeeded.spec.js +41 -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 +7 -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/list/style.scss +2 -0
- package/src/components/page-patterns/duplicate-menu-item.js +63 -20
- package/src/components/page-patterns/grid-item.js +77 -30
- 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 +14 -2
- package/src/components/page-patterns/style.scss +1 -5
- package/src/components/page-patterns/use-patterns.js +67 -33
- package/src/components/page-patterns/utils.js +0 -19
- package/src/components/sidebar-edit-mode/page-panels/edit-template.js +47 -33
- package/src/components/sidebar-edit-mode/page-panels/hooks.js +83 -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 +41 -10
- package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +82 -0
- 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 +270 -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-menus/style.scss +0 -4
- package/src/components/sidebar-navigation-screen-page/index.js +3 -3
- package/src/components/sidebar-navigation-screen-pattern/index.js +20 -7
- package/src/components/sidebar-navigation-screen-pattern/style.scss +0 -3
- package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +46 -13
- package/src/components/sidebar-navigation-screen-patterns/index.js +14 -49
- package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +48 -6
- package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -5
- package/src/components/sidebar-navigation-screen-template/index.js +2 -4
- package/src/components/sidebar-navigation-screen-templates/index.js +1 -1
- package/src/components/template-actions/index.js +14 -8
- package/src/components/template-actions/rename-menu-item.js +15 -4
- package/src/components/welcome-guide/styles.js +2 -2
- package/src/hooks/push-changes-to-global-styles/index.js +6 -49
- package/src/store/actions.js +39 -13
- package/src/style.scss +1 -1
- package/src/utils/constants.js +38 -3
- package/src/utils/is-template-removable.js +8 -1
- package/src/utils/is-template-revertable.js +8 -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/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/sidebar-navigation-screen-global-styles/style.scss +0 -12
- package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -24
|
@@ -10,14 +10,13 @@ import { decodeEntities } from '@wordpress/html-entities';
|
|
|
10
10
|
/**
|
|
11
11
|
* Internal dependencies
|
|
12
12
|
*/
|
|
13
|
+
import { filterOutDuplicatesByName } from './utils';
|
|
13
14
|
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
filterOutDuplicatesByName,
|
|
20
|
-
} from './utils';
|
|
15
|
+
PATTERN_CORE_SOURCES,
|
|
16
|
+
PATTERN_TYPES,
|
|
17
|
+
PATTERN_SYNC_TYPES,
|
|
18
|
+
TEMPLATE_PART_POST_TYPE,
|
|
19
|
+
} from '../../utils/constants';
|
|
21
20
|
import { unlock } from '../../lock-unlock';
|
|
22
21
|
import { searchItems } from './search-items';
|
|
23
22
|
import { store as editSiteStore } from '../../store';
|
|
@@ -50,7 +49,7 @@ const selectTemplatePartsAsPatterns = (
|
|
|
50
49
|
const { __experimentalGetDefaultTemplatePartAreas } = select( editorStore );
|
|
51
50
|
const query = { per_page: -1 };
|
|
52
51
|
const rawTemplateParts =
|
|
53
|
-
getEntityRecords( 'postType',
|
|
52
|
+
getEntityRecords( 'postType', TEMPLATE_PART_POST_TYPE, query ) ??
|
|
54
53
|
EMPTY_PATTERN_LIST;
|
|
55
54
|
const templateParts = rawTemplateParts.map( ( templatePart ) =>
|
|
56
55
|
templatePartToPattern( templatePart )
|
|
@@ -87,7 +86,7 @@ const selectTemplatePartsAsPatterns = (
|
|
|
87
86
|
return { patterns, isResolving };
|
|
88
87
|
};
|
|
89
88
|
|
|
90
|
-
const selectThemePatterns = ( select
|
|
89
|
+
const selectThemePatterns = ( select ) => {
|
|
91
90
|
const { getSettings } = unlock( select( editSiteStore ) );
|
|
92
91
|
const settings = getSettings();
|
|
93
92
|
const blockPatterns =
|
|
@@ -96,24 +95,41 @@ const selectThemePatterns = ( select, { categoryId, search = '' } = {} ) => {
|
|
|
96
95
|
|
|
97
96
|
const restBlockPatterns = select( coreStore ).getBlockPatterns();
|
|
98
97
|
|
|
99
|
-
|
|
98
|
+
const patterns = [
|
|
100
99
|
...( blockPatterns || [] ),
|
|
101
100
|
...( restBlockPatterns || [] ),
|
|
102
101
|
]
|
|
103
102
|
.filter(
|
|
104
|
-
( pattern ) => !
|
|
103
|
+
( pattern ) => ! PATTERN_CORE_SOURCES.includes( pattern.source )
|
|
105
104
|
)
|
|
106
105
|
.filter( filterOutDuplicatesByName )
|
|
107
106
|
.filter( ( pattern ) => pattern.inserter !== false )
|
|
108
107
|
.map( ( pattern ) => ( {
|
|
109
108
|
...pattern,
|
|
110
109
|
keywords: pattern.keywords || [],
|
|
111
|
-
type:
|
|
110
|
+
type: PATTERN_TYPES.theme,
|
|
112
111
|
blocks: parse( pattern.content, {
|
|
113
112
|
__unstableSkipMigrationLogs: true,
|
|
114
113
|
} ),
|
|
115
114
|
} ) );
|
|
116
115
|
|
|
116
|
+
return { patterns, isResolving: false };
|
|
117
|
+
};
|
|
118
|
+
const selectPatterns = (
|
|
119
|
+
select,
|
|
120
|
+
{ categoryId, search = '', syncStatus } = {}
|
|
121
|
+
) => {
|
|
122
|
+
const { patterns: themePatterns } = selectThemePatterns( select );
|
|
123
|
+
const { patterns: userPatterns } = selectUserPatterns( select );
|
|
124
|
+
|
|
125
|
+
let patterns = [ ...( themePatterns || [] ), ...( userPatterns || [] ) ];
|
|
126
|
+
|
|
127
|
+
if ( syncStatus ) {
|
|
128
|
+
patterns = patterns.filter(
|
|
129
|
+
( pattern ) => pattern.syncStatus === syncStatus
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
|
|
117
133
|
if ( categoryId ) {
|
|
118
134
|
patterns = searchItems( patterns, search, {
|
|
119
135
|
categoryId,
|
|
@@ -125,35 +141,49 @@ const selectThemePatterns = ( select, { categoryId, search = '' } = {} ) => {
|
|
|
125
141
|
hasCategory: ( item ) => ! item.hasOwnProperty( 'categories' ),
|
|
126
142
|
} );
|
|
127
143
|
}
|
|
128
|
-
|
|
129
144
|
return { patterns, isResolving: false };
|
|
130
145
|
};
|
|
131
146
|
|
|
132
|
-
const
|
|
133
|
-
blocks: parse(
|
|
147
|
+
const patternBlockToPattern = ( patternBlock, categories ) => ( {
|
|
148
|
+
blocks: parse( patternBlock.content.raw, {
|
|
134
149
|
__unstableSkipMigrationLogs: true,
|
|
135
150
|
} ),
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
151
|
+
...( patternBlock.wp_pattern_category.length > 0 && {
|
|
152
|
+
categories: patternBlock.wp_pattern_category.map(
|
|
153
|
+
( patternCategoryId ) =>
|
|
154
|
+
categories && categories.get( patternCategoryId )
|
|
155
|
+
? categories.get( patternCategoryId ).slug
|
|
156
|
+
: patternCategoryId
|
|
157
|
+
),
|
|
158
|
+
} ),
|
|
159
|
+
id: patternBlock.id,
|
|
160
|
+
name: patternBlock.slug,
|
|
161
|
+
syncStatus: patternBlock.wp_pattern_sync_status || PATTERN_SYNC_TYPES.full,
|
|
162
|
+
title: patternBlock.title.raw,
|
|
163
|
+
type: PATTERN_TYPES.user,
|
|
164
|
+
patternBlock,
|
|
143
165
|
} );
|
|
144
166
|
|
|
145
167
|
const selectUserPatterns = ( select, { search = '', syncStatus } = {} ) => {
|
|
146
|
-
const { getEntityRecords, getIsResolving } =
|
|
168
|
+
const { getEntityRecords, getIsResolving, getUserPatternCategories } =
|
|
169
|
+
select( coreStore );
|
|
147
170
|
|
|
148
171
|
const query = { per_page: -1 };
|
|
149
|
-
const records = getEntityRecords( 'postType',
|
|
150
|
-
|
|
172
|
+
const records = getEntityRecords( 'postType', PATTERN_TYPES.user, query );
|
|
173
|
+
const userPatternCategories = getUserPatternCategories();
|
|
174
|
+
const categories = new Map();
|
|
175
|
+
userPatternCategories.forEach( ( userCategory ) =>
|
|
176
|
+
categories.set( userCategory.id, userCategory )
|
|
177
|
+
);
|
|
151
178
|
let patterns = records
|
|
152
|
-
? records.map( ( record ) =>
|
|
179
|
+
? records.map( ( record ) =>
|
|
180
|
+
patternBlockToPattern( record, categories )
|
|
181
|
+
)
|
|
153
182
|
: EMPTY_PATTERN_LIST;
|
|
183
|
+
|
|
154
184
|
const isResolving = getIsResolving( 'getEntityRecords', [
|
|
155
185
|
'postType',
|
|
156
|
-
|
|
186
|
+
PATTERN_TYPES.user,
|
|
157
187
|
query,
|
|
158
188
|
] );
|
|
159
189
|
|
|
@@ -170,24 +200,28 @@ const selectUserPatterns = ( select, { search = '', syncStatus } = {} ) => {
|
|
|
170
200
|
hasCategory: () => true,
|
|
171
201
|
} );
|
|
172
202
|
|
|
173
|
-
return { patterns, isResolving };
|
|
203
|
+
return { patterns, isResolving, categories: userPatternCategories };
|
|
174
204
|
};
|
|
175
205
|
|
|
176
206
|
export const usePatterns = (
|
|
177
207
|
categoryType,
|
|
178
208
|
categoryId,
|
|
179
|
-
{ search = '', syncStatus }
|
|
209
|
+
{ search = '', syncStatus } = {}
|
|
180
210
|
) => {
|
|
181
211
|
return useSelect(
|
|
182
212
|
( select ) => {
|
|
183
|
-
if ( categoryType ===
|
|
213
|
+
if ( categoryType === TEMPLATE_PART_POST_TYPE ) {
|
|
184
214
|
return selectTemplatePartsAsPatterns( select, {
|
|
185
215
|
categoryId,
|
|
186
216
|
search,
|
|
187
217
|
} );
|
|
188
|
-
} else if ( categoryType ===
|
|
189
|
-
return
|
|
190
|
-
|
|
218
|
+
} else if ( categoryType === PATTERN_TYPES.theme ) {
|
|
219
|
+
return selectPatterns( select, {
|
|
220
|
+
categoryId,
|
|
221
|
+
search,
|
|
222
|
+
syncStatus,
|
|
223
|
+
} );
|
|
224
|
+
} else if ( categoryType === PATTERN_TYPES.user ) {
|
|
191
225
|
return selectUserPatterns( select, { search, syncStatus } );
|
|
192
226
|
}
|
|
193
227
|
return { patterns: EMPTY_PATTERN_LIST, isResolving: false };
|
|
@@ -1,21 +1,2 @@
|
|
|
1
|
-
export const DEFAULT_CATEGORY = 'my-patterns';
|
|
2
|
-
export const DEFAULT_TYPE = 'wp_block';
|
|
3
|
-
export const PATTERNS = 'pattern';
|
|
4
|
-
export const TEMPLATE_PARTS = 'wp_template_part';
|
|
5
|
-
export const USER_PATTERNS = 'wp_block';
|
|
6
|
-
export const USER_PATTERN_CATEGORY = 'my-patterns';
|
|
7
|
-
|
|
8
|
-
export const CORE_PATTERN_SOURCES = [
|
|
9
|
-
'core',
|
|
10
|
-
'pattern-directory/core',
|
|
11
|
-
'pattern-directory/featured',
|
|
12
|
-
'pattern-directory/theme',
|
|
13
|
-
];
|
|
14
|
-
|
|
15
|
-
export const SYNC_TYPES = {
|
|
16
|
-
full: 'fully',
|
|
17
|
-
unsynced: 'unsynced',
|
|
18
|
-
};
|
|
19
|
-
|
|
20
1
|
export const filterOutDuplicatesByName = ( currentItem, index, items ) =>
|
|
21
2
|
index === items.findIndex( ( item ) => currentItem.name === item.name );
|
|
@@ -2,21 +2,31 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
5
|
-
import { useMemo } from '@wordpress/element';
|
|
6
5
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
7
|
-
import {
|
|
8
|
-
|
|
6
|
+
import {
|
|
7
|
+
DropdownMenu,
|
|
8
|
+
MenuGroup,
|
|
9
|
+
MenuItem,
|
|
10
|
+
__experimentalHStack as HStack,
|
|
11
|
+
__experimentalText as Text,
|
|
12
|
+
} from '@wordpress/components';
|
|
9
13
|
import { __ } from '@wordpress/i18n';
|
|
10
14
|
import { store as coreStore } from '@wordpress/core-data';
|
|
11
|
-
import { parse } from '@wordpress/blocks';
|
|
12
15
|
|
|
13
16
|
/**
|
|
14
17
|
* Internal dependencies
|
|
15
18
|
*/
|
|
16
19
|
import { store as editSiteStore } from '../../../store';
|
|
20
|
+
import SwapTemplateButton from './swap-template-button';
|
|
21
|
+
import ResetDefaultTemplate from './reset-default-template';
|
|
22
|
+
|
|
23
|
+
const POPOVER_PROPS = {
|
|
24
|
+
className: 'edit-site-page-panels-edit-template__dropdown',
|
|
25
|
+
placement: 'bottom-start',
|
|
26
|
+
};
|
|
17
27
|
|
|
18
28
|
export default function EditTemplate() {
|
|
19
|
-
const {
|
|
29
|
+
const { hasResolved, template } = useSelect( ( select ) => {
|
|
20
30
|
const { getEditedPostContext, getEditedPostType, getEditedPostId } =
|
|
21
31
|
select( editSiteStore );
|
|
22
32
|
const { getEditedEntityRecord, hasFinishedResolution } =
|
|
@@ -39,39 +49,43 @@ export default function EditTemplate() {
|
|
|
39
49
|
|
|
40
50
|
const { setHasPageContentFocus } = useDispatch( editSiteStore );
|
|
41
51
|
|
|
42
|
-
const blockContext = useMemo(
|
|
43
|
-
() => ( { ...context, postType: null, postId: null } ),
|
|
44
|
-
[ context ]
|
|
45
|
-
);
|
|
46
|
-
|
|
47
|
-
const blocks = useMemo(
|
|
48
|
-
() =>
|
|
49
|
-
template.blocks ??
|
|
50
|
-
( template.content && typeof template.content !== 'function'
|
|
51
|
-
? parse( template.content )
|
|
52
|
-
: [] ),
|
|
53
|
-
[ template.blocks, template.content ]
|
|
54
|
-
);
|
|
55
|
-
|
|
56
52
|
if ( ! hasResolved ) {
|
|
57
53
|
return null;
|
|
58
54
|
}
|
|
59
55
|
|
|
60
56
|
return (
|
|
61
|
-
<
|
|
62
|
-
<
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
57
|
+
<HStack className="edit-site-summary-field">
|
|
58
|
+
<Text className="edit-site-summary-field__label">
|
|
59
|
+
{ __( 'Template' ) }
|
|
60
|
+
</Text>
|
|
61
|
+
<DropdownMenu
|
|
62
|
+
popoverProps={ POPOVER_PROPS }
|
|
63
|
+
focusOnMount
|
|
64
|
+
toggleProps={ {
|
|
65
|
+
variant: 'tertiary',
|
|
66
|
+
className: 'edit-site-summary-field__trigger',
|
|
67
|
+
} }
|
|
68
|
+
label={ __( 'Template options' ) }
|
|
69
|
+
text={ decodeEntities( template.title ) }
|
|
70
|
+
icon={ null }
|
|
72
71
|
>
|
|
73
|
-
{
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
{ ( { onClose } ) => (
|
|
73
|
+
<>
|
|
74
|
+
<MenuGroup>
|
|
75
|
+
<MenuItem
|
|
76
|
+
onClick={ () => {
|
|
77
|
+
setHasPageContentFocus( false );
|
|
78
|
+
onClose();
|
|
79
|
+
} }
|
|
80
|
+
>
|
|
81
|
+
{ __( 'Edit template' ) }
|
|
82
|
+
</MenuItem>
|
|
83
|
+
<SwapTemplateButton onClick={ onClose } />
|
|
84
|
+
</MenuGroup>
|
|
85
|
+
<ResetDefaultTemplate onClick={ onClose } />
|
|
86
|
+
</>
|
|
87
|
+
) }
|
|
88
|
+
</DropdownMenu>
|
|
89
|
+
</HStack>
|
|
76
90
|
);
|
|
77
91
|
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useSelect } from '@wordpress/data';
|
|
5
|
+
import { useMemo } from '@wordpress/element';
|
|
6
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Internal dependencies
|
|
10
|
+
*/
|
|
11
|
+
import { store as editSiteStore } from '../../../store';
|
|
12
|
+
|
|
13
|
+
export function useEditedPostContext() {
|
|
14
|
+
return useSelect(
|
|
15
|
+
( select ) => select( editSiteStore ).getEditedPostContext(),
|
|
16
|
+
[]
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function useIsPostsPage() {
|
|
21
|
+
const { postId } = useEditedPostContext();
|
|
22
|
+
return useSelect(
|
|
23
|
+
( select ) =>
|
|
24
|
+
+postId ===
|
|
25
|
+
select( coreStore ).getEntityRecord( 'root', 'site' )
|
|
26
|
+
?.page_for_posts,
|
|
27
|
+
[ postId ]
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function useTemplates() {
|
|
32
|
+
return useSelect(
|
|
33
|
+
( select ) =>
|
|
34
|
+
select( coreStore ).getEntityRecords( 'postType', 'wp_template', {
|
|
35
|
+
per_page: -1,
|
|
36
|
+
post_type: 'page',
|
|
37
|
+
} ),
|
|
38
|
+
[]
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export function useAvailableTemplates() {
|
|
43
|
+
const currentTemplateSlug = useCurrentTemplateSlug();
|
|
44
|
+
const isPostsPage = useIsPostsPage();
|
|
45
|
+
const templates = useTemplates();
|
|
46
|
+
return useMemo(
|
|
47
|
+
() =>
|
|
48
|
+
// The posts page template cannot be changed.
|
|
49
|
+
! isPostsPage &&
|
|
50
|
+
templates?.filter(
|
|
51
|
+
( template ) =>
|
|
52
|
+
template.is_custom &&
|
|
53
|
+
template.slug !== currentTemplateSlug &&
|
|
54
|
+
!! template.content.raw // Skip empty templates.
|
|
55
|
+
),
|
|
56
|
+
[ templates, currentTemplateSlug, isPostsPage ]
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function useCurrentTemplateSlug() {
|
|
61
|
+
const { postType, postId } = useEditedPostContext();
|
|
62
|
+
const templates = useTemplates();
|
|
63
|
+
const entityTemplate = useSelect(
|
|
64
|
+
( select ) => {
|
|
65
|
+
const post = select( coreStore ).getEditedEntityRecord(
|
|
66
|
+
'postType',
|
|
67
|
+
postType,
|
|
68
|
+
postId
|
|
69
|
+
);
|
|
70
|
+
return post?.template;
|
|
71
|
+
},
|
|
72
|
+
[ postType, postId ]
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
if ( ! entityTemplate ) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// If a page has a `template` set and is not included in the list
|
|
79
|
+
// of the theme's templates, do not return it, in order to resolve
|
|
80
|
+
// to the current theme's default template.
|
|
81
|
+
return templates?.find( ( template ) => template.slug === entityTemplate )
|
|
82
|
+
?.slug;
|
|
83
|
+
}
|
|
@@ -20,7 +20,6 @@ import { store as editSiteStore } from '../../../store';
|
|
|
20
20
|
import SidebarCard from '../sidebar-card';
|
|
21
21
|
import PageContent from './page-content';
|
|
22
22
|
import PageSummary from './page-summary';
|
|
23
|
-
import EditTemplate from './edit-template';
|
|
24
23
|
|
|
25
24
|
export default function PagePanels() {
|
|
26
25
|
const { id, type, hasResolved, status, date, password, title, modified } =
|
|
@@ -81,9 +80,6 @@ export default function PagePanels() {
|
|
|
81
80
|
<PanelBody title={ __( 'Content' ) }>
|
|
82
81
|
<PageContent />
|
|
83
82
|
</PanelBody>
|
|
84
|
-
<PanelBody title={ __( 'Template' ) }>
|
|
85
|
-
<EditTemplate />
|
|
86
|
-
</PanelBody>
|
|
87
83
|
</>
|
|
88
84
|
);
|
|
89
85
|
}
|
|
@@ -7,6 +7,7 @@ import { __experimentalVStack as VStack } from '@wordpress/components';
|
|
|
7
7
|
*/
|
|
8
8
|
import PageStatus from './page-status';
|
|
9
9
|
import PublishDate from './publish-date';
|
|
10
|
+
import EditTemplate from './edit-template';
|
|
10
11
|
|
|
11
12
|
export default function PageSummary( {
|
|
12
13
|
status,
|
|
@@ -30,6 +31,7 @@ export default function PageSummary( {
|
|
|
30
31
|
postId={ postId }
|
|
31
32
|
postType={ postType }
|
|
32
33
|
/>
|
|
34
|
+
<EditTemplate />
|
|
33
35
|
</VStack>
|
|
34
36
|
);
|
|
35
37
|
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useDispatch } from '@wordpress/data';
|
|
5
|
+
import { MenuGroup, MenuItem } from '@wordpress/components';
|
|
6
|
+
import { __ } from '@wordpress/i18n';
|
|
7
|
+
import { useEntityRecord } from '@wordpress/core-data';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Internal dependencies
|
|
11
|
+
*/
|
|
12
|
+
import {
|
|
13
|
+
useCurrentTemplateSlug,
|
|
14
|
+
useEditedPostContext,
|
|
15
|
+
useIsPostsPage,
|
|
16
|
+
} from './hooks';
|
|
17
|
+
import { store as editSiteStore } from '../../../store';
|
|
18
|
+
|
|
19
|
+
export default function ResetDefaultTemplate( { onClick } ) {
|
|
20
|
+
const currentTemplateSlug = useCurrentTemplateSlug();
|
|
21
|
+
const isPostsPage = useIsPostsPage();
|
|
22
|
+
const { postType, postId } = useEditedPostContext();
|
|
23
|
+
const entity = useEntityRecord( 'postType', postType, postId );
|
|
24
|
+
const { setPage } = useDispatch( editSiteStore );
|
|
25
|
+
// The default template in a post is indicated by an empty string.
|
|
26
|
+
if ( ! currentTemplateSlug || isPostsPage ) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return (
|
|
30
|
+
<MenuGroup>
|
|
31
|
+
<MenuItem
|
|
32
|
+
onClick={ async () => {
|
|
33
|
+
entity.edit( { template: '' }, { undoIgnore: true } );
|
|
34
|
+
onClick();
|
|
35
|
+
await setPage( {
|
|
36
|
+
context: { postType, postId },
|
|
37
|
+
} );
|
|
38
|
+
} }
|
|
39
|
+
>
|
|
40
|
+
{ __( 'Reset' ) }
|
|
41
|
+
</MenuItem>
|
|
42
|
+
</MenuGroup>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
@@ -1,12 +1,37 @@
|
|
|
1
|
-
.edit-site-
|
|
2
|
-
|
|
3
|
-
height: 200px;
|
|
4
|
-
max-height: 200px;
|
|
5
|
-
overflow: hidden;
|
|
1
|
+
.edit-site-swap-template-modal {
|
|
2
|
+
z-index: z-index(".edit-site-swap-template-modal");
|
|
6
3
|
}
|
|
7
4
|
|
|
8
|
-
.edit-site-page-
|
|
9
|
-
|
|
5
|
+
.edit-site-page-panels__swap-template__confirm-modal__actions {
|
|
6
|
+
margin-top: $grid-unit-30;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.edit-site-page-panels__swap-template__modal-content .block-editor-block-patterns-list {
|
|
10
|
+
column-count: 2;
|
|
11
|
+
column-gap: $grid-unit-30;
|
|
12
|
+
|
|
13
|
+
// Small top padding required to avoid cutting off the visible outline when hovering items
|
|
14
|
+
padding-top: $border-width-focus-fallback;
|
|
15
|
+
|
|
16
|
+
@include break-medium() {
|
|
17
|
+
column-count: 3;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@include break-wide() {
|
|
21
|
+
column-count: 4;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.block-editor-block-patterns-list__list-item {
|
|
25
|
+
break-inside: avoid-column;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.block-editor-block-patterns-list__item {
|
|
29
|
+
// Avoid to override the BlockPatternList component
|
|
30
|
+
// default hover and focus styles.
|
|
31
|
+
&:not(:focus):not(:hover) .block-editor-block-preview__container {
|
|
32
|
+
box-shadow: 0 0 0 1px $gray-300;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
10
35
|
}
|
|
11
36
|
|
|
12
37
|
.edit-site-change-status__content {
|
|
@@ -36,15 +61,21 @@
|
|
|
36
61
|
|
|
37
62
|
.edit-site-summary-field {
|
|
38
63
|
.components-dropdown {
|
|
39
|
-
|
|
64
|
+
width: 70%;
|
|
40
65
|
}
|
|
41
66
|
|
|
42
67
|
.edit-site-summary-field__trigger {
|
|
43
|
-
width: 100%;
|
|
68
|
+
max-width: 100%;
|
|
69
|
+
|
|
70
|
+
// Truncate
|
|
71
|
+
display: block;
|
|
72
|
+
text-align: left;
|
|
73
|
+
white-space: nowrap;
|
|
74
|
+
overflow: hidden;
|
|
75
|
+
text-overflow: ellipsis;
|
|
44
76
|
}
|
|
45
77
|
|
|
46
78
|
.edit-site-summary-field__label {
|
|
47
79
|
width: 30%;
|
|
48
80
|
}
|
|
49
81
|
}
|
|
50
|
-
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { useDispatch } from '@wordpress/data';
|
|
5
|
+
import { useMemo, useState, useCallback } from '@wordpress/element';
|
|
6
|
+
import { decodeEntities } from '@wordpress/html-entities';
|
|
7
|
+
import { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';
|
|
8
|
+
import { MenuItem, Modal } from '@wordpress/components';
|
|
9
|
+
import { __ } from '@wordpress/i18n';
|
|
10
|
+
import { useEntityRecord } from '@wordpress/core-data';
|
|
11
|
+
import { parse } from '@wordpress/blocks';
|
|
12
|
+
import { useAsyncList } from '@wordpress/compose';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
import { store as editSiteStore } from '../../../store';
|
|
18
|
+
import { useAvailableTemplates, useEditedPostContext } from './hooks';
|
|
19
|
+
|
|
20
|
+
export default function SwapTemplateButton( { onClick } ) {
|
|
21
|
+
const [ showModal, setShowModal ] = useState( false );
|
|
22
|
+
const availableTemplates = useAvailableTemplates();
|
|
23
|
+
const onClose = useCallback( () => {
|
|
24
|
+
setShowModal( false );
|
|
25
|
+
}, [] );
|
|
26
|
+
const { postType, postId } = useEditedPostContext();
|
|
27
|
+
const entitiy = useEntityRecord( 'postType', postType, postId );
|
|
28
|
+
const { setPage } = useDispatch( editSiteStore );
|
|
29
|
+
if ( ! availableTemplates?.length ) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const onTemplateSelect = async ( template ) => {
|
|
33
|
+
entitiy.edit( { template: template.name }, { undoIgnore: true } );
|
|
34
|
+
await setPage( {
|
|
35
|
+
context: { postType, postId },
|
|
36
|
+
} );
|
|
37
|
+
onClose(); // Close the template suggestions modal first.
|
|
38
|
+
onClick();
|
|
39
|
+
};
|
|
40
|
+
return (
|
|
41
|
+
<>
|
|
42
|
+
<MenuItem onClick={ () => setShowModal( true ) }>
|
|
43
|
+
{ __( 'Swap template' ) }
|
|
44
|
+
</MenuItem>
|
|
45
|
+
{ showModal && (
|
|
46
|
+
<Modal
|
|
47
|
+
title={ __( 'Choose a template' ) }
|
|
48
|
+
onRequestClose={ onClose }
|
|
49
|
+
overlayClassName="edit-site-swap-template-modal"
|
|
50
|
+
isFullScreen
|
|
51
|
+
>
|
|
52
|
+
<div className="edit-site-page-panels__swap-template__modal-content">
|
|
53
|
+
<TemplatesList onSelect={ onTemplateSelect } />
|
|
54
|
+
</div>
|
|
55
|
+
</Modal>
|
|
56
|
+
) }
|
|
57
|
+
</>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function TemplatesList( { onSelect } ) {
|
|
62
|
+
const availableTemplates = useAvailableTemplates();
|
|
63
|
+
const templatesAsPatterns = useMemo(
|
|
64
|
+
() =>
|
|
65
|
+
availableTemplates.map( ( template ) => ( {
|
|
66
|
+
name: template.slug,
|
|
67
|
+
blocks: parse( template.content.raw ),
|
|
68
|
+
title: decodeEntities( template.title.rendered ),
|
|
69
|
+
id: template.id,
|
|
70
|
+
} ) ),
|
|
71
|
+
[ availableTemplates ]
|
|
72
|
+
);
|
|
73
|
+
const shownTemplates = useAsyncList( templatesAsPatterns );
|
|
74
|
+
return (
|
|
75
|
+
<BlockPatternsList
|
|
76
|
+
label={ __( 'Templates' ) }
|
|
77
|
+
blockPatterns={ templatesAsPatterns }
|
|
78
|
+
shownPatterns={ shownTemplates }
|
|
79
|
+
onClickPattern={ onSelect }
|
|
80
|
+
/>
|
|
81
|
+
);
|
|
82
|
+
}
|