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

Sidebar: Add a shared component for the inserter and list view #62343

Merged
merged 17 commits into from
Jul 2, 2024

Conversation

scruffian
Copy link
Contributor

@scruffian scruffian commented Jun 5, 2024

What?

Creates a new TabbedPanel component that is used by both the inserter and the list view.

Why?

This will ensure visual and behaviour consistency between these two panels. In time we should also update the block inspector and global styles to use the component too.

How?

  • Create a new TabbedPanel component
  • Refactor shared code to use the new component

Testing Instructions

  1. Open the Site Editor
  2. Open the block inserter and check that the tabs behave the same way as in trunk
  3. Open the list view and check that the tabs behave the same way as in trunk

Testing Instructions for Keyboard

Also check that the keyboard interactions are the same as in trunk.

Note: There is ongoing discussion about the best way to handle keyboard interactions with these panels. This PR aims to consolidate these panels to use the same code and approach. When we update the approach to keyboard interactions then we'll only need to do it in one place for all panels.

Screenshots or screencast

Before After
Screenshot 2024-06-17 at 12 39 27 Screenshot 2024-07-02 at 13 14 18

| Screenshot 2024-06-17 at 12 41 30 | Screenshot 2024-07-02 at 13 14 30 |

The visual differences are:

  • The blue border under the tabs are now the same, which means the one in the inserter is now slightly wider
  • The tabs in the list view are very slightly wider

@scruffian scruffian added the [Type] Code Quality Issues or PRs that relate to code quality label Jun 5, 2024
@scruffian scruffian self-assigned this Jun 5, 2024
Copy link

github-actions bot commented Jun 5, 2024

Size Change: -8.85 kB (-0.5%)

Total Size: 1.75 MB

Filename Size Change
build/block-directory/index.min.js 7.31 kB +6 B (+0.08%)
build/block-directory/style-rtl.css 1.01 kB -9 B (-0.88%)
build/block-directory/style.css 1.01 kB -10 B (-0.98%)
build/block-editor/content-rtl.css 4.58 kB +6 B (+0.13%)
build/block-editor/content.css 4.58 kB +6 B (+0.13%)
build/block-editor/index.min.js 252 kB -10.5 kB (-3.99%)
build/block-editor/style-rtl.css 15.7 kB +133 B (+0.85%)
build/block-editor/style.css 15.7 kB +132 B (+0.85%)
build/block-library/blocks/audio/style-rtl.css 132 B +7 B (+5.6%) 🔍
build/block-library/blocks/audio/style.css 132 B +7 B (+5.6%) 🔍
build/block-library/blocks/audio/theme-rtl.css 134 B +8 B (+6.35%) 🔍
build/block-library/blocks/audio/theme.css 134 B +8 B (+6.35%) 🔍
build/block-library/blocks/embed/style-rtl.css 419 B +8 B (+1.95%)
build/block-library/blocks/embed/style.css 419 B +8 B (+1.95%)
build/block-library/blocks/embed/theme-rtl.css 133 B +7 B (+5.56%) 🔍
build/block-library/blocks/embed/theme.css 133 B +7 B (+5.56%) 🔍
build/block-library/blocks/image/editor-rtl.css 845 B -45 B (-5.06%)
build/block-library/blocks/image/editor.css 843 B -46 B (-5.17%)
build/block-library/blocks/image/style-rtl.css 1.54 kB +26 B (+1.71%)
build/block-library/blocks/image/style.css 1.54 kB +25 B (+1.65%)
build/block-library/blocks/media-text/style-rtl.css 516 B +10 B (+1.98%)
build/block-library/blocks/media-text/style.css 515 B +11 B (+2.18%)
build/block-library/blocks/navigation/style-rtl.css 2.26 kB +10 B (+0.44%)
build/block-library/blocks/navigation/style.css 2.25 kB +9 B (+0.4%)
build/block-library/blocks/search/style-rtl.css 672 B -12 B (-1.75%)
build/block-library/blocks/search/style.css 671 B -12 B (-1.76%)
build/block-library/blocks/table/theme-rtl.css 152 B +7 B (+4.83%) 🔍
build/block-library/blocks/table/theme.css 152 B +7 B (+4.83%) 🔍
build/block-library/blocks/video/style-rtl.css 192 B +6 B (+3.23%)
build/block-library/blocks/video/style.css 192 B +6 B (+3.23%)
build/block-library/blocks/video/theme-rtl.css 134 B +8 B (+6.35%) 🔍
build/block-library/blocks/video/theme.css 134 B +8 B (+6.35%) 🔍
build/block-library/common-rtl.css 1.1 kB -11 B (-0.99%)
build/block-library/common.css 1.1 kB -10 B (-0.9%)
build/block-library/editor-rtl.css 11.9 kB -73 B (-0.61%)
build/block-library/editor.css 11.9 kB -70 B (-0.59%)
build/block-library/index.min.js 219 kB +149 B (+0.07%)
build/block-library/reset-rtl.css 472 B +2 B (+0.43%)
build/block-library/reset.css 472 B +2 B (+0.43%)
build/block-library/style-rtl.css 14.6 kB +3 B (+0.02%)
build/block-library/style.css 14.6 kB +1 B (+0.01%)
build/block-library/theme-rtl.css 702 B +4 B (+0.57%)
build/block-library/theme.css 707 B +4 B (+0.57%)
build/blocks/index.min.js 52.2 kB +21 B (+0.04%)
build/commands/index.min.js 15.2 kB +8 B (+0.05%)
build/components/index.min.js 223 kB +107 B (+0.05%)
build/components/style-rtl.css 12.1 kB +94 B (+0.78%)
build/components/style.css 12.1 kB +95 B (+0.79%)
build/core-commands/index.min.js 2.77 kB +31 B (+1.13%)
build/core-data/index.min.js 72.6 kB +5 B (+0.01%)
build/customize-widgets/index.min.js 10.9 kB +5 B (+0.05%)
build/data/index.min.js 8.98 kB -8 B (-0.09%)
build/edit-post/index.min.js 12.5 kB +79 B (+0.64%)
build/edit-post/style-rtl.css 2.34 kB +25 B (+1.08%)
build/edit-post/style.css 2.33 kB +26 B (+1.13%)
build/edit-site/index.min.js 208 kB +554 B (+0.27%)
build/edit-site/posts-rtl.css 6.54 kB +185 B (+2.91%)
build/edit-site/posts.css 6.54 kB +187 B (+2.94%)
build/edit-site/style-rtl.css 11.7 kB -30 B (-0.26%)
build/edit-site/style.css 11.7 kB -28 B (-0.24%)
build/edit-widgets/index.min.js 17.6 kB +5 B (+0.03%)
build/editor/index.min.js 98.2 kB +174 B (+0.18%)
build/editor/style-rtl.css 9.14 kB -79 B (-0.86%)
build/editor/style.css 9.15 kB -78 B (-0.85%)
build/format-library/index.min.js 8.07 kB -25 B (-0.31%)
build/interactivity/debug.min.js 16.5 kB +21 B (+0.13%)
build/interactivity/index.min.js 13.4 kB +21 B (+0.16%)
build/patterns/index.min.js 7.35 kB +125 B (+1.73%)
build/preferences/index.min.js 2.9 kB +6 B (+0.21%)
build/preferences/style-rtl.css 578 B -137 B (-19.16%) 👏
build/preferences/style.css 578 B -137 B (-19.16%) 👏
build/private-apis/index.min.js 1.01 kB +15 B (+1.51%)
build/reusable-blocks/index.min.js 2.73 kB +8 B (+0.29%)
build/router/index.min.js 1.96 kB +8 B (+0.41%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 951 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.31 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-editor/default-editor-styles-rtl.css 394 B
build/block-editor/default-editor-styles.css 394 B
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 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/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 310 B
build/block-library/blocks/button/editor.css 310 B
build/block-library/blocks/button/style-rtl.css 538 B
build/block-library/blocks/button/style.css 538 B
build/block-library/blocks/buttons/editor-rtl.css 336 B
build/block-library/blocks/buttons/editor.css 336 B
build/block-library/blocks/buttons/style-rtl.css 328 B
build/block-library/blocks/buttons/style.css 328 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 113 B
build/block-library/blocks/categories/editor.css 112 B
build/block-library/blocks/categories/style-rtl.css 124 B
build/block-library/blocks/categories/style.css 124 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 121 B
build/block-library/blocks/code/style.css 121 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-content/style-rtl.css 90 B
build/block-library/blocks/comment-content/style.css 90 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 221 B
build/block-library/blocks/comments-pagination/editor.css 211 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 832 B
build/block-library/blocks/comments/editor.css 832 B
build/block-library/blocks/comments/style-rtl.css 632 B
build/block-library/blocks/comments/style.css 631 B
build/block-library/blocks/cover/editor-rtl.css 668 B
build/block-library/blocks/cover/editor.css 669 B
build/block-library/blocks/cover/style-rtl.css 1.62 kB
build/block-library/blocks/cover/style.css 1.6 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 314 B
build/block-library/blocks/embed/editor.css 314 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/file/view.min.js 324 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 342 B
build/block-library/blocks/form-input/style.css 342 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 958 B
build/block-library/blocks/gallery/editor.css 962 B
build/block-library/blocks/gallery/style-rtl.css 1.71 kB
build/block-library/blocks/gallery/style.css 1.71 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 402 B
build/block-library/blocks/group/editor.css 402 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/theme-rtl.css 137 B
build/block-library/blocks/image/theme.css 137 B
build/block-library/blocks/image/view.min.js 1.54 kB
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 204 B
build/block-library/blocks/latest-posts/editor.css 204 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 104 B
build/block-library/blocks/list/style.css 104 B
build/block-library/blocks/media-text/editor-rtl.css 304 B
build/block-library/blocks/media-text/editor.css 303 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 663 B
build/block-library/blocks/navigation-link/editor.css 664 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.21 kB
build/block-library/blocks/navigation/view.min.js 1.03 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 175 B
build/block-library/blocks/page-list/style.css 175 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/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 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 506 B
build/block-library/blocks/post-comments-form/style.css 506 B
build/block-library/blocks/post-content/editor-rtl.css 74 B
build/block-library/blocks/post-content/editor.css 74 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 141 B
build/block-library/blocks/post-excerpt/style.css 141 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 341 B
build/block-library/blocks/post-featured-image/style.css 341 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 100 B
build/block-library/blocks/post-title/style.css 100 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 220 B
build/block-library/blocks/query-pagination/editor.css 208 B
build/block-library/blocks/query-pagination/style-rtl.css 287 B
build/block-library/blocks/query-pagination/style.css 283 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/query/editor-rtl.css 502 B
build/block-library/blocks/query/editor.css 502 B
build/block-library/blocks/query/view.min.js 958 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 221 B
build/block-library/blocks/quote/theme.css 225 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 183 B
build/block-library/blocks/search/editor.css 183 B
build/block-library/blocks/search/theme-rtl.css 113 B
build/block-library/blocks/search/theme.css 113 B
build/block-library/blocks/search/view.min.js 475 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-title/editor-rtl.css 123 B
build/block-library/blocks/site-title/editor.css 123 B
build/block-library/blocks/site-title/style-rtl.css 71 B
build/block-library/blocks/site-title/style.css 71 B
build/block-library/blocks/social-link/editor-rtl.css 338 B
build/block-library/blocks/social-link/editor.css 338 B
build/block-library/blocks/social-links/editor-rtl.css 676 B
build/block-library/blocks/social-links/editor.css 675 B
build/block-library/blocks/social-links/style-rtl.css 1.5 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/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/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 393 B
build/block-library/blocks/template-part/editor.css 393 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 108 B
build/block-library/blocks/term-description/style.css 108 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 553 B
build/block-library/blocks/video/editor.css 554 B
build/block-library/classic-rtl.css 179 B
build/block-library/classic.css 179 B
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-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.87 kB
build/commands/style-rtl.css 955 B
build/commands/style.css 952 B
build/compose/index.min.js 12.9 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/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.65 kB
build/edit-post/classic-rtl.css 578 B
build/edit-post/classic.css 580 B
build/edit-widgets/style-rtl.css 4.18 kB
build/edit-widgets/style.css 4.18 kB
build/element/index.min.js 4.83 kB
build/escape-html/index.min.js 537 B
build/format-library/style-rtl.css 494 B
build/format-library/style.css 493 B
build/hooks/index.min.js 1.54 kB
build/html-entities/index.min.js 445 B
build/i18n/index.min.js 3.58 kB
build/interactivity/file.min.js 447 B
build/interactivity/image.min.js 1.68 kB
build/interactivity/navigation.min.js 1.16 kB
build/interactivity/query.min.js 742 B
build/interactivity/router.min.js 2.8 kB
build/interactivity/search.min.js 615 B
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.17 kB
build/list-reusable-blocks/style-rtl.css 846 B
build/list-reusable-blocks/style.css 846 B
build/media-utils/index.min.js 2.92 kB
build/modules/importmap-polyfill.min.js 12.3 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.58 kB
build/nux/style-rtl.css 749 B
build/nux/style.css 745 B
build/patterns/style-rtl.css 687 B
build/patterns/style.css 685 B
build/plugins/index.min.js 1.81 kB
build/preferences-persistence/index.min.js 2.06 kB
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
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.69 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 10.1 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.01 kB
build/token-list/index.min.js 581 B
build/url/index.min.js 3.85 kB
build/vendors/react-dom.min.js 42.8 kB
build/vendors/react-jsx-runtime.min.js 560 B
build/vendors/react.min.js 2.65 kB
build/viewport/index.min.js 965 B
build/warning/index.min.js 250 B
build/widgets/index.min.js 7.19 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

Copy link

github-actions bot commented Jun 5, 2024

Flaky tests detected in a7a65e7.
Some tests passed with failed attempts. The failures may not be related to this commit but are still reported for visibility. See the documentation for more information.

🔍 Workflow run URL: https://github.com/WordPress/gutenberg/actions/runs/9761003448
📝 Reported issues:

@scruffian scruffian force-pushed the refactor/tabbed-sidebar branch from ff180fd to 236d52a Compare June 14, 2024 19:30
@scruffian scruffian marked this pull request as ready for review June 17, 2024 12:35
@scruffian scruffian requested a review from ellatrix as a code owner June 17, 2024 12:35
Copy link

github-actions bot commented Jun 17, 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.

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

Co-authored-by: scruffian <[email protected]>
Co-authored-by: jeryj <[email protected]>
Co-authored-by: DaniGuardiola <[email protected]>
Co-authored-by: afercia <[email protected]>
Co-authored-by: jasmussen <[email protected]>
Co-authored-by: youknowriad <[email protected]>
Co-authored-by: tyxla <[email protected]>

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

@afercia
Copy link
Contributor

afercia commented Jun 19, 2024

I'd be totally in favor of a shared component to reduce duplication and have more consistency.

Worth noting the Inserter should not use an ARIA tabs interface when it shows only one kind of object. That's the case in the Widgets page and in the Customizer-widgets panel which only show Blocks. Could this component render an alternative ui with no ARIA tabs semantics when there's only one kind of objects? The implementation that as in place before the recent editor reunification effort did use an alternative UI for this case but that went lost.
See #61653

@DaniGuardiola
Copy link
Contributor

Inner styles should not be overriden for @wordpress/components, in general. If we want a version of tabs that stretches to fill its container, that should be requested and implemented (if agreed upon) in the component itself, as a variant. Style overrides are very fragile and make maintenance of the underlying component pretty painful.

Separately, there are some valid arguments against these full-width styles, like #61974 (comment)

While I think a component like this that unifies styles is a good addition (without having looked too deep into the details), I think the conversation in #61974 should be resolved first before committing to one or the other. If full-width is the decision, then there should be work to implement those styles in Tabs before merging this. cc @mirka @ciampo

@scruffian
Copy link
Contributor Author

We are already overriding these styles in the individual components, so this doesn't break that convention any more than it's already been broken, it just centralizes that code.

@jeryj jeryj self-requested a review June 25, 2024 16:01
@DaniGuardiola
Copy link
Contributor

DaniGuardiola commented Jun 26, 2024

@scruffian I think that's reasonable. Please note that the first example in the description has an intentional design detail where the tabs indicator overlaps the border below it, as can be seen in the "before" image. If we unify all of these (and the ones you mention for the future), we should also make a unified decision regarding that detail. cc @WordPress/gutenberg-design

@jasmussen
Copy link
Contributor

jasmussen commented Jun 27, 2024

Good catch, @DaniGuardiola, that is definitely intentional, and is about ensuring legibility of the active state, so that's an important detail to retain.

Copy link
Contributor

@jeryj jeryj left a comment

Choose a reason for hiding this comment

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

Love all the red of removed code :)

With the zoom-out pattern experiment enabled, the patterns list is not positioned correctly.
Patterns sidebar shown to the right of a 300px wide gap of white space

<Button
className="block-editor-tabbed-sidebar__close-button"
icon={ closeSmall }
label={ __( 'Close block inserter' ) }
Copy link
Contributor

Choose a reason for hiding this comment

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

This will need to be dynamic, as the list view close button tooltip also says "Close block inserter"

@@ -162,6 +162,7 @@ export { default as __experimentalPublishDateTimePicker } from './publish-date-t
export { default as __experimentalInspectorPopoverHeader } from './inspector-popover-header';
export { default as BlockPopover } from './block-popover';
export { useBlockEditingMode } from './block-editing-mode';
export { default as TabbedSidebar } from './tabbed-sidebar';
Copy link
Contributor

Choose a reason for hiding this comment

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

This is a helpful refactor to work towards unified sidebars, so I don't want to block this progress. That said, I think it will be important to not combine the content of the sidebar with the interaction of the sidebar wrapper. I see the eventual goal as having a shared sidebar component (or another name that does not reference the visual position of the component) with a close button. The content within it can be whatever it needs to be.

This will be possible if we move to a header title for each sidebar, as proposed in #61553

@@ -804,6 +804,10 @@ _Related_

- <https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore>

### TabbedSidebar
Copy link
Contributor

Choose a reason for hiding this comment

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

Should this be a public component?

Comment on lines +21 to +39
<TabbedSidebar
tabs={ [
{
name: 'slug-1',
title: _x( 'Title 1', 'context' ),
panel: <PanelContents>,
panelRef: useRef('an-optional-ref'),
},
{
name: 'slug-2',
title: _x( 'Title 2', 'context' ),
panel: <PanelContents />,
},
] }
onClose={ onClickCloseButton }
onSelect={ onSelectTab }
defaultTabId="slug-1"
ref={ tabsRef }
/>
Copy link
Contributor

Choose a reason for hiding this comment

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

To elaborate on the above, I think this should eventually look more like:

<StickyPanel title="Block Inserter" onClose={ onClickCloseButton }>
  <Tabs>
    ...
   </Tabs>
</StickyPanel>

Name tbd 😬 😅

Copy link
Contributor

Choose a reason for hiding this comment

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

Agree on this. We should try to keep things composable to avoid "YAP" syndrome.

@DaniGuardiola
Copy link
Contributor

Just wanna say two things:

  • Great work, thank you for doing this!
  • This is a great opportunity to make sure this component is rock-solid in terms of a11y. Let's please ensure that we're very confident about this aspect before merging. This includes any nuance about ARIA roles and interactivity (like @afercia mentions in this comment: Sidebar: Add a shared component for the inserter and list view #62343 (comment)), and thorough testing, as well as a sufficient strategy for integration with the rest of the app in a way that doesn't break a11y. While this work doesn't necessarily need to involve me, I'm happy to engage if it helps.

@jeryj
Copy link
Contributor

jeryj commented Jun 28, 2024

@DaniGuardiola - to improve the accessibility, we'd need design agreement for adding a header with title and close button to all the sidebars. I would love if this could get momentum. It has agreement and support from folks on the WordPress Accessibility team.

@DaniGuardiola
Copy link
Contributor

@jeryj love that! This PR is also a great chance to add that as a follow-up, and get it going in all sidebars.

@youknowriad
Copy link
Contributor

Based on the discussion on the linked PR, it seems a consensus is going to be hard to reach for that design. Can we instead focus on the unification part in this PR while we continue iterating on the design separately.

@DaniGuardiola
Copy link
Contributor

I agree with @youknowriad, let's leave the visual design discussion separate from this PR.

Let's still make sure this component is accessible to all users, please :)

@tyxla
Copy link
Member

tyxla commented Jul 1, 2024

Can we instead focus on the unification part in this PR while we continue iterating on the design separately.

Let's still make sure this component is accessible to all users, please :)

While I think we should ensure the component is accessible, I agree with @youknowriad and believe any accessibility improvements could be made separately as they aren't necessarily part of the work to unify the existing components in question.

@jeryj
Copy link
Contributor

jeryj commented Jul 1, 2024

Agreed :) I think any changes to the styles should be a follow-up.

After this is merged, can this tabbed sidebar component be applied to the Settings panel as well?

@scruffian
Copy link
Contributor Author

@scruffian I think that's reasonable. Please note that the first example in the description has an intentional design detail where the tabs indicator overlaps the border below it, as can be seen in the "before" image. If we unify all of these (and the ones you mention for the future), we should also make a unified decision regarding that detail. cc

Thanks. I have moved the indicator so it overlaps the border and updated the screenshots.

@scruffian
Copy link
Contributor Author

I have updated this based on the feedback above. I have made it a locked component to give us time to iterate on it.

After this is merged, can this tabbed sidebar component be applied to the Settings panel as well?

Definitely

Copy link
Contributor

@jeryj jeryj left a comment

Choose a reason for hiding this comment

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

I think this is better than what we have since it consolidates the code more and can also be applied to the Settings sidebar. However, I do have concerns over how the Tabs are tied to a close button that controls the sidebar outside of it. It feels like two unrelated things are being forced together. But, pragmatically, this is better than what we have and the component is private so we should be able to refactor it when the time comes.

@scruffian
Copy link
Contributor Author

I'm going to merge this so that we can continue to align the various panels to use this component and ensure that improvments are made to all at once. I am very happy for others to jump in and make improvments - for example making the component more composable etc.

@scruffian scruffian merged commit e6768a7 into trunk Jul 2, 2024
62 checks passed
@scruffian scruffian deleted the refactor/tabbed-sidebar branch July 2, 2024 21:51
@github-actions github-actions bot added this to the Gutenberg 18.8 milestone Jul 2, 2024
carstingaxion pushed a commit to carstingaxion/gutenberg that referenced this pull request Jul 18, 2024
…ress#62343)

* remove the old panels

* move styles

* rename classes

* trying to fix the overflow

* remove will-change: transform

* update docs

* add the correct markup for the list view

* remove padding

* remove unsued code

* remove unused code

* remove unused comment

* move styles across

* readd height

* remove more code

* fix the position of patterns

* use different labels for each close button

* Make TabbedSidebar private

Co-authored-by: scruffian <[email protected]>
Co-authored-by: jeryj <[email protected]>
Co-authored-by: DaniGuardiola <[email protected]>
Co-authored-by: afercia <[email protected]>
Co-authored-by: jasmussen <[email protected]>
Co-authored-by: youknowriad <[email protected]>
Co-authored-by: tyxla <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Type] Code Quality Issues or PRs that relate to code quality
Projects
Development

Successfully merging this pull request may close these issues.

7 participants