@wordpress/block-library 10.5.2-next.v.202608281122.0 → 11.0.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 +19 -1
- package/build/audio/edit.cjs +5 -5
- package/build/audio/edit.cjs.map +2 -2
- package/build/audio/index.cjs +0 -37
- package/build/audio/index.cjs.map +3 -3
- package/build/button/index.cjs +0 -34
- package/build/button/index.cjs.map +3 -3
- package/build/code/index.cjs +0 -17
- package/build/code/index.cjs.map +3 -3
- package/build/comment-template/edit.cjs.map +1 -1
- package/build/cover/index.cjs +0 -38
- package/build/cover/index.cjs.map +3 -3
- package/build/details/index.cjs +0 -17
- package/build/details/index.cjs.map +3 -3
- package/build/file/index.cjs +0 -43
- package/build/file/index.cjs.map +3 -3
- package/build/footnotes/format.cjs +1 -1
- package/build/footnotes/format.cjs.map +2 -2
- package/build/gallery/dynamic-gallery.cjs +22 -12
- package/build/gallery/dynamic-gallery.cjs.map +2 -2
- package/build/heading/index.cjs +0 -16
- package/build/heading/index.cjs.map +3 -3
- package/build/image/image.cjs +7 -5
- package/build/image/image.cjs.map +2 -2
- package/build/image/index.cjs +0 -81
- package/build/image/index.cjs.map +3 -3
- package/build/image/use-open-image-media-editor-modal.cjs +81 -14
- package/build/image/use-open-image-media-editor-modal.cjs.map +2 -2
- package/build/index.cjs +0 -10
- package/build/index.cjs.map +2 -2
- package/build/latest-posts/edit.cjs.map +1 -1
- package/build/list-item/edit.cjs +14 -11
- package/build/list-item/edit.cjs.map +2 -2
- package/build/list-item/hooks/index.cjs +6 -9
- package/build/list-item/hooks/index.cjs.map +2 -2
- package/build/list-item/hooks/use-enter.cjs +62 -67
- package/build/list-item/hooks/use-enter.cjs.map +3 -3
- package/build/list-item/hooks/use-merge.cjs +26 -44
- package/build/list-item/hooks/use-merge.cjs.map +3 -3
- package/build/list-item/hooks/use-multi-select-tab.cjs +80 -0
- package/build/list-item/hooks/use-multi-select-tab.cjs.map +7 -0
- package/build/list-item/hooks/use-tab.cjs +65 -0
- package/build/list-item/hooks/use-tab.cjs.map +7 -0
- package/build/list-item/index.cjs +0 -17
- package/build/list-item/index.cjs.map +3 -3
- package/build/list-item/utils.cjs +169 -0
- package/build/list-item/utils.cjs.map +7 -0
- package/build/math/block.json +3 -0
- package/build/media-text/index.cjs +0 -50
- package/build/media-text/index.cjs.map +3 -3
- package/build/media-text/media-container.cjs +16 -11
- package/build/media-text/media-container.cjs.map +2 -2
- package/build/more/index.cjs +0 -18
- package/build/more/index.cjs.map +3 -3
- package/build/navigation/constants.cjs +1 -1
- package/build/navigation/constants.cjs.map +1 -1
- package/build/navigation-link/block.json +1 -1
- package/build/navigation-link/deprecated.cjs +69 -0
- package/build/navigation-link/deprecated.cjs.map +7 -0
- package/build/navigation-link/index.cjs +6 -74
- package/build/navigation-link/index.cjs.map +4 -4
- package/build/{form-submit-button/init.cjs → navigation-link/variations.cjs} +23 -8
- package/build/navigation-link/variations.cjs.map +7 -0
- package/build/navigation-submenu/index.cjs +0 -32
- package/build/navigation-submenu/index.cjs.map +3 -3
- package/build/paragraph/index.cjs +0 -17
- package/build/paragraph/index.cjs.map +3 -3
- package/build/paragraph/use-enter.cjs +8 -4
- package/build/paragraph/use-enter.cjs.map +2 -2
- package/build/post-template/edit.cjs +3 -1
- package/build/post-template/edit.cjs.map +2 -2
- package/build/preformatted/index.cjs +0 -17
- package/build/preformatted/index.cjs.map +3 -3
- package/build/pullquote/index.cjs +0 -24
- package/build/pullquote/index.cjs.map +3 -3
- package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs +13 -5
- package/build/query/edit/inspector-controls/enhanced-pagination-control.cjs.map +2 -2
- package/build/query/edit/inspector-controls/index.cjs +9 -4
- package/build/query/edit/inspector-controls/index.cjs.map +2 -2
- package/build/query/edit/query-content.cjs +30 -9
- package/build/query/edit/query-content.cjs.map +3 -3
- package/build/query/utils.cjs +11 -4
- package/build/query/utils.cjs.map +2 -2
- package/build/search/edit.cjs +3 -1
- package/build/search/edit.cjs.map +2 -2
- package/build/search/index.cjs +0 -31
- package/build/search/index.cjs.map +3 -3
- package/build/site-tagline/edit.cjs +11 -17
- package/build/site-tagline/edit.cjs.map +2 -2
- package/build/site-title/edit.cjs +12 -18
- package/build/site-title/edit.cjs.map +2 -2
- package/build/social-link/index.cjs +0 -31
- package/build/social-link/index.cjs.map +3 -3
- package/build/verse/index.cjs +0 -17
- package/build/verse/index.cjs.map +3 -3
- package/build/video/index.cjs +0 -40
- package/build/video/index.cjs.map +3 -3
- package/build/video/tracks-editor.cjs +2 -3
- package/build/video/tracks-editor.cjs.map +3 -3
- package/build-module/audio/edit.mjs +5 -5
- package/build-module/audio/edit.mjs.map +2 -2
- package/build-module/audio/index.mjs +0 -37
- package/build-module/audio/index.mjs.map +2 -2
- package/build-module/button/index.mjs +0 -34
- package/build-module/button/index.mjs.map +2 -2
- package/build-module/code/index.mjs +0 -17
- package/build-module/code/index.mjs.map +2 -2
- package/build-module/comment-template/edit.mjs.map +1 -1
- package/build-module/cover/index.mjs +0 -38
- package/build-module/cover/index.mjs.map +2 -2
- package/build-module/details/index.mjs +0 -17
- package/build-module/details/index.mjs.map +2 -2
- package/build-module/file/index.mjs +1 -44
- package/build-module/file/index.mjs.map +2 -2
- package/build-module/footnotes/format.mjs +1 -1
- package/build-module/footnotes/format.mjs.map +2 -2
- package/build-module/gallery/dynamic-gallery.mjs +23 -13
- package/build-module/gallery/dynamic-gallery.mjs.map +2 -2
- package/build-module/heading/index.mjs +1 -21
- package/build-module/heading/index.mjs.map +2 -2
- package/build-module/image/image.mjs +7 -5
- package/build-module/image/image.mjs.map +2 -2
- package/build-module/image/index.mjs +0 -81
- package/build-module/image/index.mjs.map +2 -2
- package/build-module/image/use-open-image-media-editor-modal.mjs +84 -14
- package/build-module/image/use-open-image-media-editor-modal.mjs.map +2 -2
- package/build-module/index.mjs +0 -10
- package/build-module/index.mjs.map +2 -2
- package/build-module/latest-posts/edit.mjs.map +1 -1
- package/build-module/list-item/edit.mjs +20 -18
- package/build-module/list-item/edit.mjs.map +2 -2
- package/build-module/list-item/hooks/index.mjs +8 -10
- package/build-module/list-item/hooks/index.mjs.map +2 -2
- package/build-module/list-item/hooks/use-enter.mjs +63 -58
- package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
- package/build-module/list-item/hooks/use-merge.mjs +27 -35
- package/build-module/list-item/hooks/use-merge.mjs.map +2 -2
- package/build-module/list-item/hooks/use-multi-select-tab.mjs +59 -0
- package/build-module/list-item/hooks/use-multi-select-tab.mjs.map +7 -0
- package/build-module/list-item/hooks/use-tab.mjs +44 -0
- package/build-module/list-item/hooks/use-tab.mjs.map +7 -0
- package/build-module/list-item/index.mjs +0 -17
- package/build-module/list-item/index.mjs.map +2 -2
- package/build-module/list-item/utils.mjs +140 -0
- package/build-module/list-item/utils.mjs.map +7 -0
- package/build-module/math/block.json +3 -0
- package/build-module/media-text/index.mjs +0 -50
- package/build-module/media-text/index.mjs.map +2 -2
- package/build-module/media-text/media-container.mjs +17 -12
- package/build-module/media-text/media-container.mjs.map +2 -2
- package/build-module/more/index.mjs +0 -18
- package/build-module/more/index.mjs.map +2 -2
- package/build-module/navigation/constants.mjs +1 -1
- package/build-module/navigation/constants.mjs.map +1 -1
- package/build-module/navigation-link/block.json +1 -1
- package/build-module/navigation-link/deprecated.mjs +48 -0
- package/build-module/navigation-link/deprecated.mjs.map +7 -0
- package/build-module/navigation-link/index.mjs +7 -75
- package/build-module/navigation-link/index.mjs.map +3 -3
- package/build-module/navigation-link/variations.mjs +22 -0
- package/build-module/navigation-link/variations.mjs.map +7 -0
- package/build-module/navigation-submenu/index.mjs +1 -33
- package/build-module/navigation-submenu/index.mjs.map +2 -2
- package/build-module/paragraph/index.mjs +0 -17
- package/build-module/paragraph/index.mjs.map +2 -2
- package/build-module/paragraph/use-enter.mjs +8 -4
- package/build-module/paragraph/use-enter.mjs.map +2 -2
- package/build-module/post-template/edit.mjs +3 -1
- package/build-module/post-template/edit.mjs.map +2 -2
- package/build-module/preformatted/index.mjs +0 -17
- package/build-module/preformatted/index.mjs.map +2 -2
- package/build-module/pullquote/index.mjs +0 -24
- package/build-module/pullquote/index.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs +14 -6
- package/build-module/query/edit/inspector-controls/enhanced-pagination-control.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/index.mjs +9 -4
- package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
- package/build-module/query/edit/query-content.mjs +32 -11
- package/build-module/query/edit/query-content.mjs.map +2 -2
- package/build-module/query/utils.mjs +10 -7
- package/build-module/query/utils.mjs.map +2 -2
- package/build-module/search/edit.mjs +4 -2
- package/build-module/search/edit.mjs.map +2 -2
- package/build-module/search/index.mjs +0 -31
- package/build-module/search/index.mjs.map +2 -2
- package/build-module/site-tagline/edit.mjs +13 -19
- package/build-module/site-tagline/edit.mjs.map +2 -2
- package/build-module/site-title/edit.mjs +14 -20
- package/build-module/site-title/edit.mjs.map +2 -2
- package/build-module/social-link/index.mjs +0 -31
- package/build-module/social-link/index.mjs.map +2 -2
- package/build-module/verse/index.mjs +0 -17
- package/build-module/verse/index.mjs.map +2 -2
- package/build-module/video/index.mjs +0 -40
- package/build-module/video/index.mjs.map +2 -2
- package/build-module/video/tracks-editor.mjs +3 -5
- package/build-module/video/tracks-editor.mjs.map +2 -2
- package/build-style/columns/style-rtl.css +1 -1
- package/build-style/columns/style.css +1 -1
- package/build-style/comment-template/style-rtl.css +0 -1
- package/build-style/comment-template/style.css +0 -1
- package/build-style/cover/style-rtl.css +1 -2
- package/build-style/cover/style.css +1 -2
- package/build-style/editor-rtl.css +20 -81
- package/build-style/editor.css +20 -81
- package/build-style/gallery/style-rtl.css +2 -4
- package/build-style/gallery/style.css +2 -4
- package/build-style/group/theme-rtl.css +1 -1
- package/build-style/group/theme.css +1 -1
- package/build-style/heading/style-rtl.css +1 -1
- package/build-style/heading/style.css +1 -1
- package/build-style/icon/style-rtl.css +3 -0
- package/build-style/icon/style.css +3 -0
- package/build-style/image/editor-rtl.css +0 -1
- package/build-style/image/editor.css +0 -1
- package/build-style/list/style-rtl.css +1 -1
- package/build-style/list/style.css +1 -1
- package/build-style/media-text/style-rtl.css +2 -3
- package/build-style/media-text/style.css +2 -3
- package/build-style/navigation/editor-rtl.css +8 -0
- package/build-style/navigation/editor.css +8 -0
- package/build-style/paragraph/style-rtl.css +1 -1
- package/build-style/paragraph/style.css +1 -1
- package/build-style/playlist/style-rtl.css +1 -2
- package/build-style/playlist/style.css +1 -2
- package/build-style/playlist-track/style-rtl.css +1 -2
- package/build-style/playlist-track/style.css +1 -2
- package/build-style/preformatted/style-rtl.css +1 -1
- package/build-style/preformatted/style.css +1 -1
- package/build-style/query/editor-rtl.css +5 -15
- package/build-style/query/editor.css +5 -15
- package/build-style/read-more/style-rtl.css +0 -1
- package/build-style/read-more/style.css +0 -1
- package/build-style/reset-rtl.css +1 -3
- package/build-style/reset.css +1 -3
- package/build-style/search/style-rtl.css +1 -3
- package/build-style/search/style.css +1 -3
- package/build-style/site-logo/editor-rtl.css +1 -2
- package/build-style/site-logo/editor.css +1 -2
- package/build-style/style-rtl.css +18 -77
- package/build-style/style.css +18 -77
- package/build-style/tab-list/style-rtl.css +1 -3
- package/build-style/tab-list/style.css +1 -3
- package/build-style/template-part/editor-rtl.css +4 -8
- package/build-style/template-part/editor.css +4 -8
- package/build-style/template-part/theme-rtl.css +1 -1
- package/build-style/template-part/theme.css +1 -1
- package/build-style/theme-rtl.css +2 -2
- package/build-style/theme.css +2 -2
- package/build-style/video/style-rtl.css +1 -2
- package/build-style/video/style.css +1 -2
- package/build-types/navigation-link/deprecated.d.ts +48 -0
- package/build-types/navigation-link/deprecated.d.ts.map +1 -0
- package/package.json +43 -43
- package/src/accordion/index.php +2 -2
- package/src/accordion-item/index.php +1 -1
- package/src/audio/edit.jsx +6 -7
- package/src/audio/index.js +0 -37
- package/src/breadcrumbs/index.php +4 -4
- package/src/button/index.js +0 -34
- package/src/button/style.scss +16 -15
- package/src/button/test/{get-experimental-label.js → get-experimental-label.jsdom.test.js} +1 -0
- package/src/button/test/get-updated-link-attributes.js +1 -0
- package/src/button/test/utils.js +1 -0
- package/src/categories/index.php +4 -0
- package/src/code/index.js +0 -18
- package/src/code/test/utils.js +1 -0
- package/src/columns/style.scss +2 -1
- package/src/columns/test/{transforms.js → transforms.jsdom.test.js} +1 -0
- package/src/columns/test/utils.js +1 -0
- package/src/comment-template/edit.jsx +1 -1
- package/src/comment-template/index.php +2 -2
- package/src/comment-template/test/index.js +1 -0
- package/src/common.scss +51 -50
- package/src/cover/README.md +37 -0
- package/src/cover/index.js +0 -39
- package/src/cover/style.scss +3 -3
- package/src/cover/test/{edit.js → edit.jsdom.test.js} +18 -17
- package/src/cover/test/{transforms.js → transforms.jsdom.test.js} +1 -0
- package/src/details/index.js +0 -18
- package/src/editor.scss +0 -2
- package/src/embed/editor.scss +1 -0
- package/src/embed/test/{index.js → index.jsdom.test.js} +5 -1
- package/src/file/index.js +1 -43
- package/src/footnotes/format.jsx +5 -1
- package/src/gallery/dynamic-gallery.jsx +31 -4
- package/src/gallery/test/dynamic-source.js +1 -0
- package/src/gallery/test/{edit.js → edit.jsdom.test.js} +4 -0
- package/src/gallery/test/responsive-styles.js +1 -0
- package/src/gallery/test/shared.js +1 -0
- package/src/gallery/test/{transforms.js → transforms.jsdom.test.js} +1 -0
- package/src/gallery/test/{use-get-new-images.jsx → use-get-new-images.jsdom.test.jsx} +1 -0
- package/src/gallery/test/variations.js +1 -0
- package/src/group/test/{placeholder.jsx → placeholder.jsdom.test.jsx} +1 -0
- package/src/group/theme.scss +1 -1
- package/src/heading/index.js +1 -22
- package/src/heading/index.php +1 -1
- package/src/heading/style.scss +1 -1
- package/src/heading/test/shared.js +1 -0
- package/src/home-link/index.php +2 -2
- package/src/html/test/{index.js → index.jsdom.test.js} +9 -0
- package/src/html/test/{utils.js → utils.jsdom.test.js} +1 -0
- package/src/icon/index.php +18 -6
- package/src/icon/style.scss +7 -0
- package/src/image/image.jsx +18 -11
- package/src/image/index.js +0 -80
- package/src/image/test/{transforms.js → transforms.jsdom.test.js} +1 -0
- package/src/image/test/{use-open-image-media-editor-modal.js → use-open-image-media-editor-modal.jsdom.test.js} +343 -28
- package/src/image/use-open-image-media-editor-modal.js +184 -21
- package/src/index.jsx +0 -11
- package/src/latest-posts/edit.jsx +1 -1
- package/src/latest-posts/test/{deprecated.js → deprecated.jsdom.test.js} +1 -0
- package/src/list/index.php +1 -1
- package/src/list/style.scss +1 -1
- package/src/list-item/edit.jsx +20 -20
- package/src/list-item/hooks/index.js +2 -3
- package/src/list-item/hooks/use-enter.js +82 -70
- package/src/list-item/hooks/use-merge.js +28 -36
- package/src/list-item/hooks/use-multi-select-tab.js +83 -0
- package/src/list-item/hooks/use-tab.js +62 -0
- package/src/list-item/index.js +0 -18
- package/src/list-item/utils.js +236 -0
- package/src/math/README.md +2 -0
- package/src/math/block.json +3 -0
- package/src/media-text/index.js +0 -50
- package/src/media-text/media-container.jsx +22 -12
- package/src/media-text/style.scss +2 -1
- package/src/media-text/test/image-fill.js +1 -0
- package/src/more/index.js +0 -19
- package/src/navigation/constants.js +1 -1
- package/src/navigation/edit/test/are-blocks-dirty.js +1 -0
- package/src/navigation/edit/test/{layout-custom-properties.js → layout-custom-properties.jsdom.test.js} +8 -7
- package/src/navigation/edit/test/{navigation-menu-selector.jsx → navigation-menu-selector.jsdom.test.jsx} +23 -14
- package/src/navigation/edit/test/{overlay-template-part-selector.jsx → overlay-template-part-selector.jsdom.test.jsx} +22 -20
- package/src/navigation/edit/test/{responsive-wrapper.jsx → responsive-wrapper.jsdom.test.jsx} +14 -13
- package/src/navigation/edit/test/{use-create-overlay.js → use-create-overlay.jsdom.test.js} +19 -24
- package/src/navigation/edit/test/utils.js +1 -0
- package/src/navigation/editor.scss +13 -0
- package/src/navigation/index.php +14 -14
- package/src/navigation/test/{menu-items-to-blocks.js → menu-items-to-blocks.jsdom.test.js} +3 -2
- package/src/navigation/test/{use-navigation-menu.js → use-navigation-menu.jsdom.test.js} +7 -4
- package/src/navigation/test/{view.js → view.jsdom.test.js} +4 -2
- package/src/navigation-link/block.json +1 -1
- package/src/navigation-link/deprecated.tsx +58 -0
- package/src/navigation-link/{index.jsx → index.js} +5 -77
- package/src/navigation-link/index.php +5 -5
- package/src/navigation-link/shared/test/{controls.jsx → controls.jsdom.test.jsx} +18 -18
- package/src/navigation-link/shared/test/update-attributes.test.js +52 -51
- package/src/navigation-link/shared/test/{use-enable-link-status-validation.test.js → use-enable-link-status-validation.jsdom.test.js} +8 -6
- package/src/navigation-link/shared/test/{use-entity-binding.js → use-entity-binding.jsdom.test.js} +12 -11
- package/src/navigation-link/shared/test/{use-handle-link-change.test.js → use-handle-link-change.jsdom.test.js} +23 -20
- package/src/navigation-link/shared/test/{use-link-preview.test.js → use-link-preview.jsdom.test.js} +17 -14
- package/src/navigation-link/test/__snapshots__/{hooks.js.snap → hooks.jsdom.test.js.snap} +23 -6
- package/src/navigation-link/test/block-labelling.js +1 -0
- package/src/navigation-link/test/{hooks.js → hooks.jsdom.test.js} +1 -0
- package/src/navigation-link/variations.js +19 -0
- package/src/navigation-submenu/index.js +1 -33
- package/src/page-list/index.php +10 -10
- package/src/page-list/test/{convert-to-navigation-links.js → convert-to-navigation-links.jsdom.test.js} +3 -2
- package/src/paragraph/index.js +0 -18
- package/src/paragraph/style.scss +1 -1
- package/src/paragraph/use-enter.js +13 -6
- package/src/pattern/test/index.js +1 -0
- package/src/playlist/test/{edit-component.jsx → edit-component.jsdom.test.jsx} +31 -30
- package/src/playlist/test/{edit.js → edit.jsdom.test.js} +1 -0
- package/src/playlist/test/{transforms.js → transforms.jsdom.test.js} +1 -0
- package/src/playlist-track/test/{edit.jsx → edit.jsdom.test.jsx} +20 -19
- package/src/post-author/index.php +3 -3
- package/src/post-author-biography/index.php +3 -3
- package/src/post-author-name/index.php +3 -3
- package/src/post-comments-link/index.php +4 -4
- package/src/post-date/test/{edit.js → edit.jsdom.test.js} +1 -0
- package/src/post-template/edit.jsx +3 -1
- package/src/post-time-to-read/index.php +3 -3
- package/src/post-title/style.scss +1 -0
- package/src/preformatted/index.js +0 -18
- package/src/preformatted/style.scss +1 -1
- package/src/pullquote/index.js +0 -24
- package/src/query/edit/inspector-controls/enhanced-pagination-control.jsx +13 -6
- package/src/query/edit/inspector-controls/index.jsx +9 -4
- package/src/query/edit/query-content.jsx +31 -8
- package/src/query/editor.scss +1 -7
- package/src/query/index.php +2 -2
- package/src/query/test/{utils.js → utils.jsdom.test.js} +1 -0
- package/src/query/utils.js +15 -11
- package/src/quote/test/{migrate.js → migrate.jsdom.test.js} +1 -0
- package/src/read-more/index.php +1 -1
- package/src/search/edit.jsx +12 -2
- package/src/search/index.js +0 -30
- package/src/search/index.php +1 -1
- package/src/separator/test/{edit.jsx → edit.jsdom.test.jsx} +5 -4
- package/src/site-logo/index.php +1 -1
- package/src/site-tagline/edit.jsx +18 -27
- package/src/site-title/edit.jsx +20 -27
- package/src/social-link/index.js +0 -32
- package/src/social-link/index.php +0 -1
- package/src/style.scss +0 -1
- package/src/table/editor.scss +1 -0
- package/src/table/style.scss +2 -0
- package/src/table/test/state.js +1 -0
- package/src/table/test/utils.js +1 -0
- package/src/table-of-contents/index.php +3 -3
- package/src/template-part/theme.scss +1 -1
- package/src/utils/test/search-patterns.js +1 -0
- package/src/utils/test/{style-state.js → style-state.jsdom.test.js} +1 -0
- package/src/utils/test/{waveform-player-dependency.js → waveform-player-dependency.jsdom.test.js} +15 -21
- package/src/verse/index.js +0 -18
- package/src/verse/style.scss +1 -0
- package/src/video/index.js +0 -40
- package/src/video/test/variations.js +1 -0
- package/src/video/tracks-editor.jsx +4 -5
- package/build/form/block.json +0 -65
- package/build/form/deprecated.cjs +0 -111
- package/build/form/deprecated.cjs.map +0 -7
- package/build/form/edit.cjs +0 -180
- package/build/form/edit.cjs.map +0 -7
- package/build/form/icons.cjs +0 -33
- package/build/form/icons.cjs.map +0 -7
- package/build/form/index.cjs +0 -118
- package/build/form/index.cjs.map +0 -7
- package/build/form/init.cjs +0 -28
- package/build/form/init.cjs.map +0 -7
- package/build/form/save.cjs +0 -40
- package/build/form/save.cjs.map +0 -7
- package/build/form/utils.cjs +0 -61
- package/build/form/utils.cjs.map +0 -7
- package/build/form/variations.cjs +0 -152
- package/build/form/variations.cjs.map +0 -7
- package/build/form/view.cjs +0 -48
- package/build/form/view.cjs.map +0 -7
- package/build/form-input/block.json +0 -72
- package/build/form-input/deprecated.cjs +0 -252
- package/build/form-input/deprecated.cjs.map +0 -7
- package/build/form-input/edit.cjs +0 -206
- package/build/form-input/edit.cjs.map +0 -7
- package/build/form-input/icons.cjs +0 -33
- package/build/form-input/icons.cjs.map +0 -7
- package/build/form-input/index.cjs +0 -63
- package/build/form-input/index.cjs.map +0 -7
- package/build/form-input/init.cjs +0 -28
- package/build/form-input/init.cjs.map +0 -7
- package/build/form-input/save.cjs +0 -88
- package/build/form-input/save.cjs.map +0 -7
- package/build/form-input/variations.cjs +0 -105
- package/build/form-input/variations.cjs.map +0 -7
- package/build/form-submission-notification/block.json +0 -19
- package/build/form-submission-notification/edit.cjs +0 -71
- package/build/form-submission-notification/edit.cjs.map +0 -7
- package/build/form-submission-notification/index.cjs +0 -73
- package/build/form-submission-notification/index.cjs.map +0 -7
- package/build/form-submission-notification/init.cjs +0 -28
- package/build/form-submission-notification/init.cjs.map +0 -7
- package/build/form-submission-notification/save.cjs +0 -54
- package/build/form-submission-notification/save.cjs.map +0 -7
- package/build/form-submission-notification/variations.cjs +0 -78
- package/build/form-submission-notification/variations.cjs.map +0 -7
- package/build/form-submit-button/block.json +0 -15
- package/build/form-submit-button/edit.cjs +0 -36
- package/build/form-submit-button/edit.cjs.map +0 -7
- package/build/form-submit-button/index.cjs +0 -75
- package/build/form-submit-button/index.cjs.map +0 -7
- package/build/form-submit-button/init.cjs.map +0 -7
- package/build/form-submit-button/save.cjs +0 -32
- package/build/form-submit-button/save.cjs.map +0 -7
- package/build/list-item/hooks/use-indent-list-item.cjs +0 -79
- package/build/list-item/hooks/use-indent-list-item.cjs.map +0 -7
- package/build/list-item/hooks/use-outdent-list-item.cjs +0 -106
- package/build/list-item/hooks/use-outdent-list-item.cjs.map +0 -7
- package/build/list-item/hooks/use-space.cjs +0 -83
- package/build/list-item/hooks/use-space.cjs.map +0 -7
- package/build/query/edit/enhanced-pagination-modal.cjs +0 -89
- package/build/query/edit/enhanced-pagination-modal.cjs.map +0 -7
- package/build-module/form/block.json +0 -65
- package/build-module/form/deprecated.mjs +0 -96
- package/build-module/form/deprecated.mjs.map +0 -7
- package/build-module/form/edit.mjs +0 -170
- package/build-module/form/edit.mjs.map +0 -7
- package/build-module/form/icons.mjs +0 -8
- package/build-module/form/icons.mjs.map +0 -7
- package/build-module/form/index.mjs +0 -83
- package/build-module/form/index.mjs.map +0 -7
- package/build-module/form/init.mjs +0 -7
- package/build-module/form/init.mjs.map +0 -7
- package/build-module/form/save.mjs +0 -19
- package/build-module/form/save.mjs.map +0 -7
- package/build-module/form/utils.mjs +0 -35
- package/build-module/form/utils.mjs.map +0 -7
- package/build-module/form/variations.mjs +0 -134
- package/build-module/form/variations.mjs.map +0 -7
- package/build-module/form/view.mjs +0 -46
- package/build-module/form/view.mjs.map +0 -7
- package/build-module/form-input/block.json +0 -72
- package/build-module/form-input/deprecated.mjs +0 -226
- package/build-module/form-input/deprecated.mjs.map +0 -7
- package/build-module/form-input/edit.mjs +0 -186
- package/build-module/form-input/edit.mjs.map +0 -7
- package/build-module/form-input/icons.mjs +0 -8
- package/build-module/form-input/icons.mjs.map +0 -7
- package/build-module/form-input/index.mjs +0 -25
- package/build-module/form-input/index.mjs.map +0 -7
- package/build-module/form-input/init.mjs +0 -7
- package/build-module/form-input/init.mjs.map +0 -7
- package/build-module/form-input/save.mjs +0 -62
- package/build-module/form-input/save.mjs.map +0 -7
- package/build-module/form-input/variations.mjs +0 -84
- package/build-module/form-input/variations.mjs.map +0 -7
- package/build-module/form-submission-notification/block.json +0 -19
- package/build-module/form-submission-notification/edit.mjs +0 -45
- package/build-module/form-submission-notification/edit.mjs.map +0 -7
- package/build-module/form-submission-notification/index.mjs +0 -35
- package/build-module/form-submission-notification/index.mjs.map +0 -7
- package/build-module/form-submission-notification/init.mjs +0 -7
- package/build-module/form-submission-notification/init.mjs.map +0 -7
- package/build-module/form-submission-notification/save.mjs +0 -23
- package/build-module/form-submission-notification/save.mjs.map +0 -7
- package/build-module/form-submission-notification/variations.mjs +0 -57
- package/build-module/form-submission-notification/variations.mjs.map +0 -7
- package/build-module/form-submit-button/block.json +0 -15
- package/build-module/form-submit-button/edit.mjs +0 -15
- package/build-module/form-submit-button/edit.mjs.map +0 -7
- package/build-module/form-submit-button/index.mjs +0 -37
- package/build-module/form-submit-button/index.mjs.map +0 -7
- package/build-module/form-submit-button/init.mjs +0 -7
- package/build-module/form-submit-button/init.mjs.map +0 -7
- package/build-module/form-submit-button/save.mjs +0 -11
- package/build-module/form-submit-button/save.mjs.map +0 -7
- package/build-module/list-item/hooks/use-indent-list-item.mjs +0 -58
- package/build-module/list-item/hooks/use-indent-list-item.mjs.map +0 -7
- package/build-module/list-item/hooks/use-outdent-list-item.mjs +0 -85
- package/build-module/list-item/hooks/use-outdent-list-item.mjs.map +0 -7
- package/build-module/list-item/hooks/use-space.mjs +0 -52
- package/build-module/list-item/hooks/use-space.mjs.map +0 -7
- package/build-module/query/edit/enhanced-pagination-modal.mjs +0 -72
- package/build-module/query/edit/enhanced-pagination-modal.mjs.map +0 -7
- package/build-style/form-input/editor-rtl.css +0 -19
- package/build-style/form-input/editor.css +0 -19
- package/build-style/form-input/style-rtl.css +0 -48
- package/build-style/form-input/style.css +0 -48
- package/build-style/form-submission-notification/editor-rtl.css +0 -30
- package/build-style/form-submission-notification/editor.css +0 -30
- package/build-style/form-submit-button/style-rtl.css +0 -3
- package/build-style/form-submit-button/style.css +0 -3
- package/src/form/README.md +0 -90
- package/src/form/block.json +0 -65
- package/src/form/deprecated.jsx +0 -93
- package/src/form/edit.jsx +0 -169
- package/src/form/icons.jsx +0 -7
- package/src/form/index.js +0 -91
- package/src/form/index.php +0 -197
- package/src/form/init.js +0 -3
- package/src/form/save.jsx +0 -15
- package/src/form/utils.js +0 -36
- package/src/form/variations.js +0 -133
- package/src/form/view.js +0 -54
- package/src/form-input/README.md +0 -74
- package/src/form-input/block.json +0 -72
- package/src/form-input/deprecated.jsx +0 -248
- package/src/form-input/edit.jsx +0 -187
- package/src/form-input/editor.scss +0 -24
- package/src/form-input/icons.jsx +0 -7
- package/src/form-input/index.js +0 -22
- package/src/form-input/index.php +0 -47
- package/src/form-input/init.js +0 -3
- package/src/form-input/save.jsx +0 -89
- package/src/form-input/style.scss +0 -64
- package/src/form-input/variations.js +0 -82
- package/src/form-submission-notification/README.md +0 -50
- package/src/form-submission-notification/block.json +0 -19
- package/src/form-submission-notification/edit.jsx +0 -44
- package/src/form-submission-notification/editor.scss +0 -45
- package/src/form-submission-notification/index.js +0 -33
- package/src/form-submission-notification/index.php +0 -48
- package/src/form-submission-notification/init.js +0 -3
- package/src/form-submission-notification/save.jsx +0 -18
- package/src/form-submission-notification/variations.js +0 -56
- package/src/form-submit-button/README.md +0 -54
- package/src/form-submit-button/block.json +0 -15
- package/src/form-submit-button/edit.jsx +0 -12
- package/src/form-submit-button/index.js +0 -35
- package/src/form-submit-button/init.js +0 -3
- package/src/form-submit-button/save.jsx +0 -10
- package/src/form-submit-button/style.scss +0 -3
- package/src/list-item/hooks/use-indent-list-item.js +0 -73
- package/src/list-item/hooks/use-outdent-list-item.js +0 -100
- package/src/list-item/hooks/use-space.js +0 -66
- package/src/query/edit/enhanced-pagination-modal.jsx +0 -77
- /package/src/utils/test/{waveform-player.jsx → waveform-player.jsdom.test.jsx} +0 -0
- /package/src/utils/test/{waveform-utils.js → waveform-utils.jsdom.test.js} +0 -0
|
@@ -1,46 +1,35 @@
|
|
|
1
|
-
import { useRegistry
|
|
1
|
+
import { useRegistry } from '@wordpress/data';
|
|
2
2
|
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
3
3
|
import { isUnmodifiedBlock, switchToBlockType } from '@wordpress/blocks';
|
|
4
|
-
import
|
|
4
|
+
import { outdentListItems, getOutdentTarget } from '../utils';
|
|
5
5
|
|
|
6
6
|
export default function useMerge( clientId, onMerge ) {
|
|
7
7
|
const registry = useRegistry();
|
|
8
|
-
const {
|
|
9
|
-
getPreviousBlockClientId,
|
|
10
|
-
getNextBlockClientId,
|
|
11
|
-
getBlockOrder,
|
|
12
|
-
getBlockIndex,
|
|
13
|
-
getBlockRootClientId,
|
|
14
|
-
getBlockName,
|
|
15
|
-
getBlock,
|
|
16
|
-
} = useSelect( blockEditorStore );
|
|
17
|
-
const { mergeBlocks, moveBlocksToPosition, removeBlock, insertBlocks } =
|
|
18
|
-
useDispatch( blockEditorStore );
|
|
19
|
-
const outdentListItem = useOutdentListItem();
|
|
20
8
|
|
|
21
|
-
|
|
22
|
-
const
|
|
9
|
+
return ( forward ) => {
|
|
10
|
+
const select = registry.select( blockEditorStore );
|
|
11
|
+
const {
|
|
12
|
+
getPreviousBlockClientId,
|
|
13
|
+
getNextBlockClientId,
|
|
14
|
+
getBlockOrder,
|
|
15
|
+
getBlockIndex,
|
|
16
|
+
getBlockRootClientId,
|
|
17
|
+
getBlockName,
|
|
18
|
+
getBlock,
|
|
19
|
+
} = select;
|
|
20
|
+
const { mergeBlocks, moveBlocksToPosition, removeBlock, insertBlocks } =
|
|
21
|
+
registry.dispatch( blockEditorStore );
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
23
|
+
function getTrailingId( id ) {
|
|
24
|
+
const order = getBlockOrder( id );
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
if ( ! order.length ) {
|
|
27
|
+
return id;
|
|
28
|
+
}
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
const listId = getBlockRootClientId( id );
|
|
33
|
-
const parentListItemId = getBlockRootClientId( listId );
|
|
34
|
-
if ( ! parentListItemId ) {
|
|
35
|
-
return;
|
|
30
|
+
return getTrailingId( order[ order.length - 1 ] );
|
|
36
31
|
}
|
|
37
|
-
if ( getBlockName( parentListItemId ) !== 'core/list-item' ) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
return parentListItemId;
|
|
41
|
-
}
|
|
42
32
|
|
|
43
|
-
return ( forward ) => {
|
|
44
33
|
function mergeWithNested( clientIdA, clientIdB ) {
|
|
45
34
|
registry.batch( () => {
|
|
46
35
|
// When merging a sub list item with a higher next list item, we
|
|
@@ -62,7 +51,7 @@ export default function useMerge( clientId, onMerge ) {
|
|
|
62
51
|
clientIdA
|
|
63
52
|
);
|
|
64
53
|
} else if (
|
|
65
|
-
|
|
54
|
+
getOutdentTarget( select, clientIdB ) === clientIdA
|
|
66
55
|
) {
|
|
67
56
|
// Merging into the parent item's own line: the
|
|
68
57
|
// children take the item's place in its list, one
|
|
@@ -104,7 +93,7 @@ export default function useMerge( clientId, onMerge ) {
|
|
|
104
93
|
while (
|
|
105
94
|
! ( nextBlockClientId = getNextBlockClientId( listItemId ) )
|
|
106
95
|
) {
|
|
107
|
-
const parentLi =
|
|
96
|
+
const parentLi = getOutdentTarget( select, listItemId );
|
|
108
97
|
if ( ! parentLi ) {
|
|
109
98
|
break;
|
|
110
99
|
}
|
|
@@ -158,7 +147,7 @@ export default function useMerge( clientId, onMerge ) {
|
|
|
158
147
|
mergeWithNested( trailingId, clientId );
|
|
159
148
|
return;
|
|
160
149
|
}
|
|
161
|
-
const parentListItemId =
|
|
150
|
+
const parentListItemId = getOutdentTarget( select, clientId );
|
|
162
151
|
if ( parentListItemId ) {
|
|
163
152
|
mergeWithNested( parentListItemId, clientId );
|
|
164
153
|
return;
|
|
@@ -170,7 +159,10 @@ export default function useMerge( clientId, onMerge ) {
|
|
|
170
159
|
blockOrder.length > 0
|
|
171
160
|
) {
|
|
172
161
|
registry.batch( () => {
|
|
173
|
-
|
|
162
|
+
outdentListItems(
|
|
163
|
+
registry,
|
|
164
|
+
getBlockOrder( blockOrder[ 0 ] )
|
|
165
|
+
);
|
|
174
166
|
removeBlock( clientId, true );
|
|
175
167
|
} );
|
|
176
168
|
} else {
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { useRefEffect } from '@wordpress/compose';
|
|
2
|
+
import { TAB } from '@wordpress/keycodes';
|
|
3
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
4
|
+
import { useSelect, useRegistry } from '@wordpress/data';
|
|
5
|
+
import { indentListItems, outdentListItems } from '../utils';
|
|
6
|
+
|
|
7
|
+
export default function useMultiSelectTab( clientId ) {
|
|
8
|
+
const registry = useRegistry();
|
|
9
|
+
// Only the first item of an all-list-item multi selection attaches the
|
|
10
|
+
// listener, so there is a single handler regardless of how many list items
|
|
11
|
+
// are rendered, and only while such a selection exists.
|
|
12
|
+
const isActive = useSelect(
|
|
13
|
+
( select ) => {
|
|
14
|
+
const {
|
|
15
|
+
hasMultiSelection,
|
|
16
|
+
getMultiSelectedBlockClientIds,
|
|
17
|
+
getBlockName,
|
|
18
|
+
} = select( blockEditorStore );
|
|
19
|
+
if ( ! hasMultiSelection() ) {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
const clientIds = getMultiSelectedBlockClientIds();
|
|
23
|
+
return (
|
|
24
|
+
clientIds[ 0 ] === clientId &&
|
|
25
|
+
clientIds.every(
|
|
26
|
+
( id ) => getBlockName( id ) === 'core/list-item'
|
|
27
|
+
)
|
|
28
|
+
);
|
|
29
|
+
},
|
|
30
|
+
[ clientId ]
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
return useRefEffect(
|
|
34
|
+
( element ) => {
|
|
35
|
+
if ( ! isActive ) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function onKeyDown( event ) {
|
|
40
|
+
const { keyCode, shiftKey, altKey, metaKey, ctrlKey } = event;
|
|
41
|
+
|
|
42
|
+
if (
|
|
43
|
+
keyCode !== TAB ||
|
|
44
|
+
event.defaultPrevented ||
|
|
45
|
+
altKey ||
|
|
46
|
+
metaKey ||
|
|
47
|
+
ctrlKey
|
|
48
|
+
) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// The listener is on the document, so it also sees a Tab from
|
|
53
|
+
// other editor UI while the multi selection lingers (moving
|
|
54
|
+
// focus does not clear it). A multi selection keeps focus on the
|
|
55
|
+
// canvas host that wraps the blocks, so only act when the key
|
|
56
|
+
// comes from an ancestor of them, not from a toolbar or panel.
|
|
57
|
+
if ( ! event.target.contains( element ) ) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if ( shiftKey ) {
|
|
62
|
+
if ( outdentListItems( registry ) ) {
|
|
63
|
+
event.preventDefault();
|
|
64
|
+
}
|
|
65
|
+
} else if ( indentListItems( registry ) ) {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// During a multi selection focus sits on the writing flow
|
|
71
|
+
// container, not inside any item, so an element listener never sees
|
|
72
|
+
// the key. Listen on the document. Capture phase so we run before
|
|
73
|
+
// writing-flow's keydown handlers, which gate on
|
|
74
|
+
// `event.defaultPrevented`.
|
|
75
|
+
const { ownerDocument } = element;
|
|
76
|
+
ownerDocument.addEventListener( 'keydown', onKeyDown, true );
|
|
77
|
+
return () => {
|
|
78
|
+
ownerDocument.removeEventListener( 'keydown', onKeyDown, true );
|
|
79
|
+
};
|
|
80
|
+
},
|
|
81
|
+
[ isActive, registry ]
|
|
82
|
+
);
|
|
83
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { useRefEffect } from '@wordpress/compose';
|
|
2
|
+
import { privateApis as richTextPrivateApis } from '@wordpress/rich-text';
|
|
3
|
+
import { SPACE, TAB } from '@wordpress/keycodes';
|
|
4
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
5
|
+
import { useRegistry } from '@wordpress/data';
|
|
6
|
+
import { isEntirelySelected } from '@wordpress/dom';
|
|
7
|
+
import { indentListItems, outdentListItems } from '../utils';
|
|
8
|
+
import { unlock } from '../../lock-unlock';
|
|
9
|
+
|
|
10
|
+
const { subscribeOwnedListener } = unlock( richTextPrivateApis );
|
|
11
|
+
|
|
12
|
+
export default function useTab() {
|
|
13
|
+
const registry = useRegistry();
|
|
14
|
+
|
|
15
|
+
return useRefEffect(
|
|
16
|
+
( element ) => {
|
|
17
|
+
function onKeyDown( event ) {
|
|
18
|
+
const { keyCode, shiftKey, altKey, metaKey, ctrlKey } = event;
|
|
19
|
+
|
|
20
|
+
if (
|
|
21
|
+
event.defaultPrevented ||
|
|
22
|
+
( keyCode !== SPACE && keyCode !== TAB ) ||
|
|
23
|
+
// Shift selects outdent; other modifiers pass through.
|
|
24
|
+
altKey ||
|
|
25
|
+
metaKey ||
|
|
26
|
+
ctrlKey
|
|
27
|
+
) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const { getSelectionStart, getSelectionEnd } =
|
|
32
|
+
registry.select( blockEditorStore );
|
|
33
|
+
const isAtStart =
|
|
34
|
+
getSelectionStart().offset === 0 &&
|
|
35
|
+
getSelectionEnd().offset === 0;
|
|
36
|
+
|
|
37
|
+
// Both keys act at the start of an item; Tab also acts on a
|
|
38
|
+
// full selection.
|
|
39
|
+
if (
|
|
40
|
+
! isAtStart &&
|
|
41
|
+
! ( keyCode === TAB && isEntirelySelected( element ) )
|
|
42
|
+
) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const move = shiftKey ? outdentListItems : indentListItems;
|
|
46
|
+
if ( move( registry ) ) {
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Capture phase so we run before writing-flow's ancestor-bubble
|
|
52
|
+
// keydown handlers that gate on `event.defaultPrevented`.
|
|
53
|
+
return subscribeOwnedListener(
|
|
54
|
+
element,
|
|
55
|
+
'keydown',
|
|
56
|
+
onKeyDown,
|
|
57
|
+
true
|
|
58
|
+
);
|
|
59
|
+
},
|
|
60
|
+
[ registry ]
|
|
61
|
+
);
|
|
62
|
+
}
|
package/src/list-item/index.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { __ } from '@wordpress/i18n';
|
|
2
1
|
import { listItem as icon } from '@wordpress/icons';
|
|
3
2
|
import { privateApis } from '@wordpress/block-editor';
|
|
4
|
-
import { privateApis as blocksPrivateApis } from '@wordpress/blocks';
|
|
5
3
|
import initBlock from '../utils/init-block';
|
|
6
4
|
import metadata from './block.json';
|
|
7
5
|
import edit from './edit';
|
|
@@ -9,8 +7,6 @@ import save from './save';
|
|
|
9
7
|
import transforms from './transforms';
|
|
10
8
|
import { unlock } from '../lock-unlock';
|
|
11
9
|
|
|
12
|
-
const { fieldsKey, formKey } = unlock( blocksPrivateApis );
|
|
13
|
-
|
|
14
10
|
const { name } = metadata;
|
|
15
11
|
|
|
16
12
|
export { metadata, name };
|
|
@@ -45,18 +41,4 @@ export const settings = {
|
|
|
45
41
|
},
|
|
46
42
|
};
|
|
47
43
|
|
|
48
|
-
if ( window.__experimentalContentOnlyInspectorFields ) {
|
|
49
|
-
settings[ fieldsKey ] = [
|
|
50
|
-
{
|
|
51
|
-
id: 'content',
|
|
52
|
-
label: __( 'Content' ),
|
|
53
|
-
type: 'text',
|
|
54
|
-
Edit: 'rich-text', // TODO: replace with custom component
|
|
55
|
-
},
|
|
56
|
-
];
|
|
57
|
-
settings[ formKey ] = {
|
|
58
|
-
fields: [ 'content' ],
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
|
|
62
44
|
export const init = () => initBlock( { name, metadata, settings } );
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
2
|
+
import { cloneBlock } from '@wordpress/blocks';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The previous sibling to nest a list item under when indenting, or undefined
|
|
6
|
+
* for the first item, which has no sibling to nest under.
|
|
7
|
+
*
|
|
8
|
+
* @param {Object} select The block editor store's selectors.
|
|
9
|
+
* @param {string} clientId The list item's client ID.
|
|
10
|
+
*
|
|
11
|
+
* @return {string|undefined} The client ID to nest the item under.
|
|
12
|
+
*/
|
|
13
|
+
export function getIndentTarget( select, clientId ) {
|
|
14
|
+
return select.getPreviousBlockClientId( clientId );
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* The ancestor list item the given item's list is nested in when outdenting, or
|
|
19
|
+
* undefined at the top level, where there is nothing to outdent to.
|
|
20
|
+
*
|
|
21
|
+
* @param {Object} select The block editor store's selectors.
|
|
22
|
+
* @param {string} clientId The list item's client ID.
|
|
23
|
+
*
|
|
24
|
+
* @return {string|undefined} The ancestor list item's client ID.
|
|
25
|
+
*/
|
|
26
|
+
export function getOutdentTarget( select, clientId ) {
|
|
27
|
+
const listId = select.getBlockRootClientId( clientId );
|
|
28
|
+
const parentListItemId = select.getBlockRootClientId( listId );
|
|
29
|
+
if (
|
|
30
|
+
! parentListItemId ||
|
|
31
|
+
select.getBlockName( parentListItemId ) !== 'core/list-item'
|
|
32
|
+
) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
return parentListItemId;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Moves blocks into a list item's nested list, keeping their client IDs. If the
|
|
40
|
+
* list item has no nested list yet, one is created from the source list so it
|
|
41
|
+
* inherits its attributes.
|
|
42
|
+
*
|
|
43
|
+
* @param {Object} registry The data registry.
|
|
44
|
+
* @param {string[]} clientIds The blocks to move.
|
|
45
|
+
* @param {string} sourceListId The list the blocks currently live in, also
|
|
46
|
+
* cloned when a nested list has to be created.
|
|
47
|
+
* @param {string} listItemId The list item to nest the blocks under.
|
|
48
|
+
*/
|
|
49
|
+
export function moveBlocksToNestedList(
|
|
50
|
+
registry,
|
|
51
|
+
clientIds,
|
|
52
|
+
sourceListId,
|
|
53
|
+
listItemId
|
|
54
|
+
) {
|
|
55
|
+
const { getBlockOrder, getBlock } = registry.select( blockEditorStore );
|
|
56
|
+
const { moveBlocksToPosition, removeBlocks, insertBlock } =
|
|
57
|
+
registry.dispatch( blockEditorStore );
|
|
58
|
+
// A list item can hold more than one nested list; append to the last one,
|
|
59
|
+
// the same subtree a reader sees at the end of the item.
|
|
60
|
+
const nestedLists = getBlockOrder( listItemId );
|
|
61
|
+
const nestedListId = nestedLists[ nestedLists.length - 1 ];
|
|
62
|
+
|
|
63
|
+
if ( nestedListId ) {
|
|
64
|
+
moveBlocksToPosition( clientIds, sourceListId, nestedListId );
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Insert the list with the items already inside: an empty list would be
|
|
69
|
+
// scaffolded with the list block type's template, and moving into a freshly
|
|
70
|
+
// created list would fail its canInsert check. Cloning the source list keeps
|
|
71
|
+
// its attributes; passing the items as inner blocks keeps their client IDs.
|
|
72
|
+
const nestedList = cloneBlock(
|
|
73
|
+
getBlock( sourceListId ),
|
|
74
|
+
{},
|
|
75
|
+
clientIds.map( ( id ) => getBlock( id ) )
|
|
76
|
+
);
|
|
77
|
+
// Remove and re-insert in one batch so the blocks are never momentarily
|
|
78
|
+
// detached. A caller batch nests harmlessly: only the outermost flushes.
|
|
79
|
+
registry.batch( () => {
|
|
80
|
+
removeBlocks( clientIds, false );
|
|
81
|
+
insertBlock( nestedList, 0, listItemId, false );
|
|
82
|
+
} );
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Indents the selected list items, nesting them under the previous sibling of
|
|
87
|
+
* the given item. Defaults to the first selected item.
|
|
88
|
+
*
|
|
89
|
+
* @param {Object} registry The data registry.
|
|
90
|
+
* @param {string} [clientId] The list item providing the sibling to nest under.
|
|
91
|
+
*
|
|
92
|
+
* @return {boolean} Whether the items were indented.
|
|
93
|
+
*/
|
|
94
|
+
export function indentListItems( registry, clientId ) {
|
|
95
|
+
const select = registry.select( blockEditorStore );
|
|
96
|
+
const {
|
|
97
|
+
getBlockRootClientId,
|
|
98
|
+
getSelectedBlockClientIds,
|
|
99
|
+
getSelectionStart,
|
|
100
|
+
getSelectionEnd,
|
|
101
|
+
hasMultiSelection,
|
|
102
|
+
getMultiSelectedBlockClientIds,
|
|
103
|
+
} = select;
|
|
104
|
+
const { selectionChange, multiSelect } =
|
|
105
|
+
registry.dispatch( blockEditorStore );
|
|
106
|
+
|
|
107
|
+
const _hasMultiSelection = hasMultiSelection();
|
|
108
|
+
const clientIds = _hasMultiSelection
|
|
109
|
+
? getMultiSelectedBlockClientIds()
|
|
110
|
+
: getSelectedBlockClientIds();
|
|
111
|
+
|
|
112
|
+
if ( clientId === undefined ) {
|
|
113
|
+
clientId = clientIds[ 0 ];
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const previousSiblingId = getIndentTarget( select, clientId );
|
|
117
|
+
|
|
118
|
+
// Can't indent the first item: there is no sibling to nest it under.
|
|
119
|
+
if ( ! previousSiblingId ) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const rootClientId = getBlockRootClientId( clientId );
|
|
124
|
+
// Read the selection before the move: creating a nested list removes and
|
|
125
|
+
// re-inserts the items, which drops it.
|
|
126
|
+
const selectionStart = getSelectionStart();
|
|
127
|
+
const selectionEnd = getSelectionEnd();
|
|
128
|
+
|
|
129
|
+
registry.batch( () => {
|
|
130
|
+
moveBlocksToNestedList(
|
|
131
|
+
registry,
|
|
132
|
+
clientIds,
|
|
133
|
+
rootClientId,
|
|
134
|
+
previousSiblingId
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
// Put the selection back on the same blocks (client IDs are kept).
|
|
138
|
+
if ( ! _hasMultiSelection ) {
|
|
139
|
+
selectionChange(
|
|
140
|
+
clientIds[ 0 ],
|
|
141
|
+
selectionEnd.attributeKey,
|
|
142
|
+
selectionEnd.clientId === selectionStart.clientId
|
|
143
|
+
? selectionStart.offset
|
|
144
|
+
: selectionEnd.offset,
|
|
145
|
+
selectionEnd.offset
|
|
146
|
+
);
|
|
147
|
+
} else {
|
|
148
|
+
multiSelect( clientIds[ 0 ], clientIds[ clientIds.length - 1 ] );
|
|
149
|
+
}
|
|
150
|
+
} );
|
|
151
|
+
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Outdents list items, moving them up a level. Defaults to the selected items;
|
|
157
|
+
* a specific set can be passed, e.g. to outdent an item's children.
|
|
158
|
+
*
|
|
159
|
+
* @param {Object} registry The data registry.
|
|
160
|
+
* @param {string[]|string} [clientIds] The list items to outdent.
|
|
161
|
+
*
|
|
162
|
+
* @return {boolean} Whether the items were outdented.
|
|
163
|
+
*/
|
|
164
|
+
export function outdentListItems( registry, clientIds ) {
|
|
165
|
+
const select = registry.select( blockEditorStore );
|
|
166
|
+
const {
|
|
167
|
+
getBlockRootClientId,
|
|
168
|
+
getBlockName,
|
|
169
|
+
getBlockOrder,
|
|
170
|
+
getBlockIndex,
|
|
171
|
+
getSelectedBlockClientIds,
|
|
172
|
+
} = select;
|
|
173
|
+
const { moveBlocksToPosition, removeBlock, multiSelect } =
|
|
174
|
+
registry.dispatch( blockEditorStore );
|
|
175
|
+
|
|
176
|
+
if ( clientIds === undefined ) {
|
|
177
|
+
clientIds = getSelectedBlockClientIds();
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if ( ! Array.isArray( clientIds ) ) {
|
|
181
|
+
clientIds = [ clientIds ];
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
if ( ! clientIds.length ) {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
const firstClientId = clientIds[ 0 ];
|
|
189
|
+
|
|
190
|
+
// Can't outdent if it's not a list item.
|
|
191
|
+
if ( getBlockName( firstClientId ) !== 'core/list-item' ) {
|
|
192
|
+
return false;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Can't outdent if it's at the top level.
|
|
196
|
+
const parentListItemId = getOutdentTarget( select, firstClientId );
|
|
197
|
+
if ( ! parentListItemId ) {
|
|
198
|
+
return false;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
const parentListId = getBlockRootClientId( firstClientId );
|
|
202
|
+
const lastClientId = clientIds[ clientIds.length - 1 ];
|
|
203
|
+
const order = getBlockOrder( parentListId );
|
|
204
|
+
const followingListItems = order.slice( getBlockIndex( lastClientId ) + 1 );
|
|
205
|
+
|
|
206
|
+
registry.batch( () => {
|
|
207
|
+
if ( followingListItems.length ) {
|
|
208
|
+
// Nest the items that follow under the outdented item so they keep
|
|
209
|
+
// their place below it.
|
|
210
|
+
moveBlocksToNestedList(
|
|
211
|
+
registry,
|
|
212
|
+
followingListItems,
|
|
213
|
+
parentListId,
|
|
214
|
+
firstClientId
|
|
215
|
+
);
|
|
216
|
+
}
|
|
217
|
+
moveBlocksToPosition(
|
|
218
|
+
clientIds,
|
|
219
|
+
parentListId,
|
|
220
|
+
getBlockRootClientId( parentListItemId ),
|
|
221
|
+
getBlockIndex( parentListItemId ) + 1
|
|
222
|
+
);
|
|
223
|
+
if ( ! getBlockOrder( parentListId ).length ) {
|
|
224
|
+
const shouldSelectParent = false;
|
|
225
|
+
removeBlock( parentListId, shouldSelectParent );
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
// Reset the lingering partial cross-block range to a whole block
|
|
229
|
+
// selection. A single caret is preserved by the store on its own.
|
|
230
|
+
if ( clientIds.length > 1 ) {
|
|
231
|
+
multiSelect( firstClientId, lastClientId );
|
|
232
|
+
}
|
|
233
|
+
} );
|
|
234
|
+
|
|
235
|
+
return true;
|
|
236
|
+
}
|
package/src/math/README.md
CHANGED
|
@@ -31,6 +31,8 @@ _Defined via the [`supports`](https://developer.wordpress.org/block-editor/refer
|
|
|
31
31
|
- `padding`: `true`
|
|
32
32
|
- [`typography`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography):
|
|
33
33
|
- [`fontSize`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#typography-fontsize): `true`
|
|
34
|
+
- [`interactivity`](https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#interactivity):
|
|
35
|
+
- `clientNavigation`: `true`
|
|
34
36
|
|
|
35
37
|
## Block Markup
|
|
36
38
|
|
package/src/math/block.json
CHANGED
package/src/media-text/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { __ } from '@wordpress/i18n';
|
|
2
2
|
import { mediaAndText as icon } from '@wordpress/icons';
|
|
3
|
-
import { privateApis as blocksPrivateApis } from '@wordpress/blocks';
|
|
4
3
|
import initBlock from '../utils/init-block';
|
|
5
4
|
import { TEMPLATE } from './constants';
|
|
6
5
|
import deprecated from './deprecated';
|
|
@@ -8,9 +7,6 @@ import edit from './edit';
|
|
|
8
7
|
import metadata from './block.json';
|
|
9
8
|
import save from './save';
|
|
10
9
|
import transforms from './transforms';
|
|
11
|
-
import { unlock } from '../lock-unlock';
|
|
12
|
-
|
|
13
|
-
const { fieldsKey, formKey } = unlock( blocksPrivateApis );
|
|
14
10
|
|
|
15
11
|
const { name } = metadata;
|
|
16
12
|
|
|
@@ -49,50 +45,4 @@ export const settings = {
|
|
|
49
45
|
deprecated,
|
|
50
46
|
};
|
|
51
47
|
|
|
52
|
-
if ( window.__experimentalContentOnlyInspectorFields ) {
|
|
53
|
-
settings[ fieldsKey ] = [
|
|
54
|
-
{
|
|
55
|
-
id: 'media',
|
|
56
|
-
label: __( 'Media' ),
|
|
57
|
-
type: 'media',
|
|
58
|
-
Edit: {
|
|
59
|
-
control: 'media', // TODO: replace with custom component
|
|
60
|
-
allowedTypes: [ 'image', 'video' ],
|
|
61
|
-
multiple: false,
|
|
62
|
-
},
|
|
63
|
-
getValue: ( { item } ) => ( {
|
|
64
|
-
id: item.mediaId,
|
|
65
|
-
url: item.mediaUrl,
|
|
66
|
-
mediaType: item.mediaType,
|
|
67
|
-
link: item.mediaLink,
|
|
68
|
-
} ),
|
|
69
|
-
setValue: ( { value } ) => ( {
|
|
70
|
-
mediaId: value.id,
|
|
71
|
-
mediaUrl: value.url,
|
|
72
|
-
mediaType: value.mediaType,
|
|
73
|
-
mediaLink: value.link,
|
|
74
|
-
} ),
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
id: 'link',
|
|
78
|
-
label: __( 'Link' ),
|
|
79
|
-
type: 'url',
|
|
80
|
-
Edit: 'link', // TODO: replace with custom component
|
|
81
|
-
getValue: ( { item } ) => ( {
|
|
82
|
-
url: item.href,
|
|
83
|
-
rel: item.rel,
|
|
84
|
-
linkTarget: item.linkTarget,
|
|
85
|
-
} ),
|
|
86
|
-
setValue: ( { value } ) => ( {
|
|
87
|
-
href: value.url,
|
|
88
|
-
rel: value.rel,
|
|
89
|
-
linkTarget: value.linkTarget,
|
|
90
|
-
} ),
|
|
91
|
-
},
|
|
92
|
-
];
|
|
93
|
-
settings[ formKey ] = {
|
|
94
|
-
fields: [ 'media', 'link' ],
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
|
|
98
48
|
export const init = () => initBlock( { name, metadata, settings } );
|
|
@@ -53,6 +53,7 @@ function ToolbarEditButton( {
|
|
|
53
53
|
onSelect={ onSelectMedia }
|
|
54
54
|
onToggleFeaturedImage={ toggleUseFeaturedImage }
|
|
55
55
|
useFeaturedImage={ useFeaturedImage }
|
|
56
|
+
name={ mediaUrl ? __( 'Replace' ) : __( 'Add media' ) }
|
|
56
57
|
onReset={ () => onSelectMedia( undefined ) }
|
|
57
58
|
/>
|
|
58
59
|
</BlockControls>
|
|
@@ -122,6 +123,20 @@ function MediaContainer( props, ref ) {
|
|
|
122
123
|
|
|
123
124
|
const { toggleSelection } = useDispatch( blockEditorStore );
|
|
124
125
|
|
|
126
|
+
const toolbarEditButton = (
|
|
127
|
+
<ToolbarEditButton
|
|
128
|
+
onSelectMedia={ onSelectMedia }
|
|
129
|
+
mediaUrl={
|
|
130
|
+
useFeaturedImage && featuredImageURL
|
|
131
|
+
? featuredImageURL
|
|
132
|
+
: mediaUrl
|
|
133
|
+
}
|
|
134
|
+
mediaId={ mediaId }
|
|
135
|
+
toggleUseFeaturedImage={ toggleUseFeaturedImage }
|
|
136
|
+
useFeaturedImage={ useFeaturedImage }
|
|
137
|
+
/>
|
|
138
|
+
);
|
|
139
|
+
|
|
125
140
|
if ( mediaUrl || featuredImageURL || useFeaturedImage ) {
|
|
126
141
|
const onResizeStart = () => {
|
|
127
142
|
toggleSelection( false );
|
|
@@ -185,17 +200,7 @@ function MediaContainer( props, ref ) {
|
|
|
185
200
|
isStackedOnMobile={ isStackedOnMobile }
|
|
186
201
|
ref={ ref }
|
|
187
202
|
>
|
|
188
|
-
|
|
189
|
-
onSelectMedia={ onSelectMedia }
|
|
190
|
-
mediaUrl={
|
|
191
|
-
useFeaturedImage && featuredImageURL
|
|
192
|
-
? featuredImageURL
|
|
193
|
-
: mediaUrl
|
|
194
|
-
}
|
|
195
|
-
mediaId={ mediaId }
|
|
196
|
-
toggleUseFeaturedImage={ toggleUseFeaturedImage }
|
|
197
|
-
useFeaturedImage={ useFeaturedImage }
|
|
198
|
-
/>
|
|
203
|
+
{ toolbarEditButton }
|
|
199
204
|
{ ( mediaTypeRenderers[ mediaType ] || noop )() }
|
|
200
205
|
{ isTemporaryMedia && <Spinner /> }
|
|
201
206
|
{ ! useFeaturedImage && <PlaceholderContainer { ...props } /> }
|
|
@@ -210,7 +215,12 @@ function MediaContainer( props, ref ) {
|
|
|
210
215
|
);
|
|
211
216
|
}
|
|
212
217
|
|
|
213
|
-
return
|
|
218
|
+
return (
|
|
219
|
+
<>
|
|
220
|
+
{ toolbarEditButton }
|
|
221
|
+
<PlaceholderContainer { ...props } />
|
|
222
|
+
</>
|
|
223
|
+
);
|
|
214
224
|
}
|
|
215
225
|
|
|
216
226
|
export default forwardRef( MediaContainer );
|
|
@@ -53,6 +53,7 @@
|
|
|
53
53
|
grid-row: 1;
|
|
54
54
|
/*rtl:end:ignore*/
|
|
55
55
|
padding: 0 8% 0 8%;
|
|
56
|
+
// stylelint-disable-next-line declaration-property-value-keyword-no-deprecated -- Pending review of overflow-wrap alternative.
|
|
56
57
|
word-break: break-word;
|
|
57
58
|
}
|
|
58
59
|
|
|
@@ -102,7 +103,7 @@
|
|
|
102
103
|
padding: 0;
|
|
103
104
|
margin: -1px;
|
|
104
105
|
overflow: hidden;
|
|
105
|
-
clip:
|
|
106
|
+
clip-path: inset(50%);
|
|
106
107
|
border: 0;
|
|
107
108
|
}
|
|
108
109
|
|