Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Query block: move patterns modal to dropdown on block toolbar #66993

Merged
merged 7 commits into from
Nov 28, 2024

Conversation

ramonjd
Copy link
Member

@ramonjd ramonjd commented Nov 14, 2024

What?

Resolves #63497

This PR:

How?

Extracts the belly from the modal to make it reusable.
Also abstracts the hasPatterns test for consistency.

Testing Instructions

  1. Fire up the site editor, and open a template with an existing query block, or create one yourself! TT5 theme is a worthy choice.
  2. Then select the query block. Check out the block toolbar. Do you see the "Change design" button? Click on it to display the patterns.
  3. Replace a pattern, make sure that works.
  4. Now narrow the viewport width and ensure it's usable in mobile view.
  5. Thank you.

Screenshots or screencast

Kapture.2024-11-27.at.10.14.24.mp4

@ramonjd ramonjd added the [Status] In Progress Tracking issues with work in progress label Nov 14, 2024
@ramonjd ramonjd self-assigned this Nov 14, 2024
Copy link

github-actions bot commented Nov 14, 2024

Size Change: +533 B (+0.03%)

Total Size: 1.82 MB

Filename Size Change
build/block-library/blocks/query/editor-rtl.css 527 B +101 B (+23.71%) 🚨
build/block-library/blocks/query/editor.css 527 B +101 B (+23.71%) 🚨
build/block-library/editor-rtl.css 11.8 kB +95 B (+0.81%)
build/block-library/editor.css 11.7 kB +95 B (+0.82%)
build/block-library/index.min.js 221 kB +141 B (+0.06%)
ℹ️ View Unchanged
Filename Size
build-module/a11y/index.min.js 482 B
build-module/block-library/file/view.min.js 447 B
build-module/block-library/image/view.min.js 1.78 kB
build-module/block-library/navigation/view.min.js 1.16 kB
build-module/block-library/query/view.min.js 742 B
build-module/block-library/search/view.min.js 616 B
build-module/interactivity-router/index.min.js 3.03 kB
build-module/interactivity/debug.min.js 17.2 kB
build-module/interactivity/index.min.js 13.6 kB
build/a11y/index.min.js 952 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.32 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.26 kB
build/block-directory/style-rtl.css 1 kB
build/block-directory/style.css 1 kB
build/block-editor/content-rtl.css 4.41 kB
build/block-editor/content.css 4.41 kB
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-editor/index.min.js 257 kB
build/block-editor/style-rtl.css 15.6 kB
build/block-editor/style.css 15.6 kB
build/block-library/blocks/archives/editor-rtl.css 84 B
build/block-library/blocks/archives/editor.css 83 B
build/block-library/blocks/archives/style-rtl.css 90 B
build/block-library/blocks/archives/style.css 90 B
build/block-library/blocks/audio/editor-rtl.css 149 B
build/block-library/blocks/audio/editor.css 151 B
build/block-library/blocks/audio/style-rtl.css 132 B
build/block-library/blocks/audio/style.css 132 B
build/block-library/blocks/audio/theme-rtl.css 134 B
build/block-library/blocks/audio/theme.css 134 B
build/block-library/blocks/avatar/editor-rtl.css 115 B
build/block-library/blocks/avatar/editor.css 115 B
build/block-library/blocks/avatar/style-rtl.css 104 B
build/block-library/blocks/avatar/style.css 104 B
build/block-library/blocks/button/editor-rtl.css 265 B
build/block-library/blocks/button/editor.css 265 B
build/block-library/blocks/button/style-rtl.css 555 B
build/block-library/blocks/button/style.css 555 B
build/block-library/blocks/buttons/editor-rtl.css 291 B
build/block-library/blocks/buttons/editor.css 291 B
build/block-library/blocks/buttons/style-rtl.css 345 B
build/block-library/blocks/buttons/style.css 345 B
build/block-library/blocks/calendar/style-rtl.css 240 B
build/block-library/blocks/calendar/style.css 240 B
build/block-library/blocks/categories/editor-rtl.css 132 B
build/block-library/blocks/categories/editor.css 131 B
build/block-library/blocks/categories/style-rtl.css 152 B
build/block-library/blocks/categories/style.css 152 B
build/block-library/blocks/code/editor-rtl.css 53 B
build/block-library/blocks/code/editor.css 53 B
build/block-library/blocks/code/style-rtl.css 139 B
build/block-library/blocks/code/style.css 139 B
build/block-library/blocks/code/theme-rtl.css 122 B
build/block-library/blocks/code/theme.css 122 B
build/block-library/blocks/columns/editor-rtl.css 108 B
build/block-library/blocks/columns/editor.css 108 B
build/block-library/blocks/columns/style-rtl.css 420 B
build/block-library/blocks/columns/style.css 420 B
build/block-library/blocks/comment-author-avatar/editor-rtl.css 124 B
build/block-library/blocks/comment-author-avatar/editor.css 124 B
build/block-library/blocks/comment-author-name/style-rtl.css 72 B
build/block-library/blocks/comment-author-name/style.css 72 B
build/block-library/blocks/comment-content/style-rtl.css 120 B
build/block-library/blocks/comment-content/style.css 120 B
build/block-library/blocks/comment-date/style-rtl.css 65 B
build/block-library/blocks/comment-date/style.css 65 B
build/block-library/blocks/comment-edit-link/style-rtl.css 70 B
build/block-library/blocks/comment-edit-link/style.css 70 B
build/block-library/blocks/comment-reply-link/style-rtl.css 71 B
build/block-library/blocks/comment-reply-link/style.css 71 B
build/block-library/blocks/comment-template/style-rtl.css 200 B
build/block-library/blocks/comment-template/style.css 199 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 228 B
build/block-library/blocks/comments-pagination/editor.css 217 B
build/block-library/blocks/comments-pagination/style-rtl.css 234 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/comments-title/editor-rtl.css 75 B
build/block-library/blocks/comments-title/editor.css 75 B
build/block-library/blocks/comments/editor-rtl.css 837 B
build/block-library/blocks/comments/editor.css 836 B
build/block-library/blocks/comments/style-rtl.css 637 B
build/block-library/blocks/comments/style.css 637 B
build/block-library/blocks/cover/editor-rtl.css 631 B
build/block-library/blocks/cover/editor.css 631 B
build/block-library/blocks/cover/style-rtl.css 1.7 kB
build/block-library/blocks/cover/style.css 1.69 kB
build/block-library/blocks/details/editor-rtl.css 65 B
build/block-library/blocks/details/editor.css 65 B
build/block-library/blocks/details/style-rtl.css 86 B
build/block-library/blocks/details/style.css 86 B
build/block-library/blocks/embed/editor-rtl.css 331 B
build/block-library/blocks/embed/editor.css 331 B
build/block-library/blocks/embed/style-rtl.css 419 B
build/block-library/blocks/embed/style.css 419 B
build/block-library/blocks/embed/theme-rtl.css 133 B
build/block-library/blocks/embed/theme.css 133 B
build/block-library/blocks/file/editor-rtl.css 326 B
build/block-library/blocks/file/editor.css 326 B
build/block-library/blocks/file/style-rtl.css 278 B
build/block-library/blocks/file/style.css 279 B
build/block-library/blocks/footnotes/style-rtl.css 198 B
build/block-library/blocks/footnotes/style.css 197 B
build/block-library/blocks/form-input/editor-rtl.css 229 B
build/block-library/blocks/form-input/editor.css 229 B
build/block-library/blocks/form-input/style-rtl.css 357 B
build/block-library/blocks/form-input/style.css 357 B
build/block-library/blocks/form-submission-notification/editor-rtl.css 344 B
build/block-library/blocks/form-submission-notification/editor.css 341 B
build/block-library/blocks/form-submit-button/style-rtl.css 69 B
build/block-library/blocks/form-submit-button/style.css 69 B
build/block-library/blocks/form/view.min.js 470 B
build/block-library/blocks/freeform/editor-rtl.css 2.6 kB
build/block-library/blocks/freeform/editor.css 2.6 kB
build/block-library/blocks/gallery/editor-rtl.css 946 B
build/block-library/blocks/gallery/editor.css 951 B
build/block-library/blocks/gallery/style-rtl.css 1.83 kB
build/block-library/blocks/gallery/style.css 1.82 kB
build/block-library/blocks/gallery/theme-rtl.css 108 B
build/block-library/blocks/gallery/theme.css 108 B
build/block-library/blocks/group/editor-rtl.css 334 B
build/block-library/blocks/group/editor.css 334 B
build/block-library/blocks/group/style-rtl.css 103 B
build/block-library/blocks/group/style.css 103 B
build/block-library/blocks/group/theme-rtl.css 79 B
build/block-library/blocks/group/theme.css 79 B
build/block-library/blocks/heading/style-rtl.css 188 B
build/block-library/blocks/heading/style.css 188 B
build/block-library/blocks/html/editor-rtl.css 346 B
build/block-library/blocks/html/editor.css 347 B
build/block-library/blocks/image/editor-rtl.css 799 B
build/block-library/blocks/image/editor.css 799 B
build/block-library/blocks/image/style-rtl.css 1.59 kB
build/block-library/blocks/image/style.css 1.59 kB
build/block-library/blocks/image/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/latest-comments/style-rtl.css 355 B
build/block-library/blocks/latest-comments/style.css 354 B
build/block-library/blocks/latest-posts/editor-rtl.css 139 B
build/block-library/blocks/latest-posts/editor.css 138 B
build/block-library/blocks/latest-posts/style-rtl.css 509 B
build/block-library/blocks/latest-posts/style.css 510 B
build/block-library/blocks/list/style-rtl.css 107 B
build/block-library/blocks/list/style.css 107 B
build/block-library/blocks/loginout/style-rtl.css 61 B
build/block-library/blocks/loginout/style.css 61 B
build/block-library/blocks/media-text/editor-rtl.css 321 B
build/block-library/blocks/media-text/editor.css 320 B
build/block-library/blocks/media-text/style-rtl.css 552 B
build/block-library/blocks/media-text/style.css 550 B
build/block-library/blocks/more/editor-rtl.css 427 B
build/block-library/blocks/more/editor.css 427 B
build/block-library/blocks/navigation-link/editor-rtl.css 644 B
build/block-library/blocks/navigation-link/editor.css 645 B
build/block-library/blocks/navigation-link/style-rtl.css 192 B
build/block-library/blocks/navigation-link/style.css 191 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 295 B
build/block-library/blocks/navigation-submenu/editor.css 294 B
build/block-library/blocks/navigation/editor-rtl.css 2.2 kB
build/block-library/blocks/navigation/editor.css 2.2 kB
build/block-library/blocks/navigation/style-rtl.css 2.24 kB
build/block-library/blocks/navigation/style.css 2.23 kB
build/block-library/blocks/nextpage/editor-rtl.css 392 B
build/block-library/blocks/nextpage/editor.css 392 B
build/block-library/blocks/page-list/editor-rtl.css 378 B
build/block-library/blocks/page-list/editor.css 378 B
build/block-library/blocks/page-list/style-rtl.css 192 B
build/block-library/blocks/page-list/style.css 192 B
build/block-library/blocks/paragraph/editor-rtl.css 236 B
build/block-library/blocks/paragraph/editor.css 236 B
build/block-library/blocks/paragraph/style-rtl.css 341 B
build/block-library/blocks/paragraph/style.css 340 B
build/block-library/blocks/post-author-biography/style-rtl.css 74 B
build/block-library/blocks/post-author-biography/style.css 74 B
build/block-library/blocks/post-author-name/style-rtl.css 69 B
build/block-library/blocks/post-author-name/style.css 69 B
build/block-library/blocks/post-author/editor-rtl.css 107 B
build/block-library/blocks/post-author/editor.css 107 B
build/block-library/blocks/post-author/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 B
build/block-library/blocks/post-comments-form/editor-rtl.css 96 B
build/block-library/blocks/post-comments-form/editor.css 96 B
build/block-library/blocks/post-comments-form/style-rtl.css 527 B
build/block-library/blocks/post-comments-form/style.css 528 B
build/block-library/blocks/post-content/style-rtl.css 61 B
build/block-library/blocks/post-content/style.css 61 B
build/block-library/blocks/post-date/style-rtl.css 62 B
build/block-library/blocks/post-date/style.css 62 B
build/block-library/blocks/post-excerpt/editor-rtl.css 71 B
build/block-library/blocks/post-excerpt/editor.css 71 B
build/block-library/blocks/post-excerpt/style-rtl.css 155 B
build/block-library/blocks/post-excerpt/style.css 155 B
build/block-library/blocks/post-featured-image/editor-rtl.css 729 B
build/block-library/blocks/post-featured-image/editor.css 726 B
build/block-library/blocks/post-featured-image/style-rtl.css 347 B
build/block-library/blocks/post-featured-image/style.css 347 B
build/block-library/blocks/post-navigation-link/style-rtl.css 215 B
build/block-library/blocks/post-navigation-link/style.css 214 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 399 B
build/block-library/blocks/post-template/style.css 398 B
build/block-library/blocks/post-terms/style-rtl.css 96 B
build/block-library/blocks/post-terms/style.css 96 B
build/block-library/blocks/post-time-to-read/style-rtl.css 70 B
build/block-library/blocks/post-time-to-read/style.css 70 B
build/block-library/blocks/post-title/style-rtl.css 162 B
build/block-library/blocks/post-title/style.css 162 B
build/block-library/blocks/preformatted/style-rtl.css 125 B
build/block-library/blocks/preformatted/style.css 125 B
build/block-library/blocks/pullquote/editor-rtl.css 134 B
build/block-library/blocks/pullquote/editor.css 134 B
build/block-library/blocks/pullquote/style-rtl.css 342 B
build/block-library/blocks/pullquote/style.css 342 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 121 B
build/block-library/blocks/query-pagination-numbers/editor.css 118 B
build/block-library/blocks/query-pagination/editor-rtl.css 154 B
build/block-library/blocks/query-pagination/editor.css 154 B
build/block-library/blocks/query-pagination/style-rtl.css 237 B
build/block-library/blocks/query-pagination/style.css 237 B
build/block-library/blocks/query-title/style-rtl.css 64 B
build/block-library/blocks/query-title/style.css 64 B
build/block-library/blocks/quote/style-rtl.css 238 B
build/block-library/blocks/quote/style.css 238 B
build/block-library/blocks/quote/theme-rtl.css 233 B
build/block-library/blocks/quote/theme.css 236 B
build/block-library/blocks/read-more/style-rtl.css 138 B
build/block-library/blocks/read-more/style.css 138 B
build/block-library/blocks/rss/editor-rtl.css 101 B
build/block-library/blocks/rss/editor.css 101 B
build/block-library/blocks/rss/style-rtl.css 288 B
build/block-library/blocks/rss/style.css 287 B
build/block-library/blocks/search/editor-rtl.css 199 B
build/block-library/blocks/search/editor.css 199 B
build/block-library/blocks/search/style-rtl.css 660 B
build/block-library/blocks/search/style.css 658 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/separator/editor-rtl.css 100 B
build/block-library/blocks/separator/editor.css 100 B
build/block-library/blocks/separator/style-rtl.css 248 B
build/block-library/blocks/separator/style.css 248 B
build/block-library/blocks/separator/theme-rtl.css 195 B
build/block-library/blocks/separator/theme.css 195 B
build/block-library/blocks/shortcode/editor-rtl.css 286 B
build/block-library/blocks/shortcode/editor.css 286 B
build/block-library/blocks/site-logo/editor-rtl.css 806 B
build/block-library/blocks/site-logo/editor.css 803 B
build/block-library/blocks/site-logo/style-rtl.css 218 B
build/block-library/blocks/site-logo/style.css 218 B
build/block-library/blocks/site-tagline/editor-rtl.css 87 B
build/block-library/blocks/site-tagline/editor.css 87 B
build/block-library/blocks/site-tagline/style-rtl.css 65 B
build/block-library/blocks/site-tagline/style.css 65 B
build/block-library/blocks/site-title/editor-rtl.css 85 B
build/block-library/blocks/site-title/editor.css 85 B
build/block-library/blocks/site-title/style-rtl.css 143 B
build/block-library/blocks/site-title/style.css 143 B
build/block-library/blocks/social-link/editor-rtl.css 284 B
build/block-library/blocks/social-link/editor.css 284 B
build/block-library/blocks/social-links/editor-rtl.css 729 B
build/block-library/blocks/social-links/editor.css 727 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.5 kB
build/block-library/blocks/spacer/editor-rtl.css 346 B
build/block-library/blocks/spacer/editor.css 346 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table-of-contents/style-rtl.css 83 B
build/block-library/blocks/table-of-contents/style.css 83 B
build/block-library/blocks/table/editor-rtl.css 394 B
build/block-library/blocks/table/editor.css 394 B
build/block-library/blocks/table/style-rtl.css 640 B
build/block-library/blocks/table/style.css 639 B
build/block-library/blocks/table/theme-rtl.css 152 B
build/block-library/blocks/table/theme.css 152 B
build/block-library/blocks/tag-cloud/editor-rtl.css 144 B
build/block-library/blocks/tag-cloud/editor.css 144 B
build/block-library/blocks/tag-cloud/style-rtl.css 266 B
build/block-library/blocks/tag-cloud/style.css 265 B
build/block-library/blocks/template-part/editor-rtl.css 368 B
build/block-library/blocks/template-part/editor.css 368 B
build/block-library/blocks/template-part/theme-rtl.css 113 B
build/block-library/blocks/template-part/theme.css 113 B
build/block-library/blocks/term-description/style-rtl.css 126 B
build/block-library/blocks/term-description/style.css 126 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 165 B
build/block-library/blocks/text-columns/style.css 165 B
build/block-library/blocks/verse/style-rtl.css 98 B
build/block-library/blocks/verse/style.css 98 B
build/block-library/blocks/video/editor-rtl.css 441 B
build/block-library/blocks/video/editor.css 442 B
build/block-library/blocks/video/style-rtl.css 192 B
build/block-library/blocks/video/style.css 192 B
build/block-library/blocks/video/theme-rtl.css 134 B
build/block-library/blocks/video/theme.css 134 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
build/block-library/common-rtl.css 1.08 kB
build/block-library/common.css 1.08 kB
build/block-library/editor-elements-rtl.css 75 B
build/block-library/editor-elements.css 75 B
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/reset-rtl.css 472 B
build/block-library/reset.css 472 B
build/block-library/style-rtl.css 15 kB
build/block-library/style.css 15 kB
build/block-library/theme-rtl.css 708 B
build/block-library/theme.css 712 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/blocks/index.min.js 52.9 kB
build/commands/index.min.js 16.1 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/components/index.min.js 227 kB
build/components/style-rtl.css 12.4 kB
build/components/style.css 12.4 kB
build/compose/index.min.js 12.7 kB
build/core-commands/index.min.js 3.08 kB
build/core-data/index.min.js 74.3 kB
build/customize-widgets/index.min.js 11 kB
build/customize-widgets/style-rtl.css 1.35 kB
build/customize-widgets/style.css 1.35 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.69 kB
build/date/index.min.js 18 kB
build/deprecated/index.min.js 458 B
build/dom-ready/index.min.js 325 B
build/dom/index.min.js 4.66 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-post/index.min.js 13.4 kB
build/edit-post/style-rtl.css 2.76 kB
build/edit-post/style.css 2.75 kB
build/edit-site/index.min.js 219 kB
build/edit-site/posts-rtl.css 7.58 kB
build/edit-site/posts.css 7.58 kB
build/edit-site/style-rtl.css 13.4 kB
build/edit-site/style.css 13.4 kB
build/edit-widgets/index.min.js 17.7 kB
build/edit-widgets/style-rtl.css 4.09 kB
build/edit-widgets/style.css 4.09 kB
build/editor/index.min.js 112 kB
build/editor/style-rtl.css 9.4 kB
build/editor/style.css 9.41 kB
build/element/index.min.js 4.82 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.05 kB
build/format-library/style-rtl.css 476 B
build/format-library/style.css 476 B
build/hooks/index.min.js 1.65 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/is-shallow-equal/index.min.js 526 B
build/keyboard-shortcuts/index.min.js 1.31 kB
build/keycodes/index.min.js 1.46 kB
build/list-reusable-blocks/index.min.js 2.13 kB
build/list-reusable-blocks/style-rtl.css 852 B
build/list-reusable-blocks/style.css 852 B
build/media-utils/index.min.js 3.58 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.62 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/index.min.js 7.37 kB
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.86 kB
build/preferences-persistence/index.min.js 2.06 kB
build/preferences/index.min.js 2.9 kB
build/preferences/style-rtl.css 554 B
build/preferences/style.css 554 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 961 B
build/react-i18n/index.min.js 630 B
build/react-refresh-entry/index.min.js 9.47 kB
build/react-refresh-runtime/index.min.js 6.76 kB
build/redux-routine/index.min.js 2.7 kB
build/reusable-blocks/index.min.js 2.55 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.3 kB
build/router/index.min.js 2.11 kB
build/server-side-render/index.min.js 1.94 kB
build/shortcode/index.min.js 1.4 kB
build/style-engine/index.min.js 2.04 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.9 kB
build/vendors/react-dom.min.js 41.7 kB
build/vendors/react-jsx-runtime.min.js 556 B
build/vendors/react.min.js 4.02 kB
build/viewport/index.min.js 965 B
build/vips/index.min.js 36.2 kB
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.16 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.03 kB

compressed-size-action

@jasmussen
Copy link
Contributor

Nice one! This is working as intended:

2024-11-14 09 35 29 localhost 3a07410ad554

I can't seem to click this "Choose" button, though, it appears to do nothing for me:

Screenshot 2024-11-14 at 09 36 00

Also a separate note: it would be nice if there was a way for this design panel to start out uncollapsed:

Screenshot 2024-11-14 at 09 35 32

It's probably closed because of an issue loading the previews, you think?

@ramonjd
Copy link
Member Author

ramonjd commented Nov 14, 2024

Thanks for the fast review! It's not quite ready yet, just a shell of a PR 😄

I can't seem to click this "Choose" button, though, it appears to do nothing for me:

Oh, that should open the modal right? I think I unhooked that completely by accident. I'll have to reinstate.

Also a separate note: it would be nice if there was a way for this design panel to start out uncollapsed:
It's probably closed because of an issue loading the previews, you think?

It's possible as far I know. I left it collapsed because the list is very looooong. But I guess we could overflow-y + scroll? What do you think?

Once I've tidied things up I'll add a better test description 😄

@jasmussen
Copy link
Contributor

Oh, that should open the modal right? I think I unhooked that completely by accident. I'll have to reinstate.

It does, yes.

@jasmussen
Copy link
Contributor

It's possible as far I know. I left it collapsed because the list is very looooong. But I guess we could overflow-y + scroll? What do you think?

It's not for this PR; it's a question that's been on my mind also for templates. The contents of that Design panel is hugely valuable, so the fact that it's closed reduces prominence that would otherwise be good to have.

If we were able to open it (again, probably best to keep that separate and do that across all design panels), the sidebar already scrolls, so perhaps the solution to it being long is just to keep the Design panel as the last one (just before Advanced), so it doesn't push down other controls.

@ramonjd ramonjd force-pushed the update/query-block-add-design-to-inspector-tools branch from 6407a2f to d7839c7 Compare November 15, 2024 00:58
@ramonjd ramonjd added [Block] Query Loop Affects the Query Loop Block [Type] Enhancement A suggestion for improvement. and removed [Status] In Progress Tracking issues with work in progress labels Nov 15, 2024
@ramonjd ramonjd marked this pull request as ready for review November 15, 2024 00:59
Copy link

github-actions bot commented Nov 15, 2024

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Unlinked Accounts

The following contributors have not linked their GitHub and WordPress.org accounts: @jarekmorawski.

Contributors, please read how to link your accounts to ensure your work is properly credited in WordPress releases.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Unlinked contributors: jarekmorawski.

Co-authored-by: ramonjd <ramonopoly@git.wordpress.org>
Co-authored-by: ntsekouras <ntsekouras@git.wordpress.org>
Co-authored-by: draganescu <andraganescu@git.wordpress.org>
Co-authored-by: aaronrobertshaw <aaronrobertshaw@git.wordpress.org>
Co-authored-by: youknowriad <youknowriad@git.wordpress.org>
Co-authored-by: jasmussen <joen@git.wordpress.org>
Co-authored-by: annezazu <annezazu@git.wordpress.org>
Co-authored-by: talldan <talldanwp@git.wordpress.org>
Co-authored-by: richtabor <richtabor@git.wordpress.org>
Co-authored-by: fabiankaegy <fabiankaegy@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@ramonjd
Copy link
Member Author

ramonjd commented Nov 15, 2024

The contents of that Design panel is hugely valuable, so the fact that it's closed reduces prominence that would otherwise be good to have.

Thanks for the feedback. I've left it open for now. Let me know what you think.

Once thing I changed about the block inspector patterns list was to show tooltips rather than the titles, which normally appear underneath the images. I found the titles personally confusing, and wasn't sure which pattern they referred to in a long vertical list.

Screenshot 2024-11-15 at 12 02 26 pm

Can go either way on it. I'll take your advice on that one.

@ntsekouras
Copy link
Contributor

Thanks for the PR!

If I remember correctly we have the design panel closed mostly for avoiding to render many patterns (performance) as it might not be the most common thing to do when editing.

Despite where we end up (closed/opened) it seems to me it fits better below the main block's control.

Finally, this implementation for Query Loop has also a search input whereas the other design panel don't (template parts etc..). Should we consolidate here and either add or remove the search input. Additionally how useful do you think it is, especially if we don't have visible titles, and if we do they are quite subtle (small font size etc..).

@ramonjd ramonjd force-pushed the update/query-block-add-design-to-inspector-tools branch from 620981d to 5629744 Compare November 19, 2024 01:59
@ramonjd
Copy link
Member Author

ramonjd commented Nov 19, 2024

Thank you for helping here!

If I remember correctly we have the design panel closed mostly for avoiding to render many patterns (performance) as it might not be the most common thing to do when editing.

Good point. I had it closed initially because of this concern.

The patterns load with the site editor so at least there's not an extra API call.

I'm not sure to be honest. The list of patterns has the potential to be very long. Would it help or annoy users to have it permanently open?

If I'm tweaking my query block, I would personally find it a bit of a peeve to have to close it to access my query controls.

Despite where we end up (closed/opened) it seems to me it fits better below the main block's control.

I had a little look at it appears the layout inspector control has priority, so I guess — I'm not 100% on this yet — we'd need to specify a new group and order it explicitly in the block inspector component.

Looking at this, I think there's an argument for having it lower - the query controls are quite useful and the design panel, if left open, has the potential to be very long.

Screenshot 2024-11-19 at 12 58 27 pm

🤷🏻

Finally, this implementation for Query Loop has also a search input whereas the other design panel don't (template parts etc..). Should we consolidate here and either add or remove the search input. Additionally how useful do you think it is, especially if we don't have visible titles, and if we do they are quite subtle (small font size etc..).

I left the search control in for no reason in particular. I think it's only useful if you know what you're looking for. The list can be long, so I guess it's useful for theme devs with knowledge of the theme.

For this PR, I could remove it if folks don't feel strongly about it.

Or, if it goes the other way, it could be added across the other design panels in another PR.

@ramonjd
Copy link
Member Author

ramonjd commented Nov 21, 2024

Putting this in draft for a while while I test some things.

I was chatting with @annezazu about it and it was important to show something in navigation mode (write mode).

See: #66614

So I'm just hacking about to see if it's possible to create a navigationMode slot, but I haven't checked all the scenarios yet.

Conceptually it works, but it probably breaks a lot of things too. @ntsekouras not a priority, but when you get a chance, what do you think about the requirements? Is there a better way to display controls in the inspector toolbar in write mode?

Kapture.2024-11-21.at.15.49.50.mp4

Thank you!

@ramonjd ramonjd marked this pull request as draft November 21, 2024 04:50
@@ -276,7 +281,7 @@ const BlockInspectorSingleBlock = ( {
</PanelBody>
) }

{ ! isSectionBlock && (
{ ! isSectionBlock && ! isNavigationMode && (
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these tests the same? When could they be different?

Here's the selector:

export function isSectionBlock( state, clientId ) {

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is an algorithm to try to determine what a section block is and has to do with zoom-out as well. @getdave might have more info, but I don't think it's a check we should add.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should not do it in write mode and instead do it for the block in design mode 1st. I think content only representation of blocks that do not expose role content attributes is a larger thing to consider. There is at least #65699 to consider as well

@@ -309,6 +314,10 @@ const BlockInspectorSingleBlock = ( {
</div>
</>
) }

{ isNavigationMode && (
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basically what I'm trying to achieve here is a slot for tools that should only appear in write mode.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@youknowriad @ramonjd here is basically trying the original idea I had too for #66753 have a slot where blocks can put things in certain edit modes. The query block puts a design picker, the navigation block shows the list view. But I believe you had some objections?

It seems to be a problem that it does add yet another slot and we're unclear what "content only representation" even means and we rush into something public.

@@ -70,6 +71,7 @@ export default function QueryContent( {
?.posts_per_page;

return {
isNavigationMode: _isNavigationMode(),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this is best way to test for write mode inside a block?

Or should we be rather testing for isSectionBlock?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's important to figure out if blocks should check for that. It would be nice if the block editor should know what to do based on something about these blocks (what does navigation and query block have in common...).

Write mode is a top level content only lock, and blocks do have content role attributes. They should not have to implement special UI to "support" features of the block editor, if they support it the UI works.

@ntsekouras
Copy link
Contributor

Thanks for exploring this!

I don't know in depth all the nuances with all the different modes (editorMode, blockEditingMode, etc..) so I'm not sure I can give good feedback. I'll cc @WordPress/gutenberg-core .

My thoughts would be that for this Query Loop issue, I imagine changes in how we handle blocks with inner blocks in contentOnly mode and not regarding the editorMode (as here). In combination we would need some better handling for blocks like Site Title etc.. when in contentOnly.

Having a separate slot could work I guess and we would also need slot for block Toolbar, but right now we have some checks in image block to render conditionally such controls - though I'm not sure it's the right approach. There is no much difference here since inside Query Loop you're doing a conditional rendering - it would just render different controls and not inside the new slot. So, do we need a new slot? 🤔

Copy link
Contributor

@draganescu draganescu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@WordPress/gutenberg-design should we have a unified approach to write mode for blocks that "should work" in write mode but have no content exposed, or is a block by block approach needed?

@ramonjd could we make the PR address design mode 1st?

@@ -276,7 +281,7 @@ const BlockInspectorSingleBlock = ( {
</PanelBody>
) }

{ ! isSectionBlock && (
{ ! isSectionBlock && ! isNavigationMode && (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should not do it in write mode and instead do it for the block in design mode 1st. I think content only representation of blocks that do not expose role content attributes is a larger thing to consider. There is at least #65699 to consider as well

@@ -309,6 +314,10 @@ const BlockInspectorSingleBlock = ( {
</div>
</>
) }

{ isNavigationMode && (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@youknowriad @ramonjd here is basically trying the original idea I had too for #66753 have a slot where blocks can put things in certain edit modes. The query block puts a design picker, the navigation block shows the list view. But I believe you had some objections?

It seems to be a problem that it does add yet another slot and we're unclear what "content only representation" even means and we rush into something public.

@@ -70,6 +71,7 @@ export default function QueryContent( {
?.posts_per_page;

return {
isNavigationMode: _isNavigationMode(),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's important to figure out if blocks should check for that. It would be nice if the block editor should know what to do based on something about these blocks (what does navigation and query block have in common...).

Write mode is a top level content only lock, and blocks do have content role attributes. They should not have to implement special UI to "support" features of the block editor, if they support it the UI works.

@@ -49,6 +49,12 @@
}
}

.block-library-query-toolspanel__design {
.block-library-query-pattern__selection-content {
margin-top: $grid-unit-10;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this an override of sorts?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's to compensate for the removal of the search component in the patterns view.

@@ -152,6 +154,24 @@ export default function QueryContent( {
setAttributes={ setAttributes }
clientId={ clientId }
/>
{ hasPatterns && (
<InspectorControls
group={ isNavigationMode ? 'navigationMode' : 'default' }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we shouldn't need this bifurcation and the block editor should know how to handle write mode? The more I say it the less I think it's doable. Even here, query block shows a design picker, navigation block shows a tree of inner blocks.

@jarekmorawski
Copy link

Would it make sense to make Design a separate tab in the Inspector? That'd solve the scrolling issues you identified earlier. It'd also make the designs easy to find and consistent across different blocks, patterns, and template parts.

image

@jasmussen
Copy link
Contributor

Funny you should mention it, I had a similar thought this morning:

Screenshot 2024-11-21 at 09 17 33

Intoducing a new tab is something I'd like to move a bit carefully with, in a Plan B kind of sense, because doing so introduces a few variables in terms of discoverability of the other settings. It may work! But it would be good to improve some of the other basics first. E.g. performance if there's anything to get, opening by default, a consistent position (always top, or always bottom), starting out open if possible, addressing the jumpiness on loading, perhaps with animation or skeleton indicators, or even fixed aspect ratios (3:4 for pages, 4:3 for patterns perhaps). Those improvements might still benefit anything in a tab.

@annezazu
Copy link
Contributor

but can we settle on a single pattern for all these similar interactions: Either the "change design" in the toolbar like we did recently in "zoom-out" or the "design" panel in the inspector. Are there any incentives to use different UX.

I'd really like us to do so too. IMO I lean towards implementing what we did with zoom out here if we can as adding the "design" panel to the sidebar for the query loop block comes with many downsides:

  • Buries important settings for the query loop block. This stands in contrast to a template part that doesn't have any settings to change or adjust.
  • Shows a smaller preview that makes it harder to select between.
  • Only is visible if someone opens the block settings (some don't for a long time! I've seen this in user testing.).
  • Will show all patterns regardless of how many a theme has which can quickly make for an unweildly experience.

I defer to design here but this is what's on my mind.

@ramonjd ramonjd force-pushed the update/query-block-add-design-to-inspector-tools branch from 92d4c8d to 436c9b5 Compare November 22, 2024 02:08
@ramonjd
Copy link
Member Author

ramonjd commented Nov 22, 2024

I lean towards implementing what we did with zoom out here if we can as adding the "design" panel to the sidebar for the query loop block comes with many downsides:

Thanks @annezazu and to everyone for their feedback.

You make a pretty good case in relation to the downsides.

I don't think the block inspector sidebar has the real estate. I've a mind to close this PR.

Still, I've updated this PR to reflect the [original issue's](Resolves #63497) intentions for the sake of testing.

Happy to close this one until a consistent write-only state for block tools surfaces.

Either the "change design" in the toolbar like we did recently in "zoom-out" or the "design" panel in the inspector. Are there any incentives to use different UX.

Another question could be: are there any blocks that require tools in write mode that are currently blocked by the isSectionBlock gating condition in

?

If there's a comfortable home for designs in the toolbar, and no further requirements, then maybe this PR can be abandoned.

@talldan
Copy link
Contributor

talldan commented Nov 22, 2024

Another question could be: are there any blocks that require tools in write mode that are current blocked by the isSectionBlock gating condition

I think block style variations are shown in the inspector for sections when zoom out is active, possibly also in write mode.

Some blocks also have special toolbar controls, but I think that's just handled within the block via some conditional rendering (image block with its alt text is an example).

@aaronrobertshaw
Copy link
Contributor

I think block style variations are shown in the inspector for sections when zoom out is active

There's some evolving work happening over on #67140 to add block style variation controls to the block toolbar in zoom out mode.

@youknowriad
Copy link
Contributor

Another question could be: are there any blocks that require tools in write mode that are current blocked by the isSectionBlock gating condition

I think that condition is not "final", in the sense that it's a temporary solution to the fact that we want to hide most block tools in these modes (content-only, write mode, zoom-out) and instead we only show the tools that the framework (block-editor) can provide and not the ones that the block provides. I agree that it has proved to be a challenge. What's clear (from multiple PRs) is that we need to come up with a good system to decide:

  • What tools make sense for sections (content-only, write mode, zoom-out) from a design perspective? So far the answer was very ad-hoc, we want this tool, but not this tool, that one but not the other... The import bit is the Why that control over that one. A question for our designers. @richtabor @jasmussen
  • With the above answer, we can come up with the right API/technical solution to either implement all these tools in the framework, offer a dedicated slot or a flag (prop) to BlockControls and InspectorControls...

@annezazu
Copy link
Contributor

Quickly tested this and noticed that I can't find the write/design tools in the PR now. I can see a collapsible design section under the Query Loop though but worry this might have messed with something else.

missing.tools.mov

@richtabor
Copy link
Member

What tools make sense for sections (content-only, write mode, zoom-out) from a design perspective? So far the answer was very ad-hoc, we want this tool, but not this tool, that one but not the other... The import bit is the Why that control over that one. A question for our designers. @richtabor @jasmussen

I think both affordances are appropriate, but perhaps we clean up to where we are already headed today (the "Change design" toolbar control)—before adding something new.

CleanShot 2024-11-23 at 09 32 56

For blocks with alternate patterns defined via block types, like Query, Header, and Footer, I think it's fine to have the "Change design" control available anytime. It's unlikely to be available in zoom out, unless it's also a top-level block.
The current "Change design" that is top-level on any pattern with category meta should remain only available in zoom out, as it's potentially much more destructive.

@ramonjd
Copy link
Member Author

ramonjd commented Nov 24, 2024

Quickly tested this and noticed that I can't find the write/design tools in the PR now. I can see a collapsible design section under the Query Loop though but worry this might have messed with something else.

@annezazu The write mode was placed behind an experimental flag in #67008

Screenshot 2024-11-24 at 6 41 47 pm

Could that be it?

@fabiankaegy
Copy link
Member

I like the veriation @richtabor showcases in the toolbar much better than the version in the sidebar. The sidebar just takes up too much vertical space and only having a single pattern up at a time makes it very hard fo actually find / compare anything.

@annezazu
Copy link
Contributor

The write mode was placed behind an experimental flag in #67008

Yes! I am a fool and didn't connect that that happened just before this :D

@ramonjd ramonjd force-pushed the update/query-block-add-design-to-inspector-tools branch from 436c9b5 to 87b24ab Compare November 26, 2024 23:14
@ramonjd
Copy link
Member Author

ramonjd commented Nov 26, 2024

we clean up to where we are already headed today (the "Change design" toolbar control)

I've done this for the query block. 👍🏻 It's a first pass so if you can see opportunities for refinements, let me know. Thank you!

@ramonjd ramonjd force-pushed the update/query-block-add-design-to-inspector-tools branch from 6e884dc to 5797f50 Compare November 26, 2024 23:31
@ramonjd ramonjd changed the title Query block: move patterns to inspector controls Query block: move patterns modal to dropdown on block toolbar Nov 26, 2024
@ramonjd ramonjd marked this pull request as ready for review November 26, 2024 23:32
Copy link
Contributor

@aaronrobertshaw aaronrobertshaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for all the iterations here @ramonjd 👍

This is testing well for me.

✅ Patterns are rendered appropriately via "Change design" in the block toolbar
✅ Replacing patterns works as expected
✅ Change design popover renders and works in mobile view

Screen.Recording.2024-11-27.at.12.12.24.pm.mp4

My understanding is you've addressed all the feedback for this first pass, so to that end I'm happy to approve. Feel free to wait for a second opinion or design approval if you'd like though.

@ramonjd
Copy link
Member Author

ramonjd commented Nov 27, 2024

Thanks a lot for testing @aaronrobertshaw!! 🙇🏻

I'll leave this one to simmer overnight to see if design folks suggest any last-minute tweaks.

</ToolbarGroup>
) }
</>
<ToolbarGroup className="wp-block-template-part__block-control-group">
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not for this PR but how much of this toolbar control can be made generic and absorbed automatically for all blocks in "block-editor"? (just asking whether that's even possible)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had a poke around and I think it could be genericized in the block-editor package.

For example the align hook displays a block control.

As far as I can tell the hasPatterns check the query block uses relies only on the blocks and block-editor stores. So no core data.

@ramonjd ramonjd merged commit 756cfe0 into trunk Nov 28, 2024
68 of 69 checks passed
@ramonjd ramonjd deleted the update/query-block-add-design-to-inspector-tools branch November 28, 2024 01:51
@github-actions github-actions bot added this to the Gutenberg 19.9 milestone Nov 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Query Loop Affects the Query Loop Block [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use "Design" panel for Query Loop block