diff --git a/projects/packages/forms/changelog/add-core-blocks-to-forms b/projects/packages/forms/changelog/add-core-blocks-to-forms new file mode 100644 index 000000000000..61d48859615a --- /dev/null +++ b/projects/packages/forms/changelog/add-core-blocks-to-forms @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +Allow Accordion, Details, and Icon blocks in forms. diff --git a/projects/packages/forms/changelog/allow-icon-in-dropzone b/projects/packages/forms/changelog/allow-icon-in-dropzone new file mode 100644 index 000000000000..b729608f6c69 --- /dev/null +++ b/projects/packages/forms/changelog/allow-icon-in-dropzone @@ -0,0 +1,4 @@ +Significance: patch +Type: changed + +File Upload Dropzone: Allow Icon block to be added inside the dropzone. diff --git a/projects/packages/forms/src/blocks/dropzone/index.js b/projects/packages/forms/src/blocks/dropzone/index.js index c668638bb363..2b4821838d45 100644 --- a/projects/packages/forms/src/blocks/dropzone/index.js +++ b/projects/packages/forms/src/blocks/dropzone/index.js @@ -13,6 +13,7 @@ const settings = { allowedBlocks: [ 'core/button', 'core/heading', + 'core/icon', 'core/image', 'core/list', 'core/paragraph', diff --git a/projects/packages/forms/src/blocks/shared/util/constants.js b/projects/packages/forms/src/blocks/shared/util/constants.js index fcad18529e2f..52bde03aa437 100644 --- a/projects/packages/forms/src/blocks/shared/util/constants.js +++ b/projects/packages/forms/src/blocks/shared/util/constants.js @@ -4,12 +4,15 @@ export const ALLOWED_FORMATS = [ 'core/bold', 'core/italic' ]; export const ALLOWED_INNER_BLOCKS = [ 'jetpack/label', 'jetpack/input' ]; export const CORE_BLOCKS = [ + 'core/accordion', 'core/audio', 'core/code', 'core/columns', + 'core/details', 'core/group', 'core/heading', 'core/html', + 'core/icon', 'core/image', 'core/list', 'core/math', diff --git a/projects/packages/forms/src/form-editor/class-form-editor.php b/projects/packages/forms/src/form-editor/class-form-editor.php index 4f89abd2de48..f9409340a458 100644 --- a/projects/packages/forms/src/form-editor/class-form-editor.php +++ b/projects/packages/forms/src/form-editor/class-form-editor.php @@ -75,8 +75,7 @@ public static function allowed_blocks_for_jetpack_form( $allowed_block_types, $e 'jetpack/field-image-select', // Supporting blocks. - 'jetpack/button', - 'core/button', + 'jetpack/button', // Used for the submit button previously. 'jetpack/label', 'jetpack/input', 'jetpack/options', @@ -96,17 +95,20 @@ public static function allowed_blocks_for_jetpack_form( $allowed_block_types, $e 'jetpack/form-progress-indicator', // Core blocks for rich content. + 'core/accordion', 'core/audio', - 'core/button', + 'core/button', // Used for the submit button. 'core/code', - 'core/columns', 'core/column', + 'core/columns', + 'core/details', 'core/group', 'core/heading', 'core/html', + 'core/icon', 'core/image', - 'core/list', 'core/list-item', + 'core/list', 'core/math', 'core/paragraph', 'core/row', diff --git a/projects/packages/forms/tests/php/form-editor/Form_Editor_Test.php b/projects/packages/forms/tests/php/form-editor/Form_Editor_Test.php index f1d853a64726..21db2a8cd00c 100644 --- a/projects/packages/forms/tests/php/form-editor/Form_Editor_Test.php +++ b/projects/packages/forms/tests/php/form-editor/Form_Editor_Test.php @@ -89,6 +89,9 @@ public function test_allowed_blocks_for_jetpack_form_restricts_blocks() { // Verify that core blocks are in the allowed list $this->assertContains( 'core/paragraph', $result, 'Paragraph block should be allowed' ); $this->assertContains( 'core/heading', $result, 'Heading block should be allowed' ); + $this->assertContains( 'core/accordion', $result, 'Accordion block should be allowed' ); + $this->assertContains( 'core/details', $result, 'Details block should be allowed' ); + $this->assertContains( 'core/icon', $result, 'Icon block should be allowed' ); // Verify that contact-form block is NOT in the list (handled by DOM manipulation) $this->assertNotContains( 'jetpack/contact-form', $result, 'Contact form block should not be in the allowed list' ); @@ -410,7 +413,11 @@ public function test_allowed_blocks_list_completeness() { 'jetpack/field-rating', 'jetpack/field-text', 'jetpack/field-number', + 'jetpack/field-hidden', 'jetpack/field-file', + 'jetpack/field-time', + 'jetpack/field-slider', + 'jetpack/field-image-select', ); // Expected blocks - supporting blocks @@ -421,6 +428,11 @@ public function test_allowed_blocks_list_completeness() { 'jetpack/options', 'jetpack/option', 'jetpack/phone-input', + 'jetpack/dropzone', + 'jetpack/input-range', + 'jetpack/input-rating', + 'jetpack/fieldset-image-options', + 'jetpack/input-image-option', ); // Expected blocks - multistep blocks @@ -434,17 +446,28 @@ public function test_allowed_blocks_list_completeness() { // Expected blocks - core blocks $expected_core_blocks = array( - 'core/paragraph', + 'core/accordion', + 'core/audio', + 'core/button', + 'core/code', + 'core/column', + 'core/columns', + 'core/details', + 'core/group', 'core/heading', + 'core/html', + 'core/icon', + 'core/image', 'core/list', 'core/list-item', + 'core/math', + 'core/paragraph', + 'core/row', 'core/separator', 'core/spacer', - 'core/columns', - 'core/column', - 'core/group', - 'core/image', - 'core/html', + 'core/stack', + 'core/subhead', + 'core/video', ); // Verify all expected blocks are present diff --git a/projects/plugins/jetpack/changelog/update-forms-unlock-new-blocks b/projects/plugins/jetpack/changelog/update-forms-unlock-new-blocks new file mode 100644 index 000000000000..85a7ffc5ed7e --- /dev/null +++ b/projects/plugins/jetpack/changelog/update-forms-unlock-new-blocks @@ -0,0 +1,4 @@ +Significance: minor +Type: enhancement + +Forms: Allow Accordion, Details, and Icon blocks in forms, and Icon block to be added inside the file upload dropzone.