@wordpress/edit-site 6.3.0 → 6.5.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 +4 -0
- package/build/components/add-new-pattern/index.js +14 -3
- package/build/components/add-new-pattern/index.js.map +1 -1
- package/build/components/add-new-post/index.js +2 -1
- package/build/components/add-new-post/index.js.map +1 -1
- package/build/components/add-new-template/index.js +3 -1
- package/build/components/add-new-template/index.js.map +1 -1
- package/build/components/add-new-template/utils.js +2 -2
- package/build/components/add-new-template/utils.js.map +1 -1
- package/build/components/block-editor/use-site-editor-settings.js +1 -82
- package/build/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build/components/editor/index.js +71 -20
- package/build/components/editor/index.js.map +1 -1
- package/build/components/global-styles/block-preview-panel.js +14 -5
- package/build/components/global-styles/block-preview-panel.js.map +1 -1
- package/build/components/global-styles/font-families.js +40 -22
- package/build/components/global-styles/font-families.js.map +1 -1
- package/build/components/global-styles/font-library-modal/context.js +0 -5
- package/build/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build/components/global-styles/font-library-modal/font-collection.js +25 -5
- package/build/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build/components/global-styles/font-library-modal/index.js +5 -12
- package/build/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build/components/global-styles/font-library-modal/installed-fonts.js +78 -15
- package/build/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build/components/global-styles/font-library-modal/upload-fonts.js +2 -3
- package/build/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +39 -0
- package/build/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
- package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +39 -0
- package/build/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
- package/build/components/global-styles/font-sizes/font-size-preview.js +44 -0
- package/build/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
- package/build/components/global-styles/font-sizes/font-size.js +213 -0
- package/build/components/global-styles/font-sizes/font-size.js.map +1 -0
- package/build/components/global-styles/font-sizes/font-sizes-count.js +50 -0
- package/build/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
- package/build/components/global-styles/font-sizes/font-sizes.js +163 -0
- package/build/components/global-styles/font-sizes/font-sizes.js.map +1 -0
- package/build/components/global-styles/font-sizes/rename-font-size-dialog.js +67 -0
- package/build/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
- package/build/components/global-styles/screen-block.js +10 -8
- package/build/components/global-styles/screen-block.js.map +1 -1
- package/build/components/global-styles/screen-style-variations.js +2 -2
- package/build/components/global-styles/screen-style-variations.js.map +1 -1
- package/build/components/global-styles/screen-typeset.js +40 -0
- package/build/components/global-styles/screen-typeset.js.map +1 -0
- package/build/components/global-styles/screen-typography-element.js +14 -0
- package/build/components/global-styles/screen-typography-element.js.map +1 -1
- package/build/components/global-styles/screen-typography.js +5 -6
- package/build/components/global-styles/screen-typography.js.map +1 -1
- package/build/components/global-styles/shadows-edit-panel.js +50 -59
- package/build/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build/components/global-styles/size-control/index.js +85 -0
- package/build/components/global-styles/size-control/index.js.map +1 -0
- package/build/components/global-styles/style-variations-container.js +3 -0
- package/build/components/global-styles/style-variations-container.js.map +1 -1
- package/build/components/global-styles/typeset-button.js +97 -0
- package/build/components/global-styles/typeset-button.js.map +1 -0
- package/build/components/global-styles/typeset.js +80 -0
- package/build/components/global-styles/typeset.js.map +1 -0
- package/build/components/global-styles/ui.js +12 -0
- package/build/components/global-styles/ui.js.map +1 -1
- package/build/components/global-styles/utils.js +10 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/global-styles/variations/variations-color.js.map +1 -1
- package/build/components/global-styles/variations/variations-typography.js +1 -1
- package/build/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build/components/layout/index.js +6 -0
- package/build/components/layout/index.js.map +1 -1
- package/build/components/layout/router.js +14 -6
- package/build/components/layout/router.js.map +1 -1
- package/build/components/page-patterns/fields.js +230 -0
- package/build/components/page-patterns/fields.js.map +1 -0
- package/build/components/page-patterns/header.js +1 -1
- package/build/components/page-patterns/header.js.map +1 -1
- package/build/components/page-patterns/index.js +21 -227
- package/build/components/page-patterns/index.js.map +1 -1
- package/build/components/page-patterns/use-patterns.js +26 -1
- package/build/components/page-patterns/use-patterns.js.map +1 -1
- package/build/components/page-templates/fields.js +169 -0
- package/build/components/page-templates/fields.js.map +1 -0
- package/build/components/page-templates/index.js +38 -198
- package/build/components/page-templates/index.js.map +1 -1
- package/build/components/post-edit/index.js +117 -0
- package/build/components/post-edit/index.js.map +1 -0
- package/build/components/post-fields/index.js +318 -0
- package/build/components/post-fields/index.js.map +1 -0
- package/build/components/post-list/index.js +339 -0
- package/build/components/post-list/index.js.map +1 -0
- package/build/components/posts-app/router.js +3 -3
- package/build/components/posts-app/router.js.map +1 -1
- package/build/components/sidebar-dataviews/add-new-view.js +2 -2
- package/build/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build/components/sidebar-dataviews/dataview-item.js +2 -3
- package/build/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build/components/sidebar-dataviews/default-views.js +103 -91
- package/build/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build/components/sidebar-dataviews/index.js +2 -2
- package/build/components/sidebar-dataviews/index.js.map +1 -1
- package/build/components/sidebar-navigation-screen-global-styles/content.js +64 -0
- package/build/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
- package/build/components/sidebar-navigation-screen-global-styles/index.js +2 -47
- package/build/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build/components/site-hub/index.js +6 -3
- package/build/components/site-hub/index.js.map +1 -1
- package/build/components/style-book/index.js +22 -25
- package/build/components/style-book/index.js.map +1 -1
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
- package/build/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build/hooks/push-changes-to-global-styles/index.js +3 -4
- package/build/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -4
- package/build/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build/index.js +4 -2
- package/build/index.js.map +1 -1
- package/build/store/selectors.js +34 -6
- package/build/store/selectors.js.map +1 -1
- package/build/utils/get-filtered-template-parts.js +64 -0
- package/build/utils/get-filtered-template-parts.js.map +1 -0
- package/build-module/components/add-new-pattern/index.js +14 -3
- package/build-module/components/add-new-pattern/index.js.map +1 -1
- package/build-module/components/add-new-post/index.js +2 -1
- package/build-module/components/add-new-post/index.js.map +1 -1
- package/build-module/components/add-new-template/index.js +3 -1
- package/build-module/components/add-new-template/index.js.map +1 -1
- package/build-module/components/add-new-template/utils.js +2 -2
- package/build-module/components/add-new-template/utils.js.map +1 -1
- package/build-module/components/block-editor/use-site-editor-settings.js +1 -82
- package/build-module/components/block-editor/use-site-editor-settings.js.map +1 -1
- package/build-module/components/editor/index.js +73 -22
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/global-styles/block-preview-panel.js +14 -5
- package/build-module/components/global-styles/block-preview-panel.js.map +1 -1
- package/build-module/components/global-styles/font-families.js +42 -24
- package/build-module/components/global-styles/font-families.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/context.js +0 -5
- package/build-module/components/global-styles/font-library-modal/context.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/font-collection.js +26 -6
- package/build-module/components/global-styles/font-library-modal/font-collection.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/index.js +5 -12
- package/build-module/components/global-styles/font-library-modal/index.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js +81 -18
- package/build-module/components/global-styles/font-library-modal/installed-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js +2 -3
- package/build-module/components/global-styles/font-library-modal/upload-fonts.js.map +1 -1
- package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +32 -0
- package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +32 -0
- package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/font-size-preview.js +37 -0
- package/build-module/components/global-styles/font-sizes/font-size-preview.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/font-size.js +207 -0
- package/build-module/components/global-styles/font-sizes/font-size.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/font-sizes-count.js +43 -0
- package/build-module/components/global-styles/font-sizes/font-sizes-count.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/font-sizes.js +157 -0
- package/build-module/components/global-styles/font-sizes/font-sizes.js.map +1 -0
- package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js +61 -0
- package/build-module/components/global-styles/font-sizes/rename-font-size-dialog.js.map +1 -0
- package/build-module/components/global-styles/screen-block.js +10 -8
- package/build-module/components/global-styles/screen-block.js.map +1 -1
- package/build-module/components/global-styles/screen-style-variations.js +2 -2
- package/build-module/components/global-styles/screen-style-variations.js.map +1 -1
- package/build-module/components/global-styles/screen-typeset.js +34 -0
- package/build-module/components/global-styles/screen-typeset.js.map +1 -0
- package/build-module/components/global-styles/screen-typography-element.js +14 -0
- package/build-module/components/global-styles/screen-typography-element.js.map +1 -1
- package/build-module/components/global-styles/screen-typography.js +5 -6
- package/build-module/components/global-styles/screen-typography.js.map +1 -1
- package/build-module/components/global-styles/shadows-edit-panel.js +51 -60
- package/build-module/components/global-styles/shadows-edit-panel.js.map +1 -1
- package/build-module/components/global-styles/size-control/index.js +79 -0
- package/build-module/components/global-styles/size-control/index.js.map +1 -0
- package/build-module/components/global-styles/style-variations-container.js +3 -0
- package/build-module/components/global-styles/style-variations-container.js.map +1 -1
- package/build-module/components/global-styles/typeset-button.js +89 -0
- package/build-module/components/global-styles/typeset-button.js.map +1 -0
- package/build-module/components/global-styles/typeset.js +71 -0
- package/build-module/components/global-styles/typeset.js.map +1 -0
- package/build-module/components/global-styles/ui.js +12 -0
- package/build-module/components/global-styles/ui.js.map +1 -1
- package/build-module/components/global-styles/utils.js +10 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-color.js +1 -1
- package/build-module/components/global-styles/variations/variations-color.js.map +1 -1
- package/build-module/components/global-styles/variations/variations-typography.js +1 -2
- package/build-module/components/global-styles/variations/variations-typography.js.map +1 -1
- package/build-module/components/layout/index.js +6 -0
- package/build-module/components/layout/index.js.map +1 -1
- package/build-module/components/layout/router.js +14 -6
- package/build-module/components/layout/router.js.map +1 -1
- package/build-module/components/page-patterns/fields.js +223 -0
- package/build-module/components/page-patterns/fields.js.map +1 -0
- package/build-module/components/page-patterns/header.js +1 -1
- package/build-module/components/page-patterns/header.js.map +1 -1
- package/build-module/components/page-patterns/index.js +24 -230
- package/build-module/components/page-patterns/index.js.map +1 -1
- package/build-module/components/page-patterns/use-patterns.js +26 -1
- package/build-module/components/page-patterns/use-patterns.js.map +1 -1
- package/build-module/components/page-templates/fields.js +160 -0
- package/build-module/components/page-templates/fields.js.map +1 -0
- package/build-module/components/page-templates/index.js +39 -199
- package/build-module/components/page-templates/index.js.map +1 -1
- package/build-module/components/post-edit/index.js +110 -0
- package/build-module/components/post-edit/index.js.map +1 -0
- package/build-module/components/post-fields/index.js +310 -0
- package/build-module/components/post-fields/index.js.map +1 -0
- package/build-module/components/post-list/index.js +333 -0
- package/build-module/components/post-list/index.js.map +1 -0
- package/build-module/components/posts-app/router.js +3 -3
- package/build-module/components/posts-app/router.js.map +1 -1
- package/build-module/components/sidebar-dataviews/add-new-view.js +2 -2
- package/build-module/components/sidebar-dataviews/add-new-view.js.map +1 -1
- package/build-module/components/sidebar-dataviews/dataview-item.js +2 -3
- package/build-module/components/sidebar-dataviews/dataview-item.js.map +1 -1
- package/build-module/components/sidebar-dataviews/default-views.js +102 -90
- package/build-module/components/sidebar-dataviews/default-views.js.map +1 -1
- package/build-module/components/sidebar-dataviews/index.js +5 -5
- package/build-module/components/sidebar-dataviews/index.js.map +1 -1
- package/build-module/components/sidebar-navigation-screen-global-styles/content.js +57 -0
- package/build-module/components/sidebar-navigation-screen-global-styles/content.js.map +1 -0
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js +2 -47
- package/build-module/components/sidebar-navigation-screen-global-styles/index.js.map +1 -1
- package/build-module/components/site-hub/index.js +7 -4
- package/build-module/components/site-hub/index.js.map +1 -1
- package/build-module/components/style-book/index.js +23 -26
- package/build-module/components/style-book/index.js.map +1 -1
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
- package/build-module/components/sync-state-with-url/use-init-edited-entity-from-url.js.map +1 -1
- package/build-module/hooks/push-changes-to-global-styles/index.js +3 -4
- package/build-module/hooks/push-changes-to-global-styles/index.js.map +1 -1
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
- package/build-module/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js.map +1 -1
- package/build-module/index.js +4 -2
- package/build-module/index.js.map +1 -1
- package/build-module/store/selectors.js +35 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/get-filtered-template-parts.js +57 -0
- package/build-module/utils/get-filtered-template-parts.js.map +1 -0
- package/build-style/posts-rtl.css +749 -492
- package/build-style/posts.css +749 -492
- package/build-style/style-rtl.css +956 -613
- package/build-style/style.css +956 -613
- package/package.json +41 -41
- package/src/components/add-new-pattern/index.js +16 -5
- package/src/components/add-new-post/index.js +2 -1
- package/src/components/add-new-template/index.js +4 -1
- package/src/components/add-new-template/style.scss +4 -6
- package/src/components/add-new-template/utils.js +10 -6
- package/src/components/block-editor/use-site-editor-settings.js +15 -111
- package/src/components/editor/index.js +80 -22
- package/src/components/editor/style.scss +59 -1
- package/src/components/global-styles/block-preview-panel.js +22 -9
- package/src/components/global-styles/font-families.js +65 -32
- package/src/components/global-styles/font-library-modal/context.js +0 -5
- package/src/components/global-styles/font-library-modal/font-collection.js +34 -10
- package/src/components/global-styles/font-library-modal/index.js +6 -9
- package/src/components/global-styles/font-library-modal/installed-fonts.js +115 -16
- package/src/components/global-styles/font-library-modal/style.scss +9 -0
- package/src/components/global-styles/font-library-modal/upload-fonts.js +2 -2
- package/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js +43 -0
- package/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js +37 -0
- package/src/components/global-styles/font-sizes/font-size-preview.js +43 -0
- package/src/components/global-styles/font-sizes/font-size.js +250 -0
- package/src/components/global-styles/font-sizes/font-sizes-count.js +40 -0
- package/src/components/global-styles/font-sizes/font-sizes.js +263 -0
- package/src/components/global-styles/font-sizes/rename-font-size-dialog.js +70 -0
- package/src/components/global-styles/screen-block.js +12 -14
- package/src/components/global-styles/screen-style-variations.js +2 -2
- package/src/components/global-styles/screen-typeset.js +42 -0
- package/src/components/global-styles/screen-typography-element.js +14 -0
- package/src/components/global-styles/screen-typography.js +7 -6
- package/src/components/global-styles/shadows-edit-panel.js +66 -73
- package/src/components/global-styles/size-control/index.js +86 -0
- package/src/components/global-styles/style-variations-container.js +4 -0
- package/src/components/global-styles/style.scss +17 -10
- package/src/components/global-styles/typeset-button.js +93 -0
- package/src/components/global-styles/typeset.js +73 -0
- package/src/components/global-styles/ui.js +15 -0
- package/src/components/global-styles/utils.js +13 -1
- package/src/components/global-styles/variations/variations-color.js +1 -1
- package/src/components/global-styles/variations/variations-typography.js +1 -2
- package/src/components/layout/index.js +11 -0
- package/src/components/layout/router.js +13 -5
- package/src/components/layout/style.scss +34 -8
- package/src/components/page-patterns/fields.js +251 -0
- package/src/components/page-patterns/header.js +1 -1
- package/src/components/page-patterns/index.js +24 -246
- package/src/components/page-patterns/style.scss +82 -85
- package/src/components/page-patterns/use-patterns.js +31 -1
- package/src/components/page-templates/fields.js +157 -0
- package/src/components/page-templates/index.js +46 -192
- package/src/components/page-templates/style.scss +19 -8
- package/src/components/post-edit/index.js +115 -0
- package/src/components/post-edit/style.scss +9 -0
- package/src/components/post-fields/index.js +357 -0
- package/src/components/post-list/index.js +386 -0
- package/src/components/{posts-app → post-list}/style.scss +12 -9
- package/src/components/posts-app/router.js +3 -3
- package/src/components/sidebar-dataviews/add-new-view.js +2 -4
- package/src/components/sidebar-dataviews/dataview-item.js +2 -2
- package/src/components/sidebar-dataviews/default-views.js +116 -104
- package/src/components/sidebar-dataviews/index.js +4 -3
- package/src/components/sidebar-navigation-screen-global-styles/content.js +55 -0
- package/src/components/sidebar-navigation-screen-global-styles/index.js +1 -55
- package/src/components/site-hub/index.js +11 -2
- package/src/components/site-icon/style.scss +4 -1
- package/src/components/style-book/index.js +27 -32
- package/src/components/sync-state-with-url/use-init-edited-entity-from-url.js +5 -0
- package/src/hooks/push-changes-to-global-styles/index.js +3 -4
- package/src/hooks/use-theme-style-variations/use-theme-style-variations-by-property.js +2 -3
- package/src/index.js +6 -2
- package/src/posts.scss +1 -1
- package/src/store/selectors.js +53 -14
- package/src/store/test/selectors.js +1 -26
- package/src/style.scss +2 -1
- package/src/utils/get-filtered-template-parts.js +61 -0
- package/src/utils/test/get-filtered-template-parts.js +127 -0
- package/build/components/global-styles/screen-background.js +0 -36
- package/build/components/global-styles/screen-background.js.map +0 -1
- package/build/components/posts-app/posts-list.js +0 -568
- package/build/components/posts-app/posts-list.js.map +0 -1
- package/build/utils/clone-deep.js +0 -15
- package/build/utils/clone-deep.js.map +0 -1
- package/build-module/components/global-styles/screen-background.js +0 -30
- package/build-module/components/global-styles/screen-background.js.map +0 -1
- package/build-module/components/posts-app/posts-list.js +0 -560
- package/build-module/components/posts-app/posts-list.js.map +0 -1
- package/build-module/utils/clone-deep.js +0 -9
- package/build-module/utils/clone-deep.js.map +0 -1
- package/src/components/global-styles/screen-background.js +0 -29
- package/src/components/posts-app/posts-list.js +0 -651
- package/src/utils/clone-deep.js +0 -8
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { Button, __experimentalConfirmDialog as ConfirmDialog, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorToParentButton as NavigatorToParentButton, __experimentalUseNavigator as useNavigator, __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalVStack as VStack, Flex, Notice, ProgressBar } from '@wordpress/components';
|
|
4
|
+
import { Button, __experimentalConfirmDialog as ConfirmDialog, __experimentalHStack as HStack, __experimentalHeading as Heading, __experimentalNavigatorProvider as NavigatorProvider, __experimentalNavigatorScreen as NavigatorScreen, __experimentalNavigatorToParentButton as NavigatorToParentButton, __experimentalUseNavigator as useNavigator, __experimentalSpacer as Spacer, __experimentalText as Text, __experimentalVStack as VStack, Flex, Notice, ProgressBar, CheckboxControl } from '@wordpress/components';
|
|
5
5
|
import { useEntityRecord, store as coreStore } from '@wordpress/core-data';
|
|
6
6
|
import { useSelect } from '@wordpress/data';
|
|
7
7
|
import { useContext, useEffect, useState } from '@wordpress/element';
|
|
8
|
-
import { __, sprintf } from '@wordpress/i18n';
|
|
8
|
+
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
9
9
|
import { chevronLeft } from '@wordpress/icons';
|
|
10
10
|
import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
11
11
|
|
|
@@ -16,7 +16,7 @@ import { FontLibraryContext } from './context';
|
|
|
16
16
|
import FontCard from './font-card';
|
|
17
17
|
import LibraryFontVariant from './library-font-variant';
|
|
18
18
|
import { sortFontFaces } from './utils/sort-font-faces';
|
|
19
|
-
import { setUIValuesNeeded } from './utils';
|
|
19
|
+
import { setUIValuesNeeded, loadFontFaceInBrowser, unloadFontFaceInBrowser, getDisplaySrcFromFontFace } from './utils';
|
|
20
20
|
import { unlock } from '../../../lock-unlock';
|
|
21
21
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
22
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -25,6 +25,7 @@ const {
|
|
|
25
25
|
useGlobalSetting
|
|
26
26
|
} = unlock(blockEditorPrivateApis);
|
|
27
27
|
function InstalledFonts() {
|
|
28
|
+
var _libraryFontSelected$;
|
|
28
29
|
const {
|
|
29
30
|
baseCustomFonts,
|
|
30
31
|
libraryFontSelected,
|
|
@@ -34,12 +35,11 @@ function InstalledFonts() {
|
|
|
34
35
|
isResolvingLibrary,
|
|
35
36
|
isInstalling,
|
|
36
37
|
saveFontFamilies,
|
|
37
|
-
getFontFacesActivated
|
|
38
|
-
notice,
|
|
39
|
-
setNotice,
|
|
40
|
-
fontFamilies
|
|
38
|
+
getFontFacesActivated
|
|
41
39
|
} = useContext(FontLibraryContext);
|
|
40
|
+
const [fontFamilies, setFontFamilies] = useGlobalSetting('typography.fontFamilies');
|
|
42
41
|
const [isConfirmDeleteOpen, setIsConfirmDeleteOpen] = useState(false);
|
|
42
|
+
const [notice, setNotice] = useState(false);
|
|
43
43
|
const [baseFontFamilies] = useGlobalSetting('typography.fontFamilies', undefined, 'base');
|
|
44
44
|
const globalStylesId = useSelect(select => {
|
|
45
45
|
const {
|
|
@@ -61,12 +61,31 @@ function InstalledFonts() {
|
|
|
61
61
|
const {
|
|
62
62
|
canUser
|
|
63
63
|
} = select(coreStore);
|
|
64
|
-
return customFontFamilyId && canUser('delete',
|
|
64
|
+
return customFontFamilyId && canUser('delete', {
|
|
65
|
+
kind: 'postType',
|
|
66
|
+
name: 'wp_font_family',
|
|
67
|
+
id: customFontFamilyId
|
|
68
|
+
});
|
|
65
69
|
}, [customFontFamilyId]);
|
|
66
70
|
const shouldDisplayDeleteButton = !!libraryFontSelected && libraryFontSelected?.source !== 'theme' && canUserDelete;
|
|
67
71
|
const handleUninstallClick = () => {
|
|
68
72
|
setIsConfirmDeleteOpen(true);
|
|
69
73
|
};
|
|
74
|
+
const handleUpdate = async () => {
|
|
75
|
+
setNotice(null);
|
|
76
|
+
try {
|
|
77
|
+
await saveFontFamilies(fontFamilies);
|
|
78
|
+
setNotice({
|
|
79
|
+
type: 'success',
|
|
80
|
+
message: __('Font family updated successfully.')
|
|
81
|
+
});
|
|
82
|
+
} catch (error) {
|
|
83
|
+
setNotice({
|
|
84
|
+
type: 'error',
|
|
85
|
+
message: __('There was an error updating the font family. ') + error.message
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
};
|
|
70
89
|
const getFontFacesToDisplay = font => {
|
|
71
90
|
if (!font) {
|
|
72
91
|
return [];
|
|
@@ -90,6 +109,37 @@ function InstalledFonts() {
|
|
|
90
109
|
handleSetLibraryFontSelected(libraryFontSelected);
|
|
91
110
|
refreshLibrary();
|
|
92
111
|
}, []);
|
|
112
|
+
|
|
113
|
+
// Get activated fonts count.
|
|
114
|
+
const activeFontsCount = libraryFontSelected ? getFontFacesActivated(libraryFontSelected.slug, libraryFontSelected.source).length : 0;
|
|
115
|
+
const selectedFontsCount = (_libraryFontSelected$ = libraryFontSelected?.fontFace?.length) !== null && _libraryFontSelected$ !== void 0 ? _libraryFontSelected$ : libraryFontSelected?.fontFamily ? 1 : 0;
|
|
116
|
+
|
|
117
|
+
// Check if any fonts are selected.
|
|
118
|
+
const isIndeterminate = activeFontsCount > 0 && activeFontsCount !== selectedFontsCount;
|
|
119
|
+
|
|
120
|
+
// Check if all fonts are selected.
|
|
121
|
+
const isSelectAllChecked = activeFontsCount === selectedFontsCount;
|
|
122
|
+
|
|
123
|
+
// Toggle select all fonts.
|
|
124
|
+
const toggleSelectAll = () => {
|
|
125
|
+
var _fontFamilies$library;
|
|
126
|
+
const initialFonts = (_fontFamilies$library = fontFamilies?.[libraryFontSelected.source]?.filter(f => f.slug !== libraryFontSelected.slug)) !== null && _fontFamilies$library !== void 0 ? _fontFamilies$library : [];
|
|
127
|
+
const newFonts = isSelectAllChecked ? initialFonts : [...initialFonts, libraryFontSelected];
|
|
128
|
+
setFontFamilies({
|
|
129
|
+
...fontFamilies,
|
|
130
|
+
[libraryFontSelected.source]: newFonts
|
|
131
|
+
});
|
|
132
|
+
if (libraryFontSelected.fontFace) {
|
|
133
|
+
libraryFontSelected.fontFace.forEach(face => {
|
|
134
|
+
if (isSelectAllChecked) {
|
|
135
|
+
unloadFontFaceInBrowser(face, 'all');
|
|
136
|
+
} else {
|
|
137
|
+
loadFontFaceInBrowser(face, getDisplaySrcFromFontFace(face?.src), 'all');
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
const hasFonts = baseThemeFonts.length > 0 || baseCustomFonts.length > 0;
|
|
93
143
|
return /*#__PURE__*/_jsxs("div", {
|
|
94
144
|
className: "font-library-modal__tabpanel-layout",
|
|
95
145
|
children: [isResolvingLibrary && /*#__PURE__*/_jsx("div", {
|
|
@@ -106,39 +156,46 @@ function InstalledFonts() {
|
|
|
106
156
|
status: notice.type,
|
|
107
157
|
onRemove: () => setNotice(null),
|
|
108
158
|
children: notice.message
|
|
109
|
-
}),
|
|
159
|
+
}), !hasFonts && /*#__PURE__*/_jsx(Text, {
|
|
160
|
+
as: "p",
|
|
161
|
+
children: __('No fonts installed.')
|
|
162
|
+
}), baseThemeFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
|
|
110
163
|
children: [/*#__PURE__*/_jsx("h2", {
|
|
111
164
|
className: "font-library-modal__fonts-title",
|
|
112
|
-
children:
|
|
165
|
+
children: /* translators: Heading for a list of fonts provided by the theme. */
|
|
166
|
+
_x('Theme', 'font source')
|
|
113
167
|
}), /*#__PURE__*/_jsx("ul", {
|
|
114
168
|
role: "list",
|
|
115
169
|
className: "font-library-modal__fonts-list",
|
|
116
|
-
children:
|
|
170
|
+
children: baseThemeFonts.map(font => /*#__PURE__*/_jsx("li", {
|
|
117
171
|
className: "font-library-modal__fonts-list-item",
|
|
118
172
|
children: /*#__PURE__*/_jsx(FontCard, {
|
|
119
173
|
font: font,
|
|
120
174
|
navigatorPath: "/fontFamily",
|
|
121
175
|
variantsText: getFontCardVariantsText(font),
|
|
122
176
|
onClick: () => {
|
|
177
|
+
setNotice(null);
|
|
123
178
|
handleSetLibraryFontSelected(font);
|
|
124
179
|
}
|
|
125
180
|
})
|
|
126
181
|
}, font.slug))
|
|
127
182
|
})]
|
|
128
|
-
}),
|
|
183
|
+
}), baseCustomFonts.length > 0 && /*#__PURE__*/_jsxs(VStack, {
|
|
129
184
|
children: [/*#__PURE__*/_jsx("h2", {
|
|
130
185
|
className: "font-library-modal__fonts-title",
|
|
131
|
-
children:
|
|
186
|
+
children: /* translators: Heading for a list of fonts installed by the user. */
|
|
187
|
+
_x('Custom', 'font source')
|
|
132
188
|
}), /*#__PURE__*/_jsx("ul", {
|
|
133
189
|
role: "list",
|
|
134
190
|
className: "font-library-modal__fonts-list",
|
|
135
|
-
children:
|
|
191
|
+
children: baseCustomFonts.map(font => /*#__PURE__*/_jsx("li", {
|
|
136
192
|
className: "font-library-modal__fonts-list-item",
|
|
137
193
|
children: /*#__PURE__*/_jsx(FontCard, {
|
|
138
194
|
font: font,
|
|
139
195
|
navigatorPath: "/fontFamily",
|
|
140
196
|
variantsText: getFontCardVariantsText(font),
|
|
141
197
|
onClick: () => {
|
|
198
|
+
setNotice(null);
|
|
142
199
|
handleSetLibraryFontSelected(font);
|
|
143
200
|
}
|
|
144
201
|
})
|
|
@@ -162,6 +219,7 @@ function InstalledFonts() {
|
|
|
162
219
|
size: "small",
|
|
163
220
|
onClick: () => {
|
|
164
221
|
handleSetLibraryFontSelected(null);
|
|
222
|
+
setNotice(null);
|
|
165
223
|
},
|
|
166
224
|
label: __('Back')
|
|
167
225
|
}), /*#__PURE__*/_jsx(Heading, {
|
|
@@ -188,7 +246,14 @@ function InstalledFonts() {
|
|
|
188
246
|
margin: 4
|
|
189
247
|
}), /*#__PURE__*/_jsxs(VStack, {
|
|
190
248
|
spacing: 0,
|
|
191
|
-
children: [/*#__PURE__*/_jsx(
|
|
249
|
+
children: [/*#__PURE__*/_jsx(CheckboxControl, {
|
|
250
|
+
className: "font-library-modal__select-all",
|
|
251
|
+
label: __('Select all'),
|
|
252
|
+
checked: isSelectAllChecked,
|
|
253
|
+
onChange: toggleSelectAll,
|
|
254
|
+
indeterminate: isIndeterminate,
|
|
255
|
+
__nextHasNoMarginBottom: true
|
|
256
|
+
}), /*#__PURE__*/_jsx(Spacer, {
|
|
192
257
|
margin: 8
|
|
193
258
|
}), getFontFacesToDisplay(libraryFontSelected).map((face, i) => /*#__PURE__*/_jsx(LibraryFontVariant, {
|
|
194
259
|
font: libraryFontSelected,
|
|
@@ -206,9 +271,7 @@ function InstalledFonts() {
|
|
|
206
271
|
children: __('Delete')
|
|
207
272
|
}), /*#__PURE__*/_jsx(Button, {
|
|
208
273
|
variant: "primary",
|
|
209
|
-
onClick:
|
|
210
|
-
saveFontFamilies(fontFamilies);
|
|
211
|
-
},
|
|
274
|
+
onClick: handleUpdate,
|
|
212
275
|
disabled: !fontFamiliesHasChanges,
|
|
213
276
|
accessibleWhenDisabled: true,
|
|
214
277
|
children: __('Update')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalUseNavigator","useNavigator","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Flex","Notice","ProgressBar","useEntityRecord","store","coreStore","useSelect","useContext","useEffect","useState","__","sprintf","chevronLeft","privateApis","blockEditorPrivateApis","FontLibraryContext","FontCard","LibraryFontVariant","sortFontFaces","setUIValuesNeeded","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","InstalledFonts","baseCustomFonts","libraryFontSelected","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","notice","setNotice","fontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","baseFontFamilies","undefined","globalStylesId","select","__experimentalGetCurrentGlobalStylesId","globalStyles","fontFamiliesHasChanges","edits","settings","typography","themeFonts","theme","map","f","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFontFamilyId","id","canUserDelete","canUser","shouldDisplayDeleteButton","handleUninstallClick","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","getFontCardVariantsText","variantsInstalled","variantsActive","className","children","initialPath","path","spacing","status","type","onRemove","message","role","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","justify","icon","size","label","level","margin","face","i","isDestructive","variant","disabled","accessibleWhenDisabled","navigator","handleConfirmUninstall","goBack","error","handleCancelUninstall","cancelButtonText","confirmButtonText","onCancel","onConfirm"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport { setUIValuesNeeded } from './utils';\nimport { unlock } from '../../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t\tnotice,\n\t\tsetNotice,\n\t\tfontFamilies,\n\t} = useContext( FontLibraryContext );\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst globalStylesId = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn __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 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\tconst themeFontsSlugs = new Set( themeFonts.map( ( f ) => f.slug ) );\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? themeFonts.concat(\n\t\t\t\tbaseFontFamilies.theme\n\t\t\t\t\t.filter( ( f ) => ! themeFontsSlugs.has( f.slug ) )\n\t\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t )\n\t\t: [];\n\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', 'font-families', customFontFamilyId )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isResolvingLibrary && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath={\n\t\t\t\t\t\t\tlibraryFontSelected ? '/fontFamily' : '/'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<VStack spacing=\"8\">\n\t\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Installed Fonts' ) }\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Theme Fonts' ) }\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getFontFacesToDisplay(\n\t\t\t\t\t\t\t\t\tlibraryFontSelected\n\t\t\t\t\t\t\t\t).map( ( face, i ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsaveFontFamilies( fontFamilies );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t\tsize=\"medium\"\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'Are you sure you want to delete \"%s\" font 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 InstalledFonts;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Button","__experimentalConfirmDialog","ConfirmDialog","__experimentalHStack","HStack","__experimentalHeading","Heading","__experimentalNavigatorProvider","NavigatorProvider","__experimentalNavigatorScreen","NavigatorScreen","__experimentalNavigatorToParentButton","NavigatorToParentButton","__experimentalUseNavigator","useNavigator","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Flex","Notice","ProgressBar","CheckboxControl","useEntityRecord","store","coreStore","useSelect","useContext","useEffect","useState","__","_x","sprintf","chevronLeft","privateApis","blockEditorPrivateApis","FontLibraryContext","FontCard","LibraryFontVariant","sortFontFaces","setUIValuesNeeded","loadFontFaceInBrowser","unloadFontFaceInBrowser","getDisplaySrcFromFontFace","unlock","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useGlobalSetting","InstalledFonts","_libraryFontSelected$","baseCustomFonts","libraryFontSelected","handleSetLibraryFontSelected","refreshLibrary","uninstallFontFamily","isResolvingLibrary","isInstalling","saveFontFamilies","getFontFacesActivated","fontFamilies","setFontFamilies","isConfirmDeleteOpen","setIsConfirmDeleteOpen","notice","setNotice","baseFontFamilies","undefined","globalStylesId","select","__experimentalGetCurrentGlobalStylesId","globalStyles","fontFamiliesHasChanges","edits","settings","typography","themeFonts","theme","map","f","source","sort","a","b","name","localeCompare","themeFontsSlugs","Set","slug","baseThemeFonts","concat","filter","has","customFontFamilyId","id","canUserDelete","canUser","kind","shouldDisplayDeleteButton","handleUninstallClick","handleUpdate","type","message","error","getFontFacesToDisplay","font","fontFace","length","fontFamily","fontStyle","fontWeight","getFontCardVariantsText","variantsInstalled","variantsActive","activeFontsCount","selectedFontsCount","isIndeterminate","isSelectAllChecked","toggleSelectAll","_fontFamilies$library","initialFonts","newFonts","forEach","face","src","hasFonts","className","children","initialPath","path","spacing","status","onRemove","as","role","navigatorPath","variantsText","onClick","ConfirmDeleteDialog","isOpen","setIsOpen","justify","icon","size","label","level","margin","checked","onChange","indeterminate","__nextHasNoMarginBottom","i","isDestructive","variant","disabled","accessibleWhenDisabled","navigator","handleConfirmUninstall","goBack","handleCancelUninstall","cancelButtonText","confirmButtonText","onCancel","onConfirm"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/installed-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\t__experimentalNavigatorProvider as NavigatorProvider,\n\t__experimentalNavigatorScreen as NavigatorScreen,\n\t__experimentalNavigatorToParentButton as NavigatorToParentButton,\n\t__experimentalUseNavigator as useNavigator,\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tFlex,\n\tNotice,\n\tProgressBar,\n\tCheckboxControl,\n} from '@wordpress/components';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useContext, useEffect, useState } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { chevronLeft } from '@wordpress/icons';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { FontLibraryContext } from './context';\nimport FontCard from './font-card';\nimport LibraryFontVariant from './library-font-variant';\nimport { sortFontFaces } from './utils/sort-font-faces';\nimport {\n\tsetUIValuesNeeded,\n\tloadFontFaceInBrowser,\n\tunloadFontFaceInBrowser,\n\tgetDisplaySrcFromFontFace,\n} from './utils';\nimport { unlock } from '../../../lock-unlock';\n\nconst { useGlobalSetting } = unlock( blockEditorPrivateApis );\n\nfunction InstalledFonts() {\n\tconst {\n\t\tbaseCustomFonts,\n\t\tlibraryFontSelected,\n\t\thandleSetLibraryFontSelected,\n\t\trefreshLibrary,\n\t\tuninstallFontFamily,\n\t\tisResolvingLibrary,\n\t\tisInstalling,\n\t\tsaveFontFamilies,\n\t\tgetFontFacesActivated,\n\t} = useContext( FontLibraryContext );\n\n\tconst [ fontFamilies, setFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies'\n\t);\n\tconst [ isConfirmDeleteOpen, setIsConfirmDeleteOpen ] = useState( false );\n\tconst [ notice, setNotice ] = useState( false );\n\tconst [ baseFontFamilies ] = useGlobalSetting(\n\t\t'typography.fontFamilies',\n\t\tundefined,\n\t\t'base'\n\t);\n\tconst globalStylesId = useSelect( ( select ) => {\n\t\tconst { __experimentalGetCurrentGlobalStylesId } = select( coreStore );\n\t\treturn __experimentalGetCurrentGlobalStylesId();\n\t} );\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 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\tconst themeFontsSlugs = new Set( themeFonts.map( ( f ) => f.slug ) );\n\tconst baseThemeFonts = baseFontFamilies?.theme\n\t\t? themeFonts.concat(\n\t\t\t\tbaseFontFamilies.theme\n\t\t\t\t\t.filter( ( f ) => ! themeFontsSlugs.has( f.slug ) )\n\t\t\t\t\t.map( ( f ) => setUIValuesNeeded( f, { source: 'theme' } ) )\n\t\t\t\t\t.sort( ( a, b ) => a.name.localeCompare( b.name ) )\n\t\t )\n\t\t: [];\n\n\tconst customFontFamilyId =\n\t\tlibraryFontSelected?.source === 'custom' && libraryFontSelected?.id;\n\n\tconst canUserDelete = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\treturn (\n\t\t\t\tcustomFontFamilyId &&\n\t\t\t\tcanUser( 'delete', {\n\t\t\t\t\tkind: 'postType',\n\t\t\t\t\tname: 'wp_font_family',\n\t\t\t\t\tid: customFontFamilyId,\n\t\t\t\t} )\n\t\t\t);\n\t\t},\n\t\t[ customFontFamilyId ]\n\t);\n\n\tconst shouldDisplayDeleteButton =\n\t\t!! libraryFontSelected &&\n\t\tlibraryFontSelected?.source !== 'theme' &&\n\t\tcanUserDelete;\n\n\tconst handleUninstallClick = () => {\n\t\tsetIsConfirmDeleteOpen( true );\n\t};\n\n\tconst handleUpdate = async () => {\n\t\tsetNotice( null );\n\t\ttry {\n\t\t\tawait saveFontFamilies( fontFamilies );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family updated successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error updating the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst getFontFacesToDisplay = ( font ) => {\n\t\tif ( ! font ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( ! font.fontFace || ! font.fontFace.length ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tfontFamily: font.fontFamily,\n\t\t\t\t\tfontStyle: 'normal',\n\t\t\t\t\tfontWeight: '400',\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\t\treturn sortFontFaces( font.fontFace );\n\t};\n\n\tconst getFontCardVariantsText = ( font ) => {\n\t\tconst variantsInstalled =\n\t\t\tfont?.fontFace?.length > 0 ? font.fontFace.length : 1;\n\t\tconst variantsActive = getFontFacesActivated(\n\t\t\tfont.slug,\n\t\t\tfont.source\n\t\t).length;\n\t\treturn sprintf(\n\t\t\t/* translators: 1: Active font variants, 2: Total font variants. */\n\t\t\t__( '%1$s/%2$s variants active' ),\n\t\t\tvariantsActive,\n\t\t\tvariantsInstalled\n\t\t);\n\t};\n\n\tuseEffect( () => {\n\t\thandleSetLibraryFontSelected( libraryFontSelected );\n\t\trefreshLibrary();\n\t}, [] );\n\n\t// Get activated fonts count.\n\tconst activeFontsCount = libraryFontSelected\n\t\t? getFontFacesActivated(\n\t\t\t\tlibraryFontSelected.slug,\n\t\t\t\tlibraryFontSelected.source\n\t\t ).length\n\t\t: 0;\n\n\tconst selectedFontsCount =\n\t\tlibraryFontSelected?.fontFace?.length ??\n\t\t( libraryFontSelected?.fontFamily ? 1 : 0 );\n\n\t// Check if any fonts are selected.\n\tconst isIndeterminate =\n\t\tactiveFontsCount > 0 && activeFontsCount !== selectedFontsCount;\n\n\t// Check if all fonts are selected.\n\tconst isSelectAllChecked = activeFontsCount === selectedFontsCount;\n\n\t// Toggle select all fonts.\n\tconst toggleSelectAll = () => {\n\t\tconst initialFonts =\n\t\t\tfontFamilies?.[ libraryFontSelected.source ]?.filter(\n\t\t\t\t( f ) => f.slug !== libraryFontSelected.slug\n\t\t\t) ?? [];\n\t\tconst newFonts = isSelectAllChecked\n\t\t\t? initialFonts\n\t\t\t: [ ...initialFonts, libraryFontSelected ];\n\n\t\tsetFontFamilies( {\n\t\t\t...fontFamilies,\n\t\t\t[ libraryFontSelected.source ]: newFonts,\n\t\t} );\n\n\t\tif ( libraryFontSelected.fontFace ) {\n\t\t\tlibraryFontSelected.fontFace.forEach( ( face ) => {\n\t\t\t\tif ( isSelectAllChecked ) {\n\t\t\t\t\tunloadFontFaceInBrowser( face, 'all' );\n\t\t\t\t} else {\n\t\t\t\t\tloadFontFaceInBrowser(\n\t\t\t\t\t\tface,\n\t\t\t\t\t\tgetDisplaySrcFromFontFace( face?.src ),\n\t\t\t\t\t\t'all'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst hasFonts = baseThemeFonts.length > 0 || baseCustomFonts.length > 0;\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t{ isResolvingLibrary && (\n\t\t\t\t<div className=\"font-library-modal__loading\">\n\t\t\t\t\t<ProgressBar />\n\t\t\t\t</div>\n\t\t\t) }\n\n\t\t\t{ ! isResolvingLibrary && (\n\t\t\t\t<>\n\t\t\t\t\t<NavigatorProvider\n\t\t\t\t\t\tinitialPath={\n\t\t\t\t\t\t\tlibraryFontSelected ? '/fontFamily' : '/'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavigatorScreen path=\"/\">\n\t\t\t\t\t\t\t<VStack spacing=\"8\">\n\t\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ ! hasFonts && (\n\t\t\t\t\t\t\t\t\t<Text as=\"p\">\n\t\t\t\t\t\t\t\t\t\t{ __( 'No fonts installed.' ) }\n\t\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseThemeFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts provided by the theme. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'Theme', 'font source' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseThemeFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ baseCustomFonts.length > 0 && (\n\t\t\t\t\t\t\t\t\t<VStack>\n\t\t\t\t\t\t\t\t\t\t<h2 className=\"font-library-modal__fonts-title\">\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t/* translators: Heading for a list of fonts installed by the user. */\n\t\t\t\t\t\t\t\t\t\t\t\t_x( 'Custom', 'font source' )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t\t\t{ /*\n\t\t\t\t\t\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ baseCustomFonts.map( ( font ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ font.slug }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__fonts-list-item\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<FontCard\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont={ font }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnavigatorPath=\"/fontFamily\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvariantsText={ getFontCardVariantsText(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfont\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\n\t\t\t\t\t\t<NavigatorScreen path=\"/fontFamily\">\n\t\t\t\t\t\t\t<ConfirmDeleteDialog\n\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\tisOpen={ isConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetIsOpen={ setIsConfirmDeleteOpen }\n\t\t\t\t\t\t\t\tsetNotice={ setNotice }\n\t\t\t\t\t\t\t\tuninstallFontFamily={ uninstallFontFamily }\n\t\t\t\t\t\t\t\thandleSetLibraryFontSelected={\n\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t\t<Flex justify=\"flex-start\">\n\t\t\t\t\t\t\t\t<NavigatorToParentButton\n\t\t\t\t\t\t\t\t\ticon={ chevronLeft }\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\thandleSetLibraryFontSelected( null );\n\t\t\t\t\t\t\t\t\t\tsetNotice( null );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t\t\t\tsize={ 13 }\n\t\t\t\t\t\t\t\t\tclassName=\"edit-site-global-styles-header\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ libraryFontSelected?.name }\n\t\t\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t\t</Flex>\n\t\t\t\t\t\t\t{ notice && (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t\t<Notice\n\t\t\t\t\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t\t\t\t</Notice>\n\t\t\t\t\t\t\t\t\t<Spacer margin={ 1 } />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<Text>\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'Choose font variants. Keep in mind that too many variants could make your site slower.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t<Spacer margin={ 4 } />\n\t\t\t\t\t\t\t<VStack spacing={ 0 }>\n\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\tclassName=\"font-library-modal__select-all\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Select all' ) }\n\t\t\t\t\t\t\t\t\tchecked={ isSelectAllChecked }\n\t\t\t\t\t\t\t\t\tonChange={ toggleSelectAll }\n\t\t\t\t\t\t\t\t\tindeterminate={ isIndeterminate }\n\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Spacer margin={ 8 } />\n\t\t\t\t\t\t\t\t{ getFontFacesToDisplay(\n\t\t\t\t\t\t\t\t\tlibraryFontSelected\n\t\t\t\t\t\t\t\t).map( ( face, i ) => (\n\t\t\t\t\t\t\t\t\t<LibraryFontVariant\n\t\t\t\t\t\t\t\t\t\tfont={ libraryFontSelected }\n\t\t\t\t\t\t\t\t\t\tface={ face }\n\t\t\t\t\t\t\t\t\t\tkey={ `face${ i }` }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</VStack>\n\t\t\t\t\t\t</NavigatorScreen>\n\t\t\t\t\t</NavigatorProvider>\n\n\t\t\t\t\t<HStack\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\tclassName=\"font-library-modal__footer\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isInstalling && <ProgressBar /> }\n\t\t\t\t\t\t{ shouldDisplayDeleteButton && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ handleUninstallClick }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={ handleUpdate }\n\t\t\t\t\t\t\tdisabled={ ! fontFamiliesHasChanges }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Update' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction ConfirmDeleteDialog( {\n\tfont,\n\tisOpen,\n\tsetIsOpen,\n\tsetNotice,\n\tuninstallFontFamily,\n\thandleSetLibraryFontSelected,\n} ) {\n\tconst navigator = useNavigator();\n\n\tconst handleConfirmUninstall = async () => {\n\t\tsetNotice( null );\n\t\tsetIsOpen( false );\n\t\ttry {\n\t\t\tawait uninstallFontFamily( font );\n\t\t\tnavigator.goBack();\n\t\t\thandleSetLibraryFontSelected( null );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Font family uninstalled successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage:\n\t\t\t\t\t__( 'There was an error uninstalling the font family. ' ) +\n\t\t\t\t\terror.message,\n\t\t\t} );\n\t\t}\n\t};\n\n\tconst handleCancelUninstall = () => {\n\t\tsetIsOpen( false );\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancelUninstall }\n\t\t\tonConfirm={ handleConfirmUninstall }\n\t\t\tsize=\"medium\"\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'Are you sure you want to delete \"%s\" font 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 InstalledFonts;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,11 +17,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
17
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
18
|
function UploadFonts() {
|
|
19
19
|
const {
|
|
20
|
-
installFonts
|
|
21
|
-
notice,
|
|
22
|
-
setNotice
|
|
20
|
+
installFonts
|
|
23
21
|
} = useContext(FontLibraryContext);
|
|
24
22
|
const [isUploading, setIsUploading] = useState(false);
|
|
23
|
+
const [notice, setNotice] = useState(false);
|
|
25
24
|
const handleDropZone = files => {
|
|
26
25
|
handleFilesUpload(files);
|
|
27
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Button","DropZone","Notice","FormFileUpload","FlexItem","ProgressBar","useContext","useState","ALLOWED_FILE_EXTENSIONS","FontLibraryContext","Font","makeFamiliesFromFaces","loadFontFaceInBrowser","jsx","_jsx","jsxs","_jsxs","UploadFonts","installFonts","notice","setNotice","isUploading","setIsUploading","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","handleInstall","font","buffer","readFileAsArrayBuffer","fromDataBuffer","error","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","fontObj","onloadEvent","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","errors","installationErrors","className","children","onFilesDrop","status","__unstableHTML","onRemove","index","accept","ext","join","multiple","onChange","render","openFileDialog","onClick","margin"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useContext, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\n\nfunction UploadFonts() {\n\tconst { installFonts, notice, setNotice } =\n\t\tuseContext( FontLibraryContext );\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\n\tconst handleDropZone = ( files ) => {\n\t\thandleFilesUpload( files );\n\t};\n\tconst onFilesUpload = ( event ) => {\n\t\thandleFilesUpload( event.target.files );\n\t};\n\n\t/**\n\t * Filters the selected files to only allow the ones with the allowed extensions\n\t *\n\t * @param {Array} files The files to be filtered\n\t * @return {void}\n\t */\n\tconst handleFilesUpload = async ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tlet hasInvalidFiles = false;\n\n\t\t// Use map to create a promise for each file check, then filter with Promise.all.\n\t\tconst checkFilesPromises = selectedFiles.map( async ( file ) => {\n\t\t\tconst isFont = await isFontFile( file );\n\t\t\tif ( ! isFont ) {\n\t\t\t\thasInvalidFiles = true;\n\t\t\t\treturn null; // Return null for invalid files.\n\t\t\t}\n\t\t\t// Check for duplicates\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn null; // Return null for duplicates.\n\t\t\t}\n\t\t\t// Check if the file extension is allowed.\n\t\t\tconst fileExtension = file.name.split( '.' ).pop().toLowerCase();\n\t\t\tif ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {\n\t\t\t\tuniqueFilenames.add( file.name );\n\t\t\t\treturn file; // Return the file if it passes all checks.\n\t\t\t}\n\t\t\treturn null; // Return null for disallowed file extensions.\n\t\t} );\n\n\t\t// Filter out the nulls after all promises have resolved.\n\t\tconst allowedFiles = ( await Promise.all( checkFilesPromises ) ).filter(\n\t\t\t( file ) => null !== file\n\t\t);\n\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t} else {\n\t\t\tconst message = hasInvalidFiles\n\t\t\t\t? __( 'Sorry, you are not allowed to upload this file type.' )\n\t\t\t\t: __( 'No fonts found to install.' );\n\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage,\n\t\t\t} );\n\t\t\tsetIsUploading( false );\n\t\t}\n\t};\n\n\t/**\n\t * Loads the selected files and reads the font metadata\n\t *\n\t * @param {Array} files The files to be loaded\n\t * @return {void}\n\t */\n\tconst loadFiles = async ( files ) => {\n\t\tconst fontFacesLoaded = await Promise.all(\n\t\t\tfiles.map( async ( fontFile ) => {\n\t\t\t\tconst fontFaceData = await getFontFaceMetadata( fontFile );\n\t\t\t\tawait loadFontFaceInBrowser(\n\t\t\t\t\tfontFaceData,\n\t\t\t\t\tfontFaceData.file,\n\t\t\t\t\t'all'\n\t\t\t\t);\n\t\t\t\treturn fontFaceData;\n\t\t\t} )\n\t\t);\n\t\thandleInstall( fontFacesLoaded );\n\t};\n\n\t/**\n\t * Checks if a file is a valid Font file.\n\t *\n\t * @param {File} file The file to be checked.\n\t * @return {boolean} Whether the file is a valid font file.\n\t */\n\tasync function isFontFile( file ) {\n\t\tconst font = new Font( 'Uploaded Font' );\n\t\ttry {\n\t\t\tconst buffer = await readFileAsArrayBuffer( file );\n\t\t\tawait font.fromDataBuffer( buffer, 'font' );\n\t\t\treturn true;\n\t\t} catch ( error ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Create a function to read the file as array buffer\n\tasync function readFileAsArrayBuffer( file ) {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( file );\n\t\t\treader.onload = () => resolve( reader.result );\n\t\t\treader.onerror = reject;\n\t\t} );\n\t}\n\n\tconst getFontFaceMetadata = async ( fontFile ) => {\n\t\tconst buffer = await readFileAsArrayBuffer( fontFile );\n\t\tconst fontObj = new Font( 'Uploaded Font' );\n\t\tfontObj.fromDataBuffer( buffer, fontFile.name );\n\t\t// Assuming that fromDataBuffer triggers onload event and returning a Promise\n\t\tconst onloadEvent = await new Promise(\n\t\t\t( resolve ) => ( fontObj.onload = resolve )\n\t\t);\n\t\tconst font = onloadEvent.detail.font;\n\t\tconst { name } = font.opentype.tables;\n\t\tconst fontName = name.get( 16 ) || name.get( 1 );\n\t\tconst isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );\n\t\tconst fontWeight =\n\t\t\tfont.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';\n\t\tconst isVariable = !! font.opentype.tables.fvar;\n\t\tconst weightAxis =\n\t\t\tisVariable &&\n\t\t\tfont.opentype.tables.fvar.axes.find(\n\t\t\t\t( { tag } ) => tag === 'wght'\n\t\t\t);\n\t\tconst weightRange = weightAxis\n\t\t\t? `${ weightAxis.minValue } ${ weightAxis.maxValue }`\n\t\t\t: null;\n\t\treturn {\n\t\t\tfile: fontFile,\n\t\t\tfontFamily: fontName,\n\t\t\tfontStyle: isItalic ? 'italic' : 'normal',\n\t\t\tfontWeight: weightRange || fontWeight,\n\t\t};\n\t};\n\n\t/**\n\t * Creates the font family definition and sends it to the server\n\t *\n\t * @param {Array} fontFaces The font faces to be installed\n\t * @return {void}\n\t */\n\tconst handleInstall = async ( fontFaces ) => {\n\t\tconst fontFamilies = makeFamiliesFromFaces( fontFaces );\n\n\t\ttry {\n\t\t\tawait installFonts( fontFamilies );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t\terrors: error?.installationErrors,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ notice && (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t__unstableHTML\n\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t{ notice.errors && (\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t{ notice.errors.map( ( error, index ) => (\n\t\t\t\t\t\t\t\t\t<li key={ index }>{ error }</li>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Notice>\n\t\t\t\t) }\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload font' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default UploadFonts;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","__experimentalSpacer","Spacer","__experimentalText","Text","__experimentalVStack","VStack","Button","DropZone","Notice","FormFileUpload","FlexItem","ProgressBar","useContext","useState","ALLOWED_FILE_EXTENSIONS","FontLibraryContext","Font","makeFamiliesFromFaces","loadFontFaceInBrowser","jsx","_jsx","jsxs","_jsxs","UploadFonts","installFonts","isUploading","setIsUploading","notice","setNotice","handleDropZone","files","handleFilesUpload","onFilesUpload","event","target","uniqueFilenames","Set","selectedFiles","hasInvalidFiles","checkFilesPromises","map","file","isFont","isFontFile","has","name","fileExtension","split","pop","toLowerCase","includes","add","allowedFiles","Promise","all","filter","length","loadFiles","message","type","fontFacesLoaded","fontFile","fontFaceData","getFontFaceMetadata","handleInstall","font","buffer","readFileAsArrayBuffer","fromDataBuffer","error","resolve","reject","reader","window","FileReader","readAsArrayBuffer","onload","result","onerror","fontObj","onloadEvent","detail","opentype","tables","fontName","get","isItalic","fontWeight","usWeightClass","isVariable","fvar","weightAxis","axes","find","tag","weightRange","minValue","maxValue","fontFamily","fontStyle","fontFaces","fontFamilies","errors","installationErrors","className","children","onFilesDrop","status","__unstableHTML","onRemove","index","accept","ext","join","multiple","onChange","render","openFileDialog","onClick","margin"],"sources":["@wordpress/edit-site/src/components/global-styles/font-library-modal/upload-fonts.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalSpacer as Spacer,\n\t__experimentalText as Text,\n\t__experimentalVStack as VStack,\n\tButton,\n\tDropZone,\n\tNotice,\n\tFormFileUpload,\n\tFlexItem,\n\tProgressBar,\n} from '@wordpress/components';\nimport { useContext, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { ALLOWED_FILE_EXTENSIONS } from './utils/constants';\nimport { FontLibraryContext } from './context';\nimport { Font } from '../../../../lib/lib-font.browser';\nimport makeFamiliesFromFaces from './utils/make-families-from-faces';\nimport { loadFontFaceInBrowser } from './utils';\n\nfunction UploadFonts() {\n\tconst { installFonts } = useContext( FontLibraryContext );\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst [ notice, setNotice ] = useState( false );\n\n\tconst handleDropZone = ( files ) => {\n\t\thandleFilesUpload( files );\n\t};\n\tconst onFilesUpload = ( event ) => {\n\t\thandleFilesUpload( event.target.files );\n\t};\n\n\t/**\n\t * Filters the selected files to only allow the ones with the allowed extensions\n\t *\n\t * @param {Array} files The files to be filtered\n\t * @return {void}\n\t */\n\tconst handleFilesUpload = async ( files ) => {\n\t\tsetNotice( null );\n\t\tsetIsUploading( true );\n\t\tconst uniqueFilenames = new Set();\n\t\tconst selectedFiles = [ ...files ];\n\t\tlet hasInvalidFiles = false;\n\n\t\t// Use map to create a promise for each file check, then filter with Promise.all.\n\t\tconst checkFilesPromises = selectedFiles.map( async ( file ) => {\n\t\t\tconst isFont = await isFontFile( file );\n\t\t\tif ( ! isFont ) {\n\t\t\t\thasInvalidFiles = true;\n\t\t\t\treturn null; // Return null for invalid files.\n\t\t\t}\n\t\t\t// Check for duplicates\n\t\t\tif ( uniqueFilenames.has( file.name ) ) {\n\t\t\t\treturn null; // Return null for duplicates.\n\t\t\t}\n\t\t\t// Check if the file extension is allowed.\n\t\t\tconst fileExtension = file.name.split( '.' ).pop().toLowerCase();\n\t\t\tif ( ALLOWED_FILE_EXTENSIONS.includes( fileExtension ) ) {\n\t\t\t\tuniqueFilenames.add( file.name );\n\t\t\t\treturn file; // Return the file if it passes all checks.\n\t\t\t}\n\t\t\treturn null; // Return null for disallowed file extensions.\n\t\t} );\n\n\t\t// Filter out the nulls after all promises have resolved.\n\t\tconst allowedFiles = ( await Promise.all( checkFilesPromises ) ).filter(\n\t\t\t( file ) => null !== file\n\t\t);\n\n\t\tif ( allowedFiles.length > 0 ) {\n\t\t\tloadFiles( allowedFiles );\n\t\t} else {\n\t\t\tconst message = hasInvalidFiles\n\t\t\t\t? __( 'Sorry, you are not allowed to upload this file type.' )\n\t\t\t\t: __( 'No fonts found to install.' );\n\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage,\n\t\t\t} );\n\t\t\tsetIsUploading( false );\n\t\t}\n\t};\n\n\t/**\n\t * Loads the selected files and reads the font metadata\n\t *\n\t * @param {Array} files The files to be loaded\n\t * @return {void}\n\t */\n\tconst loadFiles = async ( files ) => {\n\t\tconst fontFacesLoaded = await Promise.all(\n\t\t\tfiles.map( async ( fontFile ) => {\n\t\t\t\tconst fontFaceData = await getFontFaceMetadata( fontFile );\n\t\t\t\tawait loadFontFaceInBrowser(\n\t\t\t\t\tfontFaceData,\n\t\t\t\t\tfontFaceData.file,\n\t\t\t\t\t'all'\n\t\t\t\t);\n\t\t\t\treturn fontFaceData;\n\t\t\t} )\n\t\t);\n\t\thandleInstall( fontFacesLoaded );\n\t};\n\n\t/**\n\t * Checks if a file is a valid Font file.\n\t *\n\t * @param {File} file The file to be checked.\n\t * @return {boolean} Whether the file is a valid font file.\n\t */\n\tasync function isFontFile( file ) {\n\t\tconst font = new Font( 'Uploaded Font' );\n\t\ttry {\n\t\t\tconst buffer = await readFileAsArrayBuffer( file );\n\t\t\tawait font.fromDataBuffer( buffer, 'font' );\n\t\t\treturn true;\n\t\t} catch ( error ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t// Create a function to read the file as array buffer\n\tasync function readFileAsArrayBuffer( file ) {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst reader = new window.FileReader();\n\t\t\treader.readAsArrayBuffer( file );\n\t\t\treader.onload = () => resolve( reader.result );\n\t\t\treader.onerror = reject;\n\t\t} );\n\t}\n\n\tconst getFontFaceMetadata = async ( fontFile ) => {\n\t\tconst buffer = await readFileAsArrayBuffer( fontFile );\n\t\tconst fontObj = new Font( 'Uploaded Font' );\n\t\tfontObj.fromDataBuffer( buffer, fontFile.name );\n\t\t// Assuming that fromDataBuffer triggers onload event and returning a Promise\n\t\tconst onloadEvent = await new Promise(\n\t\t\t( resolve ) => ( fontObj.onload = resolve )\n\t\t);\n\t\tconst font = onloadEvent.detail.font;\n\t\tconst { name } = font.opentype.tables;\n\t\tconst fontName = name.get( 16 ) || name.get( 1 );\n\t\tconst isItalic = name.get( 2 ).toLowerCase().includes( 'italic' );\n\t\tconst fontWeight =\n\t\t\tfont.opentype.tables[ 'OS/2' ].usWeightClass || 'normal';\n\t\tconst isVariable = !! font.opentype.tables.fvar;\n\t\tconst weightAxis =\n\t\t\tisVariable &&\n\t\t\tfont.opentype.tables.fvar.axes.find(\n\t\t\t\t( { tag } ) => tag === 'wght'\n\t\t\t);\n\t\tconst weightRange = weightAxis\n\t\t\t? `${ weightAxis.minValue } ${ weightAxis.maxValue }`\n\t\t\t: null;\n\t\treturn {\n\t\t\tfile: fontFile,\n\t\t\tfontFamily: fontName,\n\t\t\tfontStyle: isItalic ? 'italic' : 'normal',\n\t\t\tfontWeight: weightRange || fontWeight,\n\t\t};\n\t};\n\n\t/**\n\t * Creates the font family definition and sends it to the server\n\t *\n\t * @param {Array} fontFaces The font faces to be installed\n\t * @return {void}\n\t */\n\tconst handleInstall = async ( fontFaces ) => {\n\t\tconst fontFamilies = makeFamiliesFromFaces( fontFaces );\n\n\t\ttry {\n\t\t\tawait installFonts( fontFamilies );\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'success',\n\t\t\t\tmessage: __( 'Fonts were installed successfully.' ),\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tsetNotice( {\n\t\t\t\ttype: 'error',\n\t\t\t\tmessage: error.message,\n\t\t\t\terrors: error?.installationErrors,\n\t\t\t} );\n\t\t}\n\n\t\tsetIsUploading( false );\n\t};\n\n\treturn (\n\t\t<div className=\"font-library-modal__tabpanel-layout\">\n\t\t\t<DropZone onFilesDrop={ handleDropZone } />\n\t\t\t<VStack className=\"font-library-modal__local-fonts\">\n\t\t\t\t{ notice && (\n\t\t\t\t\t<Notice\n\t\t\t\t\t\tstatus={ notice.type }\n\t\t\t\t\t\t__unstableHTML\n\t\t\t\t\t\tonRemove={ () => setNotice( null ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ notice.message }\n\t\t\t\t\t\t{ notice.errors && (\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t{ notice.errors.map( ( error, index ) => (\n\t\t\t\t\t\t\t\t\t<li key={ index }>{ error }</li>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Notice>\n\t\t\t\t) }\n\t\t\t\t{ isUploading && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<div className=\"font-library-modal__upload-area\">\n\t\t\t\t\t\t\t<ProgressBar />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t\t{ ! isUploading && (\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\taccept={ ALLOWED_FILE_EXTENSIONS.map(\n\t\t\t\t\t\t\t( ext ) => `.${ ext }`\n\t\t\t\t\t\t).join( ',' ) }\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\tonChange={ onFilesUpload }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"font-library-modal__upload-area\"\n\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload font' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<Spacer margin={ 2 } />\n\t\t\t\t<Text className=\"font-library-modal__upload-area__text\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Uploaded fonts appear in your library and can be used in your theme. Supported formats: .ttf, .otf, .woff, and .woff2.'\n\t\t\t\t\t) }\n\t\t\t\t</Text>\n\t\t\t</VStack>\n\t\t</div>\n\t);\n}\n\nexport default UploadFonts;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';
|
|
5
|
+
import { __, sprintf } from '@wordpress/i18n';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
function ConfirmDeleteFontSizeDialog({
|
|
8
|
+
fontSize,
|
|
9
|
+
isOpen,
|
|
10
|
+
toggleOpen,
|
|
11
|
+
handleRemoveFontSize
|
|
12
|
+
}) {
|
|
13
|
+
const handleConfirm = async () => {
|
|
14
|
+
toggleOpen();
|
|
15
|
+
handleRemoveFontSize(fontSize);
|
|
16
|
+
};
|
|
17
|
+
const handleCancel = () => {
|
|
18
|
+
toggleOpen();
|
|
19
|
+
};
|
|
20
|
+
return /*#__PURE__*/_jsx(ConfirmDialog, {
|
|
21
|
+
isOpen: isOpen,
|
|
22
|
+
cancelButtonText: __('Cancel'),
|
|
23
|
+
confirmButtonText: __('Delete'),
|
|
24
|
+
onCancel: handleCancel,
|
|
25
|
+
onConfirm: handleConfirm,
|
|
26
|
+
size: "medium",
|
|
27
|
+
children: fontSize && sprintf( /* translators: %s: Name of the font size preset. */
|
|
28
|
+
__('Are you sure you want to delete "%s" font size preset?'), fontSize.name)
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export default ConfirmDeleteFontSizeDialog;
|
|
32
|
+
//# sourceMappingURL=confirm-delete-font-size-dialog.js.map
|
package/build-module/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__experimentalConfirmDialog","ConfirmDialog","__","sprintf","jsx","_jsx","ConfirmDeleteFontSizeDialog","fontSize","isOpen","toggleOpen","handleRemoveFontSize","handleConfirm","handleCancel","cancelButtonText","confirmButtonText","onCancel","onConfirm","size","children","name"],"sources":["@wordpress/edit-site/src/components/global-styles/font-sizes/confirm-delete-font-size-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\nfunction ConfirmDeleteFontSizeDialog( {\n\tfontSize,\n\tisOpen,\n\ttoggleOpen,\n\thandleRemoveFontSize,\n} ) {\n\tconst handleConfirm = async () => {\n\t\ttoggleOpen();\n\t\thandleRemoveFontSize( fontSize );\n\t};\n\n\tconst handleCancel = () => {\n\t\ttoggleOpen();\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ __( 'Delete' ) }\n\t\t\tonCancel={ handleCancel }\n\t\t\tonConfirm={ handleConfirm }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t{ fontSize &&\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: Name of the font size preset. */\n\t\t\t\t\t__(\n\t\t\t\t\t\t'Are you sure you want to delete \"%s\" font size preset?'\n\t\t\t\t\t),\n\t\t\t\t\tfontSize.name\n\t\t\t\t) }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default ConfirmDeleteFontSizeDialog;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,2BAA2B,IAAIC,aAAa,QAAQ,uBAAuB;AACpF,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE9C,SAASC,2BAA2BA,CAAE;EACrCC,QAAQ;EACRC,MAAM;EACNC,UAAU;EACVC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAAY;IACjCF,UAAU,CAAC,CAAC;IACZC,oBAAoB,CAAEH,QAAS,CAAC;EACjC,CAAC;EAED,MAAMK,YAAY,GAAGA,CAAA,KAAM;IAC1BH,UAAU,CAAC,CAAC;EACb,CAAC;EAED,oBACCJ,IAAA,CAACJ,aAAa;IACbO,MAAM,EAAGA,MAAQ;IACjBK,gBAAgB,EAAGX,EAAE,CAAE,QAAS,CAAG;IACnCY,iBAAiB,EAAGZ,EAAE,CAAE,QAAS,CAAG;IACpCa,QAAQ,EAAGH,YAAc;IACzBI,SAAS,EAAGL,aAAe;IAC3BM,IAAI,EAAC,QAAQ;IAAAC,QAAA,EAEXX,QAAQ,IACTJ,OAAO,EACN;IACAD,EAAE,CACD,wDACD,CAAC,EACDK,QAAQ,CAACY,IACV;EAAC,CACY,CAAC;AAElB;AAEA,eAAeb,2BAA2B","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';
|
|
5
|
+
import { __ } from '@wordpress/i18n';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
function ConfirmResetFontSizesDialog({
|
|
8
|
+
text,
|
|
9
|
+
confirmButtonText,
|
|
10
|
+
isOpen,
|
|
11
|
+
toggleOpen,
|
|
12
|
+
onConfirm
|
|
13
|
+
}) {
|
|
14
|
+
const handleConfirm = async () => {
|
|
15
|
+
toggleOpen();
|
|
16
|
+
onConfirm();
|
|
17
|
+
};
|
|
18
|
+
const handleCancel = () => {
|
|
19
|
+
toggleOpen();
|
|
20
|
+
};
|
|
21
|
+
return /*#__PURE__*/_jsx(ConfirmDialog, {
|
|
22
|
+
isOpen: isOpen,
|
|
23
|
+
cancelButtonText: __('Cancel'),
|
|
24
|
+
confirmButtonText: confirmButtonText,
|
|
25
|
+
onCancel: handleCancel,
|
|
26
|
+
onConfirm: handleConfirm,
|
|
27
|
+
size: "medium",
|
|
28
|
+
children: text
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export default ConfirmResetFontSizesDialog;
|
|
32
|
+
//# sourceMappingURL=confirm-reset-font-sizes-dialog.js.map
|
package/build-module/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__experimentalConfirmDialog","ConfirmDialog","__","jsx","_jsx","ConfirmResetFontSizesDialog","text","confirmButtonText","isOpen","toggleOpen","onConfirm","handleConfirm","handleCancel","cancelButtonText","onCancel","size","children"],"sources":["@wordpress/edit-site/src/components/global-styles/font-sizes/confirm-reset-font-sizes-dialog.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __experimentalConfirmDialog as ConfirmDialog } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nfunction ConfirmResetFontSizesDialog( {\n\ttext,\n\tconfirmButtonText,\n\tisOpen,\n\ttoggleOpen,\n\tonConfirm,\n} ) {\n\tconst handleConfirm = async () => {\n\t\ttoggleOpen();\n\t\tonConfirm();\n\t};\n\n\tconst handleCancel = () => {\n\t\ttoggleOpen();\n\t};\n\n\treturn (\n\t\t<ConfirmDialog\n\t\t\tisOpen={ isOpen }\n\t\t\tcancelButtonText={ __( 'Cancel' ) }\n\t\t\tconfirmButtonText={ confirmButtonText }\n\t\t\tonCancel={ handleCancel }\n\t\t\tonConfirm={ handleConfirm }\n\t\t\tsize=\"medium\"\n\t\t>\n\t\t\t{ text }\n\t\t</ConfirmDialog>\n\t);\n}\n\nexport default ConfirmResetFontSizesDialog;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,2BAA2B,IAAIC,aAAa,QAAQ,uBAAuB;AACpF,SAASC,EAAE,QAAQ,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAErC,SAASC,2BAA2BA,CAAE;EACrCC,IAAI;EACJC,iBAAiB;EACjBC,MAAM;EACNC,UAAU;EACVC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAAY;IACjCF,UAAU,CAAC,CAAC;IACZC,SAAS,CAAC,CAAC;EACZ,CAAC;EAED,MAAME,YAAY,GAAGA,CAAA,KAAM;IAC1BH,UAAU,CAAC,CAAC;EACb,CAAC;EAED,oBACCL,IAAA,CAACH,aAAa;IACbO,MAAM,EAAGA,MAAQ;IACjBK,gBAAgB,EAAGX,EAAE,CAAE,QAAS,CAAG;IACnCK,iBAAiB,EAAGA,iBAAmB;IACvCO,QAAQ,EAAGF,YAAc;IACzBF,SAAS,EAAGC,aAAe;IAC3BI,IAAI,EAAC,QAAQ;IAAAC,QAAA,EAEXV;EAAI,CACQ,CAAC;AAElB;AAEA,eAAeD,2BAA2B","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { getComputedFluidTypographyValue, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
5
|
+
import { __ } from '@wordpress/i18n';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { unlock } from '../../../lock-unlock';
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
const {
|
|
13
|
+
useGlobalStyle
|
|
14
|
+
} = unlock(blockEditorPrivateApis);
|
|
15
|
+
function FontSizePreview({
|
|
16
|
+
fontSize
|
|
17
|
+
}) {
|
|
18
|
+
var _font$fontFamily;
|
|
19
|
+
const [font] = useGlobalStyle('typography');
|
|
20
|
+
const input = fontSize?.fluid?.min && fontSize?.fluid?.max ? {
|
|
21
|
+
minimumFontSize: fontSize.fluid.min,
|
|
22
|
+
maximumFontSize: fontSize.fluid.max
|
|
23
|
+
} : {
|
|
24
|
+
fontSize: fontSize.size
|
|
25
|
+
};
|
|
26
|
+
const computedFontSize = getComputedFluidTypographyValue(input);
|
|
27
|
+
return /*#__PURE__*/_jsx("div", {
|
|
28
|
+
className: "edit-site-typography-preview",
|
|
29
|
+
style: {
|
|
30
|
+
fontSize: computedFontSize,
|
|
31
|
+
fontFamily: (_font$fontFamily = font?.fontFamily) !== null && _font$fontFamily !== void 0 ? _font$fontFamily : 'serif'
|
|
32
|
+
},
|
|
33
|
+
children: __('Aa')
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
export default FontSizePreview;
|
|
37
|
+
//# sourceMappingURL=font-size-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getComputedFluidTypographyValue","privateApis","blockEditorPrivateApis","__","unlock","jsx","_jsx","useGlobalStyle","FontSizePreview","fontSize","_font$fontFamily","font","input","fluid","min","max","minimumFontSize","maximumFontSize","size","computedFontSize","className","style","fontFamily","children"],"sources":["@wordpress/edit-site/src/components/global-styles/font-sizes/font-size-preview.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tgetComputedFluidTypographyValue,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../../lock-unlock';\nconst { useGlobalStyle } = unlock( blockEditorPrivateApis );\n\nfunction FontSizePreview( { fontSize } ) {\n\tconst [ font ] = useGlobalStyle( 'typography' );\n\n\tconst input =\n\t\tfontSize?.fluid?.min && fontSize?.fluid?.max\n\t\t\t? {\n\t\t\t\t\tminimumFontSize: fontSize.fluid.min,\n\t\t\t\t\tmaximumFontSize: fontSize.fluid.max,\n\t\t\t }\n\t\t\t: {\n\t\t\t\t\tfontSize: fontSize.size,\n\t\t\t };\n\n\tconst computedFontSize = getComputedFluidTypographyValue( input );\n\treturn (\n\t\t<div\n\t\t\tclassName=\"edit-site-typography-preview\"\n\t\t\tstyle={ {\n\t\t\t\tfontSize: computedFontSize,\n\t\t\t\tfontFamily: font?.fontFamily ?? 'serif',\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Aa' ) }\n\t\t</div>\n\t);\n}\n\nexport default FontSizePreview;\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,+BAA+B,EAC/BC,WAAW,IAAIC,sBAAsB,QAC/B,yBAAyB;AAChC,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,SAASC,MAAM,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAC9C,MAAM;EAAEC;AAAe,CAAC,GAAGH,MAAM,CAAEF,sBAAuB,CAAC;AAE3D,SAASM,eAAeA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAAA,IAAAC,gBAAA;EACxC,MAAM,CAAEC,IAAI,CAAE,GAAGJ,cAAc,CAAE,YAAa,CAAC;EAE/C,MAAMK,KAAK,GACVH,QAAQ,EAAEI,KAAK,EAAEC,GAAG,IAAIL,QAAQ,EAAEI,KAAK,EAAEE,GAAG,GACzC;IACAC,eAAe,EAAEP,QAAQ,CAACI,KAAK,CAACC,GAAG;IACnCG,eAAe,EAAER,QAAQ,CAACI,KAAK,CAACE;EAChC,CAAC,GACD;IACAN,QAAQ,EAAEA,QAAQ,CAACS;EACnB,CAAC;EAEL,MAAMC,gBAAgB,GAAGnB,+BAA+B,CAAEY,KAAM,CAAC;EACjE,oBACCN,IAAA;IACCc,SAAS,EAAC,8BAA8B;IACxCC,KAAK,EAAG;MACPZ,QAAQ,EAAEU,gBAAgB;MAC1BG,UAAU,GAAAZ,gBAAA,GAAEC,IAAI,EAAEW,UAAU,cAAAZ,gBAAA,cAAAA,gBAAA,GAAI;IACjC,CAAG;IAAAa,QAAA,EAEDpB,EAAE,CAAE,IAAK;EAAC,CACR,CAAC;AAER;AAEA,eAAeK,eAAe","ignoreList":[]}
|