@wordpress/block-library 10.1.0 → 10.2.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 +18 -0
- package/build/accordion/block.json +1 -0
- package/build/accordion/edit.cjs +0 -1
- package/build/accordion/edit.cjs.map +2 -2
- package/build/accordion/view.cjs +23 -0
- package/build/accordion/view.cjs.map +2 -2
- package/build/accordion-heading/deprecated.cjs +121 -1
- package/build/accordion-heading/deprecated.cjs.map +2 -2
- package/build/accordion-heading/edit.cjs +18 -1
- package/build/accordion-heading/edit.cjs.map +3 -3
- package/build/accordion-heading/save.cjs +18 -1
- package/build/accordion-heading/save.cjs.map +3 -3
- package/build/accordion-panel/edit.cjs +1 -1
- package/build/accordion-panel/edit.cjs.map +2 -2
- package/build/archives/edit.cjs +0 -1
- package/build/archives/edit.cjs.map +2 -2
- package/build/audio/edit.cjs +0 -1
- package/build/audio/edit.cjs.map +2 -2
- package/build/avatar/edit.cjs +0 -1
- package/build/avatar/edit.cjs.map +2 -2
- package/build/avatar/user-control.cjs +0 -1
- package/build/avatar/user-control.cjs.map +2 -2
- package/build/button/edit.cjs +18 -8
- package/build/button/edit.cjs.map +2 -2
- package/build/categories/edit.cjs +0 -1
- package/build/categories/edit.cjs.map +2 -2
- package/build/code/transforms.cjs +5 -3
- package/build/code/transforms.cjs.map +2 -2
- package/build/column/edit.cjs +0 -1
- package/build/column/edit.cjs.map +2 -2
- package/build/columns/edit.cjs +0 -1
- package/build/columns/edit.cjs.map +2 -2
- package/build/columns/transforms.cjs +9 -2
- package/build/columns/transforms.cjs.map +2 -2
- package/build/comment-author-avatar/edit.cjs +0 -1
- package/build/comment-author-avatar/edit.cjs.map +2 -2
- package/build/comments-pagination/comments-pagination-arrow-controls.cjs +0 -1
- package/build/comments-pagination/comments-pagination-arrow-controls.cjs.map +2 -2
- package/build/cover/block.json +11 -0
- package/build/cover/edit/block-controls.cjs +11 -4
- package/build/cover/edit/block-controls.cjs.map +2 -2
- package/build/cover/edit/embed-video-url-input.cjs +5 -3
- package/build/cover/edit/embed-video-url-input.cjs.map +3 -3
- package/build/cover/edit/index.cjs +1 -1
- package/build/cover/edit/index.cjs.map +2 -2
- package/build/cover/edit/inspector-controls.cjs +1 -3
- package/build/cover/edit/inspector-controls.cjs.map +2 -2
- package/build/cover/embed-video-utils.cjs +17 -7
- package/build/cover/embed-video-utils.cjs.map +2 -2
- package/build/details/transforms.cjs +1 -1
- package/build/details/transforms.cjs.map +2 -2
- package/build/embed/edit.cjs +2 -3
- package/build/embed/edit.cjs.map +2 -2
- package/build/embed/embed-placeholder.cjs +20 -21
- package/build/embed/embed-placeholder.cjs.map +3 -3
- package/build/file/edit.cjs +4 -3
- package/build/file/edit.cjs.map +2 -2
- package/build/file/inspector.cjs +0 -2
- package/build/file/inspector.cjs.map +2 -2
- package/build/file/transforms.cjs +25 -60
- package/build/file/transforms.cjs.map +2 -2
- package/build/form/edit.cjs +0 -2
- package/build/form/edit.cjs.map +2 -2
- package/build/freeform/convert-to-blocks-button.cjs +52 -0
- package/build/freeform/convert-to-blocks-button.cjs.map +7 -0
- package/build/freeform/edit.cjs +14 -33
- package/build/freeform/edit.cjs.map +3 -3
- package/build/freeform/index.cjs +1 -7
- package/build/freeform/index.cjs.map +3 -3
- package/build/gallery/block.json +8 -3
- package/build/gallery/dynamic-gallery.cjs +263 -0
- package/build/gallery/dynamic-gallery.cjs.map +7 -0
- package/build/gallery/dynamic-source.cjs +85 -0
- package/build/gallery/dynamic-source.cjs.map +7 -0
- package/build/gallery/edit.cjs +286 -206
- package/build/gallery/edit.cjs.map +3 -3
- package/build/gallery/gallery.cjs +0 -3
- package/build/gallery/gallery.cjs.map +2 -2
- package/build/gallery/gap-styles.cjs +49 -13
- package/build/gallery/gap-styles.cjs.map +3 -3
- package/build/gallery/index.cjs +2 -0
- package/build/gallery/index.cjs.map +3 -3
- package/build/gallery/save.cjs +16 -12
- package/build/gallery/save.cjs.map +2 -2
- package/build/gallery/use-dynamic-gallery.cjs +181 -0
- package/build/gallery/use-dynamic-gallery.cjs.map +7 -0
- package/build/gallery/variations.cjs +54 -0
- package/build/gallery/variations.cjs.map +7 -0
- package/build/group/edit.cjs +1 -2
- package/build/group/edit.cjs.map +2 -2
- package/build/group/transforms.cjs +3 -7
- package/build/group/transforms.cjs.map +2 -2
- package/build/heading/edit.cjs +10 -3
- package/build/heading/edit.cjs.map +2 -2
- package/build/html/block.json +2 -2
- package/build/html/edit.cjs +65 -23
- package/build/html/edit.cjs.map +3 -3
- package/build/html/index.cjs +3 -3
- package/build/html/index.cjs.map +2 -2
- package/build/html/modal.cjs +4 -8
- package/build/html/modal.cjs.map +2 -2
- package/build/html/save.cjs +2 -4
- package/build/html/save.cjs.map +2 -2
- package/build/html/transforms.cjs +7 -5
- package/build/html/transforms.cjs.map +2 -2
- package/build/icon/components/custom-inserter/icon-grid.cjs +25 -12
- package/build/icon/components/custom-inserter/icon-grid.cjs.map +2 -2
- package/build/icon/components/custom-inserter/index.cjs +100 -31
- package/build/icon/components/custom-inserter/index.cjs.map +3 -3
- package/build/icon/edit.cjs +11 -12
- package/build/icon/edit.cjs.map +2 -2
- package/build/image/block.json +1 -1
- package/build/image/image.cjs +23 -70
- package/build/image/image.cjs.map +3 -3
- package/build/image/transforms.cjs +78 -0
- package/build/image/transforms.cjs.map +3 -3
- package/build/index.cjs +18 -8
- package/build/index.cjs.map +2 -2
- package/build/latest-comments/edit.cjs +0 -2
- package/build/latest-comments/edit.cjs.map +2 -2
- package/build/latest-posts/block.json +8 -9
- package/build/latest-posts/constants.cjs +0 -3
- package/build/latest-posts/constants.cjs.map +2 -2
- package/build/latest-posts/deprecated.cjs +100 -8
- package/build/latest-posts/deprecated.cjs.map +2 -2
- package/build/latest-posts/edit.cjs +67 -84
- package/build/latest-posts/edit.cjs.map +2 -2
- package/build/list/ordered-list-settings.cjs +0 -1
- package/build/list/ordered-list-settings.cjs.map +2 -2
- package/build/list-item/edit.cjs +1 -1
- package/build/list-item/edit.cjs.map +2 -2
- package/build/list-item/hooks/use-enter.cjs +14 -17
- package/build/list-item/hooks/use-enter.cjs.map +3 -3
- package/build/list-item/hooks/use-space.cjs +3 -2
- package/build/list-item/hooks/use-space.cjs.map +3 -3
- package/build/media-text/edit.cjs +0 -1
- package/build/media-text/edit.cjs.map +2 -2
- package/build/missing/edit.cjs +1 -3
- package/build/missing/edit.cjs.map +2 -2
- package/build/navigation/edit/index.cjs +0 -1
- package/build/navigation/edit/index.cjs.map +2 -2
- package/build/navigation/edit/overlay-menu-preview-controls.cjs +0 -1
- package/build/navigation/edit/overlay-menu-preview-controls.cjs.map +2 -2
- package/build/navigation/edit/overlay-menu-preview.cjs +0 -1
- package/build/navigation/edit/overlay-menu-preview.cjs.map +2 -2
- package/build/navigation/edit/overlay-template-part-selector.cjs +0 -1
- package/build/navigation/edit/overlay-template-part-selector.cjs.map +2 -2
- package/build/navigation/edit/overlay-visibility-control.cjs +0 -1
- package/build/navigation/edit/overlay-visibility-control.cjs.map +2 -2
- package/build/navigation-link/shared/use-link-preview.cjs +11 -1
- package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
- package/build/navigation-overlay-close/edit.cjs +0 -1
- package/build/navigation-overlay-close/edit.cjs.map +2 -2
- package/build/page-list/edit.cjs +0 -1
- package/build/page-list/edit.cjs.map +2 -2
- package/build/paragraph/block.json +1 -0
- package/build/paragraph/use-enter.cjs +3 -7
- package/build/paragraph/use-enter.cjs.map +3 -3
- package/build/playlist/block.json +28 -15
- package/build/playlist/context.cjs +36 -0
- package/build/playlist/context.cjs.map +7 -0
- package/build/playlist/edit.cjs +257 -81
- package/build/playlist/edit.cjs.map +3 -3
- package/build/playlist/index.cjs +1 -1
- package/build/playlist/index.cjs.map +2 -2
- package/build/playlist/utils.cjs +19 -8
- package/build/playlist/utils.cjs.map +3 -3
- package/build/playlist/view.cjs +87 -17
- package/build/playlist/view.cjs.map +2 -2
- package/build/playlist-track/block.json +4 -5
- package/build/playlist-track/edit.cjs +114 -70
- package/build/playlist-track/edit.cjs.map +3 -3
- package/build/post-author/edit.cjs +0 -2
- package/build/post-author/edit.cjs.map +2 -2
- package/build/post-content/block.json +1 -0
- package/build/post-excerpt/edit.cjs +0 -1
- package/build/post-excerpt/edit.cjs.map +2 -2
- package/build/post-featured-image/overlay-controls.cjs +1 -2
- package/build/post-featured-image/overlay-controls.cjs.map +2 -2
- package/build/post-navigation-link/edit.cjs +0 -2
- package/build/post-navigation-link/edit.cjs.map +2 -2
- package/build/post-template/block.json +2 -1
- package/build/post-template/edit.cjs +10 -1
- package/build/post-template/edit.cjs.map +2 -2
- package/build/pullquote/block.json +3 -1
- package/build/query/block.json +3 -2
- package/build/query/edit/inspector-controls/author-control.cjs +1 -2
- package/build/query/edit/inspector-controls/author-control.cjs.map +2 -2
- package/build/query/edit/inspector-controls/format-controls.cjs +1 -2
- package/build/query/edit/inspector-controls/format-controls.cjs.map +2 -2
- package/build/query/edit/inspector-controls/index.cjs +38 -7
- package/build/query/edit/inspector-controls/index.cjs.map +2 -2
- package/build/query/edit/inspector-controls/offset-controls.cjs +0 -1
- package/build/query/edit/inspector-controls/offset-controls.cjs.map +2 -2
- package/build/query/edit/inspector-controls/order-control.cjs +0 -1
- package/build/query/edit/inspector-controls/order-control.cjs.map +2 -2
- package/build/query/edit/inspector-controls/pages-control.cjs +0 -1
- package/build/query/edit/inspector-controls/pages-control.cjs.map +2 -2
- package/build/query/edit/inspector-controls/parent-control.cjs +0 -1
- package/build/query/edit/inspector-controls/parent-control.cjs.map +2 -2
- package/build/query/edit/inspector-controls/per-page-control.cjs +0 -1
- package/build/query/edit/inspector-controls/per-page-control.cjs.map +2 -2
- package/build/query/edit/inspector-controls/sticky-control.cjs +0 -1
- package/build/query/edit/inspector-controls/sticky-control.cjs.map +2 -2
- package/build/query/edit/inspector-controls/taxonomy-controls.cjs +1 -2
- package/build/query/edit/inspector-controls/taxonomy-controls.cjs.map +2 -2
- package/build/query/edit/query-content.cjs +10 -3
- package/build/query/edit/query-content.cjs.map +2 -2
- package/build/query/index.cjs +2 -1
- package/build/query/index.cjs.map +2 -2
- package/build/query-pagination/query-pagination-arrow-controls.cjs +0 -1
- package/build/query-pagination/query-pagination-arrow-controls.cjs.map +2 -2
- package/build/query-pagination-numbers/edit.cjs +0 -1
- package/build/query-pagination-numbers/edit.cjs.map +2 -2
- package/build/quote/block.json +3 -1
- package/build/quote/transforms.cjs +1 -7
- package/build/quote/transforms.cjs.map +2 -2
- package/build/rss/edit.cjs +0 -4
- package/build/rss/edit.cjs.map +2 -2
- package/build/search/edit.cjs +0 -4
- package/build/search/edit.cjs.map +2 -2
- package/build/separator/edit.cjs +1 -2
- package/build/separator/edit.cjs.map +2 -2
- package/build/site-logo/edit.cjs +34 -63
- package/build/site-logo/edit.cjs.map +3 -3
- package/build/social-links/edit.cjs +0 -1
- package/build/social-links/edit.cjs.map +2 -2
- package/build/spacer/controls.cjs +2 -4
- package/build/spacer/controls.cjs.map +2 -2
- package/build/spacer/edit.cjs +1 -2
- package/build/spacer/edit.cjs.map +2 -2
- package/build/tab-list/block.json +5 -4
- package/build/tab-list/edit.cjs +95 -54
- package/build/tab-list/edit.cjs.map +3 -3
- package/build/tab-list/save.cjs +4 -3
- package/build/tab-list/save.cjs.map +2 -2
- package/build/tab-panel/block.json +1 -6
- package/build/tab-panel/controls.cjs +2 -4
- package/build/tab-panel/controls.cjs.map +3 -3
- package/build/tab-panel/edit.cjs +15 -15
- package/build/tab-panel/edit.cjs.map +2 -2
- package/build/tab-panels/block.json +0 -1
- package/build/tab-panels/edit.cjs +2 -4
- package/build/tab-panels/edit.cjs.map +3 -3
- package/build/table-of-contents/edit.cjs +0 -1
- package/build/table-of-contents/edit.cjs.map +2 -2
- package/build/tabs/block.json +0 -5
- package/build/tabs/edit.cjs +6 -41
- package/build/tabs/edit.cjs.map +3 -3
- package/build/tabs/tab-toolbar-controls.cjs +74 -0
- package/build/tabs/tab-toolbar-controls.cjs.map +7 -0
- package/build/tabs/use-tab-actions.cjs +87 -0
- package/build/tabs/use-tab-actions.cjs.map +7 -0
- package/build/tabs/use-tab-list-items-sync.cjs +23 -5
- package/build/tabs/use-tab-list-items-sync.cjs.map +2 -2
- package/build/tag-cloud/edit.cjs +2 -6
- package/build/tag-cloud/edit.cjs.map +2 -2
- package/build/template-part/edit/advanced-controls.cjs +0 -1
- package/build/template-part/edit/advanced-controls.cjs.map +2 -2
- package/build/template-part/edit/import-controls.cjs +1 -2
- package/build/template-part/edit/import-controls.cjs.map +2 -2
- package/build/term-name/block.json +1 -3
- package/build/term-name/deprecated.cjs +105 -0
- package/build/term-name/deprecated.cjs.map +7 -0
- package/build/term-name/edit.cjs +11 -37
- package/build/term-name/edit.cjs.map +3 -3
- package/build/term-name/index.cjs +3 -1
- package/build/term-name/index.cjs.map +3 -3
- package/build/terms-query/edit/inspector-controls/include-control.cjs +0 -1
- package/build/terms-query/edit/inspector-controls/include-control.cjs.map +2 -2
- package/build/terms-query/edit/inspector-controls/inherit-control.cjs +0 -1
- package/build/terms-query/edit/inspector-controls/inherit-control.cjs.map +2 -2
- package/build/terms-query/edit/inspector-controls/max-terms-control.cjs +0 -1
- package/build/terms-query/edit/inspector-controls/max-terms-control.cjs.map +2 -2
- package/build/terms-query/edit/inspector-controls/order-control.cjs +0 -1
- package/build/terms-query/edit/inspector-controls/order-control.cjs.map +2 -2
- package/build/terms-query/edit/inspector-controls/taxonomy-control.cjs +0 -1
- package/build/terms-query/edit/inspector-controls/taxonomy-control.cjs.map +2 -2
- package/build/text-columns/edit.cjs +0 -1
- package/build/text-columns/edit.cjs.map +2 -2
- package/build/utils/waveform-player.cjs +138 -22
- package/build/utils/waveform-player.cjs.map +2 -2
- package/build/utils/waveform-utils.cjs +315 -17
- package/build/utils/waveform-utils.cjs.map +2 -2
- package/build/verse/block.json +3 -1
- package/build/video/block.json +6 -0
- package/build/video/edit-common-settings.cjs +0 -1
- package/build/video/edit-common-settings.cjs.map +2 -2
- package/build/video/edit.cjs +17 -1
- package/build/video/edit.cjs.map +2 -2
- package/build/video/index.cjs +2 -0
- package/build/video/index.cjs.map +3 -3
- package/build/video/save.cjs +7 -1
- package/build/video/save.cjs.map +2 -2
- package/build/video/tracks-editor.cjs +0 -1
- package/build/video/tracks-editor.cjs.map +2 -2
- package/build/video/variations.cjs +75 -0
- package/build/video/variations.cjs.map +7 -0
- package/build-module/accordion/block.json +1 -0
- package/build-module/accordion/edit.mjs +0 -1
- package/build-module/accordion/edit.mjs.map +2 -2
- package/build-module/accordion/view.mjs +23 -0
- package/build-module/accordion/view.mjs.map +2 -2
- package/build-module/accordion-heading/deprecated.mjs +121 -1
- package/build-module/accordion-heading/deprecated.mjs.map +2 -2
- package/build-module/accordion-heading/edit.mjs +8 -1
- package/build-module/accordion-heading/edit.mjs.map +2 -2
- package/build-module/accordion-heading/save.mjs +8 -1
- package/build-module/accordion-heading/save.mjs.map +2 -2
- package/build-module/accordion-panel/edit.mjs +1 -1
- package/build-module/accordion-panel/edit.mjs.map +2 -2
- package/build-module/archives/edit.mjs +0 -1
- package/build-module/archives/edit.mjs.map +2 -2
- package/build-module/audio/edit.mjs +0 -1
- package/build-module/audio/edit.mjs.map +2 -2
- package/build-module/avatar/edit.mjs +0 -1
- package/build-module/avatar/edit.mjs.map +2 -2
- package/build-module/avatar/user-control.mjs +0 -1
- package/build-module/avatar/user-control.mjs.map +2 -2
- package/build-module/button/edit.mjs +19 -14
- package/build-module/button/edit.mjs.map +2 -2
- package/build-module/categories/edit.mjs +0 -1
- package/build-module/categories/edit.mjs.map +2 -2
- package/build-module/code/transforms.mjs +6 -4
- package/build-module/code/transforms.mjs.map +2 -2
- package/build-module/column/edit.mjs +0 -1
- package/build-module/column/edit.mjs.map +2 -2
- package/build-module/columns/edit.mjs +0 -1
- package/build-module/columns/edit.mjs.map +2 -2
- package/build-module/columns/transforms.mjs +9 -2
- package/build-module/columns/transforms.mjs.map +2 -2
- package/build-module/comment-author-avatar/edit.mjs +0 -1
- package/build-module/comment-author-avatar/edit.mjs.map +2 -2
- package/build-module/comments-pagination/comments-pagination-arrow-controls.mjs +0 -1
- package/build-module/comments-pagination/comments-pagination-arrow-controls.mjs.map +2 -2
- package/build-module/cover/block.json +11 -0
- package/build-module/cover/edit/block-controls.mjs +11 -4
- package/build-module/cover/edit/block-controls.mjs.map +2 -2
- package/build-module/cover/edit/embed-video-url-input.mjs +5 -4
- package/build-module/cover/edit/embed-video-url-input.mjs.map +2 -2
- package/build-module/cover/edit/index.mjs +1 -1
- package/build-module/cover/edit/index.mjs.map +2 -2
- package/build-module/cover/edit/inspector-controls.mjs +1 -3
- package/build-module/cover/edit/inspector-controls.mjs.map +2 -2
- package/build-module/cover/embed-video-utils.mjs +16 -7
- package/build-module/cover/embed-video-utils.mjs.map +2 -2
- package/build-module/details/transforms.mjs +2 -2
- package/build-module/details/transforms.mjs.map +2 -2
- package/build-module/embed/edit.mjs +2 -3
- package/build-module/embed/edit.mjs.map +2 -2
- package/build-module/embed/embed-placeholder.mjs +20 -24
- package/build-module/embed/embed-placeholder.mjs.map +2 -2
- package/build-module/file/edit.mjs +4 -3
- package/build-module/file/edit.mjs.map +2 -2
- package/build-module/file/inspector.mjs +0 -2
- package/build-module/file/inspector.mjs.map +2 -2
- package/build-module/file/transforms.mjs +25 -60
- package/build-module/file/transforms.mjs.map +2 -2
- package/build-module/form/edit.mjs +0 -2
- package/build-module/form/edit.mjs.map +2 -2
- package/build-module/freeform/convert-to-blocks-button.mjs +31 -0
- package/build-module/freeform/convert-to-blocks-button.mjs.map +7 -0
- package/build-module/freeform/edit.mjs +15 -34
- package/build-module/freeform/edit.mjs.map +2 -2
- package/build-module/freeform/index.mjs +1 -7
- package/build-module/freeform/index.mjs.map +2 -2
- package/build-module/gallery/block.json +8 -3
- package/build-module/gallery/dynamic-gallery.mjs +253 -0
- package/build-module/gallery/dynamic-gallery.mjs.map +7 -0
- package/build-module/gallery/dynamic-source.mjs +55 -0
- package/build-module/gallery/dynamic-source.mjs.map +7 -0
- package/build-module/gallery/edit.mjs +291 -209
- package/build-module/gallery/edit.mjs.map +2 -2
- package/build-module/gallery/gallery.mjs +0 -3
- package/build-module/gallery/gallery.mjs.map +2 -2
- package/build-module/gallery/gap-styles.mjs +53 -14
- package/build-module/gallery/gap-styles.mjs.map +2 -2
- package/build-module/gallery/index.mjs +2 -0
- package/build-module/gallery/index.mjs.map +2 -2
- package/build-module/gallery/save.mjs +16 -12
- package/build-module/gallery/save.mjs.map +2 -2
- package/build-module/gallery/use-dynamic-gallery.mjs +167 -0
- package/build-module/gallery/use-dynamic-gallery.mjs.map +7 -0
- package/build-module/gallery/variations.mjs +33 -0
- package/build-module/gallery/variations.mjs.map +7 -0
- package/build-module/group/edit.mjs +1 -2
- package/build-module/group/edit.mjs.map +2 -2
- package/build-module/group/transforms.mjs +4 -8
- package/build-module/group/transforms.mjs.map +2 -2
- package/build-module/heading/edit.mjs +11 -4
- package/build-module/heading/edit.mjs.map +2 -2
- package/build-module/html/block.json +2 -2
- package/build-module/html/edit.mjs +69 -25
- package/build-module/html/edit.mjs.map +2 -2
- package/build-module/html/index.mjs +3 -3
- package/build-module/html/index.mjs.map +2 -2
- package/build-module/html/modal.mjs +4 -8
- package/build-module/html/modal.mjs.map +2 -2
- package/build-module/html/save.mjs +2 -4
- package/build-module/html/save.mjs.map +2 -2
- package/build-module/html/transforms.mjs +8 -6
- package/build-module/html/transforms.mjs.map +2 -2
- package/build-module/icon/components/custom-inserter/icon-grid.mjs +25 -12
- package/build-module/icon/components/custom-inserter/icon-grid.mjs.map +2 -2
- package/build-module/icon/components/custom-inserter/index.mjs +102 -33
- package/build-module/icon/components/custom-inserter/index.mjs.map +2 -2
- package/build-module/icon/edit.mjs +11 -12
- package/build-module/icon/edit.mjs.map +2 -2
- package/build-module/image/block.json +1 -1
- package/build-module/image/image.mjs +23 -71
- package/build-module/image/image.mjs.map +2 -2
- package/build-module/image/transforms.mjs +78 -0
- package/build-module/image/transforms.mjs.map +2 -2
- package/build-module/index.mjs +18 -8
- package/build-module/index.mjs.map +2 -2
- package/build-module/latest-comments/edit.mjs +0 -2
- package/build-module/latest-comments/edit.mjs.map +2 -2
- package/build-module/latest-posts/block.json +8 -9
- package/build-module/latest-posts/constants.mjs +0 -2
- package/build-module/latest-posts/constants.mjs.map +2 -2
- package/build-module/latest-posts/deprecated.mjs +100 -8
- package/build-module/latest-posts/deprecated.mjs.map +2 -2
- package/build-module/latest-posts/edit.mjs +67 -85
- package/build-module/latest-posts/edit.mjs.map +2 -2
- package/build-module/list/ordered-list-settings.mjs +0 -1
- package/build-module/list/ordered-list-settings.mjs.map +2 -2
- package/build-module/list-item/edit.mjs +1 -1
- package/build-module/list-item/edit.mjs.map +2 -2
- package/build-module/list-item/hooks/use-enter.mjs +15 -21
- package/build-module/list-item/hooks/use-enter.mjs.map +2 -2
- package/build-module/list-item/hooks/use-space.mjs +4 -6
- package/build-module/list-item/hooks/use-space.mjs.map +2 -2
- package/build-module/media-text/edit.mjs +0 -1
- package/build-module/media-text/edit.mjs.map +2 -2
- package/build-module/missing/edit.mjs +1 -3
- package/build-module/missing/edit.mjs.map +2 -2
- package/build-module/navigation/edit/index.mjs +0 -1
- package/build-module/navigation/edit/index.mjs.map +2 -2
- package/build-module/navigation/edit/overlay-menu-preview-controls.mjs +0 -1
- package/build-module/navigation/edit/overlay-menu-preview-controls.mjs.map +2 -2
- package/build-module/navigation/edit/overlay-menu-preview.mjs +0 -1
- package/build-module/navigation/edit/overlay-menu-preview.mjs.map +2 -2
- package/build-module/navigation/edit/overlay-template-part-selector.mjs +0 -1
- package/build-module/navigation/edit/overlay-template-part-selector.mjs.map +2 -2
- package/build-module/navigation/edit/overlay-visibility-control.mjs +0 -1
- package/build-module/navigation/edit/overlay-visibility-control.mjs.map +2 -2
- package/build-module/navigation-link/shared/use-link-preview.mjs +11 -1
- package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
- package/build-module/navigation-overlay-close/edit.mjs +0 -1
- package/build-module/navigation-overlay-close/edit.mjs.map +2 -2
- package/build-module/page-list/edit.mjs +0 -1
- package/build-module/page-list/edit.mjs.map +2 -2
- package/build-module/paragraph/block.json +1 -0
- package/build-module/paragraph/use-enter.mjs +4 -11
- package/build-module/paragraph/use-enter.mjs.map +2 -2
- package/build-module/playlist/block.json +28 -15
- package/build-module/playlist/context.mjs +11 -0
- package/build-module/playlist/context.mjs.map +7 -0
- package/build-module/playlist/edit.mjs +262 -84
- package/build-module/playlist/edit.mjs.map +2 -2
- package/build-module/playlist/index.mjs +1 -1
- package/build-module/playlist/index.mjs.map +2 -2
- package/build-module/playlist/utils.mjs +17 -7
- package/build-module/playlist/utils.mjs.map +2 -2
- package/build-module/playlist/view.mjs +93 -18
- package/build-module/playlist/view.mjs.map +2 -2
- package/build-module/playlist-track/block.json +4 -5
- package/build-module/playlist-track/edit.mjs +117 -72
- package/build-module/playlist-track/edit.mjs.map +2 -2
- package/build-module/post-author/edit.mjs +0 -2
- package/build-module/post-author/edit.mjs.map +2 -2
- package/build-module/post-content/block.json +1 -0
- package/build-module/post-excerpt/edit.mjs +0 -1
- package/build-module/post-excerpt/edit.mjs.map +2 -2
- package/build-module/post-featured-image/overlay-controls.mjs +1 -2
- package/build-module/post-featured-image/overlay-controls.mjs.map +2 -2
- package/build-module/post-navigation-link/edit.mjs +0 -2
- package/build-module/post-navigation-link/edit.mjs.map +2 -2
- package/build-module/post-template/block.json +2 -1
- package/build-module/post-template/edit.mjs +10 -1
- package/build-module/post-template/edit.mjs.map +2 -2
- package/build-module/pullquote/block.json +3 -1
- package/build-module/query/block.json +3 -2
- package/build-module/query/edit/inspector-controls/author-control.mjs +1 -2
- package/build-module/query/edit/inspector-controls/author-control.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/format-controls.mjs +1 -2
- package/build-module/query/edit/inspector-controls/format-controls.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/index.mjs +40 -8
- package/build-module/query/edit/inspector-controls/index.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/offset-controls.mjs +0 -1
- package/build-module/query/edit/inspector-controls/offset-controls.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/order-control.mjs +0 -1
- package/build-module/query/edit/inspector-controls/order-control.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/pages-control.mjs +0 -1
- package/build-module/query/edit/inspector-controls/pages-control.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/parent-control.mjs +0 -1
- package/build-module/query/edit/inspector-controls/parent-control.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/per-page-control.mjs +0 -1
- package/build-module/query/edit/inspector-controls/per-page-control.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/sticky-control.mjs +0 -1
- package/build-module/query/edit/inspector-controls/sticky-control.mjs.map +2 -2
- package/build-module/query/edit/inspector-controls/taxonomy-controls.mjs +1 -2
- package/build-module/query/edit/inspector-controls/taxonomy-controls.mjs.map +2 -2
- package/build-module/query/edit/query-content.mjs +10 -3
- package/build-module/query/edit/query-content.mjs.map +2 -2
- package/build-module/query/index.mjs +2 -1
- package/build-module/query/index.mjs.map +2 -2
- package/build-module/query-pagination/query-pagination-arrow-controls.mjs +0 -1
- package/build-module/query-pagination/query-pagination-arrow-controls.mjs.map +2 -2
- package/build-module/query-pagination-numbers/edit.mjs +0 -1
- package/build-module/query-pagination-numbers/edit.mjs.map +2 -2
- package/build-module/quote/block.json +3 -1
- package/build-module/quote/transforms.mjs +6 -8
- package/build-module/quote/transforms.mjs.map +2 -2
- package/build-module/rss/edit.mjs +0 -4
- package/build-module/rss/edit.mjs.map +2 -2
- package/build-module/search/edit.mjs +0 -4
- package/build-module/search/edit.mjs.map +2 -2
- package/build-module/separator/edit.mjs +1 -2
- package/build-module/separator/edit.mjs.map +2 -2
- package/build-module/site-logo/edit.mjs +34 -64
- package/build-module/site-logo/edit.mjs.map +2 -2
- package/build-module/social-links/edit.mjs +0 -1
- package/build-module/social-links/edit.mjs.map +2 -2
- package/build-module/spacer/controls.mjs +2 -4
- package/build-module/spacer/controls.mjs.map +2 -2
- package/build-module/spacer/edit.mjs +1 -2
- package/build-module/spacer/edit.mjs.map +2 -2
- package/build-module/tab-list/block.json +5 -4
- package/build-module/tab-list/edit.mjs +102 -56
- package/build-module/tab-list/edit.mjs.map +2 -2
- package/build-module/tab-list/save.mjs +5 -3
- package/build-module/tab-list/save.mjs.map +2 -2
- package/build-module/tab-panel/block.json +1 -6
- package/build-module/tab-panel/controls.mjs +2 -4
- package/build-module/tab-panel/controls.mjs.map +2 -2
- package/build-module/tab-panel/edit.mjs +16 -16
- package/build-module/tab-panel/edit.mjs.map +2 -2
- package/build-module/tab-panels/block.json +0 -1
- package/build-module/tab-panels/edit.mjs +2 -4
- package/build-module/tab-panels/edit.mjs.map +2 -2
- package/build-module/table-of-contents/edit.mjs +0 -1
- package/build-module/table-of-contents/edit.mjs.map +2 -2
- package/build-module/tabs/block.json +0 -5
- package/build-module/tabs/edit.mjs +7 -47
- package/build-module/tabs/edit.mjs.map +2 -2
- package/build-module/tabs/tab-toolbar-controls.mjs +46 -0
- package/build-module/tabs/tab-toolbar-controls.mjs.map +7 -0
- package/build-module/tabs/use-tab-actions.mjs +66 -0
- package/build-module/tabs/use-tab-actions.mjs.map +7 -0
- package/build-module/tabs/use-tab-list-items-sync.mjs +25 -7
- package/build-module/tabs/use-tab-list-items-sync.mjs.map +2 -2
- package/build-module/tag-cloud/edit.mjs +2 -6
- package/build-module/tag-cloud/edit.mjs.map +2 -2
- package/build-module/template-part/edit/advanced-controls.mjs +0 -1
- package/build-module/template-part/edit/advanced-controls.mjs.map +2 -2
- package/build-module/template-part/edit/import-controls.mjs +1 -2
- package/build-module/template-part/edit/import-controls.mjs.map +2 -2
- package/build-module/term-name/block.json +1 -3
- package/build-module/term-name/deprecated.mjs +74 -0
- package/build-module/term-name/deprecated.mjs.map +7 -0
- package/build-module/term-name/edit.mjs +11 -28
- package/build-module/term-name/edit.mjs.map +2 -2
- package/build-module/term-name/index.mjs +3 -1
- package/build-module/term-name/index.mjs.map +2 -2
- package/build-module/terms-query/edit/inspector-controls/include-control.mjs +0 -1
- package/build-module/terms-query/edit/inspector-controls/include-control.mjs.map +2 -2
- package/build-module/terms-query/edit/inspector-controls/inherit-control.mjs +0 -1
- package/build-module/terms-query/edit/inspector-controls/inherit-control.mjs.map +2 -2
- package/build-module/terms-query/edit/inspector-controls/max-terms-control.mjs +0 -1
- package/build-module/terms-query/edit/inspector-controls/max-terms-control.mjs.map +2 -2
- package/build-module/terms-query/edit/inspector-controls/order-control.mjs +0 -1
- package/build-module/terms-query/edit/inspector-controls/order-control.mjs.map +2 -2
- package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs +0 -1
- package/build-module/terms-query/edit/inspector-controls/taxonomy-control.mjs.map +2 -2
- package/build-module/text-columns/edit.mjs +0 -1
- package/build-module/text-columns/edit.mjs.map +2 -2
- package/build-module/utils/waveform-player.mjs +144 -23
- package/build-module/utils/waveform-player.mjs.map +2 -2
- package/build-module/utils/waveform-utils.mjs +310 -16
- package/build-module/utils/waveform-utils.mjs.map +2 -2
- package/build-module/verse/block.json +3 -1
- package/build-module/video/block.json +6 -0
- package/build-module/video/edit-common-settings.mjs +0 -1
- package/build-module/video/edit-common-settings.mjs.map +2 -2
- package/build-module/video/edit.mjs +17 -1
- package/build-module/video/edit.mjs.map +2 -2
- package/build-module/video/index.mjs +2 -0
- package/build-module/video/index.mjs.map +2 -2
- package/build-module/video/save.mjs +7 -1
- package/build-module/video/save.mjs.map +2 -2
- package/build-module/video/tracks-editor.mjs +0 -1
- package/build-module/video/tracks-editor.mjs.map +2 -2
- package/build-module/video/variations.mjs +50 -0
- package/build-module/video/variations.mjs.map +7 -0
- package/build-style/accordion-panel/style-rtl.css +1 -2
- package/build-style/accordion-panel/style.css +1 -2
- package/build-style/audio/style-rtl.css +6 -0
- package/build-style/audio/style.css +6 -0
- package/build-style/audio/theme-rtl.css +6 -0
- package/build-style/audio/theme.css +6 -0
- package/build-style/columns/style-rtl.css +6 -0
- package/build-style/columns/style.css +6 -0
- package/build-style/common-rtl.css +6 -4
- package/build-style/common.css +6 -4
- package/build-style/editor-rtl.css +84 -24
- package/build-style/editor.css +84 -24
- package/build-style/embed/style-rtl.css +6 -0
- package/build-style/embed/style.css +6 -0
- package/build-style/embed/theme-rtl.css +6 -0
- package/build-style/embed/theme.css +6 -0
- package/build-style/freeform/editor-rtl.css +6 -0
- package/build-style/freeform/editor.css +6 -0
- package/build-style/gallery/editor-rtl.css +27 -3
- package/build-style/gallery/editor.css +27 -3
- package/build-style/gallery/style-rtl.css +6 -0
- package/build-style/gallery/style.css +6 -0
- package/build-style/gallery/theme-rtl.css +6 -0
- package/build-style/gallery/theme.css +6 -0
- package/build-style/html/editor-rtl.css +13 -0
- package/build-style/html/editor.css +13 -0
- package/build-style/icon/editor-rtl.css +80 -7
- package/build-style/icon/editor.css +80 -7
- package/build-style/image/editor-rtl.css +10 -0
- package/build-style/image/editor.css +10 -0
- package/build-style/image/style-rtl.css +6 -1
- package/build-style/image/style.css +6 -1
- package/build-style/image/theme-rtl.css +6 -0
- package/build-style/image/theme.css +6 -0
- package/build-style/latest-posts/style-rtl.css +26 -15
- package/build-style/latest-posts/style.css +26 -15
- package/build-style/more/editor-rtl.css +2 -2
- package/build-style/more/editor.css +2 -2
- package/build-style/navigation/editor-rtl.css +9 -4
- package/build-style/navigation/editor.css +9 -4
- package/build-style/navigation/style-rtl.css +6 -0
- package/build-style/navigation/style.css +6 -0
- package/build-style/navigation-link/editor-rtl.css +1 -1
- package/build-style/navigation-link/editor.css +1 -1
- package/build-style/navigation-submenu/editor-rtl.css +6 -0
- package/build-style/navigation-submenu/editor.css +6 -0
- package/build-style/nextpage/editor-rtl.css +2 -2
- package/build-style/nextpage/editor.css +2 -2
- package/build-style/page-list/editor-rtl.css +6 -0
- package/build-style/page-list/editor.css +6 -0
- package/build-style/playlist/editor-rtl.css +6 -0
- package/build-style/playlist/editor.css +6 -0
- package/build-style/playlist/style-rtl.css +158 -20
- package/build-style/playlist/style.css +158 -20
- package/build-style/playlist-track/style-rtl.css +10 -0
- package/build-style/playlist-track/style.css +10 -0
- package/build-style/post-template/style-rtl.css +6 -0
- package/build-style/post-template/style.css +6 -0
- package/build-style/query/editor-rtl.css +6 -0
- package/build-style/query/editor.css +6 -0
- package/build-style/rss/style-rtl.css +6 -0
- package/build-style/rss/style.css +6 -0
- package/build-style/shortcode/editor-rtl.css +6 -0
- package/build-style/shortcode/editor.css +6 -0
- package/build-style/style-rtl.css +192 -39
- package/build-style/style.css +192 -39
- package/build-style/table/editor-rtl.css +6 -0
- package/build-style/table/editor.css +6 -0
- package/build-style/table/theme-rtl.css +6 -0
- package/build-style/table/theme.css +6 -0
- package/build-style/template-part/editor-rtl.css +6 -0
- package/build-style/template-part/editor.css +6 -0
- package/build-style/theme-rtl.css +6 -0
- package/build-style/theme.css +6 -0
- package/build-style/video/editor-rtl.css +1 -1
- package/build-style/video/editor.css +1 -1
- package/build-style/video/style-rtl.css +6 -0
- package/build-style/video/style.css +6 -0
- package/build-style/video/theme-rtl.css +6 -0
- package/build-style/video/theme.css +6 -0
- package/build-types/table-of-contents/list.d.ts +1 -1
- package/build-types/table-of-contents/list.d.ts.map +1 -1
- package/package.json +48 -44
- package/src/accordion/README.md +2 -1
- package/src/accordion/block.json +1 -0
- package/src/accordion/edit.js +0 -1
- package/src/accordion/view.js +24 -0
- package/src/accordion-heading/README.md +1 -1
- package/src/accordion-heading/deprecated.js +122 -1
- package/src/accordion-heading/edit.js +12 -1
- package/src/accordion-heading/save.js +12 -1
- package/src/accordion-item/README.md +1 -1
- package/src/accordion-item/index.php +2 -1
- package/src/accordion-panel/edit.js +1 -1
- package/src/accordion-panel/style.scss +1 -4
- package/src/archives/edit.js +0 -1
- package/src/audio/edit.js +0 -1
- package/src/avatar/edit.js +0 -1
- package/src/avatar/user-control.js +0 -1
- package/src/button/edit.js +21 -15
- package/src/categories/edit.js +0 -1
- package/src/code/transforms.js +6 -4
- package/src/column/edit.js +0 -1
- package/src/columns/edit.js +0 -1
- package/src/columns/transforms.js +9 -2
- package/src/comment-author-avatar/edit.js +0 -1
- package/src/comments-pagination/comments-pagination-arrow-controls.js +0 -1
- package/src/common.scss +0 -4
- package/src/cover/README.md +60 -0
- package/src/cover/block.json +11 -0
- package/src/cover/edit/block-controls.js +21 -11
- package/src/cover/edit/embed-video-url-input.js +5 -4
- package/src/cover/edit/index.js +9 -11
- package/src/cover/edit/inspector-controls.js +0 -2
- package/src/cover/embed-video-utils.js +38 -13
- package/src/cover/test/edit.js +4 -4
- package/src/details/transforms.js +2 -2
- package/src/embed/edit.js +4 -5
- package/src/embed/embed-placeholder.js +16 -20
- package/src/file/edit.js +8 -8
- package/src/file/inspector.js +0 -2
- package/src/file/transforms.js +28 -60
- package/src/form/edit.js +0 -2
- package/src/freeform/convert-to-blocks-button.js +33 -0
- package/src/freeform/edit.js +11 -21
- package/src/freeform/index.js +1 -9
- package/src/gallery/README.md +4 -1
- package/src/gallery/block.json +8 -3
- package/src/gallery/dynamic-gallery.js +384 -0
- package/src/gallery/dynamic-source.js +117 -0
- package/src/gallery/edit.js +155 -49
- package/src/gallery/editor.scss +32 -4
- package/src/gallery/gallery.js +0 -7
- package/src/gallery/gap-styles.js +79 -20
- package/src/gallery/index.js +2 -0
- package/src/gallery/index.php +379 -42
- package/src/gallery/save.js +22 -11
- package/src/gallery/test/dynamic-source.js +90 -0
- package/src/gallery/use-dynamic-gallery.js +275 -0
- package/src/gallery/variations.js +37 -0
- package/src/group/edit.js +2 -3
- package/src/group/transforms.js +4 -8
- package/src/heading/edit.js +19 -14
- package/src/home-link/index.php +1 -1
- package/src/html/README.md +2 -1
- package/src/html/block.json +2 -2
- package/src/html/edit.js +86 -14
- package/src/html/editor.scss +10 -0
- package/src/html/index.js +3 -4
- package/src/html/modal.js +5 -9
- package/src/html/save.js +4 -7
- package/src/html/test/index.js +143 -0
- package/src/html/transforms.js +11 -6
- package/src/icon/components/custom-inserter/icon-grid.js +40 -11
- package/src/icon/components/custom-inserter/index.js +98 -25
- package/src/icon/edit.js +11 -17
- package/src/icon/editor.scss +33 -8
- package/src/icon/index.php +38 -45
- package/src/image/README.md +1 -1
- package/src/image/block.json +1 -1
- package/src/image/editor.scss +11 -0
- package/src/image/image.js +105 -169
- package/src/image/style.scss +0 -1
- package/src/image/test/use-open-image-media-editor-modal.js +19 -4
- package/src/image/transforms.js +128 -0
- package/src/index.js +19 -9
- package/src/latest-comments/edit.js +0 -2
- package/src/latest-posts/README.md +2 -2
- package/src/latest-posts/block.json +8 -9
- package/src/latest-posts/constants.js +0 -1
- package/src/latest-posts/deprecated.js +112 -9
- package/src/latest-posts/edit.js +38 -53
- package/src/latest-posts/index.php +60 -19
- package/src/latest-posts/style.scss +12 -2
- package/src/latest-posts/test/deprecated.js +153 -0
- package/src/list/ordered-list-settings.js +0 -1
- package/src/list-item/edit.js +1 -1
- package/src/list-item/hooks/use-enter.js +15 -22
- package/src/list-item/hooks/use-space.js +4 -6
- package/src/media-text/edit.js +0 -1
- package/src/media-text/editor.scss +1 -0
- package/src/missing/edit.js +1 -3
- package/src/more/editor.scss +1 -1
- package/src/navigation/edit/index.js +0 -1
- package/src/navigation/edit/overlay-menu-preview-controls.js +0 -1
- package/src/navigation/edit/overlay-menu-preview.js +0 -1
- package/src/navigation/edit/overlay-template-part-selector.js +0 -1
- package/src/navigation/edit/overlay-visibility-control.js +0 -1
- package/src/navigation/editor.scss +1 -2
- package/src/navigation-link/editor.scss +1 -1
- package/src/navigation-link/index.php +6 -3
- package/src/navigation-link/shared/test/controls.js +0 -4
- package/src/navigation-link/shared/test/use-entity-binding.js +8 -12
- package/src/navigation-link/shared/test/use-handle-link-change.test.js +0 -4
- package/src/navigation-link/shared/test/use-link-preview.test.js +17 -4
- package/src/navigation-link/shared/use-link-preview.js +24 -4
- package/src/navigation-overlay-close/edit.js +0 -1
- package/src/navigation-submenu/index.php +6 -3
- package/src/nextpage/editor.scss +1 -1
- package/src/page-list/edit.js +0 -1
- package/src/page-list/index.php +1 -1
- package/src/paragraph/README.md +1 -0
- package/src/paragraph/block.json +1 -0
- package/src/paragraph/use-enter.js +4 -11
- package/src/playlist/README.md +17 -20
- package/src/playlist/block.json +28 -15
- package/src/playlist/context.js +9 -0
- package/src/playlist/edit.js +298 -97
- package/src/playlist/editor.scss +6 -0
- package/src/playlist/index.js +1 -1
- package/src/playlist/index.php +91 -36
- package/src/playlist/style.scss +51 -6
- package/src/playlist/test/edit.js +13 -12
- package/src/playlist/utils.js +24 -12
- package/src/playlist/view.js +101 -20
- package/src/playlist-track/README.md +3 -5
- package/src/playlist-track/block.json +4 -5
- package/src/playlist-track/edit.js +116 -83
- package/src/playlist-track/index.php +24 -17
- package/src/playlist-track/style.scss +10 -0
- package/src/playlist-track/test/edit.js +169 -0
- package/src/post-author/edit.js +0 -2
- package/src/post-content/README.md +1 -0
- package/src/post-content/block.json +1 -0
- package/src/post-excerpt/edit.js +0 -1
- package/src/post-featured-image/overlay-controls.js +0 -1
- package/src/post-navigation-link/edit.js +0 -2
- package/src/post-template/README.md +1 -0
- package/src/post-template/block.json +2 -1
- package/src/post-template/edit.js +9 -0
- package/src/pullquote/README.md +1 -0
- package/src/pullquote/block.json +3 -1
- package/src/query/README.md +2 -1
- package/src/query/block.json +3 -2
- package/src/query/edit/inspector-controls/author-control.js +0 -1
- package/src/query/edit/inspector-controls/format-controls.js +0 -1
- package/src/query/edit/inspector-controls/index.js +43 -6
- package/src/query/edit/inspector-controls/offset-controls.js +0 -1
- package/src/query/edit/inspector-controls/order-control.js +0 -1
- package/src/query/edit/inspector-controls/pages-control.js +0 -1
- package/src/query/edit/inspector-controls/parent-control.js +0 -1
- package/src/query/edit/inspector-controls/per-page-control.js +0 -1
- package/src/query/edit/inspector-controls/sticky-control.js +0 -1
- package/src/query/edit/inspector-controls/taxonomy-controls.js +0 -1
- package/src/query/edit/query-content.js +19 -3
- package/src/query/index.js +1 -0
- package/src/query-pagination/query-pagination-arrow-controls.js +0 -1
- package/src/query-pagination-numbers/edit.js +0 -1
- package/src/quote/README.md +1 -0
- package/src/quote/block.json +3 -1
- package/src/quote/transforms.js +6 -8
- package/src/rss/edit.js +0 -4
- package/src/rss/index.php +1 -1
- package/src/search/edit.js +0 -4
- package/src/separator/edit.js +0 -1
- package/src/site-logo/edit.js +38 -78
- package/src/social-links/edit.js +0 -1
- package/src/spacer/controls.js +2 -4
- package/src/spacer/edit.js +2 -3
- package/src/tab-list/README.md +4 -5
- package/src/tab-list/block.json +5 -4
- package/src/tab-list/edit.js +133 -73
- package/src/tab-list/index.php +9 -4
- package/src/tab-list/save.js +5 -4
- package/src/tab-panel/README.md +4 -6
- package/src/tab-panel/block.json +1 -6
- package/src/tab-panel/controls.js +2 -4
- package/src/tab-panel/edit.js +19 -24
- package/src/tab-panels/README.md +5 -3
- package/src/tab-panels/block.json +0 -1
- package/src/tab-panels/edit.js +2 -4
- package/src/table-of-contents/edit.js +0 -1
- package/src/tabs/README.md +18 -9
- package/src/tabs/block.json +0 -5
- package/src/tabs/edit.js +8 -65
- package/src/tabs/tab-toolbar-controls.js +58 -0
- package/src/tabs/use-tab-actions.js +102 -0
- package/src/tabs/use-tab-list-items-sync.js +31 -12
- package/src/tag-cloud/edit.js +0 -4
- package/src/tag-cloud/index.php +1 -1
- package/src/template-part/edit/advanced-controls.js +0 -1
- package/src/template-part/edit/import-controls.js +0 -1
- package/src/template-part/index.php +1 -16
- package/src/term-name/README.md +1 -1
- package/src/term-name/block.json +1 -3
- package/src/term-name/deprecated.js +74 -0
- package/src/term-name/edit.js +2 -18
- package/src/term-name/index.js +2 -0
- package/src/terms-query/edit/inspector-controls/include-control.js +0 -1
- package/src/terms-query/edit/inspector-controls/inherit-control.js +0 -1
- package/src/terms-query/edit/inspector-controls/max-terms-control.js +0 -1
- package/src/terms-query/edit/inspector-controls/order-control.js +0 -1
- package/src/terms-query/edit/inspector-controls/taxonomy-control.js +0 -1
- package/src/text-columns/edit.js +0 -1
- package/src/utils/media-control.scss +1 -5
- package/src/utils/test/waveform-player.js +297 -38
- package/src/utils/test/waveform-utils.js +410 -9
- package/src/utils/waveform-player.js +189 -59
- package/src/utils/waveform-utils.js +443 -40
- package/src/verse/README.md +1 -0
- package/src/verse/block.json +3 -1
- package/src/video/README.md +2 -0
- package/src/video/block.json +6 -0
- package/src/video/edit-common-settings.js +0 -1
- package/src/video/edit.js +30 -1
- package/src/video/editor.scss +1 -1
- package/src/video/index.js +2 -0
- package/src/video/save.js +12 -0
- package/src/video/test/variations.js +65 -0
- package/src/video/tracks-editor.js +0 -1
- package/src/video/variations.js +65 -0
- package/build/freeform/migration-notice.cjs +0 -58
- package/build/freeform/migration-notice.cjs.map +0 -7
- package/build/tab-panel/add-tab-toolbar-control.cjs +0 -90
- package/build/tab-panel/add-tab-toolbar-control.cjs.map +0 -7
- package/build/tab-panel/remove-tab-toolbar-control.cjs +0 -99
- package/build/tab-panel/remove-tab-toolbar-control.cjs.map +0 -7
- package/build/tabs/controls.cjs +0 -45
- package/build/tabs/controls.cjs.map +0 -7
- package/build-module/freeform/migration-notice.mjs +0 -37
- package/build-module/freeform/migration-notice.mjs.map +0 -7
- package/build-module/tab-panel/add-tab-toolbar-control.mjs +0 -72
- package/build-module/tab-panel/add-tab-toolbar-control.mjs.map +0 -7
- package/build-module/tab-panel/remove-tab-toolbar-control.mjs +0 -81
- package/build-module/tab-panel/remove-tab-toolbar-control.mjs.map +0 -7
- package/build-module/tabs/controls.mjs +0 -14
- package/build-module/tabs/controls.mjs.map +0 -7
- package/src/freeform/migration-notice.js +0 -49
- package/src/tab-panel/add-tab-toolbar-control.js +0 -90
- package/src/tab-panel/remove-tab-toolbar-control.js +0 -110
- package/src/tabs/controls.js +0 -14
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Source discriminator for "images attached to the post" — the only dynamic
|
|
8
|
+
* source implemented so far. Kept as a named constant since it's referenced from
|
|
9
|
+
* several call sites (the query builder, the descriptor, and the entry points
|
|
10
|
+
* that switch a gallery into dynamic mode).
|
|
11
|
+
*/
|
|
12
|
+
export const ATTACHED_MEDIA = 'core/attached-media';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Default ordering for a dynamic source. `menu_order` (the manual media-library
|
|
16
|
+
* order) is intentionally not used: it isn't a valid `orderby` value on the
|
|
17
|
+
* media REST endpoint, so the editor preview couldn't reproduce it. Both the
|
|
18
|
+
* editor query and the server resolver default to the same REST-supported order
|
|
19
|
+
* so the preview matches the frontend.
|
|
20
|
+
*/
|
|
21
|
+
export const DEFAULT_ORDERBY = 'date';
|
|
22
|
+
export const DEFAULT_ORDER = 'desc';
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Per-source copy, keyed by the `source` discriminator in a gallery's
|
|
26
|
+
* `dynamicContent`. Adding a dynamic source means adding an entry here; the
|
|
27
|
+
* editor components read these strings instead of hardcoding source-specific
|
|
28
|
+
* wording. The fields also map onto a future "Choose source" control: `title`
|
|
29
|
+
* becomes an option label, `description` its help text, and `emptyMessage` the
|
|
30
|
+
* canvas preview when the source resolves to nothing.
|
|
31
|
+
*/
|
|
32
|
+
const DYNAMIC_SOURCES = {
|
|
33
|
+
[ ATTACHED_MEDIA ]: {
|
|
34
|
+
// Short label for the entry affordance / future source chooser. Mirrors
|
|
35
|
+
// the "Attached images" media inserter category name.
|
|
36
|
+
title: __( 'Use attached images' ),
|
|
37
|
+
// Help text shown beneath the Source controls.
|
|
38
|
+
description: __( 'Images attached to the post.' ),
|
|
39
|
+
// Empty-state copy for the canvas preview.
|
|
40
|
+
emptyMessage: __( 'Images attached to the post will appear here.' ),
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Returns the descriptor for a dynamic source, or `undefined` for an unknown or
|
|
46
|
+
* not-yet-implemented source.
|
|
47
|
+
*
|
|
48
|
+
* @param {?string} source The `dynamicContent.source` discriminator.
|
|
49
|
+
* @return {?Object} The source descriptor (`title`, `description`, `emptyMessage`).
|
|
50
|
+
*/
|
|
51
|
+
export function getDynamicSource( source ) {
|
|
52
|
+
return DYNAMIC_SOURCES[ source ];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Upper bound on the number of images a dynamic source resolves, until the
|
|
57
|
+
* gallery supports pagination. Kept in sync with the `posts_per_page` cap in
|
|
58
|
+
* `block_core_gallery_resolve_dynamic_source()`.
|
|
59
|
+
*/
|
|
60
|
+
export const MAX_IMAGES = 100;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Maps a gallery's `dynamicContent` attribute to a query for the `attachment`
|
|
64
|
+
* entity (i.e. `/wp/v2/media` collection params), used to resolve the source to
|
|
65
|
+
* a list of media in the editor.
|
|
66
|
+
*
|
|
67
|
+
* The `source` key is the dispatch discriminator and `args` holds the
|
|
68
|
+
* source's parameters. This `{ source, args }` shape mirrors the Block
|
|
69
|
+
* Bindings metadata shape (`metadata.bindings.<key> = { source, args }`) so
|
|
70
|
+
* dynamic mode can migrate to an `innerBlocks` binding with minimal change.
|
|
71
|
+
* `args` keys are camelCase (the block-attribute convention, as used by the
|
|
72
|
+
* Query block's `query` attribute); each source's resolver maps them to the
|
|
73
|
+
* REST/transport names it needs. `core/attached-media` is a context-relative anchor
|
|
74
|
+
* resolved here to the REST `parent` param. The server-side counterpart is
|
|
75
|
+
* `block_core_gallery_resolve_dynamic_source()` in `index.php`.
|
|
76
|
+
*
|
|
77
|
+
* @param {Object} dynamicContent The gallery's `dynamicContent` attribute.
|
|
78
|
+
* @param {Object} context Resolution context.
|
|
79
|
+
* @param {number} context.postId The current post ID.
|
|
80
|
+
* @return {Object|null} A `getEntityRecords` query, or `null` when the source
|
|
81
|
+
* cannot be resolved (unknown source or missing context).
|
|
82
|
+
*/
|
|
83
|
+
export function getSourceQuery( dynamicContent, { postId } ) {
|
|
84
|
+
const { source, args = {} } = dynamicContent ?? {};
|
|
85
|
+
|
|
86
|
+
switch ( source ) {
|
|
87
|
+
case ATTACHED_MEDIA:
|
|
88
|
+
if ( ! postId ) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
parent: postId,
|
|
93
|
+
per_page: MAX_IMAGES,
|
|
94
|
+
// The gallery only accepts images, so constrain the source to
|
|
95
|
+
// image media (matching the server resolver). This keeps the
|
|
96
|
+
// editor preview in step with the rendered output for posts
|
|
97
|
+
// that also have non-image attachments.
|
|
98
|
+
media_type: 'image',
|
|
99
|
+
// Map the camelCase `args` to the REST-named media collection
|
|
100
|
+
// params. Unexpected values (only reachable via hand-edited
|
|
101
|
+
// markup) are coerced back to the defaults — mirroring the server
|
|
102
|
+
// resolver's allow list — so the editor preview stays in step with
|
|
103
|
+
// the frontend instead of issuing an invalid REST query.
|
|
104
|
+
orderby:
|
|
105
|
+
args.orderBy === 'date' || args.orderBy === 'title'
|
|
106
|
+
? args.orderBy
|
|
107
|
+
: DEFAULT_ORDERBY,
|
|
108
|
+
order:
|
|
109
|
+
args.order === 'asc' || args.order === 'desc'
|
|
110
|
+
? args.order
|
|
111
|
+
: DEFAULT_ORDER,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Unknown or not-yet-implemented source.
|
|
116
|
+
return null;
|
|
117
|
+
}
|
package/src/gallery/edit.js
CHANGED
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
__experimentalToggleGroupControl as ToggleGroupControl,
|
|
18
18
|
__experimentalToggleGroupControlOption as ToggleGroupControlOption,
|
|
19
19
|
ToolbarDropdownMenu,
|
|
20
|
+
Button,
|
|
20
21
|
} from '@wordpress/components';
|
|
21
22
|
import {
|
|
22
23
|
store as blockEditorStore,
|
|
@@ -24,6 +25,7 @@ import {
|
|
|
24
25
|
InspectorControls,
|
|
25
26
|
useBlockProps,
|
|
26
27
|
useInnerBlocksProps,
|
|
28
|
+
useBlockEditingMode,
|
|
27
29
|
BlockControls,
|
|
28
30
|
MediaReplaceFlow,
|
|
29
31
|
useSettings,
|
|
@@ -31,7 +33,6 @@ import {
|
|
|
31
33
|
import { useEffect, useMemo } from '@wordpress/element';
|
|
32
34
|
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
33
35
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
34
|
-
import { View } from '@wordpress/primitives';
|
|
35
36
|
import { createBlock } from '@wordpress/blocks';
|
|
36
37
|
import { createBlobURL } from '@wordpress/blob';
|
|
37
38
|
import { store as noticesStore } from '@wordpress/notices';
|
|
@@ -65,7 +66,10 @@ import {
|
|
|
65
66
|
import useImageSizes from './use-image-sizes';
|
|
66
67
|
import useGetNewImages from './use-get-new-images';
|
|
67
68
|
import useGetMedia from './use-get-media';
|
|
68
|
-
import
|
|
69
|
+
import GalleryGapCustomProperties from './gap-styles';
|
|
70
|
+
import useDynamicGallery from './use-dynamic-gallery';
|
|
71
|
+
import { GallerySourcePanel, GalleryDynamicView } from './dynamic-gallery';
|
|
72
|
+
import { getDynamicSource, ATTACHED_MEDIA } from './dynamic-source';
|
|
69
73
|
|
|
70
74
|
const MAX_COLUMNS = 8;
|
|
71
75
|
const LINK_OPTIONS = [
|
|
@@ -127,8 +131,20 @@ export default function GalleryEdit( props ) {
|
|
|
127
131
|
isSelected,
|
|
128
132
|
insertBlocksAfter,
|
|
129
133
|
isContentLocked,
|
|
134
|
+
context,
|
|
135
|
+
__unstableLayoutClassNames: layoutClassNames,
|
|
130
136
|
} = props;
|
|
131
137
|
|
|
138
|
+
const postId = context?.postId;
|
|
139
|
+
const postType = context?.postType;
|
|
140
|
+
|
|
141
|
+
// Entering dynamic mode is a structural change (it discards inner blocks and
|
|
142
|
+
// switches the block's mode), so the entry point is only offered when the
|
|
143
|
+
// block is fully editable — mirroring the dynamic view's "Edit images"
|
|
144
|
+
// toolbar control. Under a content lock the mode is `'contentOnly'`/
|
|
145
|
+
// `'disabled'`, where structural affordances are hidden.
|
|
146
|
+
const blockEditingMode = useBlockEditingMode();
|
|
147
|
+
|
|
132
148
|
const [ lightboxSetting, defaultRatios, themeRatios, showDefaultRatios ] =
|
|
133
149
|
useSettings(
|
|
134
150
|
'blocks.core/image.lightbox',
|
|
@@ -144,6 +160,7 @@ export default function GalleryEdit( props ) {
|
|
|
144
160
|
: LINK_OPTIONS;
|
|
145
161
|
|
|
146
162
|
const {
|
|
163
|
+
align,
|
|
147
164
|
navigationButtonType,
|
|
148
165
|
columns,
|
|
149
166
|
imageCrop,
|
|
@@ -206,15 +223,44 @@ export default function GalleryEdit( props ) {
|
|
|
206
223
|
|
|
207
224
|
const newImages = useGetNewImages( images, imageData );
|
|
208
225
|
|
|
209
|
-
|
|
210
|
-
const
|
|
211
|
-
|
|
226
|
+
const hasImages = !! images.length;
|
|
227
|
+
const isDynamic = !! attributes.dynamicContent;
|
|
228
|
+
|
|
229
|
+
// Dynamic mode (resolving images from a source instead of inner blocks):
|
|
230
|
+
// source resolution, the editor-preview blocks, and the mode/ordering
|
|
231
|
+
// actions.
|
|
232
|
+
const dynamic = useDynamicGallery( {
|
|
233
|
+
attributes,
|
|
234
|
+
setAttributes,
|
|
235
|
+
clientId,
|
|
236
|
+
postId,
|
|
237
|
+
postType,
|
|
238
|
+
} );
|
|
239
|
+
|
|
240
|
+
// State that drives counts/size options should reflect the dynamic media
|
|
241
|
+
// when the gallery is in dynamic mode.
|
|
242
|
+
const displayedImageCount = isDynamic
|
|
243
|
+
? dynamic.dynamicMedia.length
|
|
244
|
+
: images.length;
|
|
245
|
+
|
|
246
|
+
// Check if there is at least one image with lightbox enabled. In dynamic
|
|
247
|
+
// mode the images inherit the gallery's link setting, so the lightbox is on
|
|
248
|
+
// when the gallery links images to the lightbox.
|
|
249
|
+
let hasLightboxImages;
|
|
250
|
+
if ( isDynamic ) {
|
|
251
|
+
hasLightboxImages = linkTo === LINK_DESTINATION_LIGHTBOX;
|
|
252
|
+
} else if ( lightboxSetting?.enabled ) {
|
|
253
|
+
hasLightboxImages =
|
|
254
|
+
images.filter(
|
|
212
255
|
( image ) =>
|
|
213
256
|
image.attributes?.lightbox?.enabled === undefined ||
|
|
214
257
|
image.attributes?.lightbox?.enabled === true
|
|
215
|
-
|
|
216
|
-
|
|
258
|
+
).length > 0;
|
|
259
|
+
} else {
|
|
260
|
+
hasLightboxImages =
|
|
261
|
+
images.filter( ( image ) => image.attributes.lightbox?.enabled )
|
|
217
262
|
.length > 0;
|
|
263
|
+
}
|
|
218
264
|
|
|
219
265
|
const themeOptions = themeRatios?.map( ( { name, ratio } ) => ( {
|
|
220
266
|
label: name,
|
|
@@ -249,7 +295,7 @@ export default function GalleryEdit( props ) {
|
|
|
249
295
|
}, [ newImages ] );
|
|
250
296
|
|
|
251
297
|
const imageSizeOptions = useImageSizes(
|
|
252
|
-
imageData,
|
|
298
|
+
isDynamic ? dynamic.dynamicMedia : imageData,
|
|
253
299
|
isSelected,
|
|
254
300
|
getSettings
|
|
255
301
|
);
|
|
@@ -567,7 +613,6 @@ export default function GalleryEdit( props ) {
|
|
|
567
613
|
}
|
|
568
614
|
}, [ linkTo ] );
|
|
569
615
|
|
|
570
|
-
const hasImages = !! images.length;
|
|
571
616
|
const hasImageIds = hasImages && images.some( ( image ) => !! image.id );
|
|
572
617
|
const imagesUploading = images.some(
|
|
573
618
|
( img ) => ! img.id && img.url?.indexOf( 'blob:' ) === 0
|
|
@@ -578,24 +623,27 @@ export default function GalleryEdit( props ) {
|
|
|
578
623
|
disableMediaButtons: imagesUploading,
|
|
579
624
|
value: {},
|
|
580
625
|
};
|
|
581
|
-
const mediaPlaceholder = (
|
|
582
|
-
<MediaPlaceholder
|
|
583
|
-
handleUpload={ false }
|
|
584
|
-
icon={ sharedIcon }
|
|
585
|
-
labels={ {
|
|
586
|
-
title: __( 'Gallery' ),
|
|
587
|
-
instructions: PLACEHOLDER_TEXT,
|
|
588
|
-
} }
|
|
589
|
-
onSelect={ updateImages }
|
|
590
|
-
allowedTypes={ ALLOWED_MEDIA_TYPES }
|
|
591
|
-
multiple
|
|
592
|
-
onError={ onUploadError }
|
|
593
|
-
{ ...mediaPlaceholderProps }
|
|
594
|
-
/>
|
|
595
|
-
);
|
|
596
626
|
|
|
597
627
|
const blockProps = useBlockProps( {
|
|
598
|
-
className: clsx(
|
|
628
|
+
className: clsx(
|
|
629
|
+
className,
|
|
630
|
+
'has-nested-images',
|
|
631
|
+
// In dynamic mode there are no inner blocks and the gallery isn't
|
|
632
|
+
// rendered through the `Gallery` component, so the classes that
|
|
633
|
+
// component normally composes onto the `<figure>` (see `gallery.js`)
|
|
634
|
+
// must be added here to keep the preview's flex/crop layout matching
|
|
635
|
+
// the static gallery and the frontend.
|
|
636
|
+
isDynamic && [
|
|
637
|
+
layoutClassNames,
|
|
638
|
+
'blocks-gallery-grid',
|
|
639
|
+
{
|
|
640
|
+
[ `align${ align }` ]: align,
|
|
641
|
+
[ `columns-${ columns }` ]: columns !== undefined,
|
|
642
|
+
'columns-default': columns === undefined,
|
|
643
|
+
'is-cropped': imageCrop,
|
|
644
|
+
},
|
|
645
|
+
]
|
|
646
|
+
),
|
|
599
647
|
} );
|
|
600
648
|
|
|
601
649
|
const innerBlocksProps = useInnerBlocksProps( blockProps, {
|
|
@@ -603,16 +651,59 @@ export default function GalleryEdit( props ) {
|
|
|
603
651
|
directInsert: true,
|
|
604
652
|
orientation: 'horizontal',
|
|
605
653
|
renderAppender: false,
|
|
654
|
+
// In dynamic mode nothing may be inserted: the images are resolved from
|
|
655
|
+
// the source, not authored as inner blocks. `allowedBlocks: []` enforces
|
|
656
|
+
// this in every context — unlike `templateLock: 'all'`, it isn't relaxed
|
|
657
|
+
// to `contentOnly` by a content-locked ancestor — so it blocks insertion
|
|
658
|
+
// and drag-and-drop (via `canInsertBlockType`). It's also what opts the
|
|
659
|
+
// gallery out of the List View: a block that can't be inserted into and
|
|
660
|
+
// has no inner blocks has nothing to navigate or add (see
|
|
661
|
+
// `shouldRenderBlockListView`). This reaches the block's list settings
|
|
662
|
+
// only while the inner blocks are mounted, which is why the dynamic view
|
|
663
|
+
// still renders the (empty) inner blocks.
|
|
664
|
+
allowedBlocks: isDynamic ? EMPTY_ARRAY : undefined,
|
|
606
665
|
} );
|
|
607
666
|
|
|
608
667
|
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
609
668
|
|
|
610
|
-
if ( ! hasImages ) {
|
|
669
|
+
if ( ! hasImages && ! isDynamic ) {
|
|
611
670
|
return (
|
|
612
|
-
<
|
|
671
|
+
<div { ...innerBlocksProps }>
|
|
613
672
|
{ innerBlocksProps.children }
|
|
614
|
-
|
|
615
|
-
|
|
673
|
+
<MediaPlaceholder
|
|
674
|
+
handleUpload={ false }
|
|
675
|
+
icon={ sharedIcon }
|
|
676
|
+
labels={ {
|
|
677
|
+
title: __( 'Gallery' ),
|
|
678
|
+
instructions: PLACEHOLDER_TEXT,
|
|
679
|
+
} }
|
|
680
|
+
onSelect={ updateImages }
|
|
681
|
+
allowedTypes={ ALLOWED_MEDIA_TYPES }
|
|
682
|
+
multiple
|
|
683
|
+
onError={ onUploadError }
|
|
684
|
+
{ ...mediaPlaceholderProps }
|
|
685
|
+
>
|
|
686
|
+
{ /*
|
|
687
|
+
* Entry into dynamic mode. Gated on the editing mode so it's
|
|
688
|
+
* hidden in content-only editing (where this structural change
|
|
689
|
+
* isn't allowed), but intentionally not hidden by
|
|
690
|
+
* `canUseDynamicSource` the way the inspector is (see
|
|
691
|
+
* `dynamic-gallery.js`): even with no
|
|
692
|
+
* post type to preview against, the source still resolves at
|
|
693
|
+
* render time via `get_the_ID()` (see `index.php`) — e.g. in a
|
|
694
|
+
* template part or pattern shown on a singular page.
|
|
695
|
+
*/ }
|
|
696
|
+
{ blockEditingMode === 'default' && (
|
|
697
|
+
<Button
|
|
698
|
+
__next40pxDefaultSize
|
|
699
|
+
variant="secondary"
|
|
700
|
+
onClick={ dynamic.enableDynamicMode }
|
|
701
|
+
>
|
|
702
|
+
{ getDynamicSource( ATTACHED_MEDIA ).title }
|
|
703
|
+
</Button>
|
|
704
|
+
) }
|
|
705
|
+
</MediaPlaceholder>
|
|
706
|
+
</div>
|
|
616
707
|
);
|
|
617
708
|
}
|
|
618
709
|
|
|
@@ -621,6 +712,11 @@ export default function GalleryEdit( props ) {
|
|
|
621
712
|
return (
|
|
622
713
|
<>
|
|
623
714
|
<InspectorControls>
|
|
715
|
+
<GallerySourcePanel
|
|
716
|
+
dynamic={ dynamic }
|
|
717
|
+
dropdownMenuProps={ dropdownMenuProps }
|
|
718
|
+
hasImages={ hasImages }
|
|
719
|
+
/>
|
|
624
720
|
<ToolsPanel
|
|
625
721
|
label={ __( 'Settings' ) }
|
|
626
722
|
resetAll={ () => {
|
|
@@ -643,12 +739,12 @@ export default function GalleryEdit( props ) {
|
|
|
643
739
|
} }
|
|
644
740
|
dropdownMenuProps={ dropdownMenuProps }
|
|
645
741
|
>
|
|
646
|
-
{
|
|
742
|
+
{ displayedImageCount > 1 && (
|
|
647
743
|
<ToolsPanelItem
|
|
648
744
|
isShownByDefault
|
|
649
745
|
label={ __( 'Columns' ) }
|
|
650
746
|
hasValue={ () =>
|
|
651
|
-
!! columns && columns !==
|
|
747
|
+
!! columns && columns !== displayedImageCount
|
|
652
748
|
}
|
|
653
749
|
onDeselect={ () => setColumnsNumber( undefined ) }
|
|
654
750
|
>
|
|
@@ -657,13 +753,17 @@ export default function GalleryEdit( props ) {
|
|
|
657
753
|
value={
|
|
658
754
|
columns
|
|
659
755
|
? columns
|
|
660
|
-
: defaultColumnsNumber(
|
|
756
|
+
: defaultColumnsNumber(
|
|
757
|
+
displayedImageCount
|
|
758
|
+
)
|
|
661
759
|
}
|
|
662
760
|
onChange={ setColumnsNumber }
|
|
663
761
|
min={ 1 }
|
|
664
|
-
max={ Math.min(
|
|
762
|
+
max={ Math.min(
|
|
763
|
+
MAX_COLUMNS,
|
|
764
|
+
displayedImageCount
|
|
765
|
+
) }
|
|
665
766
|
required
|
|
666
|
-
__next40pxDefaultSize
|
|
667
767
|
/>
|
|
668
768
|
</ToolsPanelItem>
|
|
669
769
|
) }
|
|
@@ -687,7 +787,6 @@ export default function GalleryEdit( props ) {
|
|
|
687
787
|
options={ imageSizeOptions }
|
|
688
788
|
onChange={ updateImagesSize }
|
|
689
789
|
hideCancelButton
|
|
690
|
-
size="__unstable-large"
|
|
691
790
|
/>
|
|
692
791
|
</ToolsPanelItem>
|
|
693
792
|
) }
|
|
@@ -743,7 +842,6 @@ export default function GalleryEdit( props ) {
|
|
|
743
842
|
isShownByDefault
|
|
744
843
|
>
|
|
745
844
|
<SelectControl
|
|
746
|
-
__next40pxDefaultSize
|
|
747
845
|
label={ __( 'Aspect ratio' ) }
|
|
748
846
|
help={ __(
|
|
749
847
|
'Set a consistent aspect ratio for all images in the gallery.'
|
|
@@ -774,7 +872,6 @@ export default function GalleryEdit( props ) {
|
|
|
774
872
|
} )
|
|
775
873
|
}
|
|
776
874
|
isBlock
|
|
777
|
-
__next40pxDefaultSize
|
|
778
875
|
help={ __(
|
|
779
876
|
'Adjust the appearance of buttons in the lightbox.'
|
|
780
877
|
) }
|
|
@@ -828,7 +925,7 @@ export default function GalleryEdit( props ) {
|
|
|
828
925
|
</ToolbarDropdownMenu>
|
|
829
926
|
</BlockControls>
|
|
830
927
|
<>
|
|
831
|
-
{ ! multiGallerySelection && (
|
|
928
|
+
{ ! multiGallerySelection && ! isDynamic && (
|
|
832
929
|
<BlockControls group="other">
|
|
833
930
|
<MediaReplaceFlow
|
|
834
931
|
allowedTypes={ ALLOWED_MEDIA_TYPES }
|
|
@@ -844,20 +941,29 @@ export default function GalleryEdit( props ) {
|
|
|
844
941
|
/>
|
|
845
942
|
</BlockControls>
|
|
846
943
|
) }
|
|
847
|
-
<
|
|
848
|
-
|
|
944
|
+
<GalleryGapCustomProperties
|
|
945
|
+
style={ attributes.style }
|
|
849
946
|
clientId={ clientId }
|
|
850
947
|
/>
|
|
851
948
|
</>
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
949
|
+
{ isDynamic ? (
|
|
950
|
+
<GalleryDynamicView
|
|
951
|
+
{ ...props }
|
|
952
|
+
dynamic={ dynamic }
|
|
953
|
+
blockProps={ blockProps }
|
|
954
|
+
innerBlocksProps={ innerBlocksProps }
|
|
955
|
+
multiGallerySelection={ multiGallerySelection }
|
|
956
|
+
/>
|
|
957
|
+
) : (
|
|
958
|
+
<Gallery
|
|
959
|
+
{ ...props }
|
|
960
|
+
isContentLocked={ isContentLocked }
|
|
961
|
+
images={ images }
|
|
962
|
+
blockProps={ innerBlocksProps }
|
|
963
|
+
insertBlocksAfter={ insertBlocksAfter }
|
|
964
|
+
multiGallerySelection={ multiGallerySelection }
|
|
965
|
+
/>
|
|
966
|
+
) }
|
|
861
967
|
</>
|
|
862
968
|
);
|
|
863
969
|
}
|
package/src/gallery/editor.scss
CHANGED
|
@@ -17,10 +17,6 @@
|
|
|
17
17
|
flex: 0 0 100%;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
> .blocks-gallery-media-placeholder-wrapper {
|
|
21
|
-
flex-basis: 100%;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
20
|
// @todo this deserves a refactor, by being moved to the toolbar.
|
|
25
21
|
.block-editor-media-placeholder.is-appender {
|
|
26
22
|
.components-placeholder__label {
|
|
@@ -118,3 +114,35 @@
|
|
|
118
114
|
justify-content: flex-end;
|
|
119
115
|
gap: $grid-unit-15;
|
|
120
116
|
}
|
|
117
|
+
|
|
118
|
+
// The Source controls are a plain (non-ToolsPanelItem) child of the Source
|
|
119
|
+
// ToolsPanel, so they span both grid columns. The description sits above the
|
|
120
|
+
// button so the button is the last element, keeping the same vertical rhythm to
|
|
121
|
+
// the next control (control -> grid row-gap -> next label) as the other rows.
|
|
122
|
+
.wp-block-gallery__source-settings {
|
|
123
|
+
grid-column: 1 / -1;
|
|
124
|
+
display: flex;
|
|
125
|
+
flex-direction: column;
|
|
126
|
+
gap: $grid-unit-10;
|
|
127
|
+
|
|
128
|
+
// Muted help-text styling for the source description.
|
|
129
|
+
.wp-block-gallery__source-description {
|
|
130
|
+
margin: 0;
|
|
131
|
+
color: $gray-700;
|
|
132
|
+
font-size: $helptext-font-size;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Full-width action button, matching other inspector buttons (e.g. the
|
|
136
|
+
// "Apply globally" control).
|
|
137
|
+
.components-button {
|
|
138
|
+
justify-content: center;
|
|
139
|
+
width: 100%;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// The "showing the first N" notice is a plain (non-ToolsPanelItem) child of the
|
|
144
|
+
// Source ToolsPanel, so span both grid columns rather than defaulting to one.
|
|
145
|
+
.wp-block-gallery__source-notice {
|
|
146
|
+
grid-column: 1 / -1;
|
|
147
|
+
margin: 0;
|
|
148
|
+
}
|
package/src/gallery/gallery.js
CHANGED
|
@@ -7,7 +7,6 @@ import clsx from 'clsx';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import { __ } from '@wordpress/i18n';
|
|
10
|
-
import { View } from '@wordpress/primitives';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Internal dependencies
|
|
@@ -19,7 +18,6 @@ export default function Gallery( props ) {
|
|
|
19
18
|
attributes,
|
|
20
19
|
isSelected,
|
|
21
20
|
setAttributes,
|
|
22
|
-
mediaPlaceholder,
|
|
23
21
|
insertBlocksAfter,
|
|
24
22
|
blockProps,
|
|
25
23
|
__unstableLayoutClassNames: layoutClassNames,
|
|
@@ -45,11 +43,6 @@ export default function Gallery( props ) {
|
|
|
45
43
|
) }
|
|
46
44
|
>
|
|
47
45
|
{ blockProps.children }
|
|
48
|
-
{ isSelected && ! blockProps.children && (
|
|
49
|
-
<View className="blocks-gallery-media-placeholder-wrapper">
|
|
50
|
-
{ mediaPlaceholder }
|
|
51
|
-
</View>
|
|
52
|
-
) }
|
|
53
46
|
<Caption
|
|
54
47
|
attributes={ attributes }
|
|
55
48
|
setAttributes={ setAttributes }
|
|
@@ -3,35 +3,94 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import {
|
|
5
5
|
__experimentalGetGapCSSValue as getGapCSSValue,
|
|
6
|
+
privateApis as blockEditorPrivateApis,
|
|
7
|
+
store as blockEditorStore,
|
|
6
8
|
useStyleOverride,
|
|
9
|
+
useSettings,
|
|
7
10
|
} from '@wordpress/block-editor';
|
|
11
|
+
import { useSelect } from '@wordpress/data';
|
|
12
|
+
import { privateApis as globalStylesEnginePrivateApis } from '@wordpress/global-styles-engine';
|
|
8
13
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
import { unlock } from '../lock-unlock';
|
|
18
|
+
|
|
19
|
+
const { getResponsiveMediaQueries } = unlock( globalStylesEnginePrivateApis );
|
|
20
|
+
const { globalStylesDataKey } = unlock( blockEditorPrivateApis );
|
|
21
|
+
const GALLERY_BLOCK_NAME = 'core/gallery';
|
|
22
|
+
|
|
23
|
+
// --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default
|
|
24
|
+
// gap on the gallery.
|
|
25
|
+
const FALLBACK_VALUE = `var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )`;
|
|
26
|
+
|
|
27
|
+
function getGalleryGapCustomPropertyStyle( selector, blockGap ) {
|
|
28
|
+
let column = FALLBACK_VALUE;
|
|
29
|
+
if ( blockGap ) {
|
|
23
30
|
column =
|
|
24
31
|
typeof blockGap === 'string'
|
|
25
|
-
? getGapCSSValue( blockGap )
|
|
26
|
-
: getGapCSSValue( blockGap?.left ) ||
|
|
27
|
-
gapValue = row === column ? row : `${ row } ${ column }`;
|
|
32
|
+
? getGapCSSValue( blockGap ) || FALLBACK_VALUE
|
|
33
|
+
: getGapCSSValue( blockGap?.left ) || FALLBACK_VALUE;
|
|
28
34
|
}
|
|
29
35
|
|
|
30
36
|
// The unstable gallery gap calculation requires a real value (such as `0px`) and not `0`.
|
|
31
|
-
|
|
32
|
-
--wp--style--unstable-gallery-gap: ${ column === '0' ? '0px' : column }
|
|
33
|
-
gap: ${ gapValue }
|
|
37
|
+
return `${ selector } {
|
|
38
|
+
--wp--style--unstable-gallery-gap: ${ column === '0' ? '0px' : column }
|
|
34
39
|
}`;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function getBlockGapValue( style ) {
|
|
43
|
+
if ( ! Object.hasOwn( style?.spacing || {}, 'blockGap' ) ) {
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return style.spacing.blockGap;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default function GalleryGapCustomProperties( { style, clientId } ) {
|
|
51
|
+
const selector = `#block-${ clientId }`;
|
|
52
|
+
const [ viewportSettings ] = useSettings( 'viewport' );
|
|
53
|
+
const globalStyles = useSelect(
|
|
54
|
+
( select ) =>
|
|
55
|
+
select( blockEditorStore ).getSettings()?.[ globalStylesDataKey ],
|
|
56
|
+
[]
|
|
57
|
+
);
|
|
58
|
+
const globalGalleryStyles =
|
|
59
|
+
globalStyles?.blocks?.[ GALLERY_BLOCK_NAME ] || {};
|
|
60
|
+
const styleBlockGap = getBlockGapValue( style );
|
|
61
|
+
const globalGalleryBlockGap =
|
|
62
|
+
globalGalleryStyles?.spacing?.blockGap ?? FALLBACK_VALUE;
|
|
63
|
+
// Prefer the block's own gap value, then Gallery global styles. Missing
|
|
64
|
+
// values fall back to the Gallery blockGap default.
|
|
65
|
+
const blockGap =
|
|
66
|
+
styleBlockGap === undefined ? globalGalleryBlockGap : styleBlockGap;
|
|
67
|
+
let gap = getGalleryGapCustomPropertyStyle( selector, blockGap );
|
|
68
|
+
|
|
69
|
+
Object.entries( getResponsiveMediaQueries( viewportSettings ) ).forEach(
|
|
70
|
+
( [ viewport, mediaQuery ] ) => {
|
|
71
|
+
const styleViewportBlockGap = getBlockGapValue(
|
|
72
|
+
style?.[ viewport ]
|
|
73
|
+
);
|
|
74
|
+
// Viewport-specific block values win. Gallery global viewport values
|
|
75
|
+
// only apply when the block has no base gap, so they do not override an instance value.
|
|
76
|
+
const globalViewportBlockGap =
|
|
77
|
+
styleBlockGap === undefined
|
|
78
|
+
? globalGalleryStyles?.[ viewport ]?.spacing?.blockGap
|
|
79
|
+
: undefined;
|
|
80
|
+
const viewportBlockGap =
|
|
81
|
+
styleViewportBlockGap === undefined
|
|
82
|
+
? globalViewportBlockGap
|
|
83
|
+
: styleViewportBlockGap;
|
|
84
|
+
if ( viewportBlockGap === undefined || viewportBlockGap === null ) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
gap += `${ mediaQuery }{${ getGalleryGapCustomPropertyStyle(
|
|
89
|
+
selector,
|
|
90
|
+
viewportBlockGap
|
|
91
|
+
) }}`;
|
|
92
|
+
}
|
|
93
|
+
);
|
|
35
94
|
|
|
36
95
|
useStyleOverride( { css: gap } );
|
|
37
96
|
|
package/src/gallery/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import edit from './edit';
|
|
|
12
12
|
import metadata from './block.json';
|
|
13
13
|
import save from './save';
|
|
14
14
|
import transforms from './transforms';
|
|
15
|
+
import variations from './variations';
|
|
15
16
|
|
|
16
17
|
const { name } = metadata;
|
|
17
18
|
|
|
@@ -39,6 +40,7 @@ export const settings = {
|
|
|
39
40
|
],
|
|
40
41
|
},
|
|
41
42
|
transforms,
|
|
43
|
+
variations,
|
|
42
44
|
edit,
|
|
43
45
|
save,
|
|
44
46
|
deprecated,
|