@wordpress/edit-site 5.18.1-next.5a1d1283.0 → 5.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/add-new-pattern/index.js +65 -4
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/add-new-template/index.js +3 -2
- package/build/components/add-new-template/index.js.map +1 -1
- package/build/components/add-new-template/new-template.js +6 -1
- package/build/components/add-new-template/new-template.js.map +1 -1
- package/build/components/add-new-template/utils.js +6 -1
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/app/index.js +2 -7
- package/build/components/app/index.js.map +1 -1
- package/build/components/block-editor/back-button.js +3 -2
- package/build/components/block-editor/back-button.js.map +1 -1
- package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js +73 -0
- package/build/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
- package/build/components/block-editor/block-editor-provider/index.js +31 -0
- package/build/components/block-editor/block-editor-provider/index.js.map +1 -0
- package/build/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
- package/build/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
- package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js +76 -0
- package/build/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
- package/build/components/block-editor/editor-canvas.js +20 -16
- package/build/components/block-editor/editor-canvas.js.map +1 -1
- package/build/components/block-editor/index.js +2 -9
- package/build/components/block-editor/index.js.map +1 -1
- package/build/components/block-editor/site-editor-canvas.js +2 -4
- package/build/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js +8 -4
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/canvas-loader/index.js +18 -1
- package/build/components/canvas-loader/index.js.map +1 -1
- package/build/components/create-template-part-modal/index.js +8 -12
- package/build/components/create-template-part-modal/index.js.map +1 -1
- package/build/components/editor/index.js +7 -9
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +5 -4
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/font-families.js +68 -0
- package/build/components/global-styles/font-families.js.map +1 -0
- package/build/components/global-styles/font-family-item.js +47 -0
- package/build/components/global-styles/font-family-item.js.map +1 -0
- package/build/components/global-styles/font-library-modal/collection-font-details.js +49 -0
- package/build/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
- package/build/components/global-styles/font-library-modal/collection-font-variant.js +55 -0
- package/build/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
- package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +31 -0
- package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
- package/build/components/global-styles/font-library-modal/context.js +309 -0
- package/build/components/global-styles/font-library-modal/context.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-card.js +61 -0
- package/build/components/global-styles/font-library-modal/font-card.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-collection.js +172 -0
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-demo.js +86 -0
- package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-variant.js +51 -0
- package/build/components/global-styles/font-library-modal/font-variant.js.map +1 -0
- package/build/components/global-styles/font-library-modal/fonts-grid.js +54 -0
- package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
- package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +41 -0
- package/build/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
- package/build/components/global-styles/font-library-modal/index.js +65 -0
- package/build/components/global-styles/font-library-modal/index.js.map +1 -0
- package/build/components/global-styles/font-library-modal/installed-fonts.js +128 -0
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
- package/build/components/global-styles/font-library-modal/library-font-card.js +39 -0
- package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
- package/build/components/global-styles/font-library-modal/library-font-details.js +44 -0
- package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
- package/build/components/global-styles/font-library-modal/library-font-variant.js +59 -0
- package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
- package/build/components/global-styles/font-library-modal/local-fonts.js +143 -0
- package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
- package/build/components/global-styles/font-library-modal/resolvers.js +53 -0
- package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -0
- package/build/components/global-styles/font-library-modal/tab-layout.js +45 -0
- package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/constants.js +31 -0
- package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js +21 -0
- package/build/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/fonts-outline.js +20 -0
- package/build/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/index.js +155 -0
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js +22 -0
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js +76 -0
- package/build/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js +36 -0
- package/build/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/toggleFont.js +92 -0
- package/build/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
- package/build/components/global-styles/global-styles-provider.js +7 -12
- package/build/components/global-styles/global-styles-provider.js.map +1 -1
- package/build/components/global-styles/screen-block.js +34 -21
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-revisions/index.js +1 -3
- package/build/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +4 -72
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/style-variations-container.js +3 -5
- package/build/components/global-styles/style-variations-container.js.map +1 -1
- package/build/components/global-styles/typogrphy-elements.js +96 -0
- package/build/components/global-styles/typogrphy-elements.js.map +1 -0
- package/build/components/header-edit-mode/document-actions/index.js +9 -8
- package/build/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build/components/header-edit-mode/index.js +4 -1
- package/build/components/header-edit-mode/index.js.map +1 -1
- package/build/components/layout/index.js +5 -1
- package/build/components/layout/index.js.map +1 -1
- package/build/components/list/added-by.js +13 -8
- package/build/components/list/added-by.js.map +1 -1
- package/build/components/list/index.js +2 -1
- package/build/components/list/index.js.map +1 -1
- package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
- package/build/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
- package/build/components/page-patterns/duplicate-menu-item.js +56 -20
- package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build/components/page-patterns/grid-item.js +48 -22
- package/build/components/page-patterns/grid-item.js.map +1 -1
- package/build/components/page-patterns/header.js +3 -7
- package/build/components/page-patterns/header.js.map +1 -1
- package/build/components/page-patterns/index.js +3 -3
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/patterns-list.js +7 -7
- package/build/components/page-patterns/patterns-list.js.map +1 -1
- package/build/components/page-patterns/rename-menu-item.js +6 -5
- package/build/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build/components/page-patterns/search-items.js +8 -2
- package/build/components/page-patterns/search-items.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +71 -51
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-patterns/utils.js +1 -20
- package/build/components/page-patterns/utils.js.map +1 -1
- package/build/components/page-template-parts/add-new-template-part.js +3 -2
- package/build/components/page-template-parts/add-new-template-part.js.map +1 -1
- package/build/components/page-template-parts/index.js +2 -1
- package/build/components/page-template-parts/index.js.map +1 -1
- package/build/components/page-templates/index.js +3 -2
- package/build/components/page-templates/index.js.map +1 -1
- package/build/components/save-hub/index.js +2 -1
- package/build/components/save-hub/index.js.map +1 -1
- package/build/components/secondary-sidebar/list-view-sidebar.js +24 -17
- package/build/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js +53 -26
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/hooks.js +65 -0
- package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
- package/build/components/sidebar-edit-mode/page-panels/index.js +1 -4
- package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +56 -0
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
- package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +91 -0
- package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
- package/build/components/sidebar-edit-mode/settings-header/index.js +2 -6
- package/build/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/index.js +11 -9
- package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js +6 -4
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +218 -0
- package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
- package/build/components/sidebar-navigation-screen/index.js +6 -4
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-footer/index.js +32 -4
- package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
- package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.js +4 -31
- package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +2 -1
- package/build/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
- package/build/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/index.js +3 -3
- package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/page-details.js +2 -1
- package/build/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pages/index.js +5 -4
- package/build/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/index.js +20 -9
- package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
- package/build/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
- package/build/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +41 -11
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js +9 -37
- package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +44 -5
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
- package/build/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -1
- package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
- package/build/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
- package/build/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-template/index.js +2 -2
- package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates/index.js +5 -4
- package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
- package/build/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build/components/start-template-options/index.js +20 -2
- package/build/components/start-template-options/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
- package/build/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build/components/template-actions/index.js +8 -4
- package/build/components/template-actions/index.js.map +1 -1
- package/build/components/template-actions/rename-menu-item.js +9 -3
- package/build/components/template-actions/rename-menu-item.js.map +1 -1
- package/build/components/welcome-guide/styles.js +2 -2
- package/build/components/welcome-guide/styles.js.map +1 -1
- package/build/hooks/commands/use-edit-mode-commands.js +4 -3
- package/build/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build/hooks/navigation-menu-edit.js +2 -1
- package/build/hooks/navigation-menu-edit.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +5 -37
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/template-part-edit.js +2 -1
- package/build/hooks/template-part-edit.js.map +1 -1
- package/build/store/actions.js +38 -14
- package/build/store/actions.js.map +1 -1
- package/build/store/constants.js +1 -9
- package/build/store/constants.js.map +1 -1
- package/build/store/private-actions.js +21 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +23 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +19 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +3 -2
- package/build/store/selectors.js.map +1 -1
- package/build/utils/constants.js +64 -2
- package/build/utils/constants.js.map +1 -1
- package/build/utils/is-template-removable.js +6 -1
- package/build/utils/is-template-removable.js.map +1 -1
- package/build/utils/is-template-revertable.js +6 -1
- package/build/utils/is-template-revertable.js.map +1 -1
- package/build/utils/template-part-create.js +6 -1
- package/build/utils/template-part-create.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +69 -8
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/add-new-template/index.js +3 -2
- package/build-module/components/add-new-template/index.js.map +1 -1
- package/build-module/components/add-new-template/new-template.js +6 -1
- package/build-module/components/add-new-template/new-template.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +6 -1
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/app/index.js +2 -7
- package/build-module/components/app/index.js.map +1 -1
- package/build-module/components/block-editor/back-button.js +3 -2
- package/build-module/components/block-editor/back-button.js.map +1 -1
- package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js +65 -0
- package/build-module/components/block-editor/block-editor-provider/default-block-editor-provider.js.map +1 -0
- package/build-module/components/block-editor/block-editor-provider/index.js +23 -0
- package/build-module/components/block-editor/block-editor-provider/index.js.map +1 -0
- package/build-module/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
- package/build-module/components/block-editor/block-editor-provider/navigation-block-editor-provider.js.map +1 -0
- package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js +70 -0
- package/build-module/components/block-editor/block-editor-provider/use-page-content-blocks.js.map +1 -0
- package/build-module/components/block-editor/editor-canvas.js +21 -17
- package/build-module/components/block-editor/editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/index.js +1 -8
- package/build-module/components/block-editor/index.js.map +1 -1
- package/build-module/components/block-editor/site-editor-canvas.js +5 -7
- package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js +8 -4
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/canvas-loader/index.js +18 -1
- package/build-module/components/canvas-loader/index.js.map +1 -1
- package/build-module/components/create-template-part-modal/index.js +8 -12
- package/build-module/components/create-template-part-modal/index.js.map +1 -1
- package/build-module/components/editor/index.js +7 -9
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +5 -4
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +58 -0
- package/build-module/components/global-styles/font-families.js.map +1 -0
- package/build-module/components/global-styles/font-family-item.js +40 -0
- package/build-module/components/global-styles/font-family-item.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/collection-font-details.js +40 -0
- package/build-module/components/global-styles/font-library-modal/collection-font-details.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
- package/build-module/components/global-styles/font-library-modal/collection-font-variant.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +23 -0
- package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/context.js +300 -0
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-card.js +52 -0
- package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-collection.js +164 -0
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-demo.js +79 -0
- package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-variant.js +42 -0
- package/build-module/components/global-styles/font-library-modal/font-variant.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js +47 -0
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +33 -0
- package/build-module/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/index.js +57 -0
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +120 -0
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/library-font-card.js +31 -0
- package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/library-font-details.js +35 -0
- package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js +50 -0
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/local-fonts.js +135 -0
- package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/resolvers.js +42 -0
- package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/tab-layout.js +37 -0
- package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/constants.js +21 -0
- package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js +15 -0
- package/build-module/components/global-styles/font-library-modal/utils/filter-fonts.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js +13 -0
- package/build-module/components/global-styles/font-library-modal/utils/fonts-outline.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +52 -0
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/index.js +141 -0
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js +16 -0
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js +68 -0
- package/build-module/components/global-styles/font-library-modal/utils/preview-styles.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js +30 -0
- package/build-module/components/global-styles/font-library-modal/utils/sort-font-faces.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js +86 -0
- package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
- package/build-module/components/global-styles/global-styles-provider.js +7 -12
- package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +34 -21
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/index.js +1 -3
- package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +6 -74
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/style-variations-container.js +3 -5
- package/build-module/components/global-styles/style-variations-container.js.map +1 -1
- package/build-module/components/global-styles/typogrphy-elements.js +87 -0
- package/build-module/components/global-styles/typogrphy-elements.js.map +1 -0
- package/build-module/components/header-edit-mode/document-actions/index.js +9 -8
- package/build-module/components/header-edit-mode/document-actions/index.js.map +1 -1
- package/build-module/components/header-edit-mode/index.js +4 -1
- package/build-module/components/header-edit-mode/index.js.map +1 -1
- package/build-module/components/layout/index.js +5 -1
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/list/added-by.js +13 -8
- package/build-module/components/list/added-by.js.map +1 -1
- package/build-module/components/list/index.js +2 -1
- package/build-module/components/list/index.js.map +1 -1
- package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -3
- package/build-module/components/page-content-focus-manager/disable-non-page-content-blocks.js.map +1 -1
- package/build-module/components/page-patterns/duplicate-menu-item.js +55 -20
- package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/grid-item.js +49 -23
- package/build-module/components/page-patterns/grid-item.js.map +1 -1
- package/build-module/components/page-patterns/header.js +3 -7
- package/build-module/components/page-patterns/header.js.map +1 -1
- package/build-module/components/page-patterns/index.js +3 -3
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/patterns-list.js +7 -7
- package/build-module/components/page-patterns/patterns-list.js.map +1 -1
- package/build-module/components/page-patterns/rename-menu-item.js +6 -5
- package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/search-items.js +8 -2
- package/build-module/components/page-patterns/search-items.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +71 -52
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-patterns/utils.js +0 -11
- package/build-module/components/page-patterns/utils.js.map +1 -1
- package/build-module/components/page-template-parts/add-new-template-part.js +3 -2
- package/build-module/components/page-template-parts/add-new-template-part.js.map +1 -1
- package/build-module/components/page-template-parts/index.js +2 -1
- package/build-module/components/page-template-parts/index.js.map +1 -1
- package/build-module/components/page-templates/index.js +3 -2
- package/build-module/components/page-templates/index.js.map +1 -1
- package/build-module/components/save-hub/index.js +2 -1
- package/build-module/components/save-hub/index.js.map +1 -1
- package/build-module/components/secondary-sidebar/list-view-sidebar.js +26 -19
- package/build-module/components/secondary-sidebar/list-view-sidebar.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +54 -29
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +55 -0
- package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/page-panels/index.js +1 -4
- package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +49 -0
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +85 -0
- package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/settings-header/index.js +2 -6
- package/build-module/components/sidebar-edit-mode/settings-header/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/index.js +12 -10
- package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +8 -6
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +209 -0
- package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen/index.js +6 -4
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-footer/index.js +32 -5
- package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
- package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js +6 -33
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/edit-button.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
- package/build-module/components/sidebar-navigation-screen-navigation-menus/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/index.js +3 -3
- package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/page-details.js +2 -1
- package/build-module/components/sidebar-navigation-screen-page/page-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pages/index.js +5 -4
- package/build-module/components/sidebar-navigation-screen-pages/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/index.js +21 -10
- package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +3 -2
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +2 -1
- package/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +41 -11
- package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.js +12 -40
- package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +44 -5
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +7 -2
- package/build-module/components/sidebar-navigation-screen-patterns/use-template-part-areas.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -2
- package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
- package/build-module/components/sidebar-navigation-screen-template/home-template-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-template/index.js +2 -2
- package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates/index.js +5 -4
- package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js +3 -2
- package/build-module/components/sidebar-navigation-screen-templates-browse/index.js.map +1 -1
- package/build-module/components/start-template-options/index.js +20 -2
- package/build-module/components/start-template-options/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -4
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js +4 -3
- package/build-module/components/sync-state-with-url/use-sync-path-with-url.js.map +1 -1
- package/build-module/components/template-actions/index.js +8 -4
- package/build-module/components/template-actions/index.js.map +1 -1
- package/build-module/components/template-actions/rename-menu-item.js +9 -3
- package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
- package/build-module/components/welcome-guide/styles.js +2 -2
- package/build-module/components/welcome-guide/styles.js.map +1 -1
- package/build-module/hooks/commands/use-edit-mode-commands.js +4 -3
- package/build-module/hooks/commands/use-edit-mode-commands.js.map +1 -1
- package/build-module/hooks/navigation-menu-edit.js +2 -1
- package/build-module/hooks/navigation-menu-edit.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +5 -37
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/template-part-edit.js +2 -1
- package/build-module/hooks/template-part-edit.js.map +1 -1
- package/build-module/store/actions.js +39 -16
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/constants.js +0 -4
- package/build-module/store/constants.js.map +1 -1
- package/build-module/store/private-actions.js +19 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +22 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +18 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +3 -3
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/constants.js +51 -1
- package/build-module/utils/constants.js.map +1 -1
- package/build-module/utils/is-template-removable.js +6 -1
- package/build-module/utils/is-template-removable.js.map +1 -1
- package/build-module/utils/is-template-revertable.js +6 -1
- package/build-module/utils/is-template-revertable.js.map +1 -1
- package/build-module/utils/template-part-create.js +6 -1
- package/build-module/utils/template-part-create.js.map +1 -1
- package/build-style/style-rtl.css +267 -37
- package/build-style/style.css +267 -37
- package/lib/inflate.js +4082 -0
- package/lib/lib-font.browser.js +3831 -0
- package/lib/unbrotli.js +2679 -0
- package/package.json +40 -40
- package/src/components/add-new-pattern/index.js +86 -8
- package/src/components/add-new-template/index.js +3 -2
- package/src/components/add-new-template/new-template.js +6 -1
- package/src/components/add-new-template/utils.js +12 -3
- package/src/components/app/index.js +9 -12
- package/src/components/block-editor/back-button.js +6 -2
- package/src/components/block-editor/block-editor-provider/default-block-editor-provider.js +70 -0
- package/src/components/block-editor/block-editor-provider/index.js +29 -0
- package/src/components/block-editor/{providers → block-editor-provider}/navigation-block-editor-provider.js +2 -1
- package/src/components/block-editor/block-editor-provider/test/use-page-content-blocks.js +87 -0
- package/src/components/block-editor/block-editor-provider/use-page-content-blocks.js +77 -0
- package/src/components/block-editor/editor-canvas.js +31 -19
- package/src/components/block-editor/index.js +1 -14
- package/src/components/block-editor/site-editor-canvas.js +7 -12
- package/src/components/block-editor/style.scss +88 -1
- package/src/components/block-editor/use-site-editor-settings.js +26 -19
- package/src/components/canvas-loader/index.js +12 -1
- package/src/components/canvas-loader/style.scss +1 -1
- package/src/components/create-template-part-modal/index.js +11 -12
- package/src/components/editor/index.js +9 -10
- package/src/components/global-styles/dimensions-panel.js +8 -4
- package/src/components/global-styles/font-families.js +71 -0
- package/src/components/global-styles/font-family-item.js +44 -0
- package/src/components/global-styles/font-library-modal/collection-font-details.js +56 -0
- package/src/components/global-styles/font-library-modal/collection-font-variant.js +45 -0
- package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +33 -0
- package/src/components/global-styles/font-library-modal/context.js +378 -0
- package/src/components/global-styles/font-library-modal/font-card.js +75 -0
- package/src/components/global-styles/font-library-modal/font-collection.js +257 -0
- package/src/components/global-styles/font-library-modal/font-demo.js +83 -0
- package/src/components/global-styles/font-library-modal/font-variant.js +53 -0
- package/src/components/global-styles/font-library-modal/fonts-grid.js +55 -0
- package/src/components/global-styles/font-library-modal/google-fonts-confirm-dialog.js +50 -0
- package/src/components/global-styles/font-library-modal/index.js +67 -0
- package/src/components/global-styles/font-library-modal/installed-fonts.js +174 -0
- package/src/components/global-styles/font-library-modal/library-font-card.js +33 -0
- package/src/components/global-styles/font-library-modal/library-font-details.js +45 -0
- package/src/components/global-styles/font-library-modal/library-font-variant.js +54 -0
- package/src/components/global-styles/font-library-modal/local-fonts.js +160 -0
- package/src/components/global-styles/font-library-modal/resolvers.js +45 -0
- package/src/components/global-styles/font-library-modal/style.scss +139 -0
- package/src/components/global-styles/font-library-modal/tab-layout.js +50 -0
- package/src/components/global-styles/font-library-modal/utils/constants.js +23 -0
- package/src/components/global-styles/font-library-modal/utils/filter-fonts.js +18 -0
- package/src/components/global-styles/font-library-modal/utils/fonts-outline.js +21 -0
- package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
- package/src/components/global-styles/font-library-modal/utils/index.js +153 -0
- package/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js +15 -0
- package/src/components/global-styles/font-library-modal/utils/preview-styles.js +86 -0
- package/src/components/global-styles/font-library-modal/utils/sort-font-faces.js +33 -0
- package/src/components/global-styles/font-library-modal/utils/test/filter-fonts.spec.js +69 -0
- package/src/components/global-styles/font-library-modal/utils/test/fonts-outline.spec.js +109 -0
- package/src/components/global-styles/font-library-modal/utils/test/getDisplaySrcFromFontFace.spec.js +53 -0
- package/src/components/global-styles/font-library-modal/utils/test/getFontFaceVariantName.spec.js +30 -0
- package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +240 -0
- package/src/components/global-styles/font-library-modal/utils/test/isUrlEncoded.spec.js +31 -0
- package/src/components/global-styles/font-library-modal/utils/test/makeFamiliesFromFaces.spec.js +57 -0
- package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +62 -0
- package/src/components/global-styles/font-library-modal/utils/test/mergeFontFaces.spec.js +56 -0
- package/src/components/global-styles/font-library-modal/utils/test/mergeFontFamilies.spec.js +108 -0
- package/src/components/global-styles/font-library-modal/utils/test/preview-styles.spec.js +161 -0
- package/src/components/global-styles/font-library-modal/utils/test/setUIValuesNeeded.spec.js +41 -0
- package/src/components/global-styles/font-library-modal/utils/test/sort-font-faces.js +74 -0
- package/src/components/global-styles/font-library-modal/utils/test/toggleFont.spec.js +141 -0
- package/src/components/global-styles/font-library-modal/utils/toggleFont.js +90 -0
- package/src/components/global-styles/global-styles-provider.js +2 -7
- package/src/components/global-styles/screen-block.js +42 -20
- package/src/components/global-styles/screen-revisions/index.js +0 -2
- package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
- package/src/components/global-styles/screen-typography.js +9 -95
- package/src/components/global-styles/style-variations-container.js +0 -2
- package/src/components/global-styles/typogrphy-elements.js +110 -0
- package/src/components/header-edit-mode/document-actions/index.js +17 -8
- package/src/components/header-edit-mode/index.js +2 -1
- package/src/components/layout/index.js +10 -1
- package/src/components/list/added-by.js +29 -11
- package/src/components/list/index.js +7 -1
- package/src/components/list/style.scss +2 -0
- package/src/components/page-content-focus-manager/disable-non-page-content-blocks.js +2 -8
- package/src/components/page-patterns/duplicate-menu-item.js +67 -24
- package/src/components/page-patterns/grid-item.js +80 -33
- package/src/components/page-patterns/header.js +3 -12
- package/src/components/page-patterns/index.js +3 -3
- package/src/components/page-patterns/patterns-list.js +7 -7
- package/src/components/page-patterns/rename-menu-item.js +18 -7
- package/src/components/page-patterns/search-items.js +20 -2
- package/src/components/page-patterns/style.scss +1 -5
- package/src/components/page-patterns/use-patterns.js +217 -127
- package/src/components/page-patterns/utils.js +0 -19
- package/src/components/page-template-parts/add-new-template-part.js +5 -2
- package/src/components/page-template-parts/index.js +2 -1
- package/src/components/page-templates/index.js +3 -2
- package/src/components/save-hub/index.js +2 -1
- package/src/components/secondary-sidebar/list-view-sidebar.js +31 -26
- package/src/components/sidebar-edit-mode/page-panels/edit-template.js +94 -52
- package/src/components/sidebar-edit-mode/page-panels/hooks.js +88 -0
- package/src/components/sidebar-edit-mode/page-panels/index.js +0 -4
- package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
- package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +44 -0
- package/src/components/sidebar-edit-mode/page-panels/style.scss +46 -9
- package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +82 -0
- package/src/components/sidebar-edit-mode/settings-header/index.js +4 -7
- package/src/components/sidebar-edit-mode/template-panel/index.js +28 -24
- package/src/components/sidebar-edit-mode/template-panel/last-revision.js +19 -15
- package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +277 -0
- package/src/components/sidebar-navigation-screen/index.js +4 -9
- package/src/components/sidebar-navigation-screen/style.scss +7 -1
- package/src/components/sidebar-navigation-screen-details-footer/index.js +38 -10
- package/src/components/sidebar-navigation-screen-details-footer/style.scss +10 -3
- package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +2 -0
- package/src/components/sidebar-navigation-screen-global-styles/index.js +6 -44
- package/src/components/sidebar-navigation-screen-navigation-menu/edit-button.js +2 -1
- package/src/components/sidebar-navigation-screen-navigation-menu/use-navigation-menu-handlers.js +3 -1
- package/src/components/sidebar-navigation-screen-navigation-menus/index.js +3 -2
- package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +0 -4
- package/src/components/sidebar-navigation-screen-page/index.js +3 -3
- package/src/components/sidebar-navigation-screen-page/page-details.js +2 -1
- package/src/components/sidebar-navigation-screen-pages/index.js +5 -4
- package/src/components/sidebar-navigation-screen-pattern/index.js +22 -8
- package/src/components/sidebar-navigation-screen-pattern/style.scss +0 -3
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu-list-item.js +8 -2
- package/src/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js +7 -1
- package/src/components/sidebar-navigation-screen-pattern/use-navigation-menu-content.js +2 -1
- package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +63 -20
- package/src/components/sidebar-navigation-screen-patterns/index.js +20 -51
- package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +61 -6
- package/src/components/sidebar-navigation-screen-patterns/use-template-part-areas.js +12 -2
- package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -5
- package/src/components/sidebar-navigation-screen-template/home-template-details.js +2 -1
- package/src/components/sidebar-navigation-screen-template/index.js +2 -4
- package/src/components/sidebar-navigation-screen-templates/index.js +5 -4
- package/src/components/sidebar-navigation-screen-templates-browse/index.js +6 -2
- package/src/components/start-template-options/index.js +39 -2
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +10 -4
- package/src/components/sync-state-with-url/use-sync-path-with-url.js +8 -3
- package/src/components/template-actions/index.js +15 -8
- package/src/components/template-actions/rename-menu-item.js +21 -5
- package/src/components/welcome-guide/styles.js +2 -2
- package/src/hooks/commands/use-edit-mode-commands.js +4 -3
- package/src/hooks/navigation-menu-edit.js +2 -1
- package/src/hooks/push-changes-to-global-styles/index.js +6 -49
- package/src/hooks/template-part-edit.js +2 -1
- package/src/store/actions.js +56 -22
- package/src/store/constants.js +0 -5
- package/src/store/private-actions.js +19 -0
- package/src/store/private-selectors.js +22 -0
- package/src/store/reducer.js +18 -0
- package/src/store/selectors.js +6 -3
- package/src/store/test/reducer.js +18 -0
- package/src/style.scss +1 -1
- package/src/utils/constants.js +54 -3
- package/src/utils/is-template-removable.js +8 -1
- package/src/utils/is-template-revertable.js +8 -1
- package/src/utils/template-part-create.js +6 -1
- package/build/components/block-editor/get-block-editor-provider.js +0 -35
- package/build/components/block-editor/get-block-editor-provider.js.map +0 -1
- package/build/components/block-editor/providers/default-block-editor-provider.js +0 -49
- package/build/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
- package/build/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
- package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -30
- package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
- package/build-module/components/block-editor/get-block-editor-provider.js +0 -28
- package/build-module/components/block-editor/get-block-editor-provider.js.map +0 -1
- package/build-module/components/block-editor/providers/default-block-editor-provider.js +0 -41
- package/build-module/components/block-editor/providers/default-block-editor-provider.js.map +0 -1
- package/build-module/components/block-editor/providers/navigation-block-editor-provider.js.map +0 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -23
- package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
- package/src/components/block-editor/get-block-editor-provider.js +0 -29
- package/src/components/block-editor/providers/default-block-editor-provider.js +0 -44
- package/src/components/sidebar-navigation-screen-global-styles/style.scss +0 -12
- package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -24
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { _x } from '@wordpress/i18n';
|
|
5
|
+
|
|
6
|
+
export const ALLOWED_FILE_EXTENSIONS = [ 'otf', 'ttf', 'woff', 'woff2' ];
|
|
7
|
+
|
|
8
|
+
export const FONT_WEIGHTS = {
|
|
9
|
+
100: _x( 'Thin', 'font weight' ),
|
|
10
|
+
200: _x( 'Extra-light', 'font weight' ),
|
|
11
|
+
300: _x( 'Light', 'font weight' ),
|
|
12
|
+
400: _x( 'Normal', 'font weight' ),
|
|
13
|
+
500: _x( 'Medium', 'font weight' ),
|
|
14
|
+
600: _x( 'Semi-bold', 'font weight' ),
|
|
15
|
+
700: _x( 'Bold', 'font weight' ),
|
|
16
|
+
800: _x( 'Extra-bold', 'font weight' ),
|
|
17
|
+
900: _x( 'Black', 'font weight' ),
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export const FONT_STYLES = {
|
|
21
|
+
normal: _x( 'Normal', 'font style' ),
|
|
22
|
+
italic: _x( 'Italic', 'font style' ),
|
|
23
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export default function filterFonts( fonts, filters ) {
|
|
2
|
+
const { category, search } = filters;
|
|
3
|
+
let filteredFonts = fonts || [];
|
|
4
|
+
|
|
5
|
+
if ( category && category !== 'all' ) {
|
|
6
|
+
filteredFonts = filteredFonts.filter(
|
|
7
|
+
( font ) => font.category === category
|
|
8
|
+
);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
if ( search ) {
|
|
12
|
+
filteredFonts = filteredFonts.filter( ( font ) =>
|
|
13
|
+
font.name.toLowerCase().includes( search.toLowerCase() )
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return filteredFonts;
|
|
18
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function getFontsOutline( fonts ) {
|
|
2
|
+
return fonts.reduce(
|
|
3
|
+
( acc, font ) => ( {
|
|
4
|
+
...acc,
|
|
5
|
+
[ font.slug ]: ( font?.fontFace || [] ).reduce(
|
|
6
|
+
( faces, face ) => ( {
|
|
7
|
+
...faces,
|
|
8
|
+
[ `${ face.fontStyle }-${ face.fontWeight }` ]: true,
|
|
9
|
+
} ),
|
|
10
|
+
{}
|
|
11
|
+
),
|
|
12
|
+
} ),
|
|
13
|
+
{}
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function isFontFontFaceInOutline( slug, face, outline ) {
|
|
18
|
+
return (
|
|
19
|
+
outline[ slug ]?.[ `${ face.fontStyle }-${ face.fontWeight }` ] || false
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retrieves intersecting font faces between two sets of fonts.
|
|
3
|
+
*
|
|
4
|
+
* For each font in the `incoming` list, the function checks for a corresponding match
|
|
5
|
+
* in the `existing` list based on the `slug` property. If a match is found and both
|
|
6
|
+
* have `fontFace` properties, it further narrows down to matching font faces based on
|
|
7
|
+
* the `fontWeight` and `fontStyle`. The result includes the properties of the matched
|
|
8
|
+
* existing font but only with intersecting font faces.
|
|
9
|
+
*
|
|
10
|
+
* @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} incoming - The list of fonts to compare.
|
|
11
|
+
* @param {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} existing - The reference list of fonts.
|
|
12
|
+
*
|
|
13
|
+
* @return {Array.<{ slug: string, fontFace?: Array.<{ fontWeight: string, fontStyle: string }> }>} An array of fonts from the `existing` list with intersecting font faces.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* const incomingFonts = [
|
|
17
|
+
* { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] },
|
|
18
|
+
* { slug: 'times-new', fontFace: [{ fontWeight: '700', fontStyle: 'italic' }] }
|
|
19
|
+
* ];
|
|
20
|
+
*
|
|
21
|
+
* const existingFonts = [
|
|
22
|
+
* { slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }, { fontWeight: '700', fontStyle: 'italic' }] },
|
|
23
|
+
* { slug: 'helvetica', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }
|
|
24
|
+
* ];
|
|
25
|
+
*
|
|
26
|
+
* getIntersectingFontFaces(incomingFonts, existingFonts);
|
|
27
|
+
* // Returns:
|
|
28
|
+
* // [{ slug: 'arial', fontFace: [{ fontWeight: '400', fontStyle: 'normal' }] }]
|
|
29
|
+
*/
|
|
30
|
+
export default function getIntersectingFontFaces( incoming, existing ) {
|
|
31
|
+
const matches = [];
|
|
32
|
+
|
|
33
|
+
for ( const incomingFont of incoming ) {
|
|
34
|
+
const existingFont = existing.find(
|
|
35
|
+
( f ) => f.slug === incomingFont.slug
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
if ( existingFont ) {
|
|
39
|
+
if ( incomingFont?.fontFace ) {
|
|
40
|
+
const matchingFaces = incomingFont.fontFace.filter(
|
|
41
|
+
( face ) => {
|
|
42
|
+
return ( existingFont?.fontFace || [] ).find( ( f ) => {
|
|
43
|
+
return (
|
|
44
|
+
f.fontWeight === face.fontWeight &&
|
|
45
|
+
f.fontStyle === face.fontStyle
|
|
46
|
+
);
|
|
47
|
+
} );
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
matches.push( { ...existingFont, fontFace: matchingFaces } );
|
|
51
|
+
} else {
|
|
52
|
+
matches.push( incomingFont );
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return matches;
|
|
58
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { FONT_WEIGHTS, FONT_STYLES } from './constants';
|
|
5
|
+
import { formatFontFamily } from './preview-styles';
|
|
6
|
+
|
|
7
|
+
export function setUIValuesNeeded( font, extraValues = {} ) {
|
|
8
|
+
if ( ! font.name && ( font.fontFamily || font.slug ) ) {
|
|
9
|
+
font.name = font.fontFamily || font.slug;
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
...font,
|
|
13
|
+
...extraValues,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function isUrlEncoded( url ) {
|
|
18
|
+
if ( typeof url !== 'string' ) {
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return url !== decodeURIComponent( url );
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function getFontFaceVariantName( face ) {
|
|
25
|
+
const weightName = FONT_WEIGHTS[ face.fontWeight ] || face.fontWeight;
|
|
26
|
+
const styleName =
|
|
27
|
+
face.fontStyle === 'normal'
|
|
28
|
+
? ''
|
|
29
|
+
: FONT_STYLES[ face.fontStyle ] || face.fontStyle;
|
|
30
|
+
return `${ weightName } ${ styleName }`;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function mergeFontFaces( existing = [], incoming = [] ) {
|
|
34
|
+
const map = new Map();
|
|
35
|
+
for ( const face of existing ) {
|
|
36
|
+
map.set( `${ face.fontWeight }${ face.fontStyle }`, face );
|
|
37
|
+
}
|
|
38
|
+
for ( const face of incoming ) {
|
|
39
|
+
// This will overwrite if the src already exists, keeping it unique.
|
|
40
|
+
map.set( `${ face.fontWeight }${ face.fontStyle }`, face );
|
|
41
|
+
}
|
|
42
|
+
return Array.from( map.values() );
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function mergeFontFamilies( existing = [], incoming = [] ) {
|
|
46
|
+
const map = new Map();
|
|
47
|
+
// Add the existing array to the map.
|
|
48
|
+
for ( const font of existing ) {
|
|
49
|
+
map.set( font.slug, { ...font } );
|
|
50
|
+
}
|
|
51
|
+
// Add the incoming array to the map, overwriting existing values excepting fontFace that need to be merged.
|
|
52
|
+
for ( const font of incoming ) {
|
|
53
|
+
if ( map.has( font.slug ) ) {
|
|
54
|
+
const { fontFace: incomingFontFaces, ...restIncoming } = font;
|
|
55
|
+
const existingFont = map.get( font.slug );
|
|
56
|
+
// Merge the fontFaces existing with the incoming fontFaces.
|
|
57
|
+
const mergedFontFaces = mergeFontFaces(
|
|
58
|
+
existingFont.fontFace,
|
|
59
|
+
incomingFontFaces
|
|
60
|
+
);
|
|
61
|
+
// Except for the fontFace key all the other keys are overwritten with the incoming values.
|
|
62
|
+
map.set( font.slug, {
|
|
63
|
+
...restIncoming,
|
|
64
|
+
fontFace: mergedFontFaces,
|
|
65
|
+
} );
|
|
66
|
+
} else {
|
|
67
|
+
map.set( font.slug, { ...font } );
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return Array.from( map.values() );
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/*
|
|
74
|
+
* Loads the font face from a URL and adds it to the browser.
|
|
75
|
+
* It also adds it to the iframe document.
|
|
76
|
+
*/
|
|
77
|
+
export async function loadFontFaceInBrowser( fontFace, source, addTo = 'all' ) {
|
|
78
|
+
let dataSource;
|
|
79
|
+
|
|
80
|
+
if ( typeof source === 'string' ) {
|
|
81
|
+
dataSource = `url(${ source })`;
|
|
82
|
+
// eslint-disable-next-line no-undef
|
|
83
|
+
} else if ( source instanceof File ) {
|
|
84
|
+
dataSource = await source.arrayBuffer();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// eslint-disable-next-line no-undef
|
|
88
|
+
const newFont = new FontFace(
|
|
89
|
+
formatFontFamily( fontFace.fontFamily ),
|
|
90
|
+
dataSource,
|
|
91
|
+
{
|
|
92
|
+
style: fontFace.fontStyle,
|
|
93
|
+
weight: fontFace.fontWeight,
|
|
94
|
+
}
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
const loadedFace = await newFont.load();
|
|
98
|
+
|
|
99
|
+
if ( addTo === 'document' || addTo === 'all' ) {
|
|
100
|
+
document.fonts.add( loadedFace );
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
if ( addTo === 'iframe' || addTo === 'all' ) {
|
|
104
|
+
const iframeDocument = document.querySelector(
|
|
105
|
+
'iframe[name="editor-canvas"]'
|
|
106
|
+
).contentDocument;
|
|
107
|
+
iframeDocument.fonts.add( loadedFace );
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export function getDisplaySrcFromFontFace( input, urlPrefix ) {
|
|
112
|
+
let src;
|
|
113
|
+
if ( Array.isArray( input ) ) {
|
|
114
|
+
src = input[ 0 ];
|
|
115
|
+
} else {
|
|
116
|
+
src = input;
|
|
117
|
+
}
|
|
118
|
+
// If it is a theme font, we need to make the url absolute
|
|
119
|
+
if ( src.startsWith( 'file:.' ) && urlPrefix ) {
|
|
120
|
+
src = src.replace( 'file:.', urlPrefix );
|
|
121
|
+
}
|
|
122
|
+
if ( ! isUrlEncoded( src ) ) {
|
|
123
|
+
src = encodeURI( src );
|
|
124
|
+
}
|
|
125
|
+
return src;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export function makeFormDataFromFontFamilies( fontFamilies ) {
|
|
129
|
+
const formData = new FormData();
|
|
130
|
+
const newFontFamilies = fontFamilies.map( ( family, familyIndex ) => {
|
|
131
|
+
if ( family?.fontFace ) {
|
|
132
|
+
family.fontFace = family.fontFace.map( ( face, faceIndex ) => {
|
|
133
|
+
if ( face.file ) {
|
|
134
|
+
// Slugified file name because the it might contain spaces or characters treated differently on the server.
|
|
135
|
+
const fileId = `file-${ familyIndex }-${ faceIndex }`;
|
|
136
|
+
// Add the files to the formData
|
|
137
|
+
formData.append( fileId, face.file, face.file.name );
|
|
138
|
+
// remove the file object from the face object the file is referenced by the uploadedFile key
|
|
139
|
+
const { file, ...faceWithoutFileProperty } = face;
|
|
140
|
+
const newFace = {
|
|
141
|
+
...faceWithoutFileProperty,
|
|
142
|
+
uploadedFile: fileId,
|
|
143
|
+
};
|
|
144
|
+
return newFace;
|
|
145
|
+
}
|
|
146
|
+
return face;
|
|
147
|
+
} );
|
|
148
|
+
}
|
|
149
|
+
return family;
|
|
150
|
+
} );
|
|
151
|
+
formData.append( 'fontFamilies', JSON.stringify( newFontFamilies ) );
|
|
152
|
+
return formData;
|
|
153
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export default function makeFamiliesFromFaces( fontFaces ) {
|
|
2
|
+
const fontFamiliesObject = fontFaces.reduce( ( acc, item ) => {
|
|
3
|
+
if ( ! acc[ item.fontFamily ] ) {
|
|
4
|
+
acc[ item.fontFamily ] = {
|
|
5
|
+
name: item.fontFamily,
|
|
6
|
+
fontFamily: item.fontFamily,
|
|
7
|
+
slug: item.fontFamily.replace( /\s+/g, '-' ).toLowerCase(),
|
|
8
|
+
fontFace: [],
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
acc[ item.fontFamily ].fontFace.push( item );
|
|
12
|
+
return acc;
|
|
13
|
+
}, {} );
|
|
14
|
+
return Object.values( fontFamiliesObject );
|
|
15
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
function findNearest( input, numbers ) {
|
|
2
|
+
// If the numbers array is empty, return null
|
|
3
|
+
if ( numbers.length === 0 ) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
// Sort the array based on the absolute difference with the input
|
|
7
|
+
numbers.sort( ( a, b ) => Math.abs( input - a ) - Math.abs( input - b ) );
|
|
8
|
+
// Return the first element (which will be the nearest) from the sorted array
|
|
9
|
+
return numbers[ 0 ];
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function extractFontWeights( fontFaces ) {
|
|
13
|
+
const result = [];
|
|
14
|
+
|
|
15
|
+
fontFaces.forEach( ( face ) => {
|
|
16
|
+
const weights = String( face.fontWeight ).split( ' ' );
|
|
17
|
+
|
|
18
|
+
if ( weights.length === 2 ) {
|
|
19
|
+
const start = parseInt( weights[ 0 ] );
|
|
20
|
+
const end = parseInt( weights[ 1 ] );
|
|
21
|
+
|
|
22
|
+
for ( let i = start; i <= end; i += 100 ) {
|
|
23
|
+
result.push( i );
|
|
24
|
+
}
|
|
25
|
+
} else if ( weights.length === 1 ) {
|
|
26
|
+
result.push( parseInt( weights[ 0 ] ) );
|
|
27
|
+
}
|
|
28
|
+
} );
|
|
29
|
+
|
|
30
|
+
return result;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function formatFontFamily( input ) {
|
|
34
|
+
return input
|
|
35
|
+
.split( ',' )
|
|
36
|
+
.map( ( font ) => {
|
|
37
|
+
font = font.trim(); // Remove any leading or trailing white spaces
|
|
38
|
+
// If the font doesn't have single quotes and contains a space, then add single quotes around it
|
|
39
|
+
if ( ! font.startsWith( "'" ) && font.indexOf( ' ' ) !== -1 ) {
|
|
40
|
+
return `'${ font }'`;
|
|
41
|
+
}
|
|
42
|
+
return font; // Return font as is if no transformation is needed
|
|
43
|
+
} )
|
|
44
|
+
.join( ', ' );
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export function getFamilyPreviewStyle( family ) {
|
|
48
|
+
const style = { fontFamily: formatFontFamily( family.fontFamily ) };
|
|
49
|
+
|
|
50
|
+
if ( ! Array.isArray( family.fontFace ) ) {
|
|
51
|
+
style.fontWeight = '400';
|
|
52
|
+
style.fontStyle = 'normal';
|
|
53
|
+
return style;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if ( family.fontFace ) {
|
|
57
|
+
//get all the font faces with normal style
|
|
58
|
+
const normalFaces = family.fontFace.filter(
|
|
59
|
+
( face ) => face.fontStyle.toLowerCase() === 'normal'
|
|
60
|
+
);
|
|
61
|
+
if ( normalFaces.length > 0 ) {
|
|
62
|
+
style.fontStyle = 'normal';
|
|
63
|
+
const normalWeights = extractFontWeights( normalFaces );
|
|
64
|
+
const nearestWeight = findNearest( 400, normalWeights );
|
|
65
|
+
style.fontWeight = String( nearestWeight ) || '400';
|
|
66
|
+
} else {
|
|
67
|
+
style.fontStyle =
|
|
68
|
+
( family.fontFace.length && family.fontFace[ 0 ].fontStyle ) ||
|
|
69
|
+
'normal';
|
|
70
|
+
style.fontWeight =
|
|
71
|
+
( family.fontFace.length &&
|
|
72
|
+
String( family.fontFace[ 0 ].fontWeight ) ) ||
|
|
73
|
+
'400';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return style;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function getFacePreviewStyle( face ) {
|
|
81
|
+
return {
|
|
82
|
+
fontFamily: formatFontFamily( face.fontFamily ),
|
|
83
|
+
fontStyle: face.fontStyle || 'normal',
|
|
84
|
+
fontWeight: face.fontWeight || '400',
|
|
85
|
+
};
|
|
86
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
function getNumericFontWeight( value ) {
|
|
2
|
+
switch ( value ) {
|
|
3
|
+
case 'normal':
|
|
4
|
+
return 400;
|
|
5
|
+
case 'bold':
|
|
6
|
+
return 700;
|
|
7
|
+
case 'bolder':
|
|
8
|
+
return 500;
|
|
9
|
+
case 'lighter':
|
|
10
|
+
return 300;
|
|
11
|
+
default:
|
|
12
|
+
return parseInt( value, 10 );
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function sortFontFaces( faces ) {
|
|
17
|
+
return faces.sort( ( a, b ) => {
|
|
18
|
+
// Ensure 'normal' fontStyle is always first
|
|
19
|
+
if ( a.fontStyle === 'normal' && b.fontStyle !== 'normal' ) return -1;
|
|
20
|
+
if ( b.fontStyle === 'normal' && a.fontStyle !== 'normal' ) return 1;
|
|
21
|
+
|
|
22
|
+
// If both fontStyles are the same, sort by fontWeight
|
|
23
|
+
if ( a.fontStyle === b.fontStyle ) {
|
|
24
|
+
return (
|
|
25
|
+
getNumericFontWeight( a.fontWeight ) -
|
|
26
|
+
getNumericFontWeight( b.fontWeight )
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Sort other fontStyles alphabetically
|
|
31
|
+
return a.fontStyle.localeCompare( b.fontStyle );
|
|
32
|
+
} );
|
|
33
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import filterFonts from '../filter-fonts';
|
|
5
|
+
|
|
6
|
+
describe( 'filterFonts', () => {
|
|
7
|
+
const mockFonts = [
|
|
8
|
+
{ name: 'Arial', category: 'sans-serif' },
|
|
9
|
+
{ name: 'Arial Condensed', category: 'sans-serif' },
|
|
10
|
+
{ name: 'Times New Roman', category: 'serif' },
|
|
11
|
+
{ name: 'Courier New', category: 'monospace' },
|
|
12
|
+
{ name: 'Romantic', category: 'cursive' },
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
it( 'should return all fonts if no filters are provided', () => {
|
|
16
|
+
const result = filterFonts( mockFonts, {} );
|
|
17
|
+
expect( result ).toEqual( mockFonts );
|
|
18
|
+
} );
|
|
19
|
+
|
|
20
|
+
it( 'should filter by category', () => {
|
|
21
|
+
const result = filterFonts( mockFonts, { category: 'serif' } );
|
|
22
|
+
expect( result ).toEqual( [
|
|
23
|
+
{ name: 'Times New Roman', category: 'serif' },
|
|
24
|
+
] );
|
|
25
|
+
} );
|
|
26
|
+
|
|
27
|
+
it( 'should return all fonts if category is "all"', () => {
|
|
28
|
+
const result = filterFonts( mockFonts, { category: 'all' } );
|
|
29
|
+
expect( result ).toEqual( mockFonts );
|
|
30
|
+
} );
|
|
31
|
+
|
|
32
|
+
it( 'should filter by search', () => {
|
|
33
|
+
const result = filterFonts( mockFonts, { search: 'ari' } );
|
|
34
|
+
expect( result ).toEqual( [
|
|
35
|
+
{ name: 'Arial', category: 'sans-serif' },
|
|
36
|
+
{ name: 'Arial Condensed', category: 'sans-serif' },
|
|
37
|
+
] );
|
|
38
|
+
} );
|
|
39
|
+
|
|
40
|
+
it( 'should be case insensitive when filtering by search', () => {
|
|
41
|
+
const result = filterFonts( mockFonts, { search: 'RoMANtic' } );
|
|
42
|
+
expect( result ).toEqual( [
|
|
43
|
+
{ name: 'Romantic', category: 'cursive' },
|
|
44
|
+
] );
|
|
45
|
+
} );
|
|
46
|
+
|
|
47
|
+
it( 'should filter by both category and search', () => {
|
|
48
|
+
const result = filterFonts( mockFonts, {
|
|
49
|
+
category: 'serif',
|
|
50
|
+
search: 'Times',
|
|
51
|
+
} );
|
|
52
|
+
expect( result ).toEqual( [
|
|
53
|
+
{ name: 'Times New Roman', category: 'serif' },
|
|
54
|
+
] );
|
|
55
|
+
} );
|
|
56
|
+
|
|
57
|
+
it( 'should return an empty array if no fonts match the filter criteria', () => {
|
|
58
|
+
const result = filterFonts( mockFonts, {
|
|
59
|
+
category: 'serif',
|
|
60
|
+
search: 'Arial',
|
|
61
|
+
} );
|
|
62
|
+
expect( result ).toEqual( [] );
|
|
63
|
+
} );
|
|
64
|
+
|
|
65
|
+
it( 'should return an empty array if fonts array is not provided', () => {
|
|
66
|
+
const result = filterFonts( undefined, { category: 'serif' } );
|
|
67
|
+
expect( result ).toEqual( [] );
|
|
68
|
+
} );
|
|
69
|
+
} );
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { getFontsOutline, isFontFontFaceInOutline } from '../fonts-outline';
|
|
5
|
+
|
|
6
|
+
describe( 'getFontsOutline', () => {
|
|
7
|
+
test( 'should return an empty object for an empty fonts array', () => {
|
|
8
|
+
const fonts = [];
|
|
9
|
+
const result = getFontsOutline( fonts );
|
|
10
|
+
expect( result ).toEqual( {} );
|
|
11
|
+
} );
|
|
12
|
+
|
|
13
|
+
test( 'should handle fonts with no fontFace property', () => {
|
|
14
|
+
const fonts = [
|
|
15
|
+
{ slug: 'font1' },
|
|
16
|
+
{
|
|
17
|
+
slug: 'font2',
|
|
18
|
+
fontFace: [ { fontStyle: 'normal', fontWeight: '400' } ],
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
const result = getFontsOutline( fonts );
|
|
22
|
+
expect( result ).toEqual( {
|
|
23
|
+
font1: {},
|
|
24
|
+
font2: { 'normal-400': true },
|
|
25
|
+
} );
|
|
26
|
+
} );
|
|
27
|
+
|
|
28
|
+
test( 'should handle fonts with an empty fontFace array', () => {
|
|
29
|
+
const fonts = [ { slug: 'font1', fontFace: [] } ];
|
|
30
|
+
const result = getFontsOutline( fonts );
|
|
31
|
+
expect( result ).toEqual( {
|
|
32
|
+
font1: {},
|
|
33
|
+
} );
|
|
34
|
+
} );
|
|
35
|
+
|
|
36
|
+
test( 'should handle fonts with multiple font faces', () => {
|
|
37
|
+
const fonts = [
|
|
38
|
+
{
|
|
39
|
+
slug: 'font1',
|
|
40
|
+
fontFace: [
|
|
41
|
+
{ fontStyle: 'normal', fontWeight: '400' },
|
|
42
|
+
{ fontStyle: 'italic', fontWeight: '700' },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
];
|
|
46
|
+
const result = getFontsOutline( fonts );
|
|
47
|
+
expect( result ).toEqual( {
|
|
48
|
+
font1: {
|
|
49
|
+
'normal-400': true,
|
|
50
|
+
'italic-700': true,
|
|
51
|
+
},
|
|
52
|
+
} );
|
|
53
|
+
} );
|
|
54
|
+
} );
|
|
55
|
+
|
|
56
|
+
describe( 'isFontFontFaceInOutline', () => {
|
|
57
|
+
test( 'should return false for an empty outline', () => {
|
|
58
|
+
const slug = 'font1';
|
|
59
|
+
const face = { fontStyle: 'normal', fontWeight: '400' };
|
|
60
|
+
const outline = {};
|
|
61
|
+
|
|
62
|
+
const result = isFontFontFaceInOutline( slug, face, outline );
|
|
63
|
+
|
|
64
|
+
expect( result ).toBe( false );
|
|
65
|
+
} );
|
|
66
|
+
|
|
67
|
+
test( 'should return false when outline has the slug but no matching fontStyle-fontWeight', () => {
|
|
68
|
+
const slug = 'font1';
|
|
69
|
+
const face = { fontStyle: 'normal', fontWeight: '400' };
|
|
70
|
+
const outline = {
|
|
71
|
+
font1: {
|
|
72
|
+
'italic-700': true,
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const result = isFontFontFaceInOutline( slug, face, outline );
|
|
77
|
+
|
|
78
|
+
expect( result ).toBe( false );
|
|
79
|
+
} );
|
|
80
|
+
|
|
81
|
+
test( 'should return false when outline does not have the slug', () => {
|
|
82
|
+
const slug = 'font1';
|
|
83
|
+
const face = { fontStyle: 'normal', fontWeight: '400' };
|
|
84
|
+
const outline = {
|
|
85
|
+
font2: {
|
|
86
|
+
'normal-400': true,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
const result = isFontFontFaceInOutline( slug, face, outline );
|
|
91
|
+
|
|
92
|
+
expect( result ).toBe( false );
|
|
93
|
+
} );
|
|
94
|
+
|
|
95
|
+
test( 'should return true when outline has the slug and the matching fontStyle-fontWeight', () => {
|
|
96
|
+
const slug = 'font1';
|
|
97
|
+
const face = { fontStyle: 'normal', fontWeight: '400' };
|
|
98
|
+
const outline = {
|
|
99
|
+
font1: {
|
|
100
|
+
'normal-400': true,
|
|
101
|
+
'italic-700': true,
|
|
102
|
+
},
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
const result = isFontFontFaceInOutline( slug, face, outline );
|
|
106
|
+
|
|
107
|
+
expect( result ).toBe( true );
|
|
108
|
+
} );
|
|
109
|
+
} );
|
package/src/components/global-styles/font-library-modal/utils/test/getDisplaySrcFromFontFace.spec.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { getDisplaySrcFromFontFace } from '../index';
|
|
5
|
+
|
|
6
|
+
describe( 'getDisplaySrcFromFontFace', () => {
|
|
7
|
+
it( 'returns the first item when input is an array', () => {
|
|
8
|
+
const input = [
|
|
9
|
+
'http://example.com/font-asset-1.ttf',
|
|
10
|
+
'http://example.com/font-asset-2.ttf',
|
|
11
|
+
];
|
|
12
|
+
expect( getDisplaySrcFromFontFace( input ) ).toBe(
|
|
13
|
+
'http://example.com/font-asset-1.ttf'
|
|
14
|
+
);
|
|
15
|
+
} );
|
|
16
|
+
|
|
17
|
+
it( 'returns the input when it is a string', () => {
|
|
18
|
+
const input = 'http://example.com/font-asset-1.ttf';
|
|
19
|
+
expect( getDisplaySrcFromFontFace( input ) ).toBe(
|
|
20
|
+
'http://example.com/font-asset-1.ttf'
|
|
21
|
+
);
|
|
22
|
+
} );
|
|
23
|
+
|
|
24
|
+
it( 'makes URL absolute when it starts with file:. and urlPrefix is given', () => {
|
|
25
|
+
const input = 'file:./font1';
|
|
26
|
+
const urlPrefix = 'http://example.com';
|
|
27
|
+
expect( getDisplaySrcFromFontFace( input, urlPrefix ) ).toBe(
|
|
28
|
+
'http://example.com/font1'
|
|
29
|
+
);
|
|
30
|
+
} );
|
|
31
|
+
|
|
32
|
+
it( 'does not modify URL if it does not start with file:.', () => {
|
|
33
|
+
const input = [ 'http://some-other-place.com/font1' ];
|
|
34
|
+
const urlPrefix = 'http://example.com';
|
|
35
|
+
expect( getDisplaySrcFromFontFace( input, urlPrefix ) ).toBe(
|
|
36
|
+
'http://some-other-place.com/font1'
|
|
37
|
+
);
|
|
38
|
+
} );
|
|
39
|
+
|
|
40
|
+
it( 'encodes the URL if it is not encoded', () => {
|
|
41
|
+
const input = 'file:./assets/font one with spaces.ttf';
|
|
42
|
+
expect( getDisplaySrcFromFontFace( input ) ).toBe(
|
|
43
|
+
'file:./assets/font%20one%20with%20spaces.ttf'
|
|
44
|
+
);
|
|
45
|
+
} );
|
|
46
|
+
|
|
47
|
+
it( 'does not encode the URL if it is already encoded', () => {
|
|
48
|
+
const input = 'file:./font%20one';
|
|
49
|
+
expect( getDisplaySrcFromFontFace( input ) ).toBe(
|
|
50
|
+
'file:./font%20one'
|
|
51
|
+
);
|
|
52
|
+
} );
|
|
53
|
+
} );
|
package/src/components/global-styles/font-library-modal/utils/test/getFontFaceVariantName.spec.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { getFontFaceVariantName } from '../index';
|
|
5
|
+
|
|
6
|
+
describe( 'getFontFaceVariantName', () => {
|
|
7
|
+
it( 'should return "Normal" for fontWeight 400 and fontStyle "normal"', () => {
|
|
8
|
+
const face = { fontWeight: 400, fontStyle: 'normal' };
|
|
9
|
+
const result = getFontFaceVariantName( face );
|
|
10
|
+
expect( result ).toBe( 'Normal ' );
|
|
11
|
+
} );
|
|
12
|
+
|
|
13
|
+
it( 'should return "Bold Italic" for fontWeight 700 and fontStyle "italic"', () => {
|
|
14
|
+
const face = { fontWeight: 700, fontStyle: 'italic' };
|
|
15
|
+
const result = getFontFaceVariantName( face );
|
|
16
|
+
expect( result ).toBe( 'Bold Italic' );
|
|
17
|
+
} );
|
|
18
|
+
|
|
19
|
+
it( 'should return the numerical weight when fontWeight is not recognized', () => {
|
|
20
|
+
const face = { fontWeight: 150, fontStyle: 'normal' };
|
|
21
|
+
const result = getFontFaceVariantName( face );
|
|
22
|
+
expect( result ).toBe( '150 ' );
|
|
23
|
+
} );
|
|
24
|
+
|
|
25
|
+
it( 'should return the raw style when fontStyle is not recognized', () => {
|
|
26
|
+
const face = { fontWeight: 400, fontStyle: 'oblique' };
|
|
27
|
+
const result = getFontFaceVariantName( face );
|
|
28
|
+
expect( result ).toBe( 'Normal oblique' );
|
|
29
|
+
} );
|
|
30
|
+
} );
|