Skip to content

fix: Repair missing Freeform/Classic block render#70644

Closed
dcalhoun wants to merge 3 commits intomove/freeformfrom
fix/mobile-freeform
Closed

fix: Repair missing Freeform/Classic block render#70644
dcalhoun wants to merge 3 commits intomove/freeformfrom
fix/mobile-freeform

Conversation

@dcalhoun
Copy link
Copy Markdown
Member

@dcalhoun dcalhoun commented Jul 8, 2025

What?

Follow up to #70603.

Ensure the mobile-specific fallback block is rendered, rather than an
unsupported block UI with an unexpectedly missing title.

This functionality was originally added in #22609.

Why?

The title-less unsupported block UI fails to communicate that the block is
unsupported.

How?

Reinstate necessary block registration for rendering the mobile editor's
custom "unsupported" block UI. Without this registration, the
new block-freeform code is never utilized when the relevant block
markup is encountered.

Testing Instructions

  1. Open the mobile editor.
  2. Tap the "more" menu in the top-right corner.
  3. Switch to HTML mode.
  4. Insert some text into the post.
  5. Switch to Visual mode.
  6. Verify the correct UI is displayed.

Testing Instructions for Keyboard

N/A, no navigation changes.

Screenshots or screencast

Before After
classic-block-before classic-block-after

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jul 8, 2025

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: dcalhoun <dpcalhoun@git.wordpress.org>
Co-authored-by: tyxla <tyxla@git.wordpress.org>
Co-authored-by: ellatrix <ellatrix@git.wordpress.org>

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

Reinstate necessary block registration for rendering the mobile editor's
custom "unsupported" block UI. Without this registration, the
new `block-freeform` code is never utilized when the relevant block
markup is encountered.
@dcalhoun dcalhoun marked this pull request as draft July 8, 2025 13:37
The recent relocation of a native stylesheet from a `src` sub-directory
to a top-level `src` directory uncovered incompatibility with existing,
broad glob patterns. The `packages/block-freeform/src/style.native.scss`
was previously in a `src` sub-directory.

Native stylesheets require additional configuration to "auto-import"
various Sass variables. That configuration is unsupported by the
`bin/packages/build.js` script. Additionally, building native
stylesheets is unnecessary for web builds.

https://github.com/WordPress/gutenberg/actions/runs/16144205849/job/45558646305?pr=70644

```
Error: Undefined variable.
   ╷
18 │     color: $light-secondary;
   │            ^^^^^^^^^^^^^^^^
   ╵
  packages/block-freeform/src/style.native.scss 18:9  root stylesheet
    at Object.wrapException (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:1246:17)
    at /home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:71374:23
    at _wrapJsFunctionForAsync_closure.$protected (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:3741:15)
    at _wrapJsFunctionForAsync_closure.call$2 (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:28239:12)
    at Object._asyncStartSync (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:3705:20)
    at _EvaluateVisitor2.visitVariableExpression$body$_EvaluateVisitor0 (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:71380:16)
    at _EvaluateVisitor2.visitVariableExpression$1 (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:71354:19)
    at VariableExpression0.accept$1$1 (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:98828:22)
    at VariableExpression0.accept$1 (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:98831:19)
    at /home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:74362:42 {
  type: 'Error',
  '$error': '$error',
  formatted: 'Error: Undefined variable.\n' +
    '   ╷\n' +
    '18 │     color: $light-secondary;\n' +
    '   │            ^^^^^^^^^^^^^^^^\n' +
    '   ╵\n' +
    '  packages/block-freeform/src/style.native.scss 18:9  root stylesheet',
  line: 18,
  column: 9,
  file: '/home/runner/work/gutenberg/gutenberg/packages/block-freeform/src/style.native.scss',
  status: 1
```
@dcalhoun dcalhoun force-pushed the fix/mobile-freeform branch from fb76777 to c294361 Compare July 8, 2025 14:37
@github-actions
Copy link
Copy Markdown

github-actions bot commented Jul 8, 2025

Size Change: 0 B

Total Size: 1.86 MB

ℹ️ 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/form/view.min.js 533 B
build-module/block-library/image/view.min.js 1.78 kB
build-module/block-library/navigation/view.min.js 1.19 kB
build-module/block-library/query/view.min.js 767 B
build-module/block-library/search/view.min.js 639 B
build-module/interactivity-router/full-page.min.js 565 B
build-module/interactivity-router/index.min.js 11.4 kB
build-module/interactivity/debug.min.js 17.5 kB
build-module/interactivity/index.min.js 13.9 kB
build/a11y/index.min.js 952 B
build/annotations/index.min.js 2.26 kB
build/api-fetch/index.min.js 2.4 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 579 B
build/block-directory/index.min.js 7.18 kB
build/block-directory/style-rtl.css 1.03 kB
build/block-directory/style.css 1.03 kB
build/block-editor/content-rtl.css 4.43 kB
build/block-editor/content.css 4.42 kB
build/block-editor/default-editor-styles-rtl.css 392 B
build/block-editor/default-editor-styles.css 392 B
build/block-editor/index.min.js 264 kB
build/block-editor/style-rtl.css 15.9 kB
build/block-editor/style.css 15.9 kB
build/block-freeform/editor-rtl.css 2.72 kB
build/block-freeform/editor.css 2.72 kB
build/block-freeform/index.min.js 2.92 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 554 B
build/block-library/blocks/button/style.css 554 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 349 B
build/block-library/blocks/buttons/style.css 349 B
build/block-library/blocks/calendar/style-rtl.css 239 B
build/block-library/blocks/calendar/style.css 239 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 191 B
build/block-library/blocks/comment-template/style.css 191 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 168 B
build/block-library/blocks/comments-pagination/editor.css 168 B
build/block-library/blocks/comments-pagination/style-rtl.css 201 B
build/block-library/blocks/comments-pagination/style.css 201 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 842 B
build/block-library/blocks/comments/editor.css 842 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 349 B
build/block-library/blocks/form-input/style.css 349 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/gallery/editor-rtl.css 615 B
build/block-library/blocks/gallery/editor.css 616 B
build/block-library/blocks/gallery/style-rtl.css 1.84 kB
build/block-library/blocks/gallery/style.css 1.84 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 353 B
build/block-library/blocks/html/editor.css 354 B
build/block-library/blocks/image/editor-rtl.css 763 B
build/block-library/blocks/image/editor.css 763 B
build/block-library/blocks/image/style-rtl.css 1.6 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 520 B
build/block-library/blocks/latest-posts/style.css 520 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 543 B
build/block-library/blocks/media-text/style.css 542 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 566 B
build/block-library/blocks/navigation-link/editor.css 568 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.23 kB
build/block-library/blocks/navigation/editor.css 2.24 kB
build/block-library/blocks/navigation/style-rtl.css 2.26 kB
build/block-library/blocks/navigation/style.css 2.25 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 251 B
build/block-library/blocks/paragraph/editor.css 251 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/style-rtl.css 188 B
build/block-library/blocks/post-author/style.css 189 B
build/block-library/blocks/post-comments-count/style-rtl.css 72 B
build/block-library/blocks/post-comments-count/style.css 72 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-comments-link/style-rtl.css 71 B
build/block-library/blocks/post-comments-link/style.css 71 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 722 B
build/block-library/blocks/post-featured-image/editor.css 720 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/style-rtl.css 414 B
build/block-library/blocks/post-template/style.css 414 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 133 B
build/block-library/blocks/pullquote/editor.css 133 B
build/block-library/blocks/pullquote/style-rtl.css 365 B
build/block-library/blocks/pullquote/style.css 365 B
build/block-library/blocks/pullquote/theme-rtl.css 176 B
build/block-library/blocks/pullquote/theme.css 176 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/query-total/style-rtl.css 64 B
build/block-library/blocks/query-total/style.css 64 B
build/block-library/blocks/query/editor-rtl.css 404 B
build/block-library/blocks/query/editor.css 404 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 131 B
build/block-library/blocks/read-more/style.css 131 B
build/block-library/blocks/rss/editor-rtl.css 126 B
build/block-library/blocks/rss/editor.css 126 B
build/block-library/blocks/rss/style-rtl.css 284 B
build/block-library/blocks/rss/style.css 283 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 674 B
build/block-library/blocks/search/style.css 671 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 773 B
build/block-library/blocks/site-logo/editor.css 770 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 314 B
build/block-library/blocks/social-link/editor.css 314 B
build/block-library/blocks/social-links/editor-rtl.css 339 B
build/block-library/blocks/social-links/editor.css 338 B
build/block-library/blocks/social-links/style-rtl.css 1.51 kB
build/block-library/blocks/social-links/style.css 1.51 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 92 B
build/block-library/blocks/tag-cloud/editor.css 92 B
build/block-library/blocks/tag-cloud/style-rtl.css 248 B
build/block-library/blocks/tag-cloud/style.css 248 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/editor-rtl.css 9.05 kB
build/block-library/editor.css 9.05 kB
build/block-library/elements-rtl.css 54 B
build/block-library/elements.css 54 B
build/block-library/index.min.js 227 kB
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 715 B
build/block-library/theme.css 719 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.6 kB
build/commands/index.min.js 16.2 kB
build/commands/style-rtl.css 956 B
build/commands/style.css 952 B
build/components/index.min.js 230 kB
build/components/style-rtl.css 12.5 kB
build/components/style.css 12.5 kB
build/compose/index.min.js 12.8 kB
build/core-commands/index.min.js 3.09 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.43 kB
build/customize-widgets/style.css 1.43 kB
build/data-controls/index.min.js 641 B
build/data/index.min.js 8.67 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.68 kB
build/edit-post/classic-rtl.css 577 B
build/edit-post/classic.css 578 B
build/edit-post/index.min.js 13.6 kB
build/edit-post/style-rtl.css 2.77 kB
build/edit-post/style.css 2.77 kB
build/edit-site/index.min.js 227 kB
build/edit-site/posts-rtl.css 8.47 kB
build/edit-site/posts.css 8.48 kB
build/edit-site/style-rtl.css 14.6 kB
build/edit-site/style.css 14.6 kB
build/edit-widgets/index.min.js 17.7 kB
build/edit-widgets/style-rtl.css 4.05 kB
build/edit-widgets/style.css 4.06 kB
build/editor/index.min.js 119 kB
build/editor/style-rtl.css 9.06 kB
build/editor/style.css 9.06 kB
build/element/index.min.js 4.82 kB
build/escape-html/index.min.js 537 B
build/format-library/index.min.js 8.09 kB
build/format-library/style-rtl.css 472 B
build/format-library/style.css 472 B
build/hooks/index.min.js 1.65 kB
build/html-entities/index.min.js 467 B
build/i18n/index.min.js 2.23 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 847 B
build/list-reusable-blocks/style.css 848 B
build/media-utils/index.min.js 3.69 kB
build/notices/index.min.js 946 B
build/nux/index.min.js 1.62 kB
build/nux/style-rtl.css 767 B
build/nux/style.css 763 B
build/patterns/index.min.js 7.36 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 551 B
build/preferences/style.css 552 B
build/primitives/index.min.js 829 B
build/priority-queue/index.min.js 1.54 kB
build/private-apis/index.min.js 978 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.53 kB
build/reusable-blocks/style-rtl.css 255 B
build/reusable-blocks/style.css 255 B
build/rich-text/index.min.js 10.3 kB
build/router/index.min.js 5.44 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.96 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

Comment on lines +232 to +233
// Native stylesheets are irrelevant to web builds, and require configuration not supported by this build script
`**/*.native.scss`,
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

The recent relocation of a native stylesheet from a src sub-directory to a top-level src directory uncovered incompatibility with existing, broad glob patterns. The packages/block-freeform/src/style.native.scss was previously in a src sub-directory.

Native stylesheets require additional configuration to "auto-import" various Sass variables. That configuration is unsupported by the bin/packages/build.js script. Additionally, building native stylesheets is unnecessary for web builds.

https://github.com/WordPress/gutenberg/actions/runs/16144205849/job/45558646305?pr=70644

Error: Undefined variable.
   ╷
18 │     color: $light-secondary;
   │            ^^^^^^^^^^^^^^^^
   ╵
  packages/block-freeform/src/style.native.scss 18:9  root stylesheet
    at Object.wrapException (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:1246:17)
    at /home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:71374:23
    at _wrapJsFunctionForAsync_closure.$protected (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:3741:15)
    at _wrapJsFunctionForAsync_closure.call$2 (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:28239:12)
    at Object._asyncStartSync (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:3705:20)
    at _EvaluateVisitor2.visitVariableExpression$body$_EvaluateVisitor0 (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:71380:16)
    at _EvaluateVisitor2.visitVariableExpression$1 (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:71354:19)
    at VariableExpression0.accept$1$1 (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:98828:22)
    at VariableExpression0.accept$1 (/home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:98831:19)
    at /home/runner/work/gutenberg/gutenberg/node_modules/sass/sass.dart.js:74362:42 {
  type: 'Error',
  '$error': '$error',
  formatted: 'Error: Undefined variable.\n' +
    '   ╷\n' +
    '18 │     color: $light-secondary;\n' +
    '   │            ^^^^^^^^^^^^^^^^\n' +
    '   ╵\n' +
    '  packages/block-freeform/src/style.native.scss 18:9  root stylesheet',
  line: 18,
  column: 9,
  file: '/home/runner/work/gutenberg/gutenberg/packages/block-freeform/src/style.native.scss',
  status: 1

textColumns,
verse,
video,
classic,
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

If we do not register the block, the mobile editor is unable to render the proper fallback UI bundled with the block itself.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I wonder if we can move the fallback UI around if necessary. @ellatrix do you have any concerns with how we're still importing, but effectively hiding the classic block from inserter?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I don't get what you're doing here? Why are you adding a dependency to the freeform package? Why not register it in the proper package like edit-post? (I don't know what mobile is using.)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I don't get what you're doing here? Why are you adding a dependency to the freeform package?

I reinstated the implementation introduced in #22609. I added a dependency to the freeform package because that is the new location of the "classic" block type.

Why not register it in the proper package like edit-post? (I don't know what mobile is using.)

I have no argument against using the edit-post package. I was merely unaware that it was "proper." I will explore relocating the freeform block type registration in edit-post and follow up on this PR.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks, sorry I wasn't clear on the reasoning 🙂

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is still a blocker for merging it imo, it would be good if we can move registering the block to edit-post (if that's the package that mobile uses)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I relocated in the core/freeform registration to occur in the edit-post package in 8596792.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Without this file, the fallback UI has no styling and throws build errors.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is just the missing block stylesheet right? Can'we just reuse that, rather than duplicating it?

Copy link
Copy Markdown
Member Author

@dcalhoun dcalhoun Jul 14, 2025

Choose a reason for hiding this comment

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

Yes, I believe the same could be said for duplicating the JavaScript file to packages/block-freeform/src/missing.native.js as well. I presume the duplication there was done to avoid creating a dependency on @wordpress/block-library.

If a dependency is not a concern, both the JavaScript and stylesheet could be imported from @wordpress/block-library.

@ellatrix was there a particular reason for duplicating the Missing JavaScript file?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I don't see why we should depend on block library tbh 🤔

  1. I don't get why classic needs to depend on the missing block. Why can't it have its own fallback UI? Even better, at render the HTML and allow code editing.
  2. If you really want to reuse missing block code and styles, I don't think a bit of duplication is a bad thing. If these are things a block might generally use, maybe it should move to the placeholder component or something.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I don't get why classic needs to depend on the missing block. Why can't it have its own fallback UI? Even better, at render the HTML and allow code editing.

My focus in this PR was addressing a regression in the current experience. I'd prefer not modifying the functionality within the context of a pull request focused on relocating files (#70603). Is it alright if we take this approach of solely refactoring and avoiding functionality changes?

If you really want to reuse missing block code and styles, I don't think a bit of duplication is a bad thing. If these are things a block might generally use, maybe it should move to the placeholder component or something.

I have no objection to the duplication, personally.

To my understanding, the manner in which the mobile editor is using Missing today is essentially a placeholder for unsupported block types. Are you referring to something specific when you say "move to the placeholder component?"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@ellatrix: you have a point here on the duplication and dependency of the package. I say let's add a TODO comment for addressing the duplication in the future, and proceed as-is.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is it alright if we take this approach of solely refactoring and avoiding functionality changes?

100%

Are you referring to something specific when you say "move to the placeholder component?"

Yes, I was referring to the placeholder component in the block-editor package. Generally if components are reused by blocks, I'd prefer these utils or components to move there (maybe even as a public API if it's useful to blocks).

Of course I'd also prefer to keep the functionality the same in this PR, so I'm fine with the duplication

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yes, I was referring to the placeholder component in the block-editor package. Generally if components are reused by blocks, I'd prefer these utils or components to move there (maybe even as a public API if it's useful to blocks).

To ensure I am not misunderstanding: are you referring to the Placeholder component located within @wordpress/components that is used within @wordpress/block-editor?

@dcalhoun dcalhoun marked this pull request as ready for review July 8, 2025 14:54
@dcalhoun dcalhoun requested a review from ellatrix July 8, 2025 14:54
@dcalhoun dcalhoun added [Type] Bug An existing feature does not function as intended Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) labels Jul 8, 2025
Copy link
Copy Markdown
Member

@tyxla tyxla left a comment

Choose a reason for hiding this comment

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

This is looking good from my perspective. I wonder if we can remove some style duplication.

Would love to hear from @ellatrix and see if she has any concerns about landing this one.

textColumns,
verse,
video,
classic,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I wonder if we can move the fallback UI around if necessary. @ellatrix do you have any concerns with how we're still importing, but effectively hiding the classic block from inserter?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is just the missing block stylesheet right? Can'we just reuse that, rather than duplicating it?

@dcalhoun
Copy link
Copy Markdown
Member Author

I believe the failing tests should be resolved by #70718.

@ellatrix please review and merge at your discretion. Let me know if I can provide additional help.

@dcalhoun
Copy link
Copy Markdown
Member Author

Closing this simply to clean up my pending PRs. Please feel free to reopen this and restore the branch as needed. Happy to help move this forward whenever this or its sibling #70603 becomes a priority.

@dcalhoun dcalhoun closed this Nov 25, 2025
@dcalhoun dcalhoun deleted the fix/mobile-freeform branch November 25, 2025 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) [Type] Bug An existing feature does not function as intended

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants