@wordpress/block-library 7.5.0 → 7.8.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 +10 -0
- package/README.md +3 -2
- package/babel-plugin.js +154 -0
- package/build/audio/edit.js +1 -1
- package/build/audio/edit.js.map +1 -1
- package/build/audio/index.js +6 -1
- package/build/audio/index.js.map +1 -1
- package/build/avatar/hooks.js +2 -2
- package/build/avatar/hooks.js.map +1 -1
- package/build/block/edit.js +10 -9
- package/build/block/edit.js.map +1 -1
- package/build/block/edit.native.js.map +1 -1
- package/build/button/deprecated.js +175 -35
- package/build/button/deprecated.js.map +1 -1
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/button/edit.native.js.map +1 -1
- package/build/button/index.js +25 -1
- package/build/button/index.js.map +1 -1
- package/build/button/save.js +1 -1
- package/build/button/save.js.map +1 -1
- package/build/buttons/deprecated.js.map +1 -1
- package/build/buttons/edit.js.map +1 -1
- package/build/buttons/edit.native.js.map +1 -1
- package/build/categories/edit.js +1 -1
- package/build/categories/edit.js.map +1 -1
- package/build/categories/index.js +1 -1
- package/build/column/deprecated.js.map +1 -1
- package/build/column/edit.js.map +1 -1
- package/build/column/edit.native.js.map +1 -1
- package/build/columns/deprecated.js.map +1 -1
- package/build/columns/edit.js +1 -1
- package/build/columns/edit.js.map +1 -1
- package/build/columns/edit.native.js +1 -1
- package/build/columns/edit.native.js.map +1 -1
- package/build/columns/index.js +3 -1
- package/build/columns/index.js.map +1 -1
- package/build/columns/utils.js +1 -1
- package/build/columns/utils.js.map +1 -1
- package/build/comment-author-avatar/index.js +1 -0
- package/build/comment-author-avatar/index.js.map +1 -1
- package/build/comment-author-name/edit.js +4 -2
- package/build/comment-author-name/edit.js.map +1 -1
- package/build/comment-date/edit.js +1 -1
- package/build/comment-date/edit.js.map +1 -1
- package/build/comments-title/deprecated.js +110 -0
- package/build/comments-title/deprecated.js.map +1 -0
- package/build/comments-title/edit.js +35 -37
- package/build/comments-title/edit.js.map +1 -1
- package/build/comments-title/index.js +5 -8
- package/build/comments-title/index.js.map +1 -1
- package/build/cover/controls.native.js +2 -3
- package/build/cover/controls.native.js.map +1 -1
- package/build/cover/deprecated.js +212 -207
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/block-controls.js +108 -0
- package/build/cover/edit/block-controls.js.map +1 -0
- package/build/cover/edit/cover-placeholder.js +49 -0
- package/build/cover/edit/cover-placeholder.js.map +1 -0
- package/build/cover/edit/index.js +336 -0
- package/build/cover/edit/index.js.map +1 -0
- package/build/cover/edit/inspector-controls.js +252 -0
- package/build/cover/edit/inspector-controls.js.map +1 -0
- package/build/cover/edit/resizable-cover.js +67 -0
- package/build/cover/edit/resizable-cover.js.map +1 -0
- package/build/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
- package/build/cover/edit/use-cover-is-dark.js.map +1 -0
- package/build/cover/edit.native.js +0 -1
- package/build/cover/edit.native.js.map +1 -1
- package/build/cover/focal-point-settings-button.native.js.map +1 -1
- package/build/cover/save.js +18 -5
- package/build/cover/save.js.map +1 -1
- package/build/cover/shared.js +15 -9
- package/build/cover/shared.js.map +1 -1
- package/build/cover/transforms.js.map +1 -1
- package/build/embed/deprecated.js +6 -1
- package/build/embed/deprecated.js.map +1 -1
- package/build/embed/edit.js.map +1 -1
- package/build/embed/edit.native.js.map +1 -1
- package/build/embed/embed-controls.native.js.map +1 -1
- package/build/embed/embed-preview.js +1 -1
- package/build/embed/embed-preview.js.map +1 -1
- package/build/embed/index.js +6 -1
- package/build/embed/index.js.map +1 -1
- package/build/embed/transforms.js +6 -1
- package/build/embed/transforms.js.map +1 -1
- package/build/embed/util.js +6 -1
- package/build/embed/util.js.map +1 -1
- package/build/file/edit.js +1 -1
- package/build/file/edit.js.map +1 -1
- package/build/file/edit.native.js +0 -1
- package/build/file/edit.native.js.map +1 -1
- package/build/file/index.js.map +1 -1
- package/build/file/save.js +9 -1
- package/build/file/save.js.map +1 -1
- package/build/gallery/edit.js +3 -2
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.js +1 -1
- package/build/gallery/gallery.js.map +1 -1
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/gap-styles.js +14 -4
- package/build/gallery/gap-styles.js.map +1 -1
- package/build/gallery/index.js +1 -1
- package/build/gallery/index.js.map +1 -1
- package/build/gallery/shared.js +29 -12
- package/build/gallery/shared.js.map +1 -1
- package/build/gallery/use-get-media.js +2 -1
- package/build/gallery/use-get-media.js.map +1 -1
- package/build/gallery/use-short-code-transform.js +19 -18
- package/build/gallery/use-short-code-transform.js.map +1 -1
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery-image.js.map +1 -1
- package/build/gallery/v1/gallery-image.native.js.map +1 -1
- package/build/gallery/v1/gallery.js +1 -1
- package/build/gallery/v1/gallery.js.map +1 -1
- package/build/heading/autogenerate-anchors.js +7 -2
- package/build/heading/autogenerate-anchors.js.map +1 -1
- package/build/heading/deprecated.js.map +1 -1
- package/build/heading/edit.js +6 -2
- package/build/heading/edit.js.map +1 -1
- package/build/heading/index.js +1 -0
- package/build/heading/index.js.map +1 -1
- package/build/heading/transforms.js +1 -0
- package/build/heading/transforms.js.map +1 -1
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.js +5 -56
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +56 -4
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +4 -14
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +5 -0
- package/build/image/index.js.map +1 -1
- package/build/image/transforms.js.map +1 -1
- package/build/image/utils.js +2 -1
- package/build/image/utils.js.map +1 -1
- package/build/index.js +46 -10
- package/build/index.js.map +1 -1
- package/build/is-block-metadata-experimental.js +18 -0
- package/build/is-block-metadata-experimental.js.map +1 -0
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-posts/edit.js +31 -5
- package/build/latest-posts/edit.js.map +1 -1
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/index.js.map +1 -1
- package/build/list/transforms.js +6 -0
- package/build/list/transforms.js.map +1 -1
- package/build/list/v2/edit.js +2 -1
- package/build/list/v2/edit.js.map +1 -1
- package/build/list/v2/migrate.js +1 -0
- package/build/list/v2/migrate.js.map +1 -1
- package/build/list/v2/transforms.js +46 -9
- package/build/list/v2/transforms.js.map +1 -1
- package/build/list-item/edit.js +7 -9
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/index.js +24 -0
- package/build/list-item/hooks/index.js.map +1 -1
- package/build/list-item/hooks/use-backspace.js +59 -0
- package/build/list-item/hooks/use-backspace.js.map +1 -0
- package/build/list-item/hooks/use-enter.js +6 -9
- package/build/list-item/hooks/use-enter.js.map +1 -1
- package/build/list-item/hooks/use-indent-list-item.js +33 -39
- package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +54 -0
- package/build/list-item/hooks/use-space.js.map +1 -0
- package/build/list-item/hooks/use-split.js +44 -0
- package/build/list-item/hooks/use-split.js.map +1 -0
- package/build/list-item/index.js +1 -0
- package/build/list-item/index.js.map +1 -1
- package/build/list-item/utils.js +1 -1
- package/build/list-item/utils.js.map +1 -1
- package/build/media-text/deprecated.js +5 -3
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.native.js +2 -1
- package/build/media-text/edit.native.js.map +1 -1
- package/build/media-text/media-container.js +3 -3
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/media-container.native.js +2 -4
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/media-text/save.js +3 -1
- package/build/media-text/save.js.map +1 -1
- package/build/media-text/transforms.js +137 -8
- package/build/media-text/transforms.js.map +1 -1
- package/build/missing/edit.native.js.map +1 -1
- package/build/navigation/deprecated.js.map +1 -1
- package/build/navigation/edit/index.js +86 -81
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +1 -5
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/use-navigation-entities.js +3 -3
- package/build/navigation/use-navigation-entities.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +130 -38
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation/use-template-part-area-label.js +4 -1
- package/build/navigation/use-template-part-area-label.js.map +1 -1
- package/build/navigation-link/edit.js +44 -12
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/fallback-variations.js +1 -1
- package/build/navigation-link/fallback-variations.js.map +1 -1
- package/build/navigation-link/hooks.js +1 -1
- package/build/navigation-link/hooks.js.map +1 -1
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/convert-to-links-modal.js +1 -1
- package/build/page-list/convert-to-links-modal.js.map +1 -1
- package/build/page-list/edit.js +1 -1
- package/build/page-list/edit.js.map +1 -1
- package/build/paragraph/deprecated.js +1 -1
- package/build/paragraph/deprecated.js.map +1 -1
- package/build/pattern/edit.js.map +1 -1
- package/build/post-author/edit.js +1 -1
- package/build/post-author/edit.js.map +1 -1
- package/build/post-author-name/index.js +4 -0
- package/build/post-author-name/index.js.map +1 -1
- package/build/post-author-name/transforms.js +41 -0
- package/build/post-author-name/transforms.js.map +1 -0
- package/build/post-comment/index.js +1 -0
- package/build/post-comment/index.js.map +1 -1
- package/build/post-comments/edit.js +34 -16
- package/build/post-comments/edit.js.map +1 -1
- package/build/post-comments-count/index.js +1 -0
- package/build/post-comments-count/index.js.map +1 -1
- package/build/post-comments-form/form.js +12 -2
- package/build/post-comments-form/form.js.map +1 -1
- package/build/post-comments-link/index.js +1 -0
- package/build/post-comments-link/index.js.map +1 -1
- package/build/post-content/edit.js.map +1 -1
- package/build/post-date/edit.js +13 -7
- package/build/post-date/edit.js.map +1 -1
- package/build/post-featured-image/edit.js +11 -25
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-navigation-link/index.js +4 -0
- package/build/post-navigation-link/index.js.map +1 -1
- package/build/post-template/edit.js +7 -2
- package/build/post-template/edit.js.map +1 -1
- package/build/post-terms/edit.js +11 -2
- package/build/post-terms/edit.js.map +1 -1
- package/build/post-terms/hooks.js +33 -0
- package/build/post-terms/hooks.js.map +1 -0
- package/build/post-terms/index.js +12 -5
- package/build/post-terms/index.js.map +1 -1
- package/build/post-title/index.js +1 -1
- package/build/post-title/index.js.map +1 -1
- package/build/pullquote/deprecated.js.map +1 -1
- package/build/pullquote/edit.js +1 -1
- package/build/pullquote/edit.js.map +1 -1
- package/build/pullquote/edit.native.js +1 -1
- package/build/pullquote/edit.native.js.map +1 -1
- package/build/query/edit/index.js +5 -1
- package/build/query/edit/index.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +26 -17
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query/edit/inspector-controls/parent-control.js +148 -0
- package/build/query/edit/inspector-controls/parent-control.js.map +1 -0
- package/build/query/edit/inspector-controls/sticky-control.js +41 -0
- package/build/query/edit/inspector-controls/sticky-control.js.map +1 -0
- package/build/query/edit/query-toolbar.js +16 -2
- package/build/query/edit/query-toolbar.js.map +1 -1
- package/build/query/index.js +2 -1
- package/build/query/index.js.map +1 -1
- package/build/query/utils.js +28 -2
- package/build/query/utils.js.map +1 -1
- package/build/query-title/index.js +1 -1
- package/build/query-title/index.js.map +1 -1
- package/build/query-title/variations.js +1 -1
- package/build/query-title/variations.js.map +1 -1
- package/build/quote/edit.js +3 -2
- package/build/quote/edit.js.map +1 -1
- package/build/quote/v2/edit.js +1 -1
- package/build/quote/v2/edit.js.map +1 -1
- package/build/search/edit.js +2 -1
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js.map +1 -1
- package/build/search/index.js +4 -0
- package/build/search/index.js.map +1 -1
- package/build/separator/use-deprecated-opacity.js.map +1 -1
- package/build/shortcode/edit.native.js +16 -13
- package/build/shortcode/edit.native.js.map +1 -1
- package/build/site-logo/edit.js +4 -13
- package/build/site-logo/edit.js.map +1 -1
- package/build/social-links/deprecated.js.map +1 -1
- package/build/social-links/edit.js +2 -2
- package/build/social-links/edit.js.map +1 -1
- package/build/social-links/edit.native.js.map +1 -1
- package/build/spacer/controls.js.map +1 -1
- package/build/table/deprecated.js.map +1 -1
- package/build/table/edit.js +15 -2
- package/build/table/edit.js.map +1 -1
- package/build/table/index.js +6 -1
- package/build/table/index.js.map +1 -1
- package/build/table/state.js.map +1 -1
- package/build/table-of-contents/edit.js +145 -65
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/table-of-contents/index.js +13 -3
- package/build/table-of-contents/index.js.map +1 -1
- package/build/table-of-contents/list.js +16 -9
- package/build/table-of-contents/list.js.map +1 -1
- package/build/table-of-contents/save.js +40 -0
- package/build/table-of-contents/save.js.map +1 -0
- package/build/table-of-contents/utils.js +11 -77
- package/build/table-of-contents/utils.js.map +1 -1
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/advanced-controls.js +4 -1
- package/build/template-part/edit/advanced-controls.js.map +1 -1
- package/build/template-part/edit/index.js +7 -3
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/inner-blocks.js +3 -8
- package/build/template-part/edit/inner-blocks.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +4 -1
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/transformationCategories.native.js.map +1 -1
- package/build/video/edit-common-settings.js.map +1 -1
- package/build/video/edit.js +1 -1
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +43 -0
- package/build/video/edit.native.js.map +1 -1
- package/build/video/index.js +6 -1
- package/build/video/index.js.map +1 -1
- package/build-module/audio/edit.js +2 -2
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/audio/index.js +6 -1
- package/build-module/audio/index.js.map +1 -1
- package/build-module/avatar/hooks.js +2 -2
- package/build-module/avatar/hooks.js.map +1 -1
- package/build-module/block/edit.js +11 -10
- package/build-module/block/edit.js.map +1 -1
- package/build-module/block/edit.native.js.map +1 -1
- package/build-module/button/deprecated.js +175 -35
- package/build-module/button/deprecated.js.map +1 -1
- package/build-module/button/edit.js +2 -2
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/edit.native.js.map +1 -1
- package/build-module/button/index.js +25 -1
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/save.js +2 -2
- package/build-module/button/save.js.map +1 -1
- package/build-module/buttons/deprecated.js.map +1 -1
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/categories/edit.js +1 -1
- package/build-module/categories/edit.js.map +1 -1
- package/build-module/categories/index.js +1 -1
- package/build-module/column/deprecated.js.map +1 -1
- package/build-module/column/edit.js.map +1 -1
- package/build-module/column/edit.native.js.map +1 -1
- package/build-module/columns/deprecated.js.map +1 -1
- package/build-module/columns/edit.js +2 -2
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/columns/edit.native.js +2 -2
- package/build-module/columns/edit.native.js.map +1 -1
- package/build-module/columns/index.js +3 -1
- package/build-module/columns/index.js.map +1 -1
- package/build-module/columns/utils.js +2 -2
- package/build-module/columns/utils.js.map +1 -1
- package/build-module/comment-author-avatar/index.js +1 -0
- package/build-module/comment-author-avatar/index.js.map +1 -1
- package/build-module/comment-author-name/edit.js +4 -2
- package/build-module/comment-author-name/edit.js.map +1 -1
- package/build-module/comment-date/edit.js +1 -1
- package/build-module/comment-date/edit.js.map +1 -1
- package/build-module/comments-title/deprecated.js +102 -0
- package/build-module/comments-title/deprecated.js.map +1 -0
- package/build-module/comments-title/edit.js +38 -40
- package/build-module/comments-title/edit.js.map +1 -1
- package/build-module/comments-title/index.js +4 -8
- package/build-module/comments-title/index.js.map +1 -1
- package/build-module/cover/controls.native.js +2 -3
- package/build-module/cover/controls.native.js.map +1 -1
- package/build-module/cover/deprecated.js +206 -198
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit/block-controls.js +99 -0
- package/build-module/cover/edit/block-controls.js.map +1 -0
- package/build-module/cover/edit/cover-placeholder.js +38 -0
- package/build-module/cover/edit/cover-placeholder.js.map +1 -0
- package/build-module/cover/edit/index.js +310 -0
- package/build-module/cover/edit/index.js.map +1 -0
- package/build-module/cover/edit/inspector-controls.js +240 -0
- package/build-module/cover/edit/inspector-controls.js.map +1 -0
- package/build-module/cover/edit/resizable-cover.js +55 -0
- package/build-module/cover/edit/resizable-cover.js.map +1 -0
- package/build-module/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
- package/build-module/cover/edit/use-cover-is-dark.js.map +1 -0
- package/build-module/cover/edit.native.js +0 -1
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/cover/focal-point-settings-button.native.js.map +1 -1
- package/build-module/cover/save.js +19 -6
- package/build-module/cover/save.js.map +1 -1
- package/build-module/cover/shared.js +11 -5
- package/build-module/cover/shared.js.map +1 -1
- package/build-module/cover/transforms.js.map +1 -1
- package/build-module/embed/deprecated.js +6 -1
- package/build-module/embed/deprecated.js.map +1 -1
- package/build-module/embed/edit.js.map +1 -1
- package/build-module/embed/edit.native.js.map +1 -1
- package/build-module/embed/embed-controls.native.js.map +1 -1
- package/build-module/embed/embed-preview.js +2 -2
- package/build-module/embed/embed-preview.js.map +1 -1
- package/build-module/embed/index.js +6 -1
- package/build-module/embed/index.js.map +1 -1
- package/build-module/embed/transforms.js +6 -1
- package/build-module/embed/transforms.js.map +1 -1
- package/build-module/embed/util.js +6 -1
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/edit.js +2 -2
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/edit.native.js +0 -1
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/file/index.js.map +1 -1
- package/build-module/file/save.js +7 -2
- package/build-module/file/save.js.map +1 -1
- package/build-module/gallery/edit.js +4 -3
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.js +2 -2
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/gap-styles.js +14 -4
- package/build-module/gallery/gap-styles.js.map +1 -1
- package/build-module/gallery/index.js +1 -1
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/gallery/shared.js +27 -10
- package/build-module/gallery/shared.js.map +1 -1
- package/build-module/gallery/use-get-media.js +2 -1
- package/build-module/gallery/use-get-media.js.map +1 -1
- package/build-module/gallery/use-short-code-transform.js +19 -18
- package/build-module/gallery/use-short-code-transform.js.map +1 -1
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
- package/build-module/gallery/v1/gallery.js +2 -2
- package/build-module/gallery/v1/gallery.js.map +1 -1
- package/build-module/heading/autogenerate-anchors.js +5 -2
- package/build-module/heading/autogenerate-anchors.js.map +1 -1
- package/build-module/heading/deprecated.js.map +1 -1
- package/build-module/heading/edit.js +6 -2
- package/build-module/heading/edit.js.map +1 -1
- package/build-module/heading/index.js +1 -0
- package/build-module/heading/index.js.map +1 -1
- package/build-module/heading/transforms.js +1 -0
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/edit.js +4 -52
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +57 -6
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +6 -16
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +5 -0
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/transforms.js.map +1 -1
- package/build-module/image/utils.js +2 -2
- package/build-module/image/utils.js.map +1 -1
- package/build-module/index.js +42 -10
- package/build-module/index.js.map +1 -1
- package/build-module/is-block-metadata-experimental.js +16 -0
- package/build-module/is-block-metadata-experimental.js.map +1 -0
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +31 -7
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/index.js.map +1 -1
- package/build-module/list/transforms.js +6 -0
- package/build-module/list/transforms.js.map +1 -1
- package/build-module/list/v2/edit.js +2 -1
- package/build-module/list/v2/edit.js.map +1 -1
- package/build-module/list/v2/migrate.js +1 -3
- package/build-module/list/v2/migrate.js.map +1 -1
- package/build-module/list/v2/transforms.js +46 -9
- package/build-module/list/v2/transforms.js.map +1 -1
- package/build-module/list-item/edit.js +8 -9
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/index.js +3 -0
- package/build-module/list-item/hooks/index.js.map +1 -1
- package/build-module/list-item/hooks/use-backspace.js +44 -0
- package/build-module/list-item/hooks/use-backspace.js.map +1 -0
- package/build-module/list-item/hooks/use-enter.js +6 -9
- package/build-module/list-item/hooks/use-enter.js.map +1 -1
- package/build-module/list-item/hooks/use-indent-list-item.js +33 -38
- package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +40 -0
- package/build-module/list-item/hooks/use-space.js.map +1 -0
- package/build-module/list-item/hooks/use-split.js +33 -0
- package/build-module/list-item/hooks/use-split.js.map +1 -0
- package/build-module/list-item/index.js +1 -0
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/list-item/utils.js +1 -1
- package/build-module/list-item/utils.js.map +1 -1
- package/build-module/media-text/deprecated.js +3 -1
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.native.js +2 -1
- package/build-module/media-text/edit.native.js.map +1 -1
- package/build-module/media-text/media-container.js +3 -1
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/media-container.native.js +2 -4
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/media-text/save.js +4 -1
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/media-text/transforms.js +137 -8
- package/build-module/media-text/transforms.js.map +1 -1
- package/build-module/missing/edit.native.js.map +1 -1
- package/build-module/navigation/deprecated.js.map +1 -1
- package/build-module/navigation/edit/index.js +87 -82
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +2 -6
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/use-navigation-entities.js +1 -1
- package/build-module/navigation/use-navigation-entities.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +130 -38
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation/use-template-part-area-label.js +4 -1
- package/build-module/navigation/use-template-part-area-label.js.map +1 -1
- package/build-module/navigation-link/edit.js +44 -13
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/fallback-variations.js +1 -1
- package/build-module/navigation-link/fallback-variations.js.map +1 -1
- package/build-module/navigation-link/hooks.js +2 -2
- package/build-module/navigation-link/hooks.js.map +1 -1
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/convert-to-links-modal.js +1 -1
- package/build-module/page-list/convert-to-links-modal.js.map +1 -1
- package/build-module/page-list/edit.js +1 -1
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/paragraph/deprecated.js +2 -2
- package/build-module/paragraph/deprecated.js.map +1 -1
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-author/edit.js +1 -1
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-author-name/index.js +3 -0
- package/build-module/post-author-name/index.js.map +1 -1
- package/build-module/post-author-name/transforms.js +32 -0
- package/build-module/post-author-name/transforms.js.map +1 -0
- package/build-module/post-comment/index.js +1 -0
- package/build-module/post-comment/index.js.map +1 -1
- package/build-module/post-comments/edit.js +35 -16
- package/build-module/post-comments/edit.js.map +1 -1
- package/build-module/post-comments-count/index.js +1 -0
- package/build-module/post-comments-count/index.js.map +1 -1
- package/build-module/post-comments-form/form.js +8 -2
- package/build-module/post-comments-form/form.js.map +1 -1
- package/build-module/post-comments-link/index.js +1 -0
- package/build-module/post-comments-link/index.js.map +1 -1
- package/build-module/post-content/edit.js.map +1 -1
- package/build-module/post-date/edit.js +15 -9
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-featured-image/edit.js +11 -24
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-navigation-link/index.js +4 -0
- package/build-module/post-navigation-link/index.js.map +1 -1
- package/build-module/post-template/edit.js +7 -2
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/post-terms/edit.js +10 -3
- package/build-module/post-terms/edit.js.map +1 -1
- package/build-module/post-terms/hooks.js +25 -0
- package/build-module/post-terms/hooks.js.map +1 -0
- package/build-module/post-terms/index.js +10 -8
- package/build-module/post-terms/index.js.map +1 -1
- package/build-module/post-title/index.js +1 -1
- package/build-module/post-title/index.js.map +1 -1
- package/build-module/pullquote/deprecated.js.map +1 -1
- package/build-module/pullquote/edit.js +2 -2
- package/build-module/pullquote/edit.js.map +1 -1
- package/build-module/pullquote/edit.native.js +2 -2
- package/build-module/pullquote/edit.native.js.map +1 -1
- package/build-module/query/edit/index.js +5 -1
- package/build-module/query/edit/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +24 -17
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/parent-control.js +135 -0
- package/build-module/query/edit/inspector-controls/parent-control.js.map +1 -0
- package/build-module/query/edit/inspector-controls/sticky-control.js +31 -0
- package/build-module/query/edit/inspector-controls/sticky-control.js.map +1 -0
- package/build-module/query/edit/query-toolbar.js +14 -2
- package/build-module/query/edit/query-toolbar.js.map +1 -1
- package/build-module/query/index.js +2 -1
- package/build-module/query/index.js.map +1 -1
- package/build-module/query/utils.js +21 -0
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-title/index.js +1 -1
- package/build-module/query-title/index.js.map +1 -1
- package/build-module/query-title/variations.js +2 -2
- package/build-module/query-title/variations.js.map +1 -1
- package/build-module/quote/edit.js +4 -3
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/quote/v2/edit.js +2 -2
- package/build-module/quote/v2/edit.js.map +1 -1
- package/build-module/search/edit.js +3 -2
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/search/index.js +4 -0
- package/build-module/search/index.js.map +1 -1
- package/build-module/separator/use-deprecated-opacity.js.map +1 -1
- package/build-module/shortcode/edit.native.js +17 -13
- package/build-module/shortcode/edit.native.js.map +1 -1
- package/build-module/site-logo/edit.js +4 -12
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/social-links/deprecated.js.map +1 -1
- package/build-module/social-links/edit.js +2 -2
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/social-links/edit.native.js.map +1 -1
- package/build-module/spacer/controls.js.map +1 -1
- package/build-module/table/deprecated.js.map +1 -1
- package/build-module/table/edit.js +17 -4
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table/index.js +6 -1
- package/build-module/table/index.js.map +1 -1
- package/build-module/table/state.js.map +1 -1
- package/build-module/table-of-contents/edit.js +144 -68
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/table-of-contents/index.js +12 -3
- package/build-module/table-of-contents/index.js.map +1 -1
- package/build-module/table-of-contents/list.js +18 -10
- package/build-module/table-of-contents/list.js.map +1 -1
- package/build-module/table-of-contents/save.js +28 -0
- package/build-module/table-of-contents/save.js.map +1 -0
- package/build-module/table-of-contents/utils.js +11 -73
- package/build-module/table-of-contents/utils.js.map +1 -1
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/advanced-controls.js +4 -1
- package/build-module/template-part/edit/advanced-controls.js.map +1 -1
- package/build-module/template-part/edit/index.js +8 -4
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/inner-blocks.js +4 -9
- package/build-module/template-part/edit/inner-blocks.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +4 -1
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/transformationCategories.native.js.map +1 -1
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-module/video/edit.js +2 -2
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +42 -1
- package/build-module/video/edit.native.js.map +1 -1
- package/build-module/video/index.js +6 -1
- package/build-module/video/index.js.map +1 -1
- package/build-style/audio/style-rtl.css +0 -3
- package/build-style/audio/style.css +0 -3
- package/build-style/button/style-rtl.css +0 -5
- package/build-style/button/style.css +0 -5
- package/build-style/common-rtl.css +1 -3
- package/build-style/common.css +1 -3
- package/build-style/cover/editor-rtl.css +11 -0
- package/build-style/cover/editor.css +11 -0
- package/build-style/cover/style-rtl.css +33 -25
- package/build-style/cover/style.css +33 -25
- package/build-style/editor-rtl.css +15 -45
- package/build-style/editor.css +15 -45
- package/build-style/embed/style-rtl.css +0 -1
- package/build-style/embed/style.css +0 -1
- package/build-style/file/style-rtl.css +9 -7
- package/build-style/file/style.css +9 -7
- package/build-style/gallery/style-rtl.css +2 -4
- package/build-style/gallery/style.css +2 -4
- package/build-style/image/editor-rtl.css +1 -1
- package/build-style/image/editor.css +1 -1
- package/build-style/image/style-rtl.css +0 -3
- package/build-style/image/style.css +0 -3
- package/build-style/post-comments/style-rtl.css +22 -0
- package/build-style/post-comments/style.css +22 -0
- package/build-style/post-comments-form/style-rtl.css +1 -3
- package/build-style/post-comments-form/style.css +1 -3
- package/build-style/post-featured-image/editor-rtl.css +0 -27
- package/build-style/post-featured-image/editor.css +0 -27
- package/build-style/search/style-rtl.css +4 -4
- package/build-style/search/style.css +4 -4
- package/build-style/separator/editor-rtl.css +1 -0
- package/build-style/separator/editor.css +1 -0
- package/build-style/site-logo/editor-rtl.css +0 -12
- package/build-style/site-logo/editor.css +0 -12
- package/build-style/site-logo/style-rtl.css +4 -0
- package/build-style/site-logo/style.css +4 -0
- package/build-style/style-rtl.css +77 -64
- package/build-style/style.css +77 -64
- package/build-style/table/style-rtl.css +0 -1
- package/build-style/table/style.css +0 -1
- package/build-style/video/editor-rtl.css +2 -5
- package/build-style/video/editor.css +2 -5
- package/build-style/video/style-rtl.css +1 -5
- package/build-style/video/style.css +1 -5
- package/build-types/table-of-contents/list.d.ts +12 -0
- package/build-types/table-of-contents/list.d.ts.map +1 -0
- package/build-types/table-of-contents/utils.d.ts +24 -0
- package/build-types/table-of-contents/utils.d.ts.map +1 -0
- package/package.json +32 -30
- package/src/audio/block.json +6 -1
- package/src/audio/edit.js +4 -2
- package/src/audio/index.js +1 -2
- package/src/audio/style.scss +0 -2
- package/src/avatar/block.json +0 -1
- package/src/avatar/hooks.js +9 -6
- package/src/avatar/index.php +2 -2
- package/src/block/edit.js +43 -48
- package/src/block/edit.native.js +12 -16
- package/src/block/test/edit.native.js +6 -9
- package/src/button/block.json +25 -1
- package/src/button/deprecated.js +145 -36
- package/src/button/edit.js +7 -11
- package/src/button/edit.native.js +2 -3
- package/src/button/save.js +5 -11
- package/src/button/style.scss +0 -5
- package/src/buttons/deprecated.js +4 -6
- package/src/buttons/edit.js +3 -3
- package/src/buttons/edit.native.js +7 -11
- package/src/buttons/test/__snapshots__/edit.native.js.snap +1 -1
- package/src/buttons/test/edit.native.js +1 -1
- package/src/categories/block.json +1 -1
- package/src/categories/edit.js +1 -1
- package/src/column/deprecated.js +2 -1
- package/src/column/edit.js +2 -3
- package/src/column/edit.native.js +2 -2
- package/src/columns/block.json +3 -1
- package/src/columns/deprecated.js +4 -2
- package/src/columns/edit.js +6 -7
- package/src/columns/edit.native.js +12 -16
- package/src/columns/index.js +1 -2
- package/src/columns/utils.js +5 -3
- package/src/comment-author-avatar/block.json +1 -0
- package/src/comment-author-name/edit.js +2 -2
- package/src/comment-date/edit.js +1 -1
- package/src/comments-title/block.json +0 -6
- package/src/comments-title/deprecated.js +34 -0
- package/src/comments-title/edit.js +44 -100
- package/src/comments-title/index.js +3 -1
- package/src/comments-title/index.php +41 -23
- package/src/cover/controls.native.js +3 -6
- package/src/cover/deprecated.js +237 -195
- package/src/cover/edit/block-controls.js +110 -0
- package/src/cover/edit/cover-placeholder.js +39 -0
- package/src/cover/edit/index.js +396 -0
- package/src/cover/edit/inspector-controls.js +317 -0
- package/src/cover/edit/resizable-cover.js +55 -0
- package/src/cover/{use-cover-is-dark.js → edit/use-cover-is-dark.js} +0 -0
- package/src/cover/edit.native.js +8 -14
- package/src/cover/editor.scss +14 -1
- package/src/cover/focal-point-settings-button.native.js +1 -1
- package/src/cover/index.php +20 -37
- package/src/cover/save.js +28 -16
- package/src/cover/shared.js +5 -3
- package/src/cover/style.scss +27 -22
- package/src/cover/test/block-controls.js +62 -0
- package/src/cover/test/edit.native.js +4 -7
- package/src/cover/transforms.js +2 -7
- package/src/embed/block.json +6 -1
- package/src/embed/edit.js +38 -40
- package/src/embed/edit.native.js +46 -49
- package/src/embed/embed-controls.native.js +2 -3
- package/src/embed/embed-preview.js +4 -2
- package/src/embed/style.scss +0 -1
- package/src/embed/test/index.native.js +24 -50
- package/src/file/edit.js +7 -5
- package/src/file/edit.native.js +14 -26
- package/src/file/index.js +1 -2
- package/src/file/save.js +14 -2
- package/src/file/style.scss +15 -14
- package/src/gallery/block.json +1 -1
- package/src/gallery/edit.js +10 -7
- package/src/gallery/gallery.js +2 -2
- package/src/gallery/gallery.native.js +2 -4
- package/src/gallery/gap-styles.js +21 -6
- package/src/gallery/index.js +2 -4
- package/src/gallery/index.php +23 -12
- package/src/gallery/shared.js +25 -11
- package/src/gallery/test/index.native.js +18 -34
- package/src/gallery/use-get-media.js +2 -1
- package/src/gallery/use-short-code-transform.js +19 -16
- package/src/gallery/v1/edit.js +15 -20
- package/src/gallery/v1/gallery-image.js +6 -11
- package/src/gallery/v1/gallery-image.native.js +8 -17
- package/src/gallery/v1/gallery.js +2 -2
- package/src/heading/autogenerate-anchors.js +8 -5
- package/src/heading/block.json +1 -0
- package/src/heading/deprecated.js +6 -21
- package/src/heading/edit.js +7 -5
- package/src/image/block.json +5 -0
- package/src/image/deprecated.js +6 -29
- package/src/image/edit.js +0 -44
- package/src/image/edit.native.js +74 -25
- package/src/image/editor.scss +1 -1
- package/src/image/image.js +41 -51
- package/src/image/style.scss +0 -2
- package/src/image/styles.native.scss +11 -0
- package/src/image/test/edit.native.js +7 -7
- package/src/image/transforms.js +4 -3
- package/src/image/utils.js +2 -2
- package/src/index.js +51 -28
- package/src/is-block-metadata-experimental.js +19 -0
- package/src/latest-comments/edit.js +2 -6
- package/src/latest-posts/edit.js +33 -9
- package/src/latest-posts/edit.native.js +10 -15
- package/src/latest-posts/index.php +12 -6
- package/src/list/index.js +1 -2
- package/src/list/test/migrate.js +1 -2
- package/src/list/transforms.js +7 -0
- package/src/list/v2/edit.js +7 -9
- package/src/list/v2/migrate.js +1 -1
- package/src/list/v2/transforms.js +35 -0
- package/src/list-item/block.json +2 -1
- package/src/list-item/edit.js +17 -10
- package/src/list-item/hooks/index.js +3 -0
- package/src/list-item/hooks/use-backspace.js +51 -0
- package/src/list-item/hooks/use-enter.js +8 -16
- package/src/list-item/hooks/use-indent-list-item.js +49 -63
- package/src/list-item/hooks/use-outdent-list-item.js +2 -3
- package/src/list-item/hooks/use-space.js +47 -0
- package/src/list-item/hooks/use-split.js +33 -0
- package/src/list-item/utils.js +1 -1
- package/src/media-text/deprecated.js +6 -3
- package/src/media-text/edit.native.js +5 -6
- package/src/media-text/media-container.js +1 -1
- package/src/media-text/media-container.native.js +8 -13
- package/src/media-text/save.js +2 -1
- package/src/media-text/transforms.js +154 -0
- package/src/missing/edit.native.js +2 -3
- package/src/missing/test/edit-integration.native.js +2 -3
- package/src/missing/test/edit.native.js +6 -9
- package/src/navigation/deprecated.js +2 -5
- package/src/navigation/edit/index.js +195 -201
- package/src/navigation/edit/inner-blocks.js +1 -8
- package/src/navigation/edit/navigation-menu-delete-control.js +2 -3
- package/src/navigation/edit/unsaved-inner-blocks.js +31 -30
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +2 -3
- package/src/navigation/index.php +40 -0
- package/src/navigation/test/use-navigation-menu.js +236 -0
- package/src/navigation/use-navigation-entities.js +12 -14
- package/src/navigation/use-navigation-menu.js +152 -82
- package/src/navigation/use-template-part-area-label.js +8 -7
- package/src/navigation-link/edit.js +59 -25
- package/src/navigation-link/fallback-variations.js +1 -1
- package/src/navigation-link/hooks.js +2 -2
- package/src/navigation-link/test/__snapshots__/hooks.js.snap +4 -4
- package/src/navigation-link/test/edit.js +2 -24
- package/src/navigation-submenu/edit.js +10 -20
- package/src/page-list/convert-to-links-modal.js +52 -55
- package/src/page-list/edit.js +7 -10
- package/src/page-list/test/convert-to-links-modal.js +6 -12
- package/src/paragraph/deprecated.js +2 -2
- package/src/pattern/edit.js +2 -4
- package/src/post-author/edit.js +26 -25
- package/src/post-author/index.php +3 -2
- package/src/post-author-name/block.json +1 -0
- package/src/post-author-name/index.js +2 -0
- package/src/post-author-name/index.php +1 -1
- package/src/post-author-name/transforms.js +25 -0
- package/src/post-comment/block.json +1 -0
- package/src/post-comments/edit.js +54 -22
- package/src/post-comments/index.php +1 -1
- package/src/post-comments/style.scss +26 -0
- package/src/post-comments-count/block.json +1 -0
- package/src/post-comments-form/form.js +12 -5
- package/src/post-comments-form/index.php +1 -1
- package/src/post-comments-form/style.scss +1 -4
- package/src/post-comments-link/block.json +1 -0
- package/src/post-content/edit.js +2 -3
- package/src/post-date/edit.js +4 -3
- package/src/post-featured-image/edit.js +15 -31
- package/src/post-featured-image/editor.scss +0 -29
- package/src/post-navigation-link/block.json +4 -0
- package/src/post-template/edit.js +5 -0
- package/src/post-template/index.php +30 -0
- package/src/post-terms/edit.js +19 -0
- package/src/post-terms/hooks.js +27 -0
- package/src/post-terms/index.js +14 -7
- package/src/post-terms/index.php +40 -2
- package/src/post-title/index.js +1 -1
- package/src/pullquote/deprecated.js +2 -1
- package/src/pullquote/edit.js +2 -2
- package/src/pullquote/edit.native.js +2 -2
- package/src/query/block.json +2 -1
- package/src/query/edit/index.js +10 -10
- package/src/query/edit/inspector-controls/index.js +25 -11
- package/src/query/edit/inspector-controls/parent-control.js +132 -0
- package/src/query/edit/inspector-controls/sticky-control.js +25 -0
- package/src/query/edit/query-toolbar.js +25 -5
- package/src/query/utils.js +22 -0
- package/src/query-pagination/index.php +0 -1
- package/src/query-title/index.js +1 -1
- package/src/query-title/variations.js +2 -2
- package/src/quote/edit.js +5 -2
- package/src/quote/v2/edit.js +8 -8
- package/src/quote/v2/test/migrate.js +1 -2
- package/src/search/block.json +4 -0
- package/src/search/edit.js +10 -13
- package/src/search/edit.native.js +4 -6
- package/src/search/index.php +29 -16
- package/src/search/style.scss +2 -1
- package/src/separator/editor.scss +1 -0
- package/src/separator/use-deprecated-opacity.js +2 -4
- package/src/shortcode/edit.native.js +30 -15
- package/src/shortcode/style.native.scss +11 -4
- package/src/shortcode/test/__snapshots__/edit.native.js.snap +9 -0
- package/src/shortcode/test/edit.native.js +55 -40
- package/src/site-logo/edit.js +4 -18
- package/src/site-logo/editor.scss +0 -14
- package/src/site-logo/style.scss +6 -0
- package/src/social-links/deprecated.js +4 -2
- package/src/social-links/edit.js +11 -10
- package/src/social-links/edit.native.js +3 -5
- package/src/spacer/controls.js +2 -3
- package/src/spacer/test/index.native.js +10 -21
- package/src/table/block.json +6 -1
- package/src/table/deprecated.js +4 -8
- package/src/table/edit.js +19 -4
- package/src/table/state.js +2 -4
- package/src/table/style.scss +0 -1
- package/src/table-of-contents/block.json +9 -2
- package/src/table-of-contents/edit.js +166 -77
- package/src/table-of-contents/index.js +2 -0
- package/src/table-of-contents/list.tsx +46 -0
- package/src/table-of-contents/save.js +25 -0
- package/src/table-of-contents/utils.ts +71 -0
- package/src/tag-cloud/block.json +1 -1
- package/src/tag-cloud/edit.js +4 -7
- package/src/template-part/edit/advanced-controls.js +4 -4
- package/src/template-part/edit/index.js +31 -25
- package/src/template-part/edit/inner-blocks.js +2 -10
- package/src/template-part/edit/utils/hooks.js +8 -7
- package/src/transformationCategories.native.js +3 -3
- package/src/video/block.json +6 -1
- package/src/video/edit-common-settings.js +2 -8
- package/src/video/edit.js +4 -2
- package/src/video/edit.native.js +38 -16
- package/src/video/editor.scss +3 -6
- package/src/video/index.js +1 -2
- package/src/video/style.scss +0 -2
- package/test/babel-plugin.js +67 -0
- package/tsconfig.json +11 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/build/cover/edit.js +0 -598
- package/build/cover/edit.js.map +0 -1
- package/build/cover/use-cover-is-dark.js.map +0 -1
- package/build/post-terms/variations.js +0 -37
- package/build/post-terms/variations.js.map +0 -1
- package/build-module/cover/edit.js +0 -575
- package/build-module/cover/edit.js.map +0 -1
- package/build-module/cover/use-cover-is-dark.js.map +0 -1
- package/build-module/post-terms/variations.js +0 -27
- package/build-module/post-terms/variations.js.map +0 -1
- package/src/cover/edit.js +0 -757
- package/src/post-terms/variations.js +0 -28
- package/src/table-of-contents/index.php +0 -346
- package/src/table-of-contents/list.js +0 -28
- package/src/table-of-contents/utils.js +0 -126
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { __ } from '@wordpress/i18n';
|
|
5
|
-
import { postCategories, postTerms } from '@wordpress/icons';
|
|
6
|
-
|
|
7
|
-
const variations = [
|
|
8
|
-
{
|
|
9
|
-
name: 'category',
|
|
10
|
-
title: __( 'Post Categories' ),
|
|
11
|
-
description: __( "Display a post's categories." ),
|
|
12
|
-
icon: postCategories,
|
|
13
|
-
isDefault: true,
|
|
14
|
-
attributes: { term: 'category' },
|
|
15
|
-
isActive: ( blockAttributes ) => blockAttributes.term === 'category',
|
|
16
|
-
},
|
|
17
|
-
|
|
18
|
-
{
|
|
19
|
-
name: 'post_tag',
|
|
20
|
-
title: __( 'Post Tags' ),
|
|
21
|
-
description: __( "Display a post's tags." ),
|
|
22
|
-
icon: postTerms,
|
|
23
|
-
attributes: { term: 'post_tag' },
|
|
24
|
-
isActive: ( blockAttributes ) => blockAttributes.term === 'post_tag',
|
|
25
|
-
},
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
export default variations;
|
|
@@ -1,346 +0,0 @@
|
|
|
1
|
-
<?php
|
|
2
|
-
/**
|
|
3
|
-
* Server-side rendering of the `core/table-of-contents` block.
|
|
4
|
-
*
|
|
5
|
-
* @package WordPress
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Extracts heading content, id, page, and level from the given post content.
|
|
10
|
-
*
|
|
11
|
-
* @access private
|
|
12
|
-
*
|
|
13
|
-
* @param string $content The post content to extract headings from.
|
|
14
|
-
* @param int $headings_page The page of the post where the headings are
|
|
15
|
-
* located.
|
|
16
|
-
*
|
|
17
|
-
* @return array The list of headings.
|
|
18
|
-
*/
|
|
19
|
-
function block_core_table_of_contents_get_headings_from_content(
|
|
20
|
-
$content,
|
|
21
|
-
$headings_page = 1
|
|
22
|
-
) {
|
|
23
|
-
/* phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase */
|
|
24
|
-
// Disabled because of PHP DOMDocument and DOMXPath APIs using camelCase.
|
|
25
|
-
|
|
26
|
-
// Create a document to load the post content into.
|
|
27
|
-
$doc = new DOMDocument();
|
|
28
|
-
|
|
29
|
-
// Enable user error handling for the HTML parsing. HTML5 elements aren't
|
|
30
|
-
// supported (as of PHP 7.4) and There's no way to guarantee that the markup
|
|
31
|
-
// is valid anyway, so we're just going to ignore all errors in parsing.
|
|
32
|
-
// Nested heading elements will still be parsed.
|
|
33
|
-
// The lack of HTML5 support is a libxml2 issue:
|
|
34
|
-
// https://bugzilla.gnome.org/show_bug.cgi?id=761534.
|
|
35
|
-
libxml_use_internal_errors( true );
|
|
36
|
-
|
|
37
|
-
// Parse the post content into an HTML document.
|
|
38
|
-
$doc->loadHTML(
|
|
39
|
-
// loadHTML expects ISO-8859-1, so we need to convert the post content to
|
|
40
|
-
// that format. We use htmlentities to encode Unicode characters not
|
|
41
|
-
// supported by ISO-8859-1 as HTML entities. However, this function also
|
|
42
|
-
// converts all special characters like < or > to HTML entities, so we use
|
|
43
|
-
// htmlspecialchars_decode to decode them.
|
|
44
|
-
htmlspecialchars_decode(
|
|
45
|
-
utf8_decode(
|
|
46
|
-
htmlentities(
|
|
47
|
-
'<html><body>' . $content . '</body></html>',
|
|
48
|
-
ENT_COMPAT,
|
|
49
|
-
'UTF-8',
|
|
50
|
-
false
|
|
51
|
-
)
|
|
52
|
-
),
|
|
53
|
-
ENT_COMPAT
|
|
54
|
-
)
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
// We're done parsing, so we can disable user error handling. This also
|
|
58
|
-
// clears any existing errors, which helps avoid a memory leak.
|
|
59
|
-
libxml_use_internal_errors( false );
|
|
60
|
-
|
|
61
|
-
// IE11 treats template elements like divs, so to avoid extracting heading
|
|
62
|
-
// elements from them, we first have to remove them.
|
|
63
|
-
// We can't use foreach directly on the $templates DOMNodeList because it's a
|
|
64
|
-
// dynamic list, and removing nodes confuses the foreach iterator. So
|
|
65
|
-
// instead, we convert the iterator to an array and then iterate over that.
|
|
66
|
-
$templates = iterator_to_array(
|
|
67
|
-
$doc->documentElement->getElementsByTagName( 'template' )
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
foreach ( $templates as $template ) {
|
|
71
|
-
$template->parentNode->removeChild( $template );
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
$xpath = new DOMXPath( $doc );
|
|
75
|
-
|
|
76
|
-
// Get all non-empty heading elements in the post content.
|
|
77
|
-
$headings = iterator_to_array(
|
|
78
|
-
$xpath->query(
|
|
79
|
-
'//*[self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6][text()!=""]'
|
|
80
|
-
)
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
return array_map(
|
|
84
|
-
function ( $heading ) use ( $headings_page ) {
|
|
85
|
-
$id = null;
|
|
86
|
-
|
|
87
|
-
if ( isset( $heading->attributes ) ) {
|
|
88
|
-
$id_attribute = $heading->attributes->getNamedItem( 'id' );
|
|
89
|
-
|
|
90
|
-
if ( null !== $id_attribute && '' !== $id_attribute->nodeValue ) {
|
|
91
|
-
$id = $id_attribute->nodeValue;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return array(
|
|
96
|
-
// A little hacky, but since we know at this point that the tag will
|
|
97
|
-
// be an h1-h6, we can just grab the 2nd character of the tag name
|
|
98
|
-
// and convert it to an integer. Should be faster than conditionals.
|
|
99
|
-
'level' => (int) $heading->nodeName[1],
|
|
100
|
-
'id' => $id,
|
|
101
|
-
'page' => $headings_page,
|
|
102
|
-
'content' => $heading->textContent,
|
|
103
|
-
);
|
|
104
|
-
},
|
|
105
|
-
$headings
|
|
106
|
-
);
|
|
107
|
-
/* phpcs:enable */
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Gets the content, anchor, level, and page of headings from a post. Returns
|
|
112
|
-
* data from all headings in a paginated post if $current_page_only is false;
|
|
113
|
-
* otherwise, returns only data from headings on the current page being
|
|
114
|
-
* rendered.
|
|
115
|
-
*
|
|
116
|
-
* @access private
|
|
117
|
-
*
|
|
118
|
-
* @param int $post_id Id of the post to extract headings from.
|
|
119
|
-
* @param bool $current_page_only Whether to include headings from the entire
|
|
120
|
-
* post, or just those from the current page (if
|
|
121
|
-
* the post is paginated).
|
|
122
|
-
*
|
|
123
|
-
* @return array The list of headings.
|
|
124
|
-
*/
|
|
125
|
-
function block_core_table_of_contents_get_headings(
|
|
126
|
-
$post_id,
|
|
127
|
-
$current_page_only
|
|
128
|
-
) {
|
|
129
|
-
global $multipage, $page, $pages;
|
|
130
|
-
|
|
131
|
-
if ( $multipage ) {
|
|
132
|
-
// Creates a list of heading lists, one list per page.
|
|
133
|
-
$pages_of_headings = array_map(
|
|
134
|
-
function( $page_content, $page_index ) {
|
|
135
|
-
return block_core_table_of_contents_get_headings_from_content(
|
|
136
|
-
$page_content,
|
|
137
|
-
$page_index + 1
|
|
138
|
-
);
|
|
139
|
-
},
|
|
140
|
-
$pages,
|
|
141
|
-
array_keys( $pages )
|
|
142
|
-
);
|
|
143
|
-
|
|
144
|
-
if ( $current_page_only ) {
|
|
145
|
-
// Return the headings from the current page.
|
|
146
|
-
return $pages_of_headings[ $page - 1 ];
|
|
147
|
-
} else {
|
|
148
|
-
// Concatenate the heading lists into a single array and return it.
|
|
149
|
-
return array_merge( ...$pages_of_headings );
|
|
150
|
-
}
|
|
151
|
-
} else {
|
|
152
|
-
// Only one page, so return headings from entire post_content.
|
|
153
|
-
return block_core_table_of_contents_get_headings_from_content(
|
|
154
|
-
get_post( $post_id )->post_content
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Converts a flat list of heading parameters to a hierarchical nested list
|
|
161
|
-
* based on each header's immediate parent's level.
|
|
162
|
-
*
|
|
163
|
-
* @access private
|
|
164
|
-
*
|
|
165
|
-
* @param array $heading_list Flat list of heading parameters to nest.
|
|
166
|
-
* @param int $index The current list index.
|
|
167
|
-
*
|
|
168
|
-
* @return array A hierarchical nested list of heading parameters.
|
|
169
|
-
*/
|
|
170
|
-
function block_core_table_of_contents_linear_to_nested_heading_list(
|
|
171
|
-
$heading_list,
|
|
172
|
-
$index = 0
|
|
173
|
-
) {
|
|
174
|
-
$nested_heading_list = array();
|
|
175
|
-
|
|
176
|
-
foreach ( $heading_list as $key => $heading ) {
|
|
177
|
-
// Make sure we are only working with the same level as the first
|
|
178
|
-
// iteration in our set.
|
|
179
|
-
if ( $heading['level'] === $heading_list[0]['level'] ) {
|
|
180
|
-
// Check that the next iteration will return a value.
|
|
181
|
-
// If it does and the next level is greater than the current level,
|
|
182
|
-
// the next iteration becomes a child of the current iteration.
|
|
183
|
-
if (
|
|
184
|
-
isset( $heading_list[ $key + 1 ] ) &&
|
|
185
|
-
$heading_list[ $key + 1 ]['level'] > $heading['level']
|
|
186
|
-
) {
|
|
187
|
-
// We need to calculate the last index before the next iteration
|
|
188
|
-
// that has the same level (siblings). We then use this last index
|
|
189
|
-
// to slice the array for use in recursion. This prevents duplicate
|
|
190
|
-
// nodes.
|
|
191
|
-
$heading_list_length = count( $heading_list );
|
|
192
|
-
$end_of_slice = $heading_list_length;
|
|
193
|
-
for ( $i = $key + 1; $i < $heading_list_length; $i++ ) {
|
|
194
|
-
if ( $heading_list[ $i ]['level'] === $heading['level'] ) {
|
|
195
|
-
$end_of_slice = $i;
|
|
196
|
-
break;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
// Found a child node: Push a new node onto the return array with
|
|
201
|
-
// children.
|
|
202
|
-
$nested_heading_list[] = array(
|
|
203
|
-
'heading' => $heading,
|
|
204
|
-
'index' => $index + $key,
|
|
205
|
-
'children' => block_core_table_of_contents_linear_to_nested_heading_list(
|
|
206
|
-
array_slice(
|
|
207
|
-
$heading_list,
|
|
208
|
-
$key + 1,
|
|
209
|
-
$end_of_slice - ( $key + 1 )
|
|
210
|
-
),
|
|
211
|
-
$index + $key + 1
|
|
212
|
-
),
|
|
213
|
-
);
|
|
214
|
-
} else {
|
|
215
|
-
// No child node: Push a new node onto the return array.
|
|
216
|
-
$nested_heading_list[] = array(
|
|
217
|
-
'heading' => $heading,
|
|
218
|
-
'index' => $index + $key,
|
|
219
|
-
'children' => null,
|
|
220
|
-
);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
return $nested_heading_list;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Renders the heading list of the `core/table-of-contents` block on server.
|
|
230
|
-
*
|
|
231
|
-
* @access private
|
|
232
|
-
*
|
|
233
|
-
* @param array $nested_heading_list Nested list of heading data.
|
|
234
|
-
* @param string $page_url URL of the page the block belongs to.
|
|
235
|
-
*
|
|
236
|
-
* @return string The heading list rendered as HTML.
|
|
237
|
-
*/
|
|
238
|
-
function block_core_table_of_contents_render_list(
|
|
239
|
-
$nested_heading_list,
|
|
240
|
-
$page_url
|
|
241
|
-
) {
|
|
242
|
-
$entry_class = 'wp-block-table-of-contents__entry';
|
|
243
|
-
|
|
244
|
-
$child_nodes = array_map(
|
|
245
|
-
function ( $child_node ) use ( $entry_class, $page_url ) {
|
|
246
|
-
global $multipage;
|
|
247
|
-
|
|
248
|
-
$id = $child_node['heading']['id'];
|
|
249
|
-
$content = $child_node['heading']['content'];
|
|
250
|
-
|
|
251
|
-
if ( isset( $id ) ) {
|
|
252
|
-
if ( $multipage ) {
|
|
253
|
-
$href = add_query_arg(
|
|
254
|
-
'page',
|
|
255
|
-
(string) $child_node['heading']['page'],
|
|
256
|
-
remove_query_arg( 'page', $page_url )
|
|
257
|
-
) . '#' . $id;
|
|
258
|
-
} else {
|
|
259
|
-
$href = $page_url . '#' . $id;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
$entry = sprintf(
|
|
263
|
-
'<a class="%1$s" href="%2$s">%3$s</a>',
|
|
264
|
-
esc_attr( $entry_class ),
|
|
265
|
-
esc_url( $href ),
|
|
266
|
-
esc_html( $content )
|
|
267
|
-
);
|
|
268
|
-
} else {
|
|
269
|
-
$entry = sprintf(
|
|
270
|
-
'<span class="%1$s">%2$s</span>',
|
|
271
|
-
esc_attr( $entry_class ),
|
|
272
|
-
esc_html( $content )
|
|
273
|
-
);
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
return sprintf(
|
|
277
|
-
'<li>%1$s%2$s</li>',
|
|
278
|
-
$entry,
|
|
279
|
-
$child_node['children']
|
|
280
|
-
? block_core_table_of_contents_render_list(
|
|
281
|
-
$child_node['children'],
|
|
282
|
-
esc_url( $page_url )
|
|
283
|
-
)
|
|
284
|
-
: null
|
|
285
|
-
);
|
|
286
|
-
},
|
|
287
|
-
$nested_heading_list
|
|
288
|
-
);
|
|
289
|
-
|
|
290
|
-
return '<ul>' . implode( $child_nodes ) . '</ul>';
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* Renders the `core/table-of-contents` block on server.
|
|
295
|
-
*
|
|
296
|
-
* @access private
|
|
297
|
-
*
|
|
298
|
-
* @param array $attributes Block attributes.
|
|
299
|
-
* @param string $content Block default content.
|
|
300
|
-
* @param WP_Block $block Block instance.
|
|
301
|
-
*
|
|
302
|
-
* @return string Rendered block HTML.
|
|
303
|
-
*/
|
|
304
|
-
function render_block_core_table_of_contents( $attributes, $content, $block ) {
|
|
305
|
-
if ( ! isset( $block->context['postId'] ) ) {
|
|
306
|
-
return '';
|
|
307
|
-
}
|
|
308
|
-
|
|
309
|
-
$headings = block_core_table_of_contents_get_headings(
|
|
310
|
-
$block->context['postId'],
|
|
311
|
-
$attributes['onlyIncludeCurrentPage']
|
|
312
|
-
);
|
|
313
|
-
|
|
314
|
-
// If there are no headings.
|
|
315
|
-
if ( count( $headings ) === 0 ) {
|
|
316
|
-
return '';
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
return sprintf(
|
|
320
|
-
'<nav %1$s>%2$s</nav>',
|
|
321
|
-
get_block_wrapper_attributes(),
|
|
322
|
-
block_core_table_of_contents_render_list(
|
|
323
|
-
block_core_table_of_contents_linear_to_nested_heading_list( $headings ),
|
|
324
|
-
get_permalink( $block->context['postId'] )
|
|
325
|
-
)
|
|
326
|
-
);
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Registers the `core/table-of-contents` block on server.
|
|
331
|
-
*
|
|
332
|
-
* @access private
|
|
333
|
-
*
|
|
334
|
-
* @uses render_block_core_table_of_contents()
|
|
335
|
-
*
|
|
336
|
-
* @throws WP_Error An exception parsing the block definition.
|
|
337
|
-
*/
|
|
338
|
-
function register_block_core_table_of_contents() {
|
|
339
|
-
register_block_type_from_metadata(
|
|
340
|
-
__DIR__ . '/table-of-contents',
|
|
341
|
-
array(
|
|
342
|
-
'render_callback' => 'render_block_core_table_of_contents',
|
|
343
|
-
)
|
|
344
|
-
);
|
|
345
|
-
}
|
|
346
|
-
add_action( 'init', 'register_block_core_table_of_contents' );
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
const ENTRY_CLASS_NAME = 'wp-block-table-of-contents__entry';
|
|
2
|
-
|
|
3
|
-
export default function TableOfContentsList( { nestedHeadingList } ) {
|
|
4
|
-
return nestedHeadingList.map( ( childNode, index ) => {
|
|
5
|
-
const { anchor, content } = childNode.heading;
|
|
6
|
-
|
|
7
|
-
const entry = anchor ? (
|
|
8
|
-
<a className={ ENTRY_CLASS_NAME } href={ anchor }>
|
|
9
|
-
{ content }
|
|
10
|
-
</a>
|
|
11
|
-
) : (
|
|
12
|
-
<span className={ ENTRY_CLASS_NAME }>{ content }</span>
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
return (
|
|
16
|
-
<li key={ index }>
|
|
17
|
-
{ entry }
|
|
18
|
-
{ childNode.children ? (
|
|
19
|
-
<ul>
|
|
20
|
-
<TableOfContentsList
|
|
21
|
-
nestedHeadingList={ childNode.children }
|
|
22
|
-
/>
|
|
23
|
-
</ul>
|
|
24
|
-
) : null }
|
|
25
|
-
</li>
|
|
26
|
-
);
|
|
27
|
-
} );
|
|
28
|
-
}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @typedef WPHeadingData
|
|
3
|
-
*
|
|
4
|
-
* @property {string} anchor The anchor link to the heading, or '' if none.
|
|
5
|
-
* @property {string} content The plain text content of the heading.
|
|
6
|
-
* @property {number} level The heading level.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Extracts text, anchor, and level from a list of heading elements.
|
|
11
|
-
*
|
|
12
|
-
* @param {NodeList} headingElements The list of heading elements.
|
|
13
|
-
*
|
|
14
|
-
* @return {WPHeadingData[]} The list of heading parameters.
|
|
15
|
-
*/
|
|
16
|
-
export function getHeadingsFromHeadingElements( headingElements ) {
|
|
17
|
-
return [ ...headingElements ].map( ( heading ) => ( {
|
|
18
|
-
// A little hacky, but since we know at this point that the tag will
|
|
19
|
-
// be an H1-H6, we can just grab the 2nd character of the tag name and
|
|
20
|
-
// convert it to an integer. Should be faster than conditionals.
|
|
21
|
-
level: parseInt( heading.tagName[ 1 ], 10 ),
|
|
22
|
-
anchor: heading.hasAttribute( 'id' ) ? `#${ heading.id }` : '',
|
|
23
|
-
content: heading.textContent,
|
|
24
|
-
} ) );
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Extracts heading data from the provided content.
|
|
29
|
-
*
|
|
30
|
-
* @param {string} content The content to extract heading data from.
|
|
31
|
-
*
|
|
32
|
-
* @return {WPHeadingData[]} The list of heading parameters.
|
|
33
|
-
*/
|
|
34
|
-
export function getHeadingsFromContent( content ) {
|
|
35
|
-
// Create a temporary container to put the post content into, so we can
|
|
36
|
-
// use the DOM to find all the headings.
|
|
37
|
-
const tempPostContentDOM = document.createElement( 'div' );
|
|
38
|
-
tempPostContentDOM.innerHTML = content;
|
|
39
|
-
|
|
40
|
-
// Remove template elements so that headings inside them aren't counted.
|
|
41
|
-
// This is only needed for IE11, which doesn't recognize the element and
|
|
42
|
-
// treats it like a div.
|
|
43
|
-
for ( const template of tempPostContentDOM.querySelectorAll(
|
|
44
|
-
'template'
|
|
45
|
-
) ) {
|
|
46
|
-
template.remove();
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const headingElements = tempPostContentDOM.querySelectorAll(
|
|
50
|
-
'h1:not(:empty), h2:not(:empty), h3:not(:empty), h4:not(:empty), h5:not(:empty), h6:not(:empty)'
|
|
51
|
-
);
|
|
52
|
-
|
|
53
|
-
return getHeadingsFromHeadingElements( headingElements );
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* @typedef WPNestedHeadingData
|
|
58
|
-
*
|
|
59
|
-
* @property {WPHeadingData} heading The heading content, anchor,
|
|
60
|
-
* and level.
|
|
61
|
-
* @property {number} index The index of this heading
|
|
62
|
-
* node in the entire nested
|
|
63
|
-
* list of heading data.
|
|
64
|
-
* @property {WPNestedHeadingData[]|null} children The sub-headings of this
|
|
65
|
-
* heading, if any.
|
|
66
|
-
*/
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Takes a flat list of heading parameters and nests them based on each header's
|
|
70
|
-
* immediate parent's level.
|
|
71
|
-
*
|
|
72
|
-
* @param {WPHeadingData[]} headingList The flat list of headings to nest.
|
|
73
|
-
* @param {number} index The current list index.
|
|
74
|
-
*
|
|
75
|
-
* @return {WPNestedHeadingData[]} The nested list of headings.
|
|
76
|
-
*/
|
|
77
|
-
export function linearToNestedHeadingList( headingList, index = 0 ) {
|
|
78
|
-
const nestedHeadingList = [];
|
|
79
|
-
|
|
80
|
-
headingList.forEach( ( heading, key ) => {
|
|
81
|
-
if ( heading.content === '' ) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
// Make sure we are only working with the same level as the first iteration in our set.
|
|
86
|
-
if ( heading.level === headingList[ 0 ].level ) {
|
|
87
|
-
// Check that the next iteration will return a value.
|
|
88
|
-
// If it does and the next level is greater than the current level,
|
|
89
|
-
// the next iteration becomes a child of the current iteration.
|
|
90
|
-
if (
|
|
91
|
-
headingList[ key + 1 ] !== undefined &&
|
|
92
|
-
headingList[ key + 1 ].level > heading.level
|
|
93
|
-
) {
|
|
94
|
-
// We need to calculate the last index before the next iteration that has the same level (siblings).
|
|
95
|
-
// We then use this last index to slice the array for use in recursion.
|
|
96
|
-
// This prevents duplicate nodes.
|
|
97
|
-
let endOfSlice = headingList.length;
|
|
98
|
-
for ( let i = key + 1; i < headingList.length; i++ ) {
|
|
99
|
-
if ( headingList[ i ].level === heading.level ) {
|
|
100
|
-
endOfSlice = i;
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// We found a child node: Push a new node onto the return array with children.
|
|
106
|
-
nestedHeadingList.push( {
|
|
107
|
-
heading,
|
|
108
|
-
index: index + key,
|
|
109
|
-
children: linearToNestedHeadingList(
|
|
110
|
-
headingList.slice( key + 1, endOfSlice ),
|
|
111
|
-
index + key + 1
|
|
112
|
-
),
|
|
113
|
-
} );
|
|
114
|
-
} else {
|
|
115
|
-
// No child node: Push a new node onto the return array.
|
|
116
|
-
nestedHeadingList.push( {
|
|
117
|
-
heading,
|
|
118
|
-
index: index + key,
|
|
119
|
-
children: null,
|
|
120
|
-
} );
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
} );
|
|
124
|
-
|
|
125
|
-
return nestedHeadingList;
|
|
126
|
-
}
|