@wordpress/block-library 8.7.0 → 8.9.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/column/index.js +2 -1
- package/build/column/index.js.map +1 -1
- package/build/columns/edit.js +24 -6
- package/build/columns/edit.js.map +1 -1
- package/build/columns/index.js +2 -1
- package/build/columns/index.js.map +1 -1
- package/build/columns/utils.js +4 -9
- package/build/columns/utils.js.map +1 -1
- package/build/cover/edit/index.js +46 -50
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +32 -6
- package/build/cover/edit/resizable-cover-popover.js.map +1 -0
- package/build/cover/index.js +12 -0
- package/build/cover/index.js.map +1 -1
- package/build/cover/transforms.js +10 -7
- package/build/cover/transforms.js.map +1 -1
- package/build/details/edit.js +67 -0
- package/build/details/edit.js.map +1 -0
- package/build/details/index.js +110 -0
- package/build/details/index.js.map +1 -0
- package/build/details/save.js +33 -0
- package/build/details/save.js.map +1 -0
- package/build/details-content/edit.js +34 -0
- package/build/details-content/edit.js.map +1 -0
- package/build/details-content/index.js +94 -0
- package/build/details-content/index.js.map +1 -0
- package/build/details-content/save.js +20 -0
- package/build/details-content/save.js.map +1 -0
- package/build/details-summary/edit.js +42 -0
- package/build/details-summary/edit.js.map +1 -0
- package/build/details-summary/index.js +97 -0
- package/build/details-summary/index.js.map +1 -0
- package/build/details-summary/save.js +24 -0
- package/build/details-summary/save.js.map +1 -0
- package/build/embed/deprecated.js +4 -1
- package/build/embed/deprecated.js.map +1 -1
- package/build/embed/embed-link-settings.native.js +1 -1
- package/build/embed/embed-link-settings.native.js.map +1 -1
- package/build/embed/embed-placeholder.js +1 -1
- package/build/embed/embed-placeholder.js.map +1 -1
- package/build/embed/index.js +4 -1
- package/build/embed/index.js.map +1 -1
- package/build/embed/transforms.js +4 -1
- package/build/embed/transforms.js.map +1 -1
- package/build/embed/util.js +4 -1
- package/build/embed/util.js.map +1 -1
- package/build/file/edit.native.js +0 -2
- package/build/file/edit.native.js.map +1 -1
- package/build/gallery/use-get-media.native.js +2 -1
- package/build/gallery/use-get-media.native.js.map +1 -1
- package/build/group/edit.js +3 -1
- package/build/group/edit.js.map +1 -1
- package/build/group/index.js +3 -0
- package/build/group/index.js.map +1 -1
- package/build/image/edit.js +16 -13
- package/build/image/edit.js.map +1 -1
- package/build/image/index.js +5 -3
- package/build/image/index.js.map +1 -1
- package/build/index.js +24 -6
- package/build/index.js.map +1 -1
- package/build/index.native.js +9 -5
- package/build/index.native.js.map +1 -1
- package/build/media-text/edit.js +4 -2
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/index.js +3 -0
- package/build/media-text/index.js.map +1 -1
- package/build/media-text/media-container.js +2 -6
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/media-container.native.js +3 -3
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/navigation/deprecated.js +8 -11
- package/build/navigation/deprecated.js.map +1 -1
- package/build/navigation/edit/index.js +32 -64
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +1 -14
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/post-author/index.js +0 -1
- package/build/post-author/index.js.map +1 -1
- package/build/post-date/edit.js +4 -2
- package/build/post-date/edit.js.map +1 -1
- package/build/post-excerpt/edit.js +2 -2
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +2 -1
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +16 -27
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-time-to-read/edit.js +1 -1
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/post-time-to-read/index.js +7 -0
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/query/deprecated.js +8 -6
- package/build/query/deprecated.js.map +1 -1
- package/build/query/edit/inspector-controls/create-new-post-link.js +41 -0
- package/build/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
- package/build/query/edit/inspector-controls/index.js +14 -6
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/pattern-selection-modal.js +2 -1
- package/build/query/edit/pattern-selection-modal.js.map +1 -1
- package/build/query/index.js +5 -12
- package/build/query/index.js.map +1 -1
- package/build/site-logo/edit.js +114 -16
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-logo/index.js +1 -1
- package/build/social-link/icons/chain.js +1 -1
- package/build/social-link/icons/chain.js.map +1 -1
- package/build/social-link/icons/mail.js +1 -1
- package/build/social-link/icons/mail.js.map +1 -1
- package/build/spacer/controls.js +25 -6
- package/build/spacer/controls.js.map +1 -1
- package/build/spacer/edit.js +129 -13
- package/build/spacer/edit.js.map +1 -1
- package/build/spacer/save.js +2 -2
- package/build/spacer/save.js.map +1 -1
- package/build/table/state.js +35 -35
- package/build/table/state.js.map +1 -1
- package/build/template-part/edit/index.js +2 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +2 -2
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/term-description/index.js +1 -2
- package/build/term-description/index.js.map +1 -1
- package/build/utils/migrate-font-family.js +12 -5
- package/build/utils/migrate-font-family.js.map +1 -1
- package/build/video/edit.native.js +4 -3
- package/build/video/edit.native.js.map +1 -1
- package/build-module/column/index.js +2 -1
- package/build-module/column/index.js.map +1 -1
- package/build-module/columns/edit.js +24 -6
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/index.js +2 -1
- package/build-module/columns/index.js.map +1 -1
- package/build-module/columns/utils.js +4 -8
- package/build-module/columns/utils.js.map +1 -1
- package/build-module/cover/edit/index.js +48 -52
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/{resizable-cover.js → resizable-cover-popover.js} +31 -6
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -0
- package/build-module/cover/index.js +12 -0
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/transforms.js +5 -1
- package/build-module/cover/transforms.js.map +1 -1
- package/build-module/details/edit.js +52 -0
- package/build-module/details/edit.js.map +1 -0
- package/build-module/details/index.js +91 -0
- package/build-module/details/index.js.map +1 -0
- package/build-module/details/save.js +20 -0
- package/build-module/details/save.js.map +1 -0
- package/build-module/details-content/edit.js +23 -0
- package/build-module/details-content/edit.js.map +1 -0
- package/build-module/details-content/index.js +76 -0
- package/build-module/details-content/index.js.map +1 -0
- package/build-module/details-content/save.js +11 -0
- package/build-module/details-content/save.js.map +1 -0
- package/build-module/details-summary/edit.js +30 -0
- package/build-module/details-summary/edit.js.map +1 -0
- package/build-module/details-summary/index.js +79 -0
- package/build-module/details-summary/index.js.map +1 -0
- package/build-module/details-summary/save.js +16 -0
- package/build-module/details-summary/save.js.map +1 -0
- package/build-module/embed/deprecated.js +4 -1
- package/build-module/embed/deprecated.js.map +1 -1
- package/build-module/embed/embed-link-settings.native.js +1 -1
- package/build-module/embed/embed-link-settings.native.js.map +1 -1
- package/build-module/embed/embed-placeholder.js +1 -1
- package/build-module/embed/embed-placeholder.js.map +1 -1
- package/build-module/embed/index.js +4 -1
- package/build-module/embed/index.js.map +1 -1
- package/build-module/embed/transforms.js +4 -1
- package/build-module/embed/transforms.js.map +1 -1
- package/build-module/embed/util.js +4 -1
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/edit.native.js +0 -2
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/gallery/use-get-media.native.js +2 -1
- package/build-module/gallery/use-get-media.native.js.map +1 -1
- package/build-module/group/edit.js +3 -1
- package/build-module/group/edit.js.map +1 -1
- package/build-module/group/index.js +3 -0
- package/build-module/group/index.js.map +1 -1
- package/build-module/image/edit.js +16 -13
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/index.js +5 -3
- package/build-module/image/index.js.map +1 -1
- package/build-module/index.js +21 -6
- package/build-module/index.js.map +1 -1
- package/build-module/index.native.js +9 -5
- package/build-module/index.native.js.map +1 -1
- package/build-module/media-text/edit.js +4 -2
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/index.js +3 -0
- package/build-module/media-text/index.js.map +1 -1
- package/build-module/media-text/media-container.js +1 -5
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/media-container.native.js +1 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/navigation/deprecated.js +8 -10
- package/build-module/navigation/deprecated.js.map +1 -1
- package/build-module/navigation/edit/index.js +31 -63
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +1 -14
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/post-author/index.js +0 -1
- package/build-module/post-author/index.js.map +1 -1
- package/build-module/post-date/edit.js +4 -2
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js +2 -2
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +2 -1
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +16 -27
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +1 -1
- package/build-module/post-time-to-read/edit.js.map +1 -1
- package/build-module/post-time-to-read/index.js +7 -0
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/query/deprecated.js +5 -2
- package/build-module/query/deprecated.js.map +1 -1
- package/build-module/query/edit/inspector-controls/create-new-post-link.js +33 -0
- package/build-module/query/edit/inspector-controls/create-new-post-link.js.map +1 -0
- package/build-module/query/edit/inspector-controls/index.js +12 -7
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/pattern-selection-modal.js +2 -1
- package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
- package/build-module/query/index.js +5 -10
- package/build-module/query/index.js.map +1 -1
- package/build-module/site-logo/edit.js +115 -18
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-logo/index.js +1 -1
- package/build-module/social-link/icons/chain.js +1 -1
- package/build-module/social-link/icons/chain.js.map +1 -1
- package/build-module/social-link/icons/mail.js +1 -1
- package/build-module/social-link/icons/mail.js.map +1 -1
- package/build-module/spacer/controls.js +27 -9
- package/build-module/spacer/controls.js.map +1 -1
- package/build-module/spacer/edit.js +129 -14
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/spacer/save.js +3 -3
- package/build-module/spacer/save.js.map +1 -1
- package/build-module/table/state.js +35 -33
- package/build-module/table/state.js.map +1 -1
- package/build-module/template-part/edit/index.js +2 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +2 -2
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/term-description/index.js +1 -2
- package/build-module/term-description/index.js.map +1 -1
- package/build-module/utils/migrate-font-family.js +9 -1
- package/build-module/utils/migrate-font-family.js.map +1 -1
- package/build-module/video/edit.native.js +4 -3
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/columns/style-rtl.css +4 -1
- package/build-style/columns/style.css +4 -1
- package/build-style/common-rtl.css +1 -1
- package/build-style/common.css +1 -1
- package/build-style/cover/editor-rtl.css +9 -10
- package/build-style/cover/editor.css +9 -10
- package/build-style/cover/style-rtl.css +1 -1
- package/build-style/cover/style.css +1 -1
- package/build-style/details/style-rtl.css +91 -0
- package/build-style/details/style.css +91 -0
- package/build-style/details-summary/editor-rtl.css +91 -0
- package/build-style/details-summary/editor.css +91 -0
- package/build-style/details-summary/style-rtl.css +91 -0
- package/build-style/details-summary/style.css +91 -0
- package/build-style/editor-rtl.css +97 -74
- package/build-style/editor.css +97 -74
- package/build-style/file/style-rtl.css +4 -3
- package/build-style/file/style.css +4 -3
- package/build-style/html/editor-rtl.css +2 -2
- package/build-style/html/editor.css +2 -2
- package/build-style/image/editor-rtl.css +1 -1
- package/build-style/image/editor.css +1 -1
- package/build-style/post-excerpt/style-rtl.css +1 -1
- package/build-style/post-excerpt/style.css +1 -1
- package/build-style/pullquote/style-rtl.css +4 -1
- package/build-style/pullquote/style.css +4 -1
- package/build-style/query/editor-rtl.css +8 -12
- package/build-style/query/editor.css +8 -12
- package/build-style/search/style-rtl.css +2 -0
- package/build-style/search/style.css +2 -0
- package/build-style/shortcode/editor-rtl.css +15 -35
- package/build-style/shortcode/editor.css +15 -35
- package/build-style/site-logo/editor-rtl.css +46 -0
- package/build-style/site-logo/editor.css +46 -0
- package/build-style/spacer/editor-rtl.css +4 -2
- package/build-style/spacer/editor.css +4 -2
- package/build-style/style-rtl.css +25 -8
- package/build-style/style.css +25 -8
- package/build-style/template-part/editor-rtl.css +8 -12
- package/build-style/template-part/editor.css +8 -12
- package/package.json +31 -31
- package/src/buttons/test/__snapshots__/edit.native.js.snap +18 -0
- package/src/buttons/test/edit.native.js +123 -2
- package/src/column/block.json +2 -1
- package/src/columns/block.json +2 -1
- package/src/columns/edit.js +33 -9
- package/src/columns/style.scss +5 -1
- package/src/columns/utils.js +8 -9
- package/src/common.scss +1 -1
- package/src/cover/block.json +12 -0
- package/src/cover/edit/index.js +44 -37
- package/src/cover/edit/resizable-cover-popover.js +82 -0
- package/src/cover/editor.scss +20 -13
- package/src/cover/index.php +9 -10
- package/src/cover/style.scss +1 -1
- package/src/cover/test/edit.js +1 -1
- package/src/cover/transforms.js +4 -1
- package/src/details/block.json +54 -0
- package/src/details/edit.js +59 -0
- package/src/details/index.js +35 -0
- package/src/details/save.js +15 -0
- package/src/details/style.scss +3 -0
- package/src/details-content/block.json +50 -0
- package/src/details-content/edit.js +29 -0
- package/src/details-content/index.js +23 -0
- package/src/details-content/save.js +12 -0
- package/src/details-summary/block.json +53 -0
- package/src/details-summary/edit.js +27 -0
- package/src/details-summary/editor.scss +3 -0
- package/src/details-summary/index.js +23 -0
- package/src/details-summary/save.js +13 -0
- package/src/details-summary/style.scss +3 -0
- package/src/editor.scss +1 -0
- package/src/embed/block.json +4 -1
- package/src/embed/embed-link-settings.native.js +1 -1
- package/src/embed/embed-placeholder.js +1 -1
- package/src/file/edit.native.js +0 -2
- package/src/file/style.scss +5 -2
- package/src/gallery/test/index.native.js +4 -4
- package/src/gallery/test/use-get-media.native.js +24 -0
- package/src/gallery/use-get-media.native.js +1 -1
- package/src/group/block.json +3 -0
- package/src/group/edit.js +8 -2
- package/src/heading/test/__snapshots__/index.native.js.snap +12 -0
- package/src/heading/test/index.native.js +71 -0
- package/src/html/editor.scss +2 -21
- package/src/image/block.json +5 -3
- package/src/image/edit.js +21 -17
- package/src/image/editor.scss +1 -1
- package/src/index.js +13 -3
- package/src/index.native.js +9 -5
- package/src/list/test/edit.native.js +7 -7
- package/src/media-text/block.json +3 -0
- package/src/media-text/edit.js +2 -1
- package/src/media-text/media-container.js +1 -5
- package/src/media-text/media-container.native.js +1 -1
- package/src/navigation/deprecated.js +15 -19
- package/src/navigation/edit/index.js +32 -106
- package/src/navigation/edit/unsaved-inner-blocks.js +34 -46
- package/src/navigation/index.php +15 -12
- package/src/paragraph/test/edit.native.js +616 -1
- package/src/post-author/block.json +0 -1
- package/src/post-date/edit.js +4 -0
- package/src/post-date/index.php +17 -8
- package/src/post-excerpt/edit.js +1 -1
- package/src/post-excerpt/index.php +3 -3
- package/src/post-excerpt/style.scss +2 -1
- package/src/post-featured-image/dimension-controls.js +5 -1
- package/src/post-featured-image/edit.js +14 -34
- package/src/post-featured-image/index.php +1 -1
- package/src/post-time-to-read/block.json +7 -0
- package/src/post-time-to-read/edit.js +1 -1
- package/src/post-time-to-read/index.php +3 -3
- package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -2
- package/src/preformatted/test/edit.native.js +42 -2
- package/src/pullquote/style.scss +5 -1
- package/src/pullquote/test/edit.native.js +65 -0
- package/src/query/deprecated.js +4 -1
- package/src/query/edit/inspector-controls/create-new-post-link.js +26 -0
- package/src/query/edit/inspector-controls/index.js +13 -6
- package/src/query/edit/pattern-selection-modal.js +1 -0
- package/src/query/editor.scss +8 -11
- package/src/query/index.js +1 -7
- package/src/quote/test/edit.native.js +88 -0
- package/src/search/index.php +1 -1
- package/src/search/style.scss +3 -0
- package/src/shortcode/editor.scss +6 -5
- package/src/site-logo/block.json +1 -1
- package/src/site-logo/edit.js +123 -9
- package/src/site-logo/editor.scss +57 -0
- package/src/social-link/icons/chain.js +1 -1
- package/src/social-link/icons/mail.js +1 -1
- package/src/social-link/index.php +2 -2
- package/src/spacer/controls.js +42 -17
- package/src/spacer/edit.js +176 -18
- package/src/spacer/editor.scss +2 -1
- package/src/spacer/save.js +3 -3
- package/src/style.scss +2 -0
- package/src/table/state.js +83 -66
- package/src/template-part/edit/index.js +1 -0
- package/src/template-part/edit/utils/hooks.js +2 -2
- package/src/template-part/editor.scss +9 -11
- package/src/term-description/block.json +1 -2
- package/src/utils/migrate-font-family.js +8 -1
- package/src/verse/test/edit.native.js +28 -0
- package/src/video/edit.native.js +2 -2
- package/tsconfig.json +1 -0
- package/build/cover/edit/resizable-cover.js.map +0 -1
- package/build/media-text/media-container-icon.js +0 -27
- package/build/media-text/media-container-icon.js.map +0 -1
- package/build/query/hooks.js +0 -72
- package/build/query/hooks.js.map +0 -1
- package/build/utils/clean-empty-object.js +0 -34
- package/build/utils/clean-empty-object.js.map +0 -1
- package/build-module/cover/edit/resizable-cover.js.map +0 -1
- package/build-module/media-text/media-container-icon.js +0 -17
- package/build-module/media-text/media-container-icon.js.map +0 -1
- package/build-module/query/hooks.js +0 -59
- package/build-module/query/hooks.js.map +0 -1
- package/build-module/utils/clean-empty-object.js +0 -25
- package/build-module/utils/clean-empty-object.js.map +0 -1
- package/src/cover/edit/resizable-cover.js +0 -61
- package/src/media-text/media-container-icon.js +0 -12
- package/src/query/hooks.js +0 -53
- package/src/utils/clean-empty-object.js +0 -28
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/block-library",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.9.0",
|
|
4
4
|
"description": "Block library for the WordPress editor.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -31,35 +31,35 @@
|
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@babel/runtime": "^7.16.0",
|
|
34
|
-
"@wordpress/a11y": "^3.
|
|
35
|
-
"@wordpress/api-fetch": "^6.
|
|
36
|
-
"@wordpress/autop": "^3.
|
|
37
|
-
"@wordpress/blob": "^3.
|
|
38
|
-
"@wordpress/block-editor": "^
|
|
39
|
-
"@wordpress/blocks": "^12.
|
|
40
|
-
"@wordpress/components": "^23.
|
|
41
|
-
"@wordpress/compose": "^6.
|
|
42
|
-
"@wordpress/core-data": "^6.
|
|
43
|
-
"@wordpress/data": "^9.
|
|
44
|
-
"@wordpress/date": "^4.
|
|
45
|
-
"@wordpress/deprecated": "^3.
|
|
46
|
-
"@wordpress/dom": "^3.
|
|
47
|
-
"@wordpress/element": "^5.
|
|
48
|
-
"@wordpress/escape-html": "^2.
|
|
49
|
-
"@wordpress/hooks": "^3.
|
|
50
|
-
"@wordpress/html-entities": "^3.
|
|
51
|
-
"@wordpress/i18n": "^4.
|
|
52
|
-
"@wordpress/icons": "^9.
|
|
53
|
-
"@wordpress/keycodes": "^3.
|
|
54
|
-
"@wordpress/notices": "^
|
|
55
|
-
"@wordpress/primitives": "^3.
|
|
56
|
-
"@wordpress/private-apis": "^0.
|
|
57
|
-
"@wordpress/reusable-blocks": "^4.
|
|
58
|
-
"@wordpress/rich-text": "^6.
|
|
59
|
-
"@wordpress/server-side-render": "^4.
|
|
60
|
-
"@wordpress/url": "^3.
|
|
61
|
-
"@wordpress/viewport": "^5.
|
|
62
|
-
"@wordpress/wordcount": "^3.
|
|
34
|
+
"@wordpress/a11y": "^3.32.0",
|
|
35
|
+
"@wordpress/api-fetch": "^6.29.0",
|
|
36
|
+
"@wordpress/autop": "^3.32.0",
|
|
37
|
+
"@wordpress/blob": "^3.32.0",
|
|
38
|
+
"@wordpress/block-editor": "^12.0.0",
|
|
39
|
+
"@wordpress/blocks": "^12.9.0",
|
|
40
|
+
"@wordpress/components": "^23.9.0",
|
|
41
|
+
"@wordpress/compose": "^6.9.0",
|
|
42
|
+
"@wordpress/core-data": "^6.9.0",
|
|
43
|
+
"@wordpress/data": "^9.2.0",
|
|
44
|
+
"@wordpress/date": "^4.32.0",
|
|
45
|
+
"@wordpress/deprecated": "^3.32.0",
|
|
46
|
+
"@wordpress/dom": "^3.32.0",
|
|
47
|
+
"@wordpress/element": "^5.9.0",
|
|
48
|
+
"@wordpress/escape-html": "^2.32.0",
|
|
49
|
+
"@wordpress/hooks": "^3.32.0",
|
|
50
|
+
"@wordpress/html-entities": "^3.32.0",
|
|
51
|
+
"@wordpress/i18n": "^4.32.0",
|
|
52
|
+
"@wordpress/icons": "^9.23.0",
|
|
53
|
+
"@wordpress/keycodes": "^3.32.0",
|
|
54
|
+
"@wordpress/notices": "^4.0.0",
|
|
55
|
+
"@wordpress/primitives": "^3.30.0",
|
|
56
|
+
"@wordpress/private-apis": "^0.14.0",
|
|
57
|
+
"@wordpress/reusable-blocks": "^4.9.0",
|
|
58
|
+
"@wordpress/rich-text": "^6.9.0",
|
|
59
|
+
"@wordpress/server-side-render": "^4.9.0",
|
|
60
|
+
"@wordpress/url": "^3.33.0",
|
|
61
|
+
"@wordpress/viewport": "^5.9.0",
|
|
62
|
+
"@wordpress/wordcount": "^3.32.0",
|
|
63
63
|
"change-case": "^4.1.2",
|
|
64
64
|
"classnames": "^2.3.1",
|
|
65
65
|
"colord": "^2.7.0",
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"publishConfig": {
|
|
79
79
|
"access": "public"
|
|
80
80
|
},
|
|
81
|
-
"gitHead": "
|
|
81
|
+
"gitHead": "6df0c62d43b8901414ccd22ffbe56eaa99d012a6"
|
|
82
82
|
}
|
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`Buttons block color customization sets a background color 1`] = `
|
|
4
|
+
"<!-- wp:buttons -->
|
|
5
|
+
<div class="wp-block-buttons"><!-- wp:button {"backgroundColor":"luminous-vivid-amber"} /--></div>
|
|
6
|
+
<!-- /wp:buttons -->"
|
|
7
|
+
`;
|
|
8
|
+
|
|
9
|
+
exports[`Buttons block color customization sets a gradient background color 1`] = `
|
|
10
|
+
"<!-- wp:buttons -->
|
|
11
|
+
<div class="wp-block-buttons"><!-- wp:button {"gradient":"light-green-cyan-to-vivid-green-cyan"} /--></div>
|
|
12
|
+
<!-- /wp:buttons -->"
|
|
13
|
+
`;
|
|
14
|
+
|
|
15
|
+
exports[`Buttons block color customization sets a text color 1`] = `
|
|
16
|
+
"<!-- wp:buttons -->
|
|
17
|
+
<div class="wp-block-buttons"><!-- wp:button {"textColor":"pale-pink"} /--></div>
|
|
18
|
+
<!-- /wp:buttons -->"
|
|
19
|
+
`;
|
|
20
|
+
|
|
3
21
|
exports[`Buttons block justify content sets Justify items center option 1`] = `
|
|
4
22
|
"<!-- wp:buttons {"layout":{"type":"flex","justifyContent":"center"}} -->
|
|
5
23
|
<div class="wp-block-buttons"><!-- wp:button /--></div>
|
|
@@ -2,12 +2,15 @@
|
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
4
|
import {
|
|
5
|
+
addBlock,
|
|
5
6
|
fireEvent,
|
|
6
7
|
getEditorHtml,
|
|
7
8
|
within,
|
|
8
9
|
getBlock,
|
|
9
10
|
initializeEditor,
|
|
10
|
-
|
|
11
|
+
triggerBlockListLayout,
|
|
12
|
+
typeInRichText,
|
|
13
|
+
waitFor,
|
|
11
14
|
} from 'test/helpers';
|
|
12
15
|
|
|
13
16
|
/**
|
|
@@ -196,7 +199,7 @@ describe( 'Buttons block', () => {
|
|
|
196
199
|
within( secondButtonBlock ).getByLabelText(
|
|
197
200
|
'Text input. Empty'
|
|
198
201
|
);
|
|
199
|
-
|
|
202
|
+
typeInRichText( secondButtonInput, 'Hello!' );
|
|
200
203
|
|
|
201
204
|
expect( getEditorHtml() ).toMatchSnapshot();
|
|
202
205
|
} );
|
|
@@ -271,4 +274,122 @@ describe( 'Buttons block', () => {
|
|
|
271
274
|
} )
|
|
272
275
|
);
|
|
273
276
|
} );
|
|
277
|
+
|
|
278
|
+
describe( 'color customization', () => {
|
|
279
|
+
it( 'sets a text color', async () => {
|
|
280
|
+
// Arrange
|
|
281
|
+
const screen = await initializeEditor();
|
|
282
|
+
await addBlock( screen, 'Buttons' );
|
|
283
|
+
|
|
284
|
+
// Act
|
|
285
|
+
const buttonsBlock = getBlock( screen, 'Buttons' );
|
|
286
|
+
fireEvent.press( buttonsBlock );
|
|
287
|
+
|
|
288
|
+
// Trigger onLayout for the list
|
|
289
|
+
await triggerBlockListLayout( buttonsBlock );
|
|
290
|
+
|
|
291
|
+
const buttonBlock = await getBlock( screen, 'Button' );
|
|
292
|
+
fireEvent.press( buttonBlock );
|
|
293
|
+
|
|
294
|
+
// Open Block Settings.
|
|
295
|
+
fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
|
|
296
|
+
|
|
297
|
+
// Wait for Block Settings to be visible.
|
|
298
|
+
const blockSettingsModal = screen.getByTestId(
|
|
299
|
+
'block-settings-modal'
|
|
300
|
+
);
|
|
301
|
+
await waitFor( () => blockSettingsModal.props.isVisible );
|
|
302
|
+
|
|
303
|
+
// Open Text color settings
|
|
304
|
+
fireEvent.press( screen.getByLabelText( 'Text, Default' ) );
|
|
305
|
+
|
|
306
|
+
// Tap one color
|
|
307
|
+
fireEvent.press( screen.getByLabelText( 'Pale pink' ) );
|
|
308
|
+
|
|
309
|
+
// Dismiss the Block Settings modal.
|
|
310
|
+
fireEvent( blockSettingsModal, 'backdropPress' );
|
|
311
|
+
|
|
312
|
+
// Assert
|
|
313
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
314
|
+
} );
|
|
315
|
+
|
|
316
|
+
it( 'sets a background color', async () => {
|
|
317
|
+
// Arrange
|
|
318
|
+
const screen = await initializeEditor();
|
|
319
|
+
await addBlock( screen, 'Buttons' );
|
|
320
|
+
|
|
321
|
+
// Act
|
|
322
|
+
const buttonsBlock = getBlock( screen, 'Buttons' );
|
|
323
|
+
fireEvent.press( buttonsBlock );
|
|
324
|
+
|
|
325
|
+
// Trigger onLayout for the list
|
|
326
|
+
await triggerBlockListLayout( buttonsBlock );
|
|
327
|
+
|
|
328
|
+
const buttonBlock = await getBlock( screen, 'Button' );
|
|
329
|
+
fireEvent.press( buttonBlock );
|
|
330
|
+
|
|
331
|
+
// Open Block Settings.
|
|
332
|
+
fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
|
|
333
|
+
|
|
334
|
+
// Wait for Block Settings to be visible.
|
|
335
|
+
const blockSettingsModal = screen.getByTestId(
|
|
336
|
+
'block-settings-modal'
|
|
337
|
+
);
|
|
338
|
+
await waitFor( () => blockSettingsModal.props.isVisible );
|
|
339
|
+
|
|
340
|
+
// Open Text color settings
|
|
341
|
+
fireEvent.press( screen.getByLabelText( 'Background, Default' ) );
|
|
342
|
+
|
|
343
|
+
// Tap one color
|
|
344
|
+
fireEvent.press( screen.getByLabelText( 'Luminous vivid amber' ) );
|
|
345
|
+
|
|
346
|
+
// Dismiss the Block Settings modal.
|
|
347
|
+
fireEvent( blockSettingsModal, 'backdropPress' );
|
|
348
|
+
|
|
349
|
+
// Assert
|
|
350
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
351
|
+
} );
|
|
352
|
+
|
|
353
|
+
it( 'sets a gradient background color', async () => {
|
|
354
|
+
// Arrange
|
|
355
|
+
const screen = await initializeEditor();
|
|
356
|
+
await addBlock( screen, 'Buttons' );
|
|
357
|
+
|
|
358
|
+
// Act
|
|
359
|
+
const buttonsBlock = getBlock( screen, 'Buttons' );
|
|
360
|
+
fireEvent.press( buttonsBlock );
|
|
361
|
+
|
|
362
|
+
// Trigger onLayout for the list
|
|
363
|
+
await triggerBlockListLayout( buttonsBlock );
|
|
364
|
+
|
|
365
|
+
const buttonBlock = await getBlock( screen, 'Button' );
|
|
366
|
+
fireEvent.press( buttonBlock );
|
|
367
|
+
|
|
368
|
+
// Open Block Settings.
|
|
369
|
+
fireEvent.press( screen.getByLabelText( 'Open Settings' ) );
|
|
370
|
+
|
|
371
|
+
// Wait for Block Settings to be visible.
|
|
372
|
+
const blockSettingsModal = screen.getByTestId(
|
|
373
|
+
'block-settings-modal'
|
|
374
|
+
);
|
|
375
|
+
await waitFor( () => blockSettingsModal.props.isVisible );
|
|
376
|
+
|
|
377
|
+
// Open Text color settings
|
|
378
|
+
fireEvent.press( screen.getByLabelText( 'Background, Default' ) );
|
|
379
|
+
|
|
380
|
+
// Tap on the gradient segment
|
|
381
|
+
fireEvent.press( screen.getByLabelText( 'Gradient' ) );
|
|
382
|
+
|
|
383
|
+
// Tap one gradient color
|
|
384
|
+
fireEvent.press(
|
|
385
|
+
screen.getByLabelText( 'Light green cyan to vivid green cyan' )
|
|
386
|
+
);
|
|
387
|
+
|
|
388
|
+
// Dismiss the Block Settings modal.
|
|
389
|
+
fireEvent( blockSettingsModal, 'backdropPress' );
|
|
390
|
+
|
|
391
|
+
// Assert
|
|
392
|
+
expect( getEditorHtml() ).toMatchSnapshot();
|
|
393
|
+
} );
|
|
394
|
+
} );
|
|
274
395
|
} );
|
package/src/column/block.json
CHANGED
package/src/columns/block.json
CHANGED
package/src/columns/edit.js
CHANGED
|
@@ -60,13 +60,35 @@ function ColumnsEditContainer( {
|
|
|
60
60
|
} ) {
|
|
61
61
|
const { isStackedOnMobile, verticalAlignment, templateLock } = attributes;
|
|
62
62
|
|
|
63
|
-
const { count, canInsertColumnBlock } = useSelect(
|
|
63
|
+
const { count, canInsertColumnBlock, minCount } = useSelect(
|
|
64
64
|
( select ) => {
|
|
65
|
+
const {
|
|
66
|
+
canInsertBlockType,
|
|
67
|
+
canRemoveBlock,
|
|
68
|
+
getBlocks,
|
|
69
|
+
getBlockCount,
|
|
70
|
+
} = select( blockEditorStore );
|
|
71
|
+
const innerBlocks = getBlocks( clientId );
|
|
72
|
+
|
|
73
|
+
// Get the indexes of columns for which removal is prevented.
|
|
74
|
+
// The highest index will be used to determine the minimum column count.
|
|
75
|
+
const preventRemovalBlockIndexes = innerBlocks.reduce(
|
|
76
|
+
( acc, block, index ) => {
|
|
77
|
+
if ( ! canRemoveBlock( block.clientId ) ) {
|
|
78
|
+
acc.push( index );
|
|
79
|
+
}
|
|
80
|
+
return acc;
|
|
81
|
+
},
|
|
82
|
+
[]
|
|
83
|
+
);
|
|
84
|
+
|
|
65
85
|
return {
|
|
66
|
-
count:
|
|
67
|
-
canInsertColumnBlock:
|
|
68
|
-
|
|
69
|
-
|
|
86
|
+
count: getBlockCount( clientId ),
|
|
87
|
+
canInsertColumnBlock: canInsertBlockType(
|
|
88
|
+
'core/column',
|
|
89
|
+
clientId
|
|
90
|
+
),
|
|
91
|
+
minCount: Math.max( ...preventRemovalBlockIndexes ) + 1,
|
|
70
92
|
};
|
|
71
93
|
},
|
|
72
94
|
[ clientId ]
|
|
@@ -104,9 +126,12 @@ function ColumnsEditContainer( {
|
|
|
104
126
|
label={ __( 'Columns' ) }
|
|
105
127
|
value={ count }
|
|
106
128
|
onChange={ ( value ) =>
|
|
107
|
-
updateColumns(
|
|
129
|
+
updateColumns(
|
|
130
|
+
count,
|
|
131
|
+
Math.max( minCount, value )
|
|
132
|
+
)
|
|
108
133
|
}
|
|
109
|
-
min={ 1 }
|
|
134
|
+
min={ Math.max( 1, minCount ) }
|
|
110
135
|
max={ Math.max( 6, count ) }
|
|
111
136
|
/>
|
|
112
137
|
{ count > 6 && (
|
|
@@ -214,13 +239,12 @@ const ColumnsEditContainerWrapper = withDispatch(
|
|
|
214
239
|
return createBlock( 'core/column' );
|
|
215
240
|
} ),
|
|
216
241
|
];
|
|
217
|
-
} else {
|
|
242
|
+
} else if ( newColumns < previousColumns ) {
|
|
218
243
|
// The removed column will be the last of the inner blocks.
|
|
219
244
|
innerBlocks = innerBlocks.slice(
|
|
220
245
|
0,
|
|
221
246
|
-( previousColumns - newColumns )
|
|
222
247
|
);
|
|
223
|
-
|
|
224
248
|
if ( hasExplicitWidths ) {
|
|
225
249
|
// Redistribute as if block is already removed.
|
|
226
250
|
const widths = getRedistributedColumnWidths(
|
package/src/columns/style.scss
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
.wp-block-columns {
|
|
2
2
|
display: flex;
|
|
3
|
-
margin-bottom: 1.75em;
|
|
4
3
|
box-sizing: border-box;
|
|
5
4
|
|
|
6
5
|
// Responsiveness: Allow wrapping on mobile.
|
|
@@ -73,6 +72,11 @@
|
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
74
|
|
|
75
|
+
// Lower specificity of margin styles so they don't override the Layout block support.
|
|
76
|
+
:where(.wp-block-columns) {
|
|
77
|
+
margin-bottom: 1.75em;
|
|
78
|
+
}
|
|
79
|
+
|
|
76
80
|
// Add low specificity default padding to columns blocks with backgrounds.
|
|
77
81
|
:where(.wp-block-columns.has-background) {
|
|
78
82
|
// Matches paragraph block padding.
|
package/src/columns/utils.js
CHANGED
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* External dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { mapValues } from 'lodash';
|
|
5
|
-
|
|
6
1
|
/**
|
|
7
2
|
* Returns a column width attribute value rounded to standard precision.
|
|
8
3
|
* Returns `undefined` if the value is not a valid finite number.
|
|
@@ -86,10 +81,14 @@ export function getRedistributedColumnWidths(
|
|
|
86
81
|
) {
|
|
87
82
|
const totalWidth = getTotalColumnsWidth( blocks, totalBlockCount );
|
|
88
83
|
|
|
89
|
-
return
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
84
|
+
return Object.fromEntries(
|
|
85
|
+
Object.entries( getColumnWidths( blocks, totalBlockCount ) ).map(
|
|
86
|
+
( [ clientId, width ] ) => {
|
|
87
|
+
const newWidth = ( availableWidth * width ) / totalWidth;
|
|
88
|
+
return [ clientId, toWidthPrecision( newWidth ) ];
|
|
89
|
+
}
|
|
90
|
+
)
|
|
91
|
+
);
|
|
93
92
|
}
|
|
94
93
|
|
|
95
94
|
/**
|
package/src/common.scss
CHANGED
package/src/cover/block.json
CHANGED
|
@@ -94,6 +94,18 @@
|
|
|
94
94
|
"blockGap": true
|
|
95
95
|
}
|
|
96
96
|
},
|
|
97
|
+
"__experimentalBorder": {
|
|
98
|
+
"color": true,
|
|
99
|
+
"radius": true,
|
|
100
|
+
"style": true,
|
|
101
|
+
"width": true,
|
|
102
|
+
"__experimentalDefaultControls": {
|
|
103
|
+
"color": true,
|
|
104
|
+
"radius": true,
|
|
105
|
+
"style": true,
|
|
106
|
+
"width": true
|
|
107
|
+
}
|
|
108
|
+
},
|
|
97
109
|
"color": {
|
|
98
110
|
"__experimentalDuotone": "> .wp-block-cover__image-background, > .wp-block-cover__video-background",
|
|
99
111
|
"text": true,
|
package/src/cover/edit/index.js
CHANGED
|
@@ -9,9 +9,9 @@ import namesPlugin from 'colord/plugins/names';
|
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
import { useEntityProp, store as coreStore } from '@wordpress/core-data';
|
|
12
|
-
import { useEffect, useRef } from '@wordpress/element';
|
|
12
|
+
import { useEffect, useMemo, useRef } from '@wordpress/element';
|
|
13
13
|
import { Placeholder, Spinner } from '@wordpress/components';
|
|
14
|
-
import { compose } from '@wordpress/compose';
|
|
14
|
+
import { compose, useResizeObserver } from '@wordpress/compose';
|
|
15
15
|
import {
|
|
16
16
|
withColors,
|
|
17
17
|
ColorPalette,
|
|
@@ -42,7 +42,7 @@ import useCoverIsDark from './use-cover-is-dark';
|
|
|
42
42
|
import CoverInspectorControls from './inspector-controls';
|
|
43
43
|
import CoverBlockControls from './block-controls';
|
|
44
44
|
import CoverPlaceholder from './cover-placeholder';
|
|
45
|
-
import
|
|
45
|
+
import ResizableCoverPopover from './resizable-cover-popover';
|
|
46
46
|
|
|
47
47
|
extend( [ namesPlugin ] );
|
|
48
48
|
|
|
@@ -146,6 +146,14 @@ function CoverEdit( {
|
|
|
146
146
|
const isImageBackground = IMAGE_BACKGROUND_TYPE === backgroundType;
|
|
147
147
|
const isVideoBackground = VIDEO_BACKGROUND_TYPE === backgroundType;
|
|
148
148
|
|
|
149
|
+
const [ resizeListener, { height, width } ] = useResizeObserver();
|
|
150
|
+
const resizableBoxDimensions = useMemo( () => {
|
|
151
|
+
return {
|
|
152
|
+
height: minHeightUnit === 'px' ? minHeight : 'auto',
|
|
153
|
+
width: 'auto',
|
|
154
|
+
};
|
|
155
|
+
}, [ minHeight, minHeightUnit ] );
|
|
156
|
+
|
|
149
157
|
const minHeightWithUnit =
|
|
150
158
|
minHeight && minHeightUnit
|
|
151
159
|
? `${ minHeight }${ minHeightUnit }`
|
|
@@ -246,24 +254,50 @@ function CoverEdit( {
|
|
|
246
254
|
/>
|
|
247
255
|
);
|
|
248
256
|
|
|
257
|
+
const resizableCoverProps = {
|
|
258
|
+
className: 'block-library-cover__resize-container',
|
|
259
|
+
clientId,
|
|
260
|
+
height,
|
|
261
|
+
minHeight: minHeightWithUnit,
|
|
262
|
+
onResizeStart: () => {
|
|
263
|
+
setAttributes( { minHeightUnit: 'px' } );
|
|
264
|
+
toggleSelection( false );
|
|
265
|
+
},
|
|
266
|
+
onResize: ( value ) => {
|
|
267
|
+
setAttributes( { minHeight: value } );
|
|
268
|
+
},
|
|
269
|
+
onResizeStop: ( newMinHeight ) => {
|
|
270
|
+
toggleSelection( true );
|
|
271
|
+
setAttributes( { minHeight: newMinHeight } );
|
|
272
|
+
},
|
|
273
|
+
showHandle: true,
|
|
274
|
+
size: resizableBoxDimensions,
|
|
275
|
+
width,
|
|
276
|
+
};
|
|
277
|
+
|
|
249
278
|
if ( ! useFeaturedImage && ! hasInnerBlocks && ! hasBackground ) {
|
|
250
279
|
return (
|
|
251
280
|
<>
|
|
252
281
|
{ blockControls }
|
|
253
282
|
{ inspectorControls }
|
|
283
|
+
{ isSelected && (
|
|
284
|
+
<ResizableCoverPopover { ...resizableCoverProps } />
|
|
285
|
+
) }
|
|
254
286
|
<TagName
|
|
255
287
|
{ ...blockProps }
|
|
256
288
|
className={ classnames(
|
|
257
289
|
'is-placeholder',
|
|
258
290
|
blockProps.className
|
|
259
291
|
) }
|
|
292
|
+
style={ {
|
|
293
|
+
...blockProps.style,
|
|
294
|
+
minHeight: minHeightWithUnit || undefined,
|
|
295
|
+
} }
|
|
260
296
|
>
|
|
297
|
+
{ resizeListener }
|
|
261
298
|
<CoverPlaceholder
|
|
262
299
|
onSelectMedia={ onSelectMedia }
|
|
263
300
|
onError={ onUploadError }
|
|
264
|
-
style={ {
|
|
265
|
-
minHeight: minHeightWithUnit || undefined,
|
|
266
|
-
} }
|
|
267
301
|
toggleUseFeaturedImage={ toggleUseFeaturedImage }
|
|
268
302
|
>
|
|
269
303
|
<div className="wp-block-cover__placeholder-background-options">
|
|
@@ -275,21 +309,6 @@ function CoverEdit( {
|
|
|
275
309
|
/>
|
|
276
310
|
</div>
|
|
277
311
|
</CoverPlaceholder>
|
|
278
|
-
<ResizableCover
|
|
279
|
-
className="block-library-cover__resize-container"
|
|
280
|
-
onResizeStart={ () => {
|
|
281
|
-
setAttributes( { minHeightUnit: 'px' } );
|
|
282
|
-
toggleSelection( false );
|
|
283
|
-
} }
|
|
284
|
-
onResize={ ( value ) => {
|
|
285
|
-
setAttributes( { minHeight: value } );
|
|
286
|
-
} }
|
|
287
|
-
onResizeStop={ ( newMinHeight ) => {
|
|
288
|
-
toggleSelection( true );
|
|
289
|
-
setAttributes( { minHeight: newMinHeight } );
|
|
290
|
-
} }
|
|
291
|
-
showHandle={ isSelected }
|
|
292
|
-
/>
|
|
293
312
|
</TagName>
|
|
294
313
|
</>
|
|
295
314
|
);
|
|
@@ -318,22 +337,7 @@ function CoverEdit( {
|
|
|
318
337
|
style={ { ...style, ...blockProps.style } }
|
|
319
338
|
data-url={ url }
|
|
320
339
|
>
|
|
321
|
-
|
|
322
|
-
className="block-library-cover__resize-container"
|
|
323
|
-
onResizeStart={ () => {
|
|
324
|
-
setAttributes( { minHeightUnit: 'px' } );
|
|
325
|
-
toggleSelection( false );
|
|
326
|
-
} }
|
|
327
|
-
onResize={ ( value ) => {
|
|
328
|
-
setAttributes( { minHeight: value } );
|
|
329
|
-
} }
|
|
330
|
-
onResizeStop={ ( newMinHeight ) => {
|
|
331
|
-
toggleSelection( true );
|
|
332
|
-
setAttributes( { minHeight: newMinHeight } );
|
|
333
|
-
} }
|
|
334
|
-
showHandle={ isSelected }
|
|
335
|
-
/>
|
|
336
|
-
|
|
340
|
+
{ resizeListener }
|
|
337
341
|
{ ( ! useFeaturedImage || url ) && (
|
|
338
342
|
<span
|
|
339
343
|
aria-hidden="true"
|
|
@@ -404,6 +408,9 @@ function CoverEdit( {
|
|
|
404
408
|
/>
|
|
405
409
|
<div { ...innerBlocksProps } />
|
|
406
410
|
</TagName>
|
|
411
|
+
{ isSelected && (
|
|
412
|
+
<ResizableCoverPopover { ...resizableCoverProps } />
|
|
413
|
+
) }
|
|
407
414
|
</>
|
|
408
415
|
);
|
|
409
416
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* External dependencies
|
|
3
|
+
*/
|
|
4
|
+
import classnames from 'classnames';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* WordPress dependencies
|
|
8
|
+
*/
|
|
9
|
+
import { useMemo, useState } from '@wordpress/element';
|
|
10
|
+
import { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Internal dependencies
|
|
14
|
+
*/
|
|
15
|
+
import { unlock } from '../../private-apis';
|
|
16
|
+
|
|
17
|
+
const RESIZABLE_BOX_ENABLE_OPTION = {
|
|
18
|
+
top: false,
|
|
19
|
+
right: false,
|
|
20
|
+
bottom: true,
|
|
21
|
+
left: false,
|
|
22
|
+
topRight: false,
|
|
23
|
+
bottomRight: false,
|
|
24
|
+
bottomLeft: false,
|
|
25
|
+
topLeft: false,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export default function ResizableCoverPopover( {
|
|
29
|
+
className,
|
|
30
|
+
height,
|
|
31
|
+
minHeight,
|
|
32
|
+
onResize,
|
|
33
|
+
onResizeStart,
|
|
34
|
+
onResizeStop,
|
|
35
|
+
showHandle,
|
|
36
|
+
size,
|
|
37
|
+
width,
|
|
38
|
+
...props
|
|
39
|
+
} ) {
|
|
40
|
+
const { ResizableBoxPopover } = unlock( blockEditorPrivateApis );
|
|
41
|
+
const [ isResizing, setIsResizing ] = useState( false );
|
|
42
|
+
const dimensions = useMemo(
|
|
43
|
+
() => ( { height, minHeight, width } ),
|
|
44
|
+
[ minHeight, height, width ]
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
const resizableBoxProps = {
|
|
48
|
+
className: classnames( className, { 'is-resizing': isResizing } ),
|
|
49
|
+
enable: RESIZABLE_BOX_ENABLE_OPTION,
|
|
50
|
+
onResizeStart: ( _event, _direction, elt ) => {
|
|
51
|
+
onResizeStart( elt.clientHeight );
|
|
52
|
+
onResize( elt.clientHeight );
|
|
53
|
+
},
|
|
54
|
+
onResize: ( _event, _direction, elt ) => {
|
|
55
|
+
onResize( elt.clientHeight );
|
|
56
|
+
if ( ! isResizing ) {
|
|
57
|
+
setIsResizing( true );
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
onResizeStop: ( _event, _direction, elt ) => {
|
|
61
|
+
onResizeStop( elt.clientHeight );
|
|
62
|
+
setIsResizing( false );
|
|
63
|
+
},
|
|
64
|
+
showHandle,
|
|
65
|
+
size,
|
|
66
|
+
__experimentalShowTooltip: true,
|
|
67
|
+
__experimentalTooltipProps: {
|
|
68
|
+
axis: 'y',
|
|
69
|
+
position: 'bottom',
|
|
70
|
+
isVisible: isResizing,
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
return (
|
|
75
|
+
<ResizableBoxPopover
|
|
76
|
+
className="block-library-cover__resizable-box-popover"
|
|
77
|
+
__unstableRefreshSize={ dimensions }
|
|
78
|
+
resizableBoxProps={ resizableBoxProps }
|
|
79
|
+
{ ...props }
|
|
80
|
+
/>
|
|
81
|
+
);
|
|
82
|
+
}
|