@wordpress/edit-site 5.18.1-next.5a1d1283.0 → 5.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/add-new-pattern/index.js +62 -1
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/add-new-template/index.js +3 -2
- package/build/components/add-new-template/index.js.map +1 -1
- package/build/components/add-new-template/new-template.js +6 -1
- package/build/components/add-new-template/new-template.js.map +1 -1
- package/build/components/add-new-template/utils.js +6 -1
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/app/index.js +2 -7
- package/build/components/app/index.js.map +1 -1
- package/build/components/block-editor/back-button.js +3 -2
- package/build/components/block-editor/back-button.js.map +1 -1
- package/build/components/block-editor/editor-canvas.js +20 -16
- package/build/components/block-editor/editor-canvas.js.map +1 -1
- package/build/components/block-editor/site-editor-canvas.js +1 -3
- package/build/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js +8 -4
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/canvas-loader/index.js +18 -1
- package/build/components/canvas-loader/index.js.map +1 -1
- package/build/components/editor/index.js +3 -8
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +5 -4
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/font-families.js +68 -0
- package/build/components/global-styles/font-families.js.map +1 -0
- package/build/components/global-styles/font-family-item.js +47 -0
- package/build/components/global-styles/font-family-item.js.map +1 -0
- package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js +31 -0
- package/build/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
- package/build/components/global-styles/font-library-modal/context.js +285 -0
- package/build/components/global-styles/font-library-modal/context.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-card.js +58 -0
- package/build/components/global-styles/font-library-modal/font-card.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-demo.js +69 -0
- package/build/components/global-styles/font-library-modal/font-demo.js.map +1 -0
- package/build/components/global-styles/font-library-modal/font-variant.js +51 -0
- package/build/components/global-styles/font-library-modal/font-variant.js.map +1 -0
- package/build/components/global-styles/font-library-modal/fonts-grid.js +54 -0
- package/build/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
- package/build/components/global-styles/font-library-modal/index.js +47 -0
- package/build/components/global-styles/font-library-modal/index.js.map +1 -0
- package/build/components/global-styles/font-library-modal/installed-fonts.js +128 -0
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
- package/build/components/global-styles/font-library-modal/library-font-card.js +44 -0
- package/build/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
- package/build/components/global-styles/font-library-modal/library-font-details.js +43 -0
- package/build/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
- package/build/components/global-styles/font-library-modal/library-font-variant.js +59 -0
- package/build/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
- package/build/components/global-styles/font-library-modal/local-fonts.js +143 -0
- package/build/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
- package/build/components/global-styles/font-library-modal/resolvers.js +37 -0
- package/build/components/global-styles/font-library-modal/resolvers.js.map +1 -0
- package/build/components/global-styles/font-library-modal/tab-layout.js +45 -0
- package/build/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/constants.js +37 -0
- package/build/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
- package/build/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/index.js +205 -0
- package/build/components/global-styles/font-library-modal/utils/index.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js +22 -0
- package/build/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
- package/build/components/global-styles/font-library-modal/utils/toggleFont.js +92 -0
- package/build/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
- package/build/components/global-styles/global-styles-provider.js +7 -12
- package/build/components/global-styles/global-styles-provider.js.map +1 -1
- package/build/components/global-styles/screen-block.js +34 -21
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-revisions/index.js +1 -3
- package/build/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
- package/build/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +4 -72
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/style-variations-container.js +3 -5
- package/build/components/global-styles/style-variations-container.js.map +1 -1
- package/build/components/global-styles/typogrphy-elements.js +96 -0
- package/build/components/global-styles/typogrphy-elements.js.map +1 -0
- package/build/components/page-patterns/duplicate-menu-item.js +52 -16
- package/build/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build/components/page-patterns/grid-item.js +46 -20
- package/build/components/page-patterns/grid-item.js.map +1 -1
- package/build/components/page-patterns/header.js +3 -7
- package/build/components/page-patterns/header.js.map +1 -1
- package/build/components/page-patterns/index.js +3 -3
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/patterns-list.js +7 -7
- package/build/components/page-patterns/patterns-list.js.map +1 -1
- package/build/components/page-patterns/rename-menu-item.js +6 -5
- package/build/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build/components/page-patterns/search-items.js +8 -2
- package/build/components/page-patterns/search-items.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +53 -27
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-patterns/utils.js +1 -20
- package/build/components/page-patterns/utils.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js +33 -24
- package/build/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/hooks.js +64 -0
- package/build/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
- package/build/components/sidebar-edit-mode/page-panels/index.js +1 -4
- package/build/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
- package/build/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js +56 -0
- package/build/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
- package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js +91 -0
- package/build/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
- package/build/components/sidebar-edit-mode/template-panel/index.js +11 -9
- package/build/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js +6 -4
- package/build/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js +211 -0
- package/build/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
- package/build/components/sidebar-navigation-screen/index.js +6 -4
- package/build/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-footer/index.js +32 -4
- package/build/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
- package/build/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/index.js +4 -31
- package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-page/index.js +3 -3
- package/build/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/index.js +18 -8
- package/build/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js +34 -5
- package/build/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/index.js +7 -35
- package/build/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +38 -4
- package/build/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +2 -1
- package/build/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
- package/build/components/sidebar-navigation-screen-template/index.js +2 -2
- package/build/components/sidebar-navigation-screen-template/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-templates/index.js +1 -1
- package/build/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build/components/template-actions/index.js +7 -4
- package/build/components/template-actions/index.js.map +1 -1
- package/build/components/template-actions/rename-menu-item.js +3 -2
- package/build/components/template-actions/rename-menu-item.js.map +1 -1
- package/build/components/welcome-guide/styles.js +2 -2
- package/build/components/welcome-guide/styles.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +5 -37
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/store/actions.js +29 -6
- package/build/store/actions.js.map +1 -1
- package/build/utils/constants.js +45 -2
- package/build/utils/constants.js.map +1 -1
- package/build/utils/is-template-removable.js +6 -1
- package/build/utils/is-template-removable.js.map +1 -1
- package/build/utils/is-template-revertable.js +6 -1
- package/build/utils/is-template-revertable.js.map +1 -1
- package/build-module/components/add-new-pattern/index.js +66 -5
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/add-new-template/index.js +3 -2
- package/build-module/components/add-new-template/index.js.map +1 -1
- package/build-module/components/add-new-template/new-template.js +6 -1
- package/build-module/components/add-new-template/new-template.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +6 -1
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/app/index.js +2 -7
- package/build-module/components/app/index.js.map +1 -1
- package/build-module/components/block-editor/back-button.js +3 -2
- package/build-module/components/block-editor/back-button.js.map +1 -1
- package/build-module/components/block-editor/editor-canvas.js +21 -17
- package/build-module/components/block-editor/editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/site-editor-canvas.js +3 -5
- package/build-module/components/block-editor/site-editor-canvas.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js +8 -4
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/canvas-loader/index.js +18 -1
- package/build-module/components/canvas-loader/index.js.map +1 -1
- package/build-module/components/editor/index.js +3 -8
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +5 -4
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +58 -0
- package/build-module/components/global-styles/font-families.js.map +1 -0
- package/build-module/components/global-styles/font-family-item.js +40 -0
- package/build-module/components/global-styles/font-family-item.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js +23 -0
- package/build-module/components/global-styles/font-library-modal/confirm-delete-dialog.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/context.js +276 -0
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-card.js +49 -0
- package/build-module/components/global-styles/font-library-modal/font-card.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-demo.js +62 -0
- package/build-module/components/global-styles/font-library-modal/font-demo.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/font-variant.js +42 -0
- package/build-module/components/global-styles/font-library-modal/font-variant.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js +47 -0
- package/build-module/components/global-styles/font-library-modal/fonts-grid.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/index.js +38 -0
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +120 -0
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/library-font-card.js +36 -0
- package/build-module/components/global-styles/font-library-modal/library-font-card.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/library-font-details.js +34 -0
- package/build-module/components/global-styles/font-library-modal/library-font-details.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js +50 -0
- package/build-module/components/global-styles/font-library-modal/library-font-variant.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/local-fonts.js +135 -0
- package/build-module/components/global-styles/font-library-modal/local-fonts.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/resolvers.js +28 -0
- package/build-module/components/global-styles/font-library-modal/resolvers.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/tab-layout.js +37 -0
- package/build-module/components/global-styles/font-library-modal/tab-layout.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/constants.js +26 -0
- package/build-module/components/global-styles/font-library-modal/utils/constants.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +52 -0
- package/build-module/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/index.js +190 -0
- package/build-module/components/global-styles/font-library-modal/utils/index.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js +16 -0
- package/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js.map +1 -0
- package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js +86 -0
- package/build-module/components/global-styles/font-library-modal/utils/toggleFont.js.map +1 -0
- package/build-module/components/global-styles/global-styles-provider.js +7 -12
- package/build-module/components/global-styles/global-styles-provider.js.map +1 -1
- package/build-module/components/global-styles/screen-block.js +34 -21
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/index.js +1 -3
- package/build-module/components/global-styles/screen-revisions/index.js.map +1 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
- package/build-module/components/global-styles/screen-revisions/use-global-styles-revisions.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +6 -74
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/style-variations-container.js +3 -5
- package/build-module/components/global-styles/style-variations-container.js.map +1 -1
- package/build-module/components/global-styles/typogrphy-elements.js +87 -0
- package/build-module/components/global-styles/typogrphy-elements.js.map +1 -0
- package/build-module/components/page-patterns/duplicate-menu-item.js +51 -16
- package/build-module/components/page-patterns/duplicate-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/grid-item.js +47 -21
- package/build-module/components/page-patterns/grid-item.js.map +1 -1
- package/build-module/components/page-patterns/header.js +3 -7
- package/build-module/components/page-patterns/header.js.map +1 -1
- package/build-module/components/page-patterns/index.js +3 -3
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/patterns-list.js +7 -7
- package/build-module/components/page-patterns/patterns-list.js.map +1 -1
- package/build-module/components/page-patterns/rename-menu-item.js +6 -5
- package/build-module/components/page-patterns/rename-menu-item.js.map +1 -1
- package/build-module/components/page-patterns/search-items.js +8 -2
- package/build-module/components/page-patterns/search-items.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +54 -28
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-patterns/utils.js +0 -11
- package/build-module/components/page-patterns/utils.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js +34 -27
- package/build-module/components/sidebar-edit-mode/page-panels/edit-template.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/hooks.js +54 -0
- package/build-module/components/sidebar-edit-mode/page-panels/hooks.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/page-panels/index.js +1 -4
- package/build-module/components/sidebar-edit-mode/page-panels/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js +2 -1
- package/build-module/components/sidebar-edit-mode/page-panels/page-summary.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js +49 -0
- package/build-module/components/sidebar-edit-mode/page-panels/reset-default-template.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js +85 -0
- package/build-module/components/sidebar-edit-mode/page-panels/swap-template-button.js.map +1 -0
- package/build-module/components/sidebar-edit-mode/template-panel/index.js +12 -10
- package/build-module/components/sidebar-edit-mode/template-panel/index.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js +8 -6
- package/build-module/components/sidebar-edit-mode/template-panel/last-revision.js.map +1 -1
- package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js +202 -0
- package/build-module/components/sidebar-edit-mode/template-panel/pattern-categories.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen/index.js +6 -4
- package/build-module/components/sidebar-navigation-screen/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-footer/index.js +32 -5
- package/build-module/components/sidebar-navigation-screen-details-footer/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +4 -2
- package/build-module/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js +6 -33
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-page/index.js +3 -3
- package/build-module/components/sidebar-navigation-screen-page/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/index.js +19 -9
- package/build-module/components/sidebar-navigation-screen-pattern/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js +34 -5
- package/build-module/components/sidebar-navigation-screen-pattern/use-pattern-details.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/index.js +10 -38
- package/build-module/components/sidebar-navigation-screen-patterns/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +38 -4
- package/build-module/components/sidebar-navigation-screen-patterns/use-pattern-categories.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -2
- package/build-module/components/sidebar-navigation-screen-patterns/use-theme-patterns.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-template/index.js +2 -2
- package/build-module/components/sidebar-navigation-screen-template/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-templates/index.js +1 -1
- package/build-module/components/sidebar-navigation-screen-templates/index.js.map +1 -1
- package/build-module/components/template-actions/index.js +7 -4
- package/build-module/components/template-actions/index.js.map +1 -1
- package/build-module/components/template-actions/rename-menu-item.js +3 -2
- package/build-module/components/template-actions/rename-menu-item.js.map +1 -1
- package/build-module/components/welcome-guide/styles.js +2 -2
- package/build-module/components/welcome-guide/styles.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +5 -37
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/store/actions.js +30 -7
- package/build-module/store/actions.js.map +1 -1
- package/build-module/utils/constants.js +35 -1
- package/build-module/utils/constants.js.map +1 -1
- package/build-module/utils/is-template-removable.js +6 -1
- package/build-module/utils/is-template-removable.js.map +1 -1
- package/build-module/utils/is-template-revertable.js +6 -1
- package/build-module/utils/is-template-revertable.js.map +1 -1
- package/build-style/style-rtl.css +244 -37
- package/build-style/style.css +244 -37
- package/lib/inflate.js +4082 -0
- package/lib/lib-font.browser.js +3831 -0
- package/lib/unbrotli.js +2679 -0
- package/package.json +40 -40
- package/src/components/add-new-pattern/index.js +83 -5
- package/src/components/add-new-template/index.js +3 -2
- package/src/components/add-new-template/new-template.js +6 -1
- package/src/components/add-new-template/utils.js +12 -3
- package/src/components/app/index.js +9 -12
- package/src/components/block-editor/back-button.js +6 -2
- package/src/components/block-editor/editor-canvas.js +31 -19
- package/src/components/block-editor/site-editor-canvas.js +2 -10
- package/src/components/block-editor/style.scss +88 -1
- package/src/components/block-editor/use-site-editor-settings.js +26 -19
- package/src/components/canvas-loader/index.js +12 -1
- package/src/components/canvas-loader/style.scss +1 -1
- package/src/components/editor/index.js +3 -8
- package/src/components/global-styles/dimensions-panel.js +8 -4
- package/src/components/global-styles/font-families.js +71 -0
- package/src/components/global-styles/font-family-item.js +44 -0
- package/src/components/global-styles/font-library-modal/confirm-delete-dialog.js +33 -0
- package/src/components/global-styles/font-library-modal/context.js +347 -0
- package/src/components/global-styles/font-library-modal/font-card.js +70 -0
- package/src/components/global-styles/font-library-modal/font-demo.js +57 -0
- package/src/components/global-styles/font-library-modal/font-variant.js +53 -0
- package/src/components/global-styles/font-library-modal/fonts-grid.js +55 -0
- package/src/components/global-styles/font-library-modal/index.js +42 -0
- package/src/components/global-styles/font-library-modal/installed-fonts.js +174 -0
- package/src/components/global-styles/font-library-modal/library-font-card.js +40 -0
- package/src/components/global-styles/font-library-modal/library-font-details.js +46 -0
- package/src/components/global-styles/font-library-modal/library-font-variant.js +54 -0
- package/src/components/global-styles/font-library-modal/local-fonts.js +160 -0
- package/src/components/global-styles/font-library-modal/resolvers.js +29 -0
- package/src/components/global-styles/font-library-modal/style.scss +113 -0
- package/src/components/global-styles/font-library-modal/tab-layout.js +50 -0
- package/src/components/global-styles/font-library-modal/utils/constants.js +31 -0
- package/src/components/global-styles/font-library-modal/utils/get-intersecting-font-faces.js +58 -0
- package/src/components/global-styles/font-library-modal/utils/index.js +213 -0
- package/src/components/global-styles/font-library-modal/utils/make-families-from-faces.js +15 -0
- package/src/components/global-styles/font-library-modal/utils/test/getDisplaySrcFromFontFace.spec.js +53 -0
- package/src/components/global-styles/font-library-modal/utils/test/getFontFaceVariantName.spec.js +30 -0
- package/src/components/global-styles/font-library-modal/utils/test/getIntersectingFontFaces.spec.js +240 -0
- package/src/components/global-styles/font-library-modal/utils/test/getPreviewStyle.spec.js +121 -0
- package/src/components/global-styles/font-library-modal/utils/test/isUrlEncoded.spec.js +31 -0
- package/src/components/global-styles/font-library-modal/utils/test/makeFamiliesFromFaces.spec.js +57 -0
- package/src/components/global-styles/font-library-modal/utils/test/makeFormDataFromFontFamilies.spec.js +62 -0
- package/src/components/global-styles/font-library-modal/utils/test/mergeFontFaces.spec.js +56 -0
- package/src/components/global-styles/font-library-modal/utils/test/mergeFontFamilies.spec.js +108 -0
- package/src/components/global-styles/font-library-modal/utils/test/setUIValuesNeeded.spec.js +41 -0
- package/src/components/global-styles/font-library-modal/utils/test/toggleFont.spec.js +141 -0
- package/src/components/global-styles/font-library-modal/utils/toggleFont.js +90 -0
- package/src/components/global-styles/global-styles-provider.js +2 -7
- package/src/components/global-styles/screen-block.js +42 -20
- package/src/components/global-styles/screen-revisions/index.js +0 -2
- package/src/components/global-styles/screen-revisions/use-global-styles-revisions.js +0 -1
- package/src/components/global-styles/screen-typography.js +7 -95
- package/src/components/global-styles/style-variations-container.js +0 -2
- package/src/components/global-styles/typogrphy-elements.js +110 -0
- package/src/components/list/style.scss +2 -0
- package/src/components/page-patterns/duplicate-menu-item.js +63 -20
- package/src/components/page-patterns/grid-item.js +77 -30
- package/src/components/page-patterns/header.js +3 -12
- package/src/components/page-patterns/index.js +3 -3
- package/src/components/page-patterns/patterns-list.js +7 -7
- package/src/components/page-patterns/rename-menu-item.js +18 -7
- package/src/components/page-patterns/search-items.js +14 -2
- package/src/components/page-patterns/style.scss +1 -5
- package/src/components/page-patterns/use-patterns.js +67 -33
- package/src/components/page-patterns/utils.js +0 -19
- package/src/components/sidebar-edit-mode/page-panels/edit-template.js +47 -33
- package/src/components/sidebar-edit-mode/page-panels/hooks.js +83 -0
- package/src/components/sidebar-edit-mode/page-panels/index.js +0 -4
- package/src/components/sidebar-edit-mode/page-panels/page-summary.js +2 -0
- package/src/components/sidebar-edit-mode/page-panels/reset-default-template.js +44 -0
- package/src/components/sidebar-edit-mode/page-panels/style.scss +41 -10
- package/src/components/sidebar-edit-mode/page-panels/swap-template-button.js +82 -0
- package/src/components/sidebar-edit-mode/template-panel/index.js +28 -24
- package/src/components/sidebar-edit-mode/template-panel/last-revision.js +19 -15
- package/src/components/sidebar-edit-mode/template-panel/pattern-categories.js +270 -0
- package/src/components/sidebar-navigation-screen/index.js +4 -9
- package/src/components/sidebar-navigation-screen/style.scss +7 -1
- package/src/components/sidebar-navigation-screen-details-footer/index.js +38 -10
- package/src/components/sidebar-navigation-screen-details-footer/style.scss +10 -3
- package/src/components/sidebar-navigation-screen-details-panel/sidebar-navigation-screen-details-panel-row.js +2 -0
- package/src/components/sidebar-navigation-screen-global-styles/index.js +6 -44
- package/src/components/sidebar-navigation-screen-navigation-menus/style.scss +0 -4
- package/src/components/sidebar-navigation-screen-page/index.js +3 -3
- package/src/components/sidebar-navigation-screen-pattern/index.js +20 -7
- package/src/components/sidebar-navigation-screen-pattern/style.scss +0 -3
- package/src/components/sidebar-navigation-screen-pattern/use-pattern-details.js +46 -13
- package/src/components/sidebar-navigation-screen-patterns/index.js +14 -49
- package/src/components/sidebar-navigation-screen-patterns/use-pattern-categories.js +48 -6
- package/src/components/sidebar-navigation-screen-patterns/use-theme-patterns.js +3 -5
- package/src/components/sidebar-navigation-screen-template/index.js +2 -4
- package/src/components/sidebar-navigation-screen-templates/index.js +1 -1
- package/src/components/template-actions/index.js +14 -8
- package/src/components/template-actions/rename-menu-item.js +15 -4
- package/src/components/welcome-guide/styles.js +2 -2
- package/src/hooks/push-changes-to-global-styles/index.js +6 -49
- package/src/store/actions.js +39 -13
- package/src/style.scss +1 -1
- package/src/utils/constants.js +38 -3
- package/src/utils/is-template-removable.js +8 -1
- package/src/utils/is-template-revertable.js +8 -1
- package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -30
- package/build/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
- package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -23
- package/build-module/components/sidebar-navigation-screen-patterns/use-my-patterns.js.map +0 -1
- package/src/components/sidebar-navigation-screen-global-styles/style.scss +0 -12
- package/src/components/sidebar-navigation-screen-patterns/use-my-patterns.js +0 -24
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
var _i18n = require("@wordpress/i18n");
|
|
10
|
+
var _components = require("@wordpress/components");
|
|
11
|
+
var _icons = require("@wordpress/icons");
|
|
12
|
+
var _context = _interopRequireWildcard(require("./font-library-modal/context"));
|
|
13
|
+
var _fontLibraryModal = _interopRequireDefault(require("./font-library-modal"));
|
|
14
|
+
var _fontFamilyItem = _interopRequireDefault(require("./font-family-item"));
|
|
15
|
+
var _subtitle = _interopRequireDefault(require("./subtitle"));
|
|
16
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
18
|
+
/**
|
|
19
|
+
* WordPress dependencies
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Internal dependencies
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
function FontFamilies() {
|
|
27
|
+
const {
|
|
28
|
+
modalTabOpen,
|
|
29
|
+
toggleModal,
|
|
30
|
+
themeFonts,
|
|
31
|
+
customFonts
|
|
32
|
+
} = (0, _element.useContext)(_context.FontLibraryContext);
|
|
33
|
+
return (0, _element.createElement)(_element.Fragment, null, !!modalTabOpen && (0, _element.createElement)(_fontLibraryModal.default, {
|
|
34
|
+
onRequestClose: () => toggleModal(),
|
|
35
|
+
initialTabName: modalTabOpen
|
|
36
|
+
}), (0, _element.createElement)(_components.__experimentalVStack, {
|
|
37
|
+
spacing: 3
|
|
38
|
+
}, (0, _element.createElement)(_components.__experimentalHStack, {
|
|
39
|
+
justify: "space-between"
|
|
40
|
+
}, (0, _element.createElement)(_subtitle.default, {
|
|
41
|
+
level: 3
|
|
42
|
+
}, (0, _i18n.__)('Fonts')), (0, _element.createElement)(_components.__experimentalHStack, {
|
|
43
|
+
justify: "flex-end"
|
|
44
|
+
}, (0, _element.createElement)(_components.Tooltip, {
|
|
45
|
+
text: (0, _i18n.__)('Manage fonts')
|
|
46
|
+
}, (0, _element.createElement)(_components.Button, {
|
|
47
|
+
onClick: () => toggleModal('installed-fonts'),
|
|
48
|
+
"aria-label": (0, _i18n.__)('Manage fonts'),
|
|
49
|
+
icon: _icons.typography,
|
|
50
|
+
size: 'small'
|
|
51
|
+
})))), (0, _element.createElement)(_components.__experimentalItemGroup, {
|
|
52
|
+
isBordered: true,
|
|
53
|
+
isSeparated: true
|
|
54
|
+
}, customFonts.map(font => (0, _element.createElement)(_fontFamilyItem.default, {
|
|
55
|
+
key: font.slug,
|
|
56
|
+
font: font
|
|
57
|
+
})), themeFonts.map(font => (0, _element.createElement)(_fontFamilyItem.default, {
|
|
58
|
+
key: font.slug,
|
|
59
|
+
font: font
|
|
60
|
+
})))));
|
|
61
|
+
}
|
|
62
|
+
var _default = ({
|
|
63
|
+
...props
|
|
64
|
+
}) => (0, _element.createElement)(_context.default, null, (0, _element.createElement)(FontFamilies, {
|
|
65
|
+
...props
|
|
66
|
+
}));
|
|
67
|
+
exports.default = _default;
|
|
68
|
+
//# sourceMappingURL=font-families.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_element","require","_i18n","_components","_icons","_context","_interopRequireWildcard","_fontLibraryModal","_interopRequireDefault","_fontFamilyItem","_subtitle","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","FontFamilies","modalTabOpen","toggleModal","themeFonts","customFonts","useContext","FontLibraryContext","createElement","Fragment","onRequestClose","initialTabName","__experimentalVStack","spacing","__experimentalHStack","justify","level","__","Tooltip","text","Button","onClick","icon","typography","size","__experimentalItemGroup","isBordered","isSeparated","map","font","slug","_default","props","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-families.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalVStack as VStack,\n\t__experimentalHStack as HStack,\n\tButton,\n\tTooltip,\n} from '@wordpress/components';\nimport { typography } from '@wordpress/icons';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport FontLibraryProvider, {\n\tFontLibraryContext,\n} from './font-library-modal/context';\nimport FontLibraryModal from './font-library-modal';\nimport FontFamilyItem from './font-family-item';\nimport Subtitle from './subtitle';\n\nfunction FontFamilies() {\n\tconst { modalTabOpen, toggleModal, themeFonts, customFonts } =\n\t\tuseContext( FontLibraryContext );\n\n\treturn (\n\t\t<>\n\t\t\t{ !! modalTabOpen && (\n\t\t\t\t<FontLibraryModal\n\t\t\t\t\tonRequestClose={ () => toggleModal() }\n\t\t\t\t\tinitialTabName={ modalTabOpen }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t\t<Subtitle level={ 3 }>{ __( 'Fonts' ) }</Subtitle>\n\t\t\t\t\t<HStack justify=\"flex-end\">\n\t\t\t\t\t\t<Tooltip text={ __( 'Manage fonts' ) }>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\ttoggleModal( 'installed-fonts' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-label={ __( 'Manage fonts' ) }\n\t\t\t\t\t\t\t\ticon={ typography }\n\t\t\t\t\t\t\t\tsize={ 'small' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t</HStack>\n\t\t\t\t</HStack>\n\t\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t\t{ customFonts.map( ( font ) => (\n\t\t\t\t\t\t<FontFamilyItem key={ font.slug } font={ font } />\n\t\t\t\t\t) ) }\n\t\t\t\t\t{ themeFonts.map( ( font ) => (\n\t\t\t\t\t\t<FontFamilyItem key={ font.slug } font={ font } />\n\t\t\t\t\t) ) }\n\t\t\t\t</ItemGroup>\n\t\t\t</VStack>\n\t\t</>\n\t);\n}\n\nexport default ( { ...props } ) => (\n\t<FontLibraryProvider>\n\t\t<FontFamilies { ...props } />\n\t</FontLibraryProvider>\n);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _element = require("@wordpress/element");
|
|
8
|
+
var _i18n = require("@wordpress/i18n");
|
|
9
|
+
var _components = require("@wordpress/components");
|
|
10
|
+
var _context = require("./font-library-modal/context");
|
|
11
|
+
var _utils = require("./font-library-modal/utils");
|
|
12
|
+
/**
|
|
13
|
+
* WordPress dependencies
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Internal dependencies
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
function FontFamilyItem({
|
|
21
|
+
font
|
|
22
|
+
}) {
|
|
23
|
+
const {
|
|
24
|
+
handleSetLibraryFontSelected,
|
|
25
|
+
toggleModal
|
|
26
|
+
} = (0, _element.useContext)(_context.FontLibraryContext);
|
|
27
|
+
const variantsCount = font?.fontFace?.length || 1;
|
|
28
|
+
const handleClick = () => {
|
|
29
|
+
handleSetLibraryFontSelected(font);
|
|
30
|
+
toggleModal('installed-fonts');
|
|
31
|
+
};
|
|
32
|
+
const previewStyle = (0, _utils.getPreviewStyle)(font);
|
|
33
|
+
return (0, _element.createElement)(_components.__experimentalItem, {
|
|
34
|
+
onClick: handleClick
|
|
35
|
+
}, (0, _element.createElement)(_components.__experimentalHStack, {
|
|
36
|
+
justify: "space-between"
|
|
37
|
+
}, (0, _element.createElement)(_components.FlexItem, {
|
|
38
|
+
style: previewStyle
|
|
39
|
+
}, font.name), (0, _element.createElement)(_components.FlexItem, {
|
|
40
|
+
style: {
|
|
41
|
+
color: '#9e9e9e'
|
|
42
|
+
}
|
|
43
|
+
}, variantsCount, ' ', (0, _i18n._n)('variant', 'variants', variantsCount))));
|
|
44
|
+
}
|
|
45
|
+
var _default = FontFamilyItem;
|
|
46
|
+
exports.default = _default;
|
|
47
|
+
//# sourceMappingURL=font-family-item.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_element","require","_i18n","_components","_context","_utils","FontFamilyItem","font","handleSetLibraryFontSelected","toggleModal","useContext","FontLibraryContext","variantsCount","fontFace","length","handleClick","previewStyle","getPreviewStyle","createElement","__experimentalItem","onClick","__experimentalHStack","justify","FlexItem","style","name","color","_n","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-family-item.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _n } from '@wordpress/i18n';\nimport {\n\t__experimentalHStack as HStack,\n\t__experimentalItem as Item,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './font-library-modal/context';\nimport { getPreviewStyle } from './font-library-modal/utils';\n\nfunction FontFamilyItem( { font } ) {\n\tconst { handleSetLibraryFontSelected, toggleModal } =\n\t\tuseContext( FontLibraryContext );\n\n\tconst variantsCount = font?.fontFace?.length || 1;\n\n\tconst handleClick = () => {\n\t\thandleSetLibraryFontSelected( font );\n\t\ttoggleModal( 'installed-fonts' );\n\t};\n\n\tconst previewStyle = getPreviewStyle( font );\n\n\treturn (\n\t\t<Item onClick={ handleClick }>\n\t\t\t<HStack justify=\"space-between\">\n\t\t\t\t<FlexItem style={ previewStyle }>{ font.name }</FlexItem>\n\t\t\t\t<FlexItem style={ { color: '#9e9e9e' } }>\n\t\t\t\t\t{ variantsCount }{ ' ' }\n\t\t\t\t\t{ _n( 'variant', 'variants', variantsCount ) }\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</Item>\n\t);\n}\n\nexport default FontFamilyItem;\n"],"mappings":";;;;;;AASA,IAAAA,QAAA,GAAAC,OAAA;AANA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAUA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAfA;AACA;AACA;;AASA;AACA;AACA;;AAIA,SAASK,cAAcA,CAAE;EAAEC;AAAK,CAAC,EAAG;EACnC,MAAM;IAAEC,4BAA4B;IAAEC;EAAY,CAAC,GAClD,IAAAC,mBAAU,EAAEC,2BAAmB,CAAC;EAEjC,MAAMC,aAAa,GAAGL,IAAI,EAAEM,QAAQ,EAAEC,MAAM,IAAI,CAAC;EAEjD,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACzBP,4BAA4B,CAAED,IAAK,CAAC;IACpCE,WAAW,CAAE,iBAAkB,CAAC;EACjC,CAAC;EAED,MAAMO,YAAY,GAAG,IAAAC,sBAAe,EAAEV,IAAK,CAAC;EAE5C,OACC,IAAAP,QAAA,CAAAkB,aAAA,EAACf,WAAA,CAAAgB,kBAAI;IAACC,OAAO,EAAGL;EAAa,GAC5B,IAAAf,QAAA,CAAAkB,aAAA,EAACf,WAAA,CAAAkB,oBAAM;IAACC,OAAO,EAAC;EAAe,GAC9B,IAAAtB,QAAA,CAAAkB,aAAA,EAACf,WAAA,CAAAoB,QAAQ;IAACC,KAAK,EAAGR;EAAc,GAAGT,IAAI,CAACkB,IAAgB,CAAC,EACzD,IAAAzB,QAAA,CAAAkB,aAAA,EAACf,WAAA,CAAAoB,QAAQ;IAACC,KAAK,EAAG;MAAEE,KAAK,EAAE;IAAU;EAAG,GACrCd,aAAa,EAAI,GAAG,EACpB,IAAAe,QAAE,EAAE,SAAS,EAAE,UAAU,EAAEf,aAAc,CAClC,CACH,CACH,CAAC;AAET;AAAC,IAAAgB,QAAA,GAEctB,cAAc;AAAAuB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _element = require("@wordpress/element");
|
|
8
|
+
var _i18n = require("@wordpress/i18n");
|
|
9
|
+
var _components = require("@wordpress/components");
|
|
10
|
+
/**
|
|
11
|
+
* WordPress dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
function ConfirmDeleteDialog({
|
|
15
|
+
font,
|
|
16
|
+
isConfirmDeleteOpen,
|
|
17
|
+
handleConfirmUninstall,
|
|
18
|
+
handleCancelUninstall
|
|
19
|
+
}) {
|
|
20
|
+
return (0, _element.createElement)(_components.__experimentalConfirmDialog, {
|
|
21
|
+
isOpen: isConfirmDeleteOpen,
|
|
22
|
+
cancelButtonText: (0, _i18n.__)('No, keep the font'),
|
|
23
|
+
confirmButtonText: (0, _i18n.__)('Yes, uninstall'),
|
|
24
|
+
onCancel: handleCancelUninstall,
|
|
25
|
+
onConfirm: handleConfirmUninstall
|
|
26
|
+
}, font && (0, _i18n.sprintf)( /* translators: %s: Name of the font. */
|
|
27
|
+
(0, _i18n.__)('Would you like to remove %s and all its variants and assets?'), font.name));
|
|
28
|
+
}
|
|
29
|
+
var _default = ConfirmDeleteDialog;
|
|
30
|
+
exports.default = _default;
|
|
31
|
+
//# sourceMappingURL=confirm-delete-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_i18n","require","_components","ConfirmDeleteDialog","font","isConfirmDeleteOpen","handleConfirmUninstall","handleCancelUninstall","_element","createElement","__experimentalConfirmDialog","isOpen","cancelButtonText","__","confirmButtonText","onCancel","onConfirm","sprintf","name","_default","exports","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/confirm-delete-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisConfirmDeleteOpen,\n\thandleConfirmUninstall,\n\thandleCancelUninstall,\n} ) {\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\tcancelButtonText={ __( 'No, keep the font' ) }\n\t\t\tconfirmButtonText={ __( 'Yes, uninstall' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t>\n\t\t\t{ font &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Would you like to remove %s and all its variants and assets?'\n\t\t\t\t\t),\n\t\t\t\t\tfont.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default ConfirmDeleteDialog;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,SAASE,mBAAmBA,CAAE;EAC7BC,IAAI;EACJC,mBAAmB;EACnBC,sBAAsB;EACtBC;AACD,CAAC,EAAG;EACH,OACC,IAAAC,QAAA,CAAAC,aAAA,EAACP,WAAA,CAAAQ,2BAAa;IACbC,MAAM,EAAGN,mBAAqB;IAC9BO,gBAAgB,EAAG,IAAAC,QAAE,EAAE,mBAAoB,CAAG;IAC9CC,iBAAiB,EAAG,IAAAD,QAAE,EAAE,gBAAiB,CAAG;IAC5CE,QAAQ,EAAGR,qBAAuB;IAClCS,SAAS,EAAGV;EAAwB,GAElCF,IAAI,IACL,IAAAa,aAAO,GACN;EACA,IAAAJ,QAAE,EACD,8DACD,CAAC,EACDT,IAAI,CAACc,IACN,CACa,CAAC;AAElB;AAAC,IAAAC,QAAA,GAEchB,mBAAmB;AAAAiB,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = exports.FontLibraryContext = void 0;
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
var _blockEditor = require("@wordpress/block-editor");
|
|
10
|
+
var _data = require("@wordpress/data");
|
|
11
|
+
var _coreData = require("@wordpress/core-data");
|
|
12
|
+
var _notices = require("@wordpress/notices");
|
|
13
|
+
var _i18n = require("@wordpress/i18n");
|
|
14
|
+
var _resolvers = require("./resolvers");
|
|
15
|
+
var _lockUnlock = require("../../../lock-unlock");
|
|
16
|
+
var _utils = require("./utils");
|
|
17
|
+
var _toggleFont = require("./utils/toggleFont");
|
|
18
|
+
var _getIntersectingFontFaces = _interopRequireDefault(require("./utils/get-intersecting-font-faces"));
|
|
19
|
+
/**
|
|
20
|
+
* WordPress dependencies
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Internal dependencies
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
const {
|
|
28
|
+
useGlobalSetting
|
|
29
|
+
} = (0, _lockUnlock.unlock)(_blockEditor.privateApis);
|
|
30
|
+
const FontLibraryContext = (0, _element.createContext)({});
|
|
31
|
+
exports.FontLibraryContext = FontLibraryContext;
|
|
32
|
+
function FontLibraryProvider({
|
|
33
|
+
children
|
|
34
|
+
}) {
|
|
35
|
+
const {
|
|
36
|
+
__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits
|
|
37
|
+
} = (0, _data.useDispatch)(_coreData.store);
|
|
38
|
+
const {
|
|
39
|
+
globalStylesId
|
|
40
|
+
} = (0, _data.useSelect)(select => {
|
|
41
|
+
const {
|
|
42
|
+
__experimentalGetCurrentGlobalStylesId
|
|
43
|
+
} = select(_coreData.store);
|
|
44
|
+
return {
|
|
45
|
+
globalStylesId: __experimentalGetCurrentGlobalStylesId()
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
const globalStyles = (0, _coreData.useEntityRecord)('root', 'globalStyles', globalStylesId);
|
|
49
|
+
const fontFamiliesHasChanges = !!globalStyles?.edits?.settings?.typography?.fontFamilies;
|
|
50
|
+
const {
|
|
51
|
+
createErrorNotice
|
|
52
|
+
} = (0, _data.useDispatch)(_notices.store);
|
|
53
|
+
const [isInstalling, setIsInstalling] = (0, _element.useState)(false);
|
|
54
|
+
const [refreshKey, setRefreshKey] = (0, _element.useState)(0);
|
|
55
|
+
const refreshLibrary = () => {
|
|
56
|
+
setRefreshKey(prevKey => prevKey + 1);
|
|
57
|
+
};
|
|
58
|
+
const {
|
|
59
|
+
records: libraryPosts = [],
|
|
60
|
+
isResolving: isResolvingLibrary,
|
|
61
|
+
hasResolved: hasResolvedLibrary
|
|
62
|
+
} = (0, _coreData.useEntityRecords)('postType', 'wp_font_family', {
|
|
63
|
+
refreshKey
|
|
64
|
+
});
|
|
65
|
+
const libraryFonts = (libraryPosts || []).map(post => JSON.parse(post.content.raw)) || [];
|
|
66
|
+
|
|
67
|
+
// Global Styles (settings) font families
|
|
68
|
+
const [fontFamilies, setFontFamilies] = useGlobalSetting('typography.fontFamilies');
|
|
69
|
+
// theme.json file font families
|
|
70
|
+
const [baseFontFamilies] = useGlobalSetting('typography.fontFamilies', undefined, 'base');
|
|
71
|
+
|
|
72
|
+
// Save font families to the global styles post in the database.
|
|
73
|
+
const saveFontFamilies = () => {
|
|
74
|
+
saveSpecifiedEntityEdits('root', 'globalStyles', globalStylesId, ['settings.typography.fontFamilies']);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// Library Fonts
|
|
78
|
+
const [modalTabOpen, setModalTabOpen] = (0, _element.useState)(false);
|
|
79
|
+
const [libraryFontSelected, setLibraryFontSelected] = (0, _element.useState)(null);
|
|
80
|
+
const baseThemeFonts = baseFontFamilies?.theme ? baseFontFamilies.theme.map(f => (0, _utils.setUIValuesNeeded)(f, {
|
|
81
|
+
source: 'theme'
|
|
82
|
+
})).sort((a, b) => a.name.localeCompare(b.name)) : [];
|
|
83
|
+
const themeFonts = fontFamilies?.theme ? fontFamilies.theme.map(f => (0, _utils.setUIValuesNeeded)(f, {
|
|
84
|
+
source: 'theme'
|
|
85
|
+
})).sort((a, b) => a.name.localeCompare(b.name)) : [];
|
|
86
|
+
const customFonts = fontFamilies?.custom ? fontFamilies.custom.map(f => (0, _utils.setUIValuesNeeded)(f, {
|
|
87
|
+
source: 'custom'
|
|
88
|
+
})).sort((a, b) => a.name.localeCompare(b.name)) : [];
|
|
89
|
+
const baseCustomFonts = libraryFonts ? libraryFonts.map(f => (0, _utils.setUIValuesNeeded)(f, {
|
|
90
|
+
source: 'custom'
|
|
91
|
+
})).sort((a, b) => a.name.localeCompare(b.name)) : [];
|
|
92
|
+
(0, _element.useEffect)(() => {
|
|
93
|
+
if (!modalTabOpen) {
|
|
94
|
+
setLibraryFontSelected(null);
|
|
95
|
+
}
|
|
96
|
+
}, [modalTabOpen]);
|
|
97
|
+
const handleSetLibraryFontSelected = font => {
|
|
98
|
+
// If font is null, reset the selected font
|
|
99
|
+
if (!font) {
|
|
100
|
+
setLibraryFontSelected(null);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const fonts = font.source === 'theme' ? baseThemeFonts : baseCustomFonts;
|
|
104
|
+
|
|
105
|
+
// Tries to find the font in the installed fonts
|
|
106
|
+
const fontSelected = fonts.find(f => f.slug === font.slug);
|
|
107
|
+
// If the font is not found (it is only defined in custom styles), use the font from custom styles
|
|
108
|
+
setLibraryFontSelected({
|
|
109
|
+
...(fontSelected || font),
|
|
110
|
+
source: font.source
|
|
111
|
+
});
|
|
112
|
+
};
|
|
113
|
+
const toggleModal = tabName => {
|
|
114
|
+
setModalTabOpen(tabName || null);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
// Demo
|
|
118
|
+
const [loadedFontUrls] = (0, _element.useState)(new Set());
|
|
119
|
+
|
|
120
|
+
// Theme data
|
|
121
|
+
const {
|
|
122
|
+
site,
|
|
123
|
+
currentTheme
|
|
124
|
+
} = (0, _data.useSelect)(select => {
|
|
125
|
+
return {
|
|
126
|
+
site: select(_coreData.store).getSite(),
|
|
127
|
+
currentTheme: select(_coreData.store).getCurrentTheme()
|
|
128
|
+
};
|
|
129
|
+
});
|
|
130
|
+
const themeUrl = site?.url + '/wp-content/themes/' + currentTheme?.stylesheet;
|
|
131
|
+
const getAvailableFontsOutline = availableFontFamilies => {
|
|
132
|
+
const outline = availableFontFamilies.reduce((acc, font) => {
|
|
133
|
+
const availableFontFaces = Array.isArray(font?.fontFace) ? font?.fontFace.map(face => `${face.fontStyle + face.fontWeight}`) : ['normal400']; // If the font doesn't have fontFace, we assume it is a system font and we add the defaults: normal 400
|
|
134
|
+
|
|
135
|
+
acc[font.slug] = availableFontFaces;
|
|
136
|
+
return acc;
|
|
137
|
+
}, {});
|
|
138
|
+
return outline;
|
|
139
|
+
};
|
|
140
|
+
const getActivatedFontsOutline = source => {
|
|
141
|
+
switch (source) {
|
|
142
|
+
case 'theme':
|
|
143
|
+
return getAvailableFontsOutline(themeFonts);
|
|
144
|
+
case 'custom':
|
|
145
|
+
default:
|
|
146
|
+
return getAvailableFontsOutline(customFonts);
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
const isFontActivated = (slug, style, weight, source) => {
|
|
150
|
+
if (!style && !weight) {
|
|
151
|
+
return !!getActivatedFontsOutline(source)[slug];
|
|
152
|
+
}
|
|
153
|
+
return !!getActivatedFontsOutline(source)[slug]?.includes(style + weight);
|
|
154
|
+
};
|
|
155
|
+
const getFontFacesActivated = (slug, source) => {
|
|
156
|
+
return getActivatedFontsOutline(source)[slug] || [];
|
|
157
|
+
};
|
|
158
|
+
async function installFonts(fonts) {
|
|
159
|
+
setIsInstalling(true);
|
|
160
|
+
try {
|
|
161
|
+
// Prepare formData to install.
|
|
162
|
+
const formData = (0, _utils.makeFormDataFromFontFamilies)(fonts);
|
|
163
|
+
// Install the fonts (upload the font files to the server and create the post in the database).
|
|
164
|
+
const fontsInstalled = await (0, _resolvers.fetchInstallFonts)(formData);
|
|
165
|
+
// Get intersecting font faces between the fonts we tried to installed and the fonts that were installed
|
|
166
|
+
// (to avoid activating a non installed font).
|
|
167
|
+
const fontToBeActivated = (0, _getIntersectingFontFaces.default)(fontsInstalled, fonts);
|
|
168
|
+
// Activate the font families (add the font families to the global styles).
|
|
169
|
+
activateCustomFontFamilies(fontToBeActivated);
|
|
170
|
+
// Save the global styles to the database.
|
|
171
|
+
saveSpecifiedEntityEdits('root', 'globalStyles', globalStylesId, ['settings.typography.fontFamilies']);
|
|
172
|
+
refreshLibrary();
|
|
173
|
+
setIsInstalling(false);
|
|
174
|
+
return true;
|
|
175
|
+
} catch (e) {
|
|
176
|
+
// eslint-disable-next-line no-console
|
|
177
|
+
console.error(e);
|
|
178
|
+
createErrorNotice((0, _i18n.__)('Error installing fonts.'), {
|
|
179
|
+
type: 'snackbar'
|
|
180
|
+
});
|
|
181
|
+
setIsInstalling(false);
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
async function uninstallFont(font) {
|
|
186
|
+
try {
|
|
187
|
+
// Uninstall the font (remove the font files from the server and the post from the database).
|
|
188
|
+
await (0, _resolvers.fetchUninstallFonts)([font]);
|
|
189
|
+
// Deactivate the font family (remove the font family from the global styles).
|
|
190
|
+
deactivateFontFamily(font);
|
|
191
|
+
// Save the global styles to the database.
|
|
192
|
+
await saveSpecifiedEntityEdits('root', 'globalStyles', globalStylesId, ['settings.typography.fontFamilies']);
|
|
193
|
+
// Refresh the library (the the library font families from database).
|
|
194
|
+
refreshLibrary();
|
|
195
|
+
return true;
|
|
196
|
+
} catch (e) {
|
|
197
|
+
// eslint-disable-next-line no-console
|
|
198
|
+
console.error(e);
|
|
199
|
+
createErrorNotice((0, _i18n.__)('Error uninstalling fonts.'), {
|
|
200
|
+
type: 'snackbar'
|
|
201
|
+
});
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
const deactivateFontFamily = font => {
|
|
206
|
+
var _fontFamilies$font$so;
|
|
207
|
+
// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts
|
|
208
|
+
// We want to save as active all the theme fonts at the beginning
|
|
209
|
+
const initialCustomFonts = (_fontFamilies$font$so = fontFamilies?.[font.source]) !== null && _fontFamilies$font$so !== void 0 ? _fontFamilies$font$so : [];
|
|
210
|
+
const newCustomFonts = initialCustomFonts.filter(f => f.slug !== font.slug);
|
|
211
|
+
setFontFamilies({
|
|
212
|
+
...fontFamilies,
|
|
213
|
+
[font.source]: newCustomFonts
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
const activateCustomFontFamilies = fontsToAdd => {
|
|
217
|
+
// Merge the existing custom fonts with the new fonts.
|
|
218
|
+
const newCustomFonts = (0, _utils.mergeFontFamilies)(fontFamilies?.custom, fontsToAdd);
|
|
219
|
+
// Activate the fonts by set the new custom fonts array.
|
|
220
|
+
setFontFamilies({
|
|
221
|
+
...fontFamilies,
|
|
222
|
+
custom: newCustomFonts
|
|
223
|
+
});
|
|
224
|
+
// Add custom fonts to the browser.
|
|
225
|
+
fontsToAdd.forEach(font => {
|
|
226
|
+
font.fontFace.forEach(face => {
|
|
227
|
+
// Load font faces just in the iframe because they already are in the document.
|
|
228
|
+
(0, _utils.loadFontFaceInBrowser)(face, (0, _utils.getDisplaySrcFromFontFace)(face.src), 'iframe');
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
};
|
|
232
|
+
const toggleActivateFont = (font, face) => {
|
|
233
|
+
var _fontFamilies$font$so2;
|
|
234
|
+
// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts
|
|
235
|
+
// We want to save as active all the theme fonts at the beginning
|
|
236
|
+
const initialFonts = (_fontFamilies$font$so2 = fontFamilies?.[font.source]) !== null && _fontFamilies$font$so2 !== void 0 ? _fontFamilies$font$so2 : [];
|
|
237
|
+
// Toggles the received font family or font face
|
|
238
|
+
const newFonts = (0, _toggleFont.toggleFont)(font, face, initialFonts);
|
|
239
|
+
// Updates the font families activated in global settings:
|
|
240
|
+
setFontFamilies({
|
|
241
|
+
...fontFamilies,
|
|
242
|
+
[font.source]: newFonts
|
|
243
|
+
});
|
|
244
|
+
};
|
|
245
|
+
const loadFontFaceAsset = async fontFace => {
|
|
246
|
+
// If the font doesn't have a src, don't load it.
|
|
247
|
+
if (!fontFace.src) return;
|
|
248
|
+
// Get the src of the font.
|
|
249
|
+
const src = (0, _utils.getDisplaySrcFromFontFace)(fontFace.src, themeUrl);
|
|
250
|
+
// If the font is already loaded, don't load it again.
|
|
251
|
+
if (loadedFontUrls.has(src)) return;
|
|
252
|
+
// Load the font in the browser.
|
|
253
|
+
(0, _utils.loadFontFaceInBrowser)(fontFace, src, 'document');
|
|
254
|
+
// Add the font to the loaded fonts list.
|
|
255
|
+
loadedFontUrls.add(src);
|
|
256
|
+
};
|
|
257
|
+
return (0, _element.createElement)(FontLibraryContext.Provider, {
|
|
258
|
+
value: {
|
|
259
|
+
libraryFontSelected,
|
|
260
|
+
handleSetLibraryFontSelected,
|
|
261
|
+
themeFonts,
|
|
262
|
+
baseThemeFonts,
|
|
263
|
+
customFonts,
|
|
264
|
+
baseCustomFonts,
|
|
265
|
+
isFontActivated,
|
|
266
|
+
getFontFacesActivated,
|
|
267
|
+
loadFontFaceAsset,
|
|
268
|
+
installFonts,
|
|
269
|
+
uninstallFont,
|
|
270
|
+
toggleActivateFont,
|
|
271
|
+
getAvailableFontsOutline,
|
|
272
|
+
modalTabOpen,
|
|
273
|
+
toggleModal,
|
|
274
|
+
refreshLibrary,
|
|
275
|
+
saveFontFamilies,
|
|
276
|
+
fontFamiliesHasChanges,
|
|
277
|
+
isResolvingLibrary,
|
|
278
|
+
hasResolvedLibrary,
|
|
279
|
+
isInstalling
|
|
280
|
+
}
|
|
281
|
+
}, children);
|
|
282
|
+
}
|
|
283
|
+
var _default = FontLibraryProvider;
|
|
284
|
+
exports.default = _default;
|
|
285
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_element","require","_blockEditor","_data","_coreData","_notices","_i18n","_resolvers","_lockUnlock","_utils","_toggleFont","_getIntersectingFontFaces","_interopRequireDefault","useGlobalSetting","unlock","blockEditorPrivateApis","FontLibraryContext","createContext","exports","FontLibraryProvider","children","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","useDispatch","coreStore","globalStylesId","useSelect","select","__experimentalGetCurrentGlobalStylesId","globalStyles","useEntityRecord","fontFamiliesHasChanges","edits","settings","typography","fontFamilies","createErrorNotice","noticesStore","isInstalling","setIsInstalling","useState","refreshKey","setRefreshKey","refreshLibrary","prevKey","records","libraryPosts","isResolving","isResolvingLibrary","hasResolved","hasResolvedLibrary","useEntityRecords","libraryFonts","map","post","JSON","parse","content","raw","setFontFamilies","baseFontFamilies","undefined","saveFontFamilies","modalTabOpen","setModalTabOpen","libraryFontSelected","setLibraryFontSelected","baseThemeFonts","theme","f","setUIValuesNeeded","source","sort","a","b","name","localeCompare","themeFonts","customFonts","custom","baseCustomFonts","useEffect","handleSetLibraryFontSelected","font","fonts","fontSelected","find","slug","toggleModal","tabName","loadedFontUrls","Set","site","currentTheme","getSite","getCurrentTheme","themeUrl","url","stylesheet","getAvailableFontsOutline","availableFontFamilies","outline","reduce","acc","availableFontFaces","Array","isArray","fontFace","face","fontStyle","fontWeight","getActivatedFontsOutline","isFontActivated","style","weight","includes","getFontFacesActivated","installFonts","formData","makeFormDataFromFontFamilies","fontsInstalled","fetchInstallFonts","fontToBeActivated","getIntersectingFontFaces","activateCustomFontFamilies","e","console","error","__","type","uninstallFont","fetchUninstallFonts","deactivateFontFamily","_fontFamilies$font$so","initialCustomFonts","newCustomFonts","filter","fontsToAdd","mergeFontFamilies","forEach","loadFontFaceInBrowser","getDisplaySrcFromFontFace","src","toggleActivateFont","_fontFamilies$font$so2","initialFonts","newFonts","toggleFont","loadFontFaceAsset","has","add","createElement","Provider","value","_default","default"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/context.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useState, useEffect } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tuseEntityRecord,\n\tuseEntityRecords,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { fetchInstallFonts, fetchUninstallFonts } from './resolvers';\nimport { unlock } from '../../../lock-unlock';\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\nimport {\n\tsetUIValuesNeeded,\n\tmergeFontFamilies,\n\tloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n\tmakeFormDataFromFontFamilies,\n} from './utils';\nimport { toggleFont } from './utils/toggleFont';\nimport getIntersectingFontFaces from './utils/get-intersecting-font-faces';\n\nexport const FontLibraryContext = createContext( {} );\n\nfunction FontLibraryProvider( { children } ) {\n\tconst { __experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits } =\n\t\tuseDispatch( coreStore );\n\tconst { globalStylesId } = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn { globalStylesId: __experimentalGetCurrentGlobalStylesId() };\n\t} );\n\n\tconst globalStyles = useEntityRecord(\n\t\t'root',\n\t\t'globalStyles',\n\t\tglobalStylesId\n\t);\n\tconst fontFamiliesHasChanges =\n\t\t!! globalStyles?.edits?.settings?.typography?.fontFamilies;\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tconst [ isInstalling, setIsInstalling ] = useState( false );\n\tconst [ refreshKey, setRefreshKey ] = useState( 0 );\n\n\tconst refreshLibrary = () => {\n\t\tsetRefreshKey( ( prevKey ) => prevKey + 1 );\n\t};\n\n\tconst {\n\t\trecords: libraryPosts = [],\n\t\tisResolving: isResolvingLibrary,\n\t\thasResolved: hasResolvedLibrary,\n\t} = useEntityRecords( 'postType', 'wp_font_family', { refreshKey } );\n\n\tconst libraryFonts =\n\t\t( libraryPosts || [] ).map( ( post ) =>\n\t\t\tJSON.parse( post.content.raw )\n\t\t) || [];\n\n\t// Global Styles (settings) font families\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\t// theme.json file font families\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\n\t// Save font families to the global styles post in the database.\n\tconst saveFontFamilies = () => {\n\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t'settings.typography.fontFamilies',\n\t\t] );\n\t};\n\n\t// Library Fonts\n\tconst [ modalTabOpen, setModalTabOpen ] = useState( false );\n\tconst [ libraryFontSelected, setLibraryFontSelected ] = useState( null );\n\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? baseFontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst themeFonts = fontFamilies?.theme\n\t\t? fontFamilies.theme\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst customFonts = fontFamilies?.custom\n\t\t? fontFamilies.custom\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tconst baseCustomFonts = libraryFonts\n\t\t? libraryFonts\n\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'custom' } ) )\n\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t: [];\n\n\tuseEffect( () => {\n\t\tif ( ! modalTabOpen ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t}\n\t}, [ modalTabOpen ] );\n\n\tconst handleSetLibraryFontSelected = ( font ) => {\n\t\t// If font is null, reset the selected font\n\t\tif ( ! font ) {\n\t\t\tsetLibraryFontSelected( null );\n\t\t\treturn;\n\t\t}\n\n\t\tconst fonts =\n\t\t\tfont.source === 'theme' ? baseThemeFonts : baseCustomFonts;\n\n\t\t// Tries to find the font in the installed fonts\n\t\tconst fontSelected = fonts.find( ( f ) => f.slug === font.slug );\n\t\t// If the font is not found (it is only defined in custom styles), use the font from custom styles\n\t\tsetLibraryFontSelected( {\n\t\t\t...( fontSelected || font ),\n\t\t\tsource: font.source,\n\t\t} );\n\t};\n\n\tconst toggleModal = ( tabName ) => {\n\t\tsetModalTabOpen( tabName || null );\n\t};\n\n\t// Demo\n\tconst [ loadedFontUrls ] = useState( new Set() );\n\n\t// Theme data\n\tconst { site, currentTheme } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tsite: select( coreStore ).getSite(),\n\t\t\tcurrentTheme: select( coreStore ).getCurrentTheme(),\n\t\t};\n\t} );\n\tconst themeUrl =\n\t\tsite?.url + '/wp-content/themes/' + currentTheme?.stylesheet;\n\n\tconst getAvailableFontsOutline = ( availableFontFamilies ) => {\n\t\tconst outline = availableFontFamilies.reduce( ( acc, font ) => {\n\t\t\tconst availableFontFaces = Array.isArray( font?.fontFace )\n\t\t\t\t? font?.fontFace.map(\n\t\t\t\t\t\t( face ) => `${ face.fontStyle + face.fontWeight }`\n\t\t\t\t )\n\t\t\t\t: [ 'normal400' ]; // If the font doesn't have fontFace, we assume it is a system font and we add the defaults: normal 400\n\n\t\t\tacc[ font.slug ] = availableFontFaces;\n\t\t\treturn acc;\n\t\t}, {} );\n\t\treturn outline;\n\t};\n\n\tconst getActivatedFontsOutline = ( source ) => {\n\t\tswitch ( source ) {\n\t\t\tcase 'theme':\n\t\t\t\treturn getAvailableFontsOutline( themeFonts );\n\t\t\tcase 'custom':\n\t\t\tdefault:\n\t\t\t\treturn getAvailableFontsOutline( customFonts );\n\t\t}\n\t};\n\n\tconst isFontActivated = ( slug, style, weight, source ) => {\n\t\tif ( ! style && ! weight ) {\n\t\t\treturn !! getActivatedFontsOutline( source )[ slug ];\n\t\t}\n\t\treturn !! getActivatedFontsOutline( source )[ slug ]?.includes(\n\t\t\tstyle + weight\n\t\t);\n\t};\n\n\tconst getFontFacesActivated = ( slug, source ) => {\n\t\treturn getActivatedFontsOutline( source )[ slug ] || [];\n\t};\n\n\tasync function installFonts( fonts ) {\n\t\tsetIsInstalling( true );\n\t\ttry {\n\t\t\t// Prepare formData to install.\n\t\t\tconst formData = makeFormDataFromFontFamilies( fonts );\n\t\t\t// Install the fonts (upload the font files to the server and create the post in the database).\n\t\t\tconst fontsInstalled = await fetchInstallFonts( formData );\n\t\t\t// Get intersecting font faces between the fonts we tried to installed and the fonts that were installed\n\t\t\t// (to avoid activating a non installed font).\n\t\t\tconst fontToBeActivated = getIntersectingFontFaces(\n\t\t\t\tfontsInstalled,\n\t\t\t\tfonts\n\t\t\t);\n\t\t\t// Activate the font families (add the font families to the global styles).\n\t\t\tactivateCustomFontFamilies( fontToBeActivated );\n\t\t\t// Save the global styles to the database.\n\t\t\tsaveSpecifiedEntityEdits( 'root', 'globalStyles', globalStylesId, [\n\t\t\t\t'settings.typography.fontFamilies',\n\t\t\t] );\n\t\t\trefreshLibrary();\n\t\t\tsetIsInstalling( false );\n\t\t\treturn true;\n\t\t} catch ( e ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( e );\n\t\t\tcreateErrorNotice( __( 'Error installing fonts.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\tsetIsInstalling( false );\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tasync function uninstallFont( font ) {\n\t\ttry {\n\t\t\t// Uninstall the font (remove the font files from the server and the post from the database).\n\t\t\tawait fetchUninstallFonts( [ font ] );\n\t\t\t// Deactivate the font family (remove the font family from the global styles).\n\t\t\tdeactivateFontFamily( font );\n\t\t\t// Save the global styles to the database.\n\t\t\tawait saveSpecifiedEntityEdits(\n\t\t\t\t'root',\n\t\t\t\t'globalStyles',\n\t\t\t\tglobalStylesId,\n\t\t\t\t[ 'settings.typography.fontFamilies' ]\n\t\t\t);\n\t\t\t// Refresh the library (the the library font families from database).\n\t\t\trefreshLibrary();\n\t\t\treturn true;\n\t\t} catch ( e ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( e );\n\t\t\tcreateErrorNotice( __( 'Error uninstalling fonts.' ), {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tconst deactivateFontFamily = ( font ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialCustomFonts = fontFamilies?.[ font.source ] ?? [];\n\t\tconst newCustomFonts = initialCustomFonts.filter(\n\t\t\t( f ) => f.slug !== font.slug\n\t\t);\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newCustomFonts,\n\t\t} );\n\t};\n\n\tconst activateCustomFontFamilies = ( fontsToAdd ) => {\n\t\t// Merge the existing custom fonts with the new fonts.\n\t\tconst newCustomFonts = mergeFontFamilies(\n\t\t\tfontFamilies?.custom,\n\t\t\tfontsToAdd\n\t\t);\n\t\t// Activate the fonts by set the new custom fonts array.\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\tcustom: newCustomFonts,\n\t\t} );\n\t\t// Add custom fonts to the browser.\n\t\tfontsToAdd.forEach( ( font ) => {\n\t\t\tfont.fontFace.forEach( ( face ) => {\n\t\t\t\t// Load font faces just in the iframe because they already are in the document.\n\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\tface,\n\t\t\t\t\tgetDisplaySrcFromFontFace( face.src ),\n\t\t\t\t\t'iframe'\n\t\t\t\t);\n\t\t\t} );\n\t\t} );\n\t};\n\n\tconst toggleActivateFont = ( font, face ) => {\n\t\t// If the user doesn't have custom fonts defined, include as custom fonts all the theme fonts\n\t\t// We want to save as active all the theme fonts at the beginning\n\t\tconst initialFonts = fontFamilies?.[ font.source ] ?? [];\n\t\t// Toggles the received font family or font face\n\t\tconst newFonts = toggleFont( font, face, initialFonts );\n\t\t// Updates the font families activated in global settings:\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ font.source ]: newFonts,\n\t\t} );\n\t};\n\n\tconst loadFontFaceAsset = async ( fontFace ) => {\n\t\t// If the font doesn't have a src, don't load it.\n\t\tif ( ! fontFace.src ) return;\n\t\t// Get the src of the font.\n\t\tconst src = getDisplaySrcFromFontFace( fontFace.src, themeUrl );\n\t\t// If the font is already loaded, don't load it again.\n\t\tif ( loadedFontUrls.has( src ) ) return;\n\t\t// Load the font in the browser.\n\t\tloadFontFaceInBrowser( fontFace, src, 'document' );\n\t\t// Add the font to the loaded fonts list.\n\t\tloadedFontUrls.add( src );\n\t};\n\n\treturn (\n\t\t<FontLibraryContext.Provider\n\t\t\tvalue={ {\n\t\t\t\tlibraryFontSelected,\n\t\t\t\thandleSetLibraryFontSelected,\n\t\t\t\tthemeFonts,\n\t\t\t\tbaseThemeFonts,\n\t\t\t\tcustomFonts,\n\t\t\t\tbaseCustomFonts,\n\t\t\t\tisFontActivated,\n\t\t\t\tgetFontFacesActivated,\n\t\t\t\tloadFontFaceAsset,\n\t\t\t\tinstallFonts,\n\t\t\t\tuninstallFont,\n\t\t\t\ttoggleActivateFont,\n\t\t\t\tgetAvailableFontsOutline,\n\t\t\t\tmodalTabOpen,\n\t\t\t\ttoggleModal,\n\t\t\t\trefreshLibrary,\n\t\t\t\tsaveFontFamilies,\n\t\t\t\tfontFamiliesHasChanges,\n\t\t\t\tisResolvingLibrary,\n\t\t\t\thasResolvedLibrary,\n\t\t\t\tisInstalling,\n\t\t\t} }\n\t\t>\n\t\t\t{ children }\n\t\t</FontLibraryContext.Provider>\n\t);\n}\n\nexport default FontLibraryProvider;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
var _i18n = require("@wordpress/i18n");
|
|
10
|
+
var _components = require("@wordpress/components");
|
|
11
|
+
var _fontDemo = _interopRequireDefault(require("./font-demo"));
|
|
12
|
+
var _utils = require("./utils");
|
|
13
|
+
/**
|
|
14
|
+
* WordPress dependencies
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Internal dependencies
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
function FontCard({
|
|
22
|
+
font,
|
|
23
|
+
onClick,
|
|
24
|
+
actionHandler,
|
|
25
|
+
variantsText
|
|
26
|
+
}) {
|
|
27
|
+
const fakeFontFace = {
|
|
28
|
+
fontStyle: 'normal',
|
|
29
|
+
fontWeight: '400',
|
|
30
|
+
fontFamily: font.fontFamily,
|
|
31
|
+
fake: true
|
|
32
|
+
};
|
|
33
|
+
const displayFontFace = font.fontFace && font.fontFace.length ? font?.fontFace?.find(face => face.fontStyle === 'normal' && face.fontWeight === '400') || font.fontFace[0] : fakeFontFace;
|
|
34
|
+
const demoStyle = (0, _utils.getPreviewStyle)(font);
|
|
35
|
+
const variantsCount = font.fontFace?.length || 1;
|
|
36
|
+
const style = {
|
|
37
|
+
cursor: !!onClick ? 'pointer' : 'default'
|
|
38
|
+
};
|
|
39
|
+
return (0, _element.createElement)(_components.Button, {
|
|
40
|
+
onClick: onClick,
|
|
41
|
+
style: style,
|
|
42
|
+
className: "font-library-modal__font-card"
|
|
43
|
+
}, (0, _element.createElement)(_components.Flex, {
|
|
44
|
+
justify: "space-between",
|
|
45
|
+
wrap: false
|
|
46
|
+
}, (0, _element.createElement)(_fontDemo.default, {
|
|
47
|
+
fontFace: displayFontFace,
|
|
48
|
+
text: font.name,
|
|
49
|
+
style: demoStyle
|
|
50
|
+
}), (0, _element.createElement)(_components.Flex, {
|
|
51
|
+
justify: "flex-end"
|
|
52
|
+
}, (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.__experimentalText, {
|
|
53
|
+
className: "font-library-modal__font-card__count"
|
|
54
|
+
}, variantsText || variantsCount + ' ' + (0, _i18n._n)('variant', 'variants', variantsCount))), (0, _element.createElement)(_components.FlexItem, null, !!actionHandler && actionHandler))));
|
|
55
|
+
}
|
|
56
|
+
var _default = FontCard;
|
|
57
|
+
exports.default = _default;
|
|
58
|
+
//# sourceMappingURL=font-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_i18n","require","_components","_fontDemo","_interopRequireDefault","_utils","FontCard","font","onClick","actionHandler","variantsText","fakeFontFace","fontStyle","fontWeight","fontFamily","fake","displayFontFace","fontFace","length","find","face","demoStyle","getPreviewStyle","variantsCount","style","cursor","_element","createElement","Button","className","Flex","justify","wrap","default","text","name","FlexItem","__experimentalText","_n","_default","exports"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/font-card.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { _n } from '@wordpress/i18n';\nimport {\n\t__experimentalText as Text,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport FontDemo from './font-demo';\nimport { getPreviewStyle } from './utils';\n\nfunction FontCard( { font, onClick, actionHandler, variantsText } ) {\n\tconst fakeFontFace = {\n\t\tfontStyle: 'normal',\n\t\tfontWeight: '400',\n\t\tfontFamily: font.fontFamily,\n\t\tfake: true,\n\t};\n\n\tconst displayFontFace =\n\t\tfont.fontFace && font.fontFace.length\n\t\t\t? font?.fontFace?.find(\n\t\t\t\t\t( face ) =>\n\t\t\t\t\t\tface.fontStyle === 'normal' && face.fontWeight === '400'\n\t\t\t ) || font.fontFace[ 0 ]\n\t\t\t: fakeFontFace;\n\n\tconst demoStyle = getPreviewStyle( font );\n\n\tconst variantsCount = font.fontFace?.length || 1;\n\n\tconst style = {\n\t\tcursor: !! onClick ? 'pointer' : 'default',\n\t};\n\n\treturn (\n\t\t<Button\n\t\t\tonClick={ onClick }\n\t\t\tstyle={ style }\n\t\t\tclassName=\"font-library-modal__font-card\"\n\t\t>\n\t\t\t<Flex justify=\"space-between\" wrap={ false }>\n\t\t\t\t<FontDemo\n\t\t\t\t\tfontFace={ displayFontFace }\n\t\t\t\t\ttext={ font.name }\n\t\t\t\t\tstyle={ demoStyle }\n\t\t\t\t/>\n\t\t\t\t<Flex justify=\"flex-end\">\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Text className=\"font-library-modal__font-card__count\">\n\t\t\t\t\t\t\t{ variantsText ||\n\t\t\t\t\t\t\t\tvariantsCount +\n\t\t\t\t\t\t\t\t\t' ' +\n\t\t\t\t\t\t\t\t\t_n( 'variant', 'variants', variantsCount ) }\n\t\t\t\t\t\t</Text>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>{ !! actionHandler && actionHandler }</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</Flex>\n\t\t</Button>\n\t);\n}\n\nexport default FontCard;\n"],"mappings":";;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAUA,IAAAE,SAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAfA;AACA;AACA;;AASA;AACA;AACA;;AAIA,SAASK,QAAQA,CAAE;EAAEC,IAAI;EAAEC,OAAO;EAAEC,aAAa;EAAEC;AAAa,CAAC,EAAG;EACnE,MAAMC,YAAY,GAAG;IACpBC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,KAAK;IACjBC,UAAU,EAAEP,IAAI,CAACO,UAAU;IAC3BC,IAAI,EAAE;EACP,CAAC;EAED,MAAMC,eAAe,GACpBT,IAAI,CAACU,QAAQ,IAAIV,IAAI,CAACU,QAAQ,CAACC,MAAM,GAClCX,IAAI,EAAEU,QAAQ,EAAEE,IAAI,CAClBC,IAAI,IACLA,IAAI,CAACR,SAAS,KAAK,QAAQ,IAAIQ,IAAI,CAACP,UAAU,KAAK,KACpD,CAAC,IAAIN,IAAI,CAACU,QAAQ,CAAE,CAAC,CAAE,GACvBN,YAAY;EAEhB,MAAMU,SAAS,GAAG,IAAAC,sBAAe,EAAEf,IAAK,CAAC;EAEzC,MAAMgB,aAAa,GAAGhB,IAAI,CAACU,QAAQ,EAAEC,MAAM,IAAI,CAAC;EAEhD,MAAMM,KAAK,GAAG;IACbC,MAAM,EAAE,CAAC,CAAEjB,OAAO,GAAG,SAAS,GAAG;EAClC,CAAC;EAED,OACC,IAAAkB,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA0B,MAAM;IACNpB,OAAO,EAAGA,OAAS;IACnBgB,KAAK,EAAGA,KAAO;IACfK,SAAS,EAAC;EAA+B,GAEzC,IAAAH,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA4B,IAAI;IAACC,OAAO,EAAC,eAAe;IAACC,IAAI,EAAG;EAAO,GAC3C,IAAAN,QAAA,CAAAC,aAAA,EAACxB,SAAA,CAAA8B,OAAQ;IACRhB,QAAQ,EAAGD,eAAiB;IAC5BkB,IAAI,EAAG3B,IAAI,CAAC4B,IAAM;IAClBX,KAAK,EAAGH;EAAW,CACnB,CAAC,EACF,IAAAK,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAA4B,IAAI;IAACC,OAAO,EAAC;EAAU,GACvB,IAAAL,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAAkC,QAAQ,QACR,IAAAV,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAAmC,kBAAI;IAACR,SAAS,EAAC;EAAsC,GACnDnB,YAAY,IACba,aAAa,GACZ,GAAG,GACH,IAAAe,QAAE,EAAE,SAAS,EAAE,UAAU,EAAEf,aAAc,CACtC,CACG,CAAC,EACX,IAAAG,QAAA,CAAAC,aAAA,EAACzB,WAAA,CAAAkC,QAAQ,QAAG,CAAC,CAAE3B,aAAa,IAAIA,aAAyB,CACpD,CACD,CACC,CAAC;AAEX;AAAC,IAAA8B,QAAA,GAEcjC,QAAQ;AAAAkC,OAAA,CAAAP,OAAA,GAAAM,QAAA"}
|