@wordpress/edit-site 5.18.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/store/test/actions.js +0 -1
- package/src/store/test/reducer.js +0 -1
- 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
|
@@ -16,11 +16,14 @@ import useInitEditedEntityFromURL from '../sync-state-with-url/use-init-edited-e
|
|
|
16
16
|
import usePatternDetails from './use-pattern-details';
|
|
17
17
|
import { store as editSiteStore } from '../../store';
|
|
18
18
|
import { unlock } from '../../lock-unlock';
|
|
19
|
+
import TemplateActions from '../template-actions';
|
|
19
20
|
|
|
20
21
|
export default function SidebarNavigationScreenPattern() {
|
|
21
|
-
const
|
|
22
|
+
const navigator = useNavigator();
|
|
23
|
+
const {
|
|
24
|
+
params: { postType, postId },
|
|
25
|
+
} = navigator;
|
|
22
26
|
const { categoryType } = getQueryArgs( window.location.href );
|
|
23
|
-
const { postType, postId } = params;
|
|
24
27
|
const { setCanvasMode } = unlock( useDispatch( editSiteStore ) );
|
|
25
28
|
|
|
26
29
|
useInitEditedEntityFromURL();
|
|
@@ -38,11 +41,21 @@ export default function SidebarNavigationScreenPattern() {
|
|
|
38
41
|
return (
|
|
39
42
|
<SidebarNavigationScreen
|
|
40
43
|
actions={
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
<>
|
|
45
|
+
<TemplateActions
|
|
46
|
+
postType={ postType }
|
|
47
|
+
postId={ postId }
|
|
48
|
+
toggleProps={ { as: SidebarButton } }
|
|
49
|
+
onRemove={ () => {
|
|
50
|
+
navigator.goTo( backPath );
|
|
51
|
+
} }
|
|
52
|
+
/>
|
|
53
|
+
<SidebarButton
|
|
54
|
+
onClick={ () => setCanvasMode( 'edit' ) }
|
|
55
|
+
label={ __( 'Edit' ) }
|
|
56
|
+
icon={ pencil }
|
|
57
|
+
/>
|
|
58
|
+
</>
|
|
46
59
|
}
|
|
47
60
|
backPath={ backPath }
|
|
48
61
|
{ ...patternDetails }
|
|
@@ -35,10 +35,16 @@ export default function usePatternDetails( postType, postId ) {
|
|
|
35
35
|
select( editorStore ).__experimentalGetDefaultTemplatePartAreas(),
|
|
36
36
|
[]
|
|
37
37
|
);
|
|
38
|
-
const currentTheme = useSelect(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
const { currentTheme, userPatternCategories } = useSelect( ( select ) => {
|
|
39
|
+
const { getCurrentTheme, getUserPatternCategories } =
|
|
40
|
+
select( coreStore );
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
currentTheme: getCurrentTheme(),
|
|
44
|
+
userPatternCategories: getUserPatternCategories(),
|
|
45
|
+
};
|
|
46
|
+
}, [] );
|
|
47
|
+
|
|
42
48
|
const addedBy = useAddedBy( postType, postId );
|
|
43
49
|
const isAddedByActiveTheme =
|
|
44
50
|
addedBy.type === 'theme' && record.theme === currentTheme?.stylesheet;
|
|
@@ -46,11 +52,18 @@ export default function usePatternDetails( postType, postId ) {
|
|
|
46
52
|
let description = getDescription();
|
|
47
53
|
|
|
48
54
|
if ( ! description && addedBy.text ) {
|
|
49
|
-
description =
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
55
|
+
description =
|
|
56
|
+
postType === 'wp_block'
|
|
57
|
+
? sprintf(
|
|
58
|
+
// translators: %s: pattern title e.g: "Header".
|
|
59
|
+
__( 'This is the %s pattern.' ),
|
|
60
|
+
getTitle()
|
|
61
|
+
)
|
|
62
|
+
: sprintf(
|
|
63
|
+
// translators: %s: template part title e.g: "Header".
|
|
64
|
+
__( 'This is the %s template part.' ),
|
|
65
|
+
getTitle()
|
|
66
|
+
);
|
|
54
67
|
}
|
|
55
68
|
|
|
56
69
|
if ( ! description && postType === 'wp_block' && record?.title ) {
|
|
@@ -61,10 +74,8 @@ export default function usePatternDetails( postType, postId ) {
|
|
|
61
74
|
);
|
|
62
75
|
}
|
|
63
76
|
|
|
64
|
-
const footer =
|
|
65
|
-
<SidebarNavigationScreenDetailsFooter
|
|
66
|
-
lastModifiedDateTime={ record.modified }
|
|
67
|
-
/>
|
|
77
|
+
const footer = record?.modified ? (
|
|
78
|
+
<SidebarNavigationScreenDetailsFooter record={ record } />
|
|
68
79
|
) : null;
|
|
69
80
|
|
|
70
81
|
const details = [];
|
|
@@ -77,6 +88,28 @@ export default function usePatternDetails( postType, postId ) {
|
|
|
77
88
|
? __( 'Not synced' )
|
|
78
89
|
: __( 'Fully synced' ),
|
|
79
90
|
} );
|
|
91
|
+
|
|
92
|
+
if ( record.wp_pattern_category?.length === 0 ) {
|
|
93
|
+
details.push( {
|
|
94
|
+
label: __( 'Categories' ),
|
|
95
|
+
value: __( 'Uncategorized' ),
|
|
96
|
+
} );
|
|
97
|
+
}
|
|
98
|
+
if ( record.wp_pattern_category?.length > 0 ) {
|
|
99
|
+
const patternCategories = new Map();
|
|
100
|
+
userPatternCategories.forEach( ( userCategory ) =>
|
|
101
|
+
patternCategories.set( userCategory.id, userCategory )
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
const categories = record.wp_pattern_category
|
|
105
|
+
.filter( ( category ) => patternCategories.get( category ) )
|
|
106
|
+
.map( ( category ) => patternCategories.get( category ).label );
|
|
107
|
+
|
|
108
|
+
details.push( {
|
|
109
|
+
label: __( 'Categories' ),
|
|
110
|
+
value: categories.length > 0 ? categories.join( ', ' ) : '',
|
|
111
|
+
} );
|
|
112
|
+
}
|
|
80
113
|
}
|
|
81
114
|
|
|
82
115
|
if ( postType === 'wp_template_part' ) {
|
|
@@ -4,16 +4,13 @@
|
|
|
4
4
|
import {
|
|
5
5
|
__experimentalItemGroup as ItemGroup,
|
|
6
6
|
__experimentalItem as Item,
|
|
7
|
-
Flex,
|
|
8
|
-
Icon,
|
|
9
|
-
Tooltip,
|
|
10
7
|
__experimentalHeading as Heading,
|
|
11
8
|
} from '@wordpress/components';
|
|
12
9
|
import { useViewportMatch } from '@wordpress/compose';
|
|
13
10
|
import { getTemplatePartIcon } from '@wordpress/editor';
|
|
14
|
-
import { __
|
|
11
|
+
import { __ } from '@wordpress/i18n';
|
|
15
12
|
import { getQueryArgs } from '@wordpress/url';
|
|
16
|
-
import { file
|
|
13
|
+
import { file } from '@wordpress/icons';
|
|
17
14
|
|
|
18
15
|
/**
|
|
19
16
|
* Internal dependencies
|
|
@@ -22,10 +19,9 @@ import AddNewPattern from '../add-new-pattern';
|
|
|
22
19
|
import SidebarNavigationItem from '../sidebar-navigation-item';
|
|
23
20
|
import SidebarNavigationScreen from '../sidebar-navigation-screen';
|
|
24
21
|
import CategoryItem from './category-item';
|
|
25
|
-
import {
|
|
22
|
+
import { PATTERN_DEFAULT_CATEGORY, PATTERN_TYPES } from '../../utils/constants';
|
|
26
23
|
import { useLink } from '../routes/link';
|
|
27
24
|
import usePatternCategories from './use-pattern-categories';
|
|
28
|
-
import useMyPatterns from './use-my-patterns';
|
|
29
25
|
import useTemplatePartAreas from './use-template-part-areas';
|
|
30
26
|
|
|
31
27
|
function TemplatePartGroup( { areas, currentArea, currentType } ) {
|
|
@@ -56,7 +52,11 @@ function TemplatePartGroup( { areas, currentArea, currentType } ) {
|
|
|
56
52
|
);
|
|
57
53
|
}
|
|
58
54
|
|
|
59
|
-
function
|
|
55
|
+
function PatternCategoriesGroup( {
|
|
56
|
+
categories,
|
|
57
|
+
currentCategory,
|
|
58
|
+
currentType,
|
|
59
|
+
} ) {
|
|
60
60
|
return (
|
|
61
61
|
<>
|
|
62
62
|
<ItemGroup className="edit-site-sidebar-navigation-screen-patterns__group">
|
|
@@ -64,29 +64,14 @@ function ThemePatternsGroup( { categories, currentCategory, currentType } ) {
|
|
|
64
64
|
<CategoryItem
|
|
65
65
|
key={ category.name }
|
|
66
66
|
count={ category.count }
|
|
67
|
-
label={
|
|
68
|
-
<Flex justify="left" align="center" gap={ 0 }>
|
|
69
|
-
{ category.label }
|
|
70
|
-
<Tooltip
|
|
71
|
-
position="top center"
|
|
72
|
-
text={ sprintf(
|
|
73
|
-
// translators: %s: The pattern category name.
|
|
74
|
-
'"%s" patterns cannot be edited.',
|
|
75
|
-
category.label
|
|
76
|
-
) }
|
|
77
|
-
>
|
|
78
|
-
<span className="edit-site-sidebar-navigation-screen-pattern__lock-icon">
|
|
79
|
-
<Icon icon={ lockSmall } size={ 24 } />
|
|
80
|
-
</span>
|
|
81
|
-
</Tooltip>
|
|
82
|
-
</Flex>
|
|
83
|
-
}
|
|
67
|
+
label={ category.label }
|
|
84
68
|
icon={ file }
|
|
85
69
|
id={ category.name }
|
|
86
70
|
type="pattern"
|
|
87
71
|
isActive={
|
|
88
72
|
currentCategory === `${ category.name }` &&
|
|
89
|
-
currentType ===
|
|
73
|
+
( currentType === PATTERN_TYPES.theme ||
|
|
74
|
+
currentType === PATTERN_TYPES.user )
|
|
90
75
|
}
|
|
91
76
|
/>
|
|
92
77
|
) ) }
|
|
@@ -98,13 +83,12 @@ function ThemePatternsGroup( { categories, currentCategory, currentType } ) {
|
|
|
98
83
|
export default function SidebarNavigationScreenPatterns() {
|
|
99
84
|
const isMobileViewport = useViewportMatch( 'medium', '<' );
|
|
100
85
|
const { categoryType, categoryId } = getQueryArgs( window.location.href );
|
|
101
|
-
const currentCategory = categoryId ||
|
|
102
|
-
const currentType = categoryType ||
|
|
86
|
+
const currentCategory = categoryId || PATTERN_DEFAULT_CATEGORY;
|
|
87
|
+
const currentType = categoryType || PATTERN_TYPES.user;
|
|
103
88
|
|
|
104
89
|
const { templatePartAreas, hasTemplateParts, isLoading } =
|
|
105
90
|
useTemplatePartAreas();
|
|
106
91
|
const { patternCategories, hasPatterns } = usePatternCategories();
|
|
107
|
-
const { myPatterns } = useMyPatterns();
|
|
108
92
|
|
|
109
93
|
const templatePartsLink = useLink( { path: '/wp_template_part/all' } );
|
|
110
94
|
const footer = ! isMobileViewport ? (
|
|
@@ -144,27 +128,8 @@ export default function SidebarNavigationScreenPatterns() {
|
|
|
144
128
|
</Item>
|
|
145
129
|
</ItemGroup>
|
|
146
130
|
) }
|
|
147
|
-
<ItemGroup className="edit-site-sidebar-navigation-screen-patterns__group">
|
|
148
|
-
<CategoryItem
|
|
149
|
-
key={ myPatterns.name }
|
|
150
|
-
count={
|
|
151
|
-
! myPatterns.count
|
|
152
|
-
? '0'
|
|
153
|
-
: myPatterns.count
|
|
154
|
-
}
|
|
155
|
-
label={ myPatterns.label }
|
|
156
|
-
icon={ starFilled }
|
|
157
|
-
id={ myPatterns.name }
|
|
158
|
-
type="wp_block"
|
|
159
|
-
isActive={
|
|
160
|
-
currentCategory ===
|
|
161
|
-
`${ myPatterns.name }` &&
|
|
162
|
-
currentType === 'wp_block'
|
|
163
|
-
}
|
|
164
|
-
/>
|
|
165
|
-
</ItemGroup>
|
|
166
131
|
{ hasPatterns && (
|
|
167
|
-
<
|
|
132
|
+
<PatternCategoriesGroup
|
|
168
133
|
categories={ patternCategories }
|
|
169
134
|
currentCategory={ currentCategory }
|
|
170
135
|
currentType={ currentType }
|
|
@@ -9,6 +9,8 @@ import { __ } from '@wordpress/i18n';
|
|
|
9
9
|
*/
|
|
10
10
|
import useDefaultPatternCategories from './use-default-pattern-categories';
|
|
11
11
|
import useThemePatterns from './use-theme-patterns';
|
|
12
|
+
import usePatterns from '../page-patterns/use-patterns';
|
|
13
|
+
import { PATTERN_TYPES, PATTERN_DEFAULT_CATEGORY } from '../../utils/constants';
|
|
12
14
|
|
|
13
15
|
export default function usePatternCategories() {
|
|
14
16
|
const defaultCategories = useDefaultPatternCategories();
|
|
@@ -17,6 +19,8 @@ export default function usePatternCategories() {
|
|
|
17
19
|
label: __( 'Uncategorized' ),
|
|
18
20
|
} );
|
|
19
21
|
const themePatterns = useThemePatterns();
|
|
22
|
+
const { patterns: userPatterns, categories: userPatternCategories } =
|
|
23
|
+
usePatterns( PATTERN_TYPES.user );
|
|
20
24
|
|
|
21
25
|
const patternCategories = useMemo( () => {
|
|
22
26
|
const categoryMap = {};
|
|
@@ -28,6 +32,11 @@ export default function usePatternCategories() {
|
|
|
28
32
|
categoryMap[ category.name ] = { ...category, count: 0 };
|
|
29
33
|
}
|
|
30
34
|
} );
|
|
35
|
+
userPatternCategories.forEach( ( category ) => {
|
|
36
|
+
if ( ! categoryMap[ category.name ] ) {
|
|
37
|
+
categoryMap[ category.name ] = { ...category, count: 0 };
|
|
38
|
+
}
|
|
39
|
+
} );
|
|
31
40
|
|
|
32
41
|
// Update the category counts to reflect theme registered patterns.
|
|
33
42
|
themePatterns.forEach( ( pattern ) => {
|
|
@@ -42,15 +51,48 @@ export default function usePatternCategories() {
|
|
|
42
51
|
}
|
|
43
52
|
} );
|
|
44
53
|
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
// Update the category counts to reflect user registered patterns.
|
|
55
|
+
userPatterns.forEach( ( pattern ) => {
|
|
56
|
+
pattern.categories?.forEach( ( category ) => {
|
|
57
|
+
if ( categoryMap[ category ] ) {
|
|
58
|
+
categoryMap[ category ].count += 1;
|
|
59
|
+
}
|
|
60
|
+
} );
|
|
61
|
+
// If the pattern has no categories, add it to uncategorized.
|
|
62
|
+
if ( ! pattern.categories?.length ) {
|
|
63
|
+
categoryMap.uncategorized.count += 1;
|
|
49
64
|
}
|
|
50
65
|
} );
|
|
51
66
|
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
// Filter categories so we only have those containing patterns.
|
|
68
|
+
[ ...defaultCategories, ...userPatternCategories ].forEach(
|
|
69
|
+
( category ) => {
|
|
70
|
+
if (
|
|
71
|
+
categoryMap[ category.name ].count &&
|
|
72
|
+
! categoriesWithCounts.find(
|
|
73
|
+
( cat ) => cat.name === category.name
|
|
74
|
+
)
|
|
75
|
+
) {
|
|
76
|
+
categoriesWithCounts.push( categoryMap[ category.name ] );
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
);
|
|
80
|
+
const sortedCategories = categoriesWithCounts.sort( ( a, b ) =>
|
|
81
|
+
a.label.localeCompare( b.label )
|
|
82
|
+
);
|
|
83
|
+
sortedCategories.unshift( {
|
|
84
|
+
name: PATTERN_DEFAULT_CATEGORY,
|
|
85
|
+
label: __( 'All Patterns' ),
|
|
86
|
+
description: __( 'A list of all patterns from all sources' ),
|
|
87
|
+
count: themePatterns.length + userPatterns.length,
|
|
88
|
+
} );
|
|
89
|
+
return sortedCategories;
|
|
90
|
+
}, [
|
|
91
|
+
defaultCategories,
|
|
92
|
+
themePatterns,
|
|
93
|
+
userPatternCategories,
|
|
94
|
+
userPatterns,
|
|
95
|
+
] );
|
|
54
96
|
|
|
55
97
|
return { patternCategories, hasPatterns: !! patternCategories.length };
|
|
56
98
|
}
|
|
@@ -8,10 +8,8 @@ import { useMemo } from '@wordpress/element';
|
|
|
8
8
|
/**
|
|
9
9
|
* Internal dependencies
|
|
10
10
|
*/
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
filterOutDuplicatesByName,
|
|
14
|
-
} from '../page-patterns/utils';
|
|
11
|
+
import { filterOutDuplicatesByName } from '../page-patterns/utils';
|
|
12
|
+
import { PATTERN_CORE_SOURCES } from '../../utils/constants';
|
|
15
13
|
import { unlock } from '../../lock-unlock';
|
|
16
14
|
import { store as editSiteStore } from '../../store';
|
|
17
15
|
|
|
@@ -34,7 +32,7 @@ export default function useThemePatterns() {
|
|
|
34
32
|
[ ...( blockPatterns || [] ), ...( restBlockPatterns || [] ) ]
|
|
35
33
|
.filter(
|
|
36
34
|
( pattern ) =>
|
|
37
|
-
!
|
|
35
|
+
! PATTERN_CORE_SOURCES.includes( pattern.source )
|
|
38
36
|
)
|
|
39
37
|
.filter( filterOutDuplicatesByName )
|
|
40
38
|
.filter( ( pattern ) => pattern.inserter !== false ),
|
|
@@ -48,10 +48,8 @@ function useTemplateDetails( postType, postId ) {
|
|
|
48
48
|
<HomeTemplateDetails />
|
|
49
49
|
) : null;
|
|
50
50
|
|
|
51
|
-
const footer =
|
|
52
|
-
<SidebarNavigationScreenDetailsFooter
|
|
53
|
-
lastModifiedDateTime={ record.modified }
|
|
54
|
-
/>
|
|
51
|
+
const footer = record?.modified ? (
|
|
52
|
+
<SidebarNavigationScreenDetailsFooter record={ record } />
|
|
55
53
|
) : null;
|
|
56
54
|
|
|
57
55
|
const description = (
|
|
@@ -49,7 +49,7 @@ export default function SidebarNavigationScreenTemplates() {
|
|
|
49
49
|
<SidebarNavigationScreen
|
|
50
50
|
title={ __( 'Templates' ) }
|
|
51
51
|
description={ __(
|
|
52
|
-
'Express the layout of your site with templates'
|
|
52
|
+
'Express the layout of your site with templates.'
|
|
53
53
|
) }
|
|
54
54
|
actions={
|
|
55
55
|
canCreate && (
|
|
@@ -67,10 +67,16 @@ export default function TemplateActions( {
|
|
|
67
67
|
}
|
|
68
68
|
);
|
|
69
69
|
} catch ( error ) {
|
|
70
|
+
const fallbackErrorMessage =
|
|
71
|
+
template.type === 'wp_template'
|
|
72
|
+
? __( 'An error occurred while reverting the template.' )
|
|
73
|
+
: __(
|
|
74
|
+
'An error occurred while reverting the template part.'
|
|
75
|
+
);
|
|
70
76
|
const errorMessage =
|
|
71
77
|
error.message && error.code !== 'unknown_error'
|
|
72
78
|
? error.message
|
|
73
|
-
:
|
|
79
|
+
: fallbackErrorMessage;
|
|
74
80
|
|
|
75
81
|
createErrorNotice( errorMessage, { type: 'snackbar' } );
|
|
76
82
|
}
|
|
@@ -97,7 +103,7 @@ export default function TemplateActions( {
|
|
|
97
103
|
onRemove?.();
|
|
98
104
|
onClose();
|
|
99
105
|
} }
|
|
100
|
-
|
|
106
|
+
title={ template.title.rendered }
|
|
101
107
|
/>
|
|
102
108
|
</>
|
|
103
109
|
) }
|
|
@@ -120,7 +126,7 @@ export default function TemplateActions( {
|
|
|
120
126
|
);
|
|
121
127
|
}
|
|
122
128
|
|
|
123
|
-
function DeleteMenuItem( { onRemove,
|
|
129
|
+
function DeleteMenuItem( { onRemove, title } ) {
|
|
124
130
|
const [ isModalOpen, setIsModalOpen ] = useState( false );
|
|
125
131
|
return (
|
|
126
132
|
<>
|
|
@@ -133,11 +139,11 @@ function DeleteMenuItem( { onRemove, isTemplate } ) {
|
|
|
133
139
|
onCancel={ () => setIsModalOpen( false ) }
|
|
134
140
|
confirmButtonText={ __( 'Delete' ) }
|
|
135
141
|
>
|
|
136
|
-
{
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
142
|
+
{ sprintf(
|
|
143
|
+
// translators: %s: The template or template part's title.
|
|
144
|
+
__( 'Are you sure you want to delete "%s"?' ),
|
|
145
|
+
decodeEntities( title )
|
|
146
|
+
) }
|
|
141
147
|
</ConfirmDialog>
|
|
142
148
|
</>
|
|
143
149
|
);
|
|
@@ -56,14 +56,25 @@ export default function RenameMenuItem( { template, onClose } ) {
|
|
|
56
56
|
}
|
|
57
57
|
);
|
|
58
58
|
|
|
59
|
-
createSuccessNotice(
|
|
60
|
-
type
|
|
61
|
-
|
|
59
|
+
createSuccessNotice(
|
|
60
|
+
template.type === 'wp_template'
|
|
61
|
+
? __( 'Template renamed.' )
|
|
62
|
+
: __( 'Template part renamed.' ),
|
|
63
|
+
{
|
|
64
|
+
type: 'snackbar',
|
|
65
|
+
}
|
|
66
|
+
);
|
|
62
67
|
} catch ( error ) {
|
|
68
|
+
const fallbackErrorMessage =
|
|
69
|
+
template.type === 'wp_template'
|
|
70
|
+
? __( 'An error occurred while renaming the template.' )
|
|
71
|
+
: __(
|
|
72
|
+
'An error occurred while renaming the template part.'
|
|
73
|
+
);
|
|
63
74
|
const errorMessage =
|
|
64
75
|
error.message && error.code !== 'unknown_error'
|
|
65
76
|
? error.message
|
|
66
|
-
:
|
|
77
|
+
: fallbackErrorMessage;
|
|
67
78
|
|
|
68
79
|
createErrorNotice( errorMessage, { type: 'snackbar' } );
|
|
69
80
|
}
|
|
@@ -77,7 +77,7 @@ export default function WelcomeGuideStyles() {
|
|
|
77
77
|
</h1>
|
|
78
78
|
<p className="edit-site-welcome-guide__text">
|
|
79
79
|
{ __(
|
|
80
|
-
'You can customize your site as much as you like with different colors, typography, and layouts. Or if you prefer, just leave it up to your theme to handle!
|
|
80
|
+
'You can customize your site as much as you like with different colors, typography, and layouts. Or if you prefer, just leave it up to your theme to handle!'
|
|
81
81
|
) }
|
|
82
82
|
</p>
|
|
83
83
|
</>
|
|
@@ -117,7 +117,7 @@ export default function WelcomeGuideStyles() {
|
|
|
117
117
|
</h1>
|
|
118
118
|
<p className="edit-site-welcome-guide__text">
|
|
119
119
|
{ __(
|
|
120
|
-
'New to block themes and styling your site?
|
|
120
|
+
'New to block themes and styling your site?'
|
|
121
121
|
) }
|
|
122
122
|
<ExternalLink
|
|
123
123
|
href={ __(
|
|
@@ -26,12 +26,9 @@ import { store as noticesStore } from '@wordpress/notices';
|
|
|
26
26
|
import { useSupportedStyles } from '../../components/global-styles/hooks';
|
|
27
27
|
import { unlock } from '../../lock-unlock';
|
|
28
28
|
|
|
29
|
-
const {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
__experimentalUseGlobalBehaviors: useGlobalBehaviors,
|
|
33
|
-
__experimentalUseHasBehaviorsPanel: useHasBehaviorsPanel,
|
|
34
|
-
} = unlock( blockEditorPrivateApis );
|
|
29
|
+
const { cleanEmptyObject, GlobalStylesContext } = unlock(
|
|
30
|
+
blockEditorPrivateApis
|
|
31
|
+
);
|
|
35
32
|
|
|
36
33
|
// Block Gap is a special case and isn't defined within the blocks
|
|
37
34
|
// style properties config. We'll add it here to allow it to be pushed
|
|
@@ -286,10 +283,6 @@ function PushChangesToGlobalStylesControl( {
|
|
|
286
283
|
attributes,
|
|
287
284
|
setAttributes,
|
|
288
285
|
} ) {
|
|
289
|
-
const hasBehaviorsPanel = useHasBehaviorsPanel( attributes, name, {
|
|
290
|
-
blockSupportOnly: true,
|
|
291
|
-
} );
|
|
292
|
-
|
|
293
286
|
const { user: userConfig, setUserConfig } =
|
|
294
287
|
useContext( GlobalStylesContext );
|
|
295
288
|
|
|
@@ -299,13 +292,8 @@ function PushChangesToGlobalStylesControl( {
|
|
|
299
292
|
useDispatch( blockEditorStore );
|
|
300
293
|
const { createSuccessNotice } = useDispatch( noticesStore );
|
|
301
294
|
|
|
302
|
-
const { inheritedBehaviors, setBehavior } = useGlobalBehaviors( name );
|
|
303
|
-
|
|
304
|
-
const userHasEditedBehaviors =
|
|
305
|
-
attributes.hasOwnProperty( 'behaviors' ) && hasBehaviorsPanel;
|
|
306
|
-
|
|
307
295
|
const pushChanges = useCallback( () => {
|
|
308
|
-
if ( changes.length === 0
|
|
296
|
+
if ( changes.length === 0 ) {
|
|
309
297
|
return;
|
|
310
298
|
}
|
|
311
299
|
|
|
@@ -364,46 +352,15 @@ function PushChangesToGlobalStylesControl( {
|
|
|
364
352
|
}
|
|
365
353
|
);
|
|
366
354
|
}
|
|
367
|
-
|
|
368
|
-
if ( userHasEditedBehaviors ) {
|
|
369
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
370
|
-
setAttributes( { behaviors: undefined } );
|
|
371
|
-
setBehavior( attributes.behaviors );
|
|
372
|
-
createSuccessNotice(
|
|
373
|
-
sprintf(
|
|
374
|
-
// translators: %s: Title of the block e.g. 'Heading'.
|
|
375
|
-
__( '%s behaviors applied.' ),
|
|
376
|
-
getBlockType( name ).title
|
|
377
|
-
),
|
|
378
|
-
{
|
|
379
|
-
type: 'snackbar',
|
|
380
|
-
actions: [
|
|
381
|
-
{
|
|
382
|
-
label: __( 'Undo' ),
|
|
383
|
-
onClick() {
|
|
384
|
-
__unstableMarkNextChangeAsNotPersistent();
|
|
385
|
-
setBehavior( inheritedBehaviors );
|
|
386
|
-
setUserConfig( () => userConfig, {
|
|
387
|
-
undoIgnore: true,
|
|
388
|
-
} );
|
|
389
|
-
},
|
|
390
|
-
},
|
|
391
|
-
],
|
|
392
|
-
}
|
|
393
|
-
);
|
|
394
|
-
}
|
|
395
355
|
}, [
|
|
396
356
|
__unstableMarkNextChangeAsNotPersistent,
|
|
397
357
|
attributes,
|
|
398
358
|
changes,
|
|
399
359
|
createSuccessNotice,
|
|
400
|
-
inheritedBehaviors,
|
|
401
360
|
name,
|
|
402
361
|
setAttributes,
|
|
403
|
-
setBehavior,
|
|
404
362
|
setUserConfig,
|
|
405
363
|
userConfig,
|
|
406
|
-
userHasEditedBehaviors,
|
|
407
364
|
] );
|
|
408
365
|
|
|
409
366
|
return (
|
|
@@ -412,7 +369,7 @@ function PushChangesToGlobalStylesControl( {
|
|
|
412
369
|
help={ sprintf(
|
|
413
370
|
// translators: %s: Title of the block e.g. 'Heading'.
|
|
414
371
|
__(
|
|
415
|
-
'Apply this block’s typography, spacing, dimensions, color styles
|
|
372
|
+
'Apply this block’s typography, spacing, dimensions, and color styles to all %s blocks.'
|
|
416
373
|
),
|
|
417
374
|
getBlockType( name ).title
|
|
418
375
|
) }
|
|
@@ -422,7 +379,7 @@ function PushChangesToGlobalStylesControl( {
|
|
|
422
379
|
</BaseControl.VisualLabel>
|
|
423
380
|
<Button
|
|
424
381
|
variant="primary"
|
|
425
|
-
disabled={ changes.length === 0
|
|
382
|
+
disabled={ changes.length === 0 }
|
|
426
383
|
onClick={ pushChanges }
|
|
427
384
|
>
|
|
428
385
|
{ __( 'Apply globally' ) }
|
package/src/store/actions.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import apiFetch from '@wordpress/api-fetch';
|
|
5
5
|
import { parse, __unstableSerializeAndClean } from '@wordpress/blocks';
|
|
6
6
|
import deprecated from '@wordpress/deprecated';
|
|
7
|
-
import { addQueryArgs
|
|
7
|
+
import { addQueryArgs } from '@wordpress/url';
|
|
8
8
|
import { __, sprintf } from '@wordpress/i18n';
|
|
9
9
|
import { store as noticesStore } from '@wordpress/notices';
|
|
10
10
|
import { store as coreStore } from '@wordpress/core-data';
|
|
@@ -233,7 +233,7 @@ export function setHomeTemplateId() {
|
|
|
233
233
|
*
|
|
234
234
|
* @param {Object} context The context object.
|
|
235
235
|
*
|
|
236
|
-
* @return {
|
|
236
|
+
* @return {Object} Action object.
|
|
237
237
|
*/
|
|
238
238
|
export function setEditedPostContext( context ) {
|
|
239
239
|
return {
|
|
@@ -257,22 +257,48 @@ export function setEditedPostContext( context ) {
|
|
|
257
257
|
export const setPage =
|
|
258
258
|
( page ) =>
|
|
259
259
|
async ( { dispatch, registry } ) => {
|
|
260
|
-
|
|
261
|
-
|
|
260
|
+
let template;
|
|
261
|
+
const getDefaultTemplate = async ( slug ) =>
|
|
262
|
+
apiFetch( {
|
|
263
|
+
path: addQueryArgs( '/wp/v2/templates/lookup', {
|
|
264
|
+
slug: `page-${ slug }`,
|
|
265
|
+
} ),
|
|
266
|
+
} );
|
|
267
|
+
|
|
268
|
+
if ( page.path ) {
|
|
269
|
+
template = await registry
|
|
270
|
+
.resolveSelect( coreStore )
|
|
271
|
+
.__experimentalGetTemplateForLink( page.path );
|
|
272
|
+
} else {
|
|
273
|
+
const editedEntity = await registry
|
|
262
274
|
.resolveSelect( coreStore )
|
|
263
|
-
.
|
|
275
|
+
.getEditedEntityRecord(
|
|
264
276
|
'postType',
|
|
265
|
-
page.context
|
|
266
|
-
page.context
|
|
277
|
+
page.context?.postType || 'post',
|
|
278
|
+
page.context?.postId
|
|
267
279
|
);
|
|
268
|
-
|
|
269
|
-
|
|
280
|
+
const currentTemplateSlug = editedEntity?.template;
|
|
281
|
+
if ( currentTemplateSlug ) {
|
|
282
|
+
const currentTemplate = (
|
|
283
|
+
await registry
|
|
284
|
+
.resolveSelect( coreStore )
|
|
285
|
+
.getEntityRecords( 'postType', 'wp_template', {
|
|
286
|
+
per_page: -1,
|
|
287
|
+
} )
|
|
288
|
+
)?.find( ( { slug } ) => slug === currentTemplateSlug );
|
|
289
|
+
if ( currentTemplate ) {
|
|
290
|
+
template = currentTemplate;
|
|
291
|
+
} else {
|
|
292
|
+
// If a page has a `template` set and is not included in the list
|
|
293
|
+
// of the current theme's templates, query for current theme's default template.
|
|
294
|
+
template = await getDefaultTemplate( editedEntity?.slug );
|
|
295
|
+
}
|
|
296
|
+
} else {
|
|
297
|
+
// Page's `template` is empty, that indicates we need to use the default template for the page.
|
|
298
|
+
template = await getDefaultTemplate( editedEntity?.slug );
|
|
299
|
+
}
|
|
270
300
|
}
|
|
271
301
|
|
|
272
|
-
const template = await registry
|
|
273
|
-
.resolveSelect( coreStore )
|
|
274
|
-
.__experimentalGetTemplateForLink( page.path );
|
|
275
|
-
|
|
276
302
|
if ( ! template ) {
|
|
277
303
|
return;
|
|
278
304
|
}
|