Skip to content

Chore blueprint#15

Merged
firestar300 merged 3 commits intover/1.0.5from
chore/blueprint
Mar 26, 2026
Merged

Chore blueprint#15
firestar300 merged 3 commits intover/1.0.5from
chore/blueprint

Conversation

@firestar300
Copy link
Copy Markdown
Collaborator

@firestar300 firestar300 commented Mar 26, 2026

  • Add blueprint.json to test the plugin on WordPress Playground.
  • Add screen-reader-text class to close button element when display icon only is selected.

Note

Low Risk
Low risk: changes are limited to editor/save markup class names for accessibility and adds a Gutenberg deprecated save to avoid invalidating existing content, plus a WordPress Playground testing blueprint.

Overview
Adds a WordPress Playground blueprint.json (and README badge) to quickly spin up WP, install/activate the plugin, and preload an example page for testing.

Updates the modal block’s close-button label span to include screen-reader-text when displayIconOnly is enabled, and registers a new deprecated block save (deprecated.js wired in index.js) to preserve validation for content saved with the previous markup.

Written by Cursor Bugbot for commit 7113d85. This will update automatically on new commits. Configure here.

Adds the standard WordPress `screen-reader-text` class alongside `sr-only` to ensure the close button label is correctly hidden visually while remaining accessible to screen readers when the "display icon only" option is active.
Adds a PHP step to the blueprint that automatically creates a sample page showcasing the Blockparty Modal block. Updates the landing page configuration to direct users to the editor for this newly created post instead of a blank new post.
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Fix All in Cursor

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

},
{
"step": "runPHP",
"code": "<?php require_once 'wordpress/wp-load.php'; $page_content = '<?php require_once 'wordpress/wp-load.php'; $page_content = '<!-- wp:buttons -->\n<div class=\"wp-block-buttons\"><!-- wp:button {\"linkedModalId\":\"m-e16de3fe79f9\"} -->\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\">Open my modal window</a></div>\n<!-- /wp:button --></div>\n<!-- /wp:buttons -->\n\n<!-- wp:blockparty/modal {\"title\":\"My Modal\",\"modalId\":\"m-e16de3fe79f9\",\"displayIconOnly\":true,\"style\":{\"spacing\":{\"padding\":{\"top\":\"var:preset|spacing|40\",\"bottom\":\"var:preset|spacing|40\",\"left\":\"var:preset|spacing|40\",\"right\":\"var:preset|spacing|40\"}}}} -->\n<dialog class=\"wp-block-blockparty-modal\" style=\"padding-top:var(--wp--preset--spacing--40);padding-right:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40);padding-left:var(--wp--preset--spacing--40)\" id=\"modal-m-e16de3fe79f9\" aria-modal=\"true\" closedby=\"any\"><div class=\"wp-block-blockparty-modal__header\"><h2 class=\"wp-block-blockparty-modal__title\">My Modal</h2></div><div class=\"wp-block-blockparty-modal__content\"><!-- wp:paragraph -->\n<p>Blockparty Modal is a WordPress plugin that lets you add accessible modal dialogs to your content via the Gutenberg block editor. You define the modal content and behaviour in the editor; on the frontend, the modal is shown when the user activates a linked trigger (such as a button block).</p>\n<!-- /wp:paragraph --></div><button type=\"button\" class=\"wp-block-blockparty-modal__close-button\"><span class=\"sr-only\">Close this dialog window</span><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\"><path d=\"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z\"></path></svg></button></dialog>\n<!-- /wp:blockparty/modal -->'; $page_id = wp_insert_post(array('post_title' => 'Blockparty Modal', 'post_content' => $page_content, 'post_status' => 'publish', 'post_type' => 'page')); echo 'Page created with ID: ' . $page_id; ?>'; $page_id = wp_insert_post(array('post_title' => 'Blockparty Modal', 'post_content' => $page_content, 'post_status' => 'publish', 'post_type' => 'page')); echo 'Page created with ID: ' . $page_id; ?>"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Duplicated PHP code causes blueprint syntax error

High Severity

The runPHP code value contains the entire PHP script duplicated and nested inside itself. The string starts with <?php require_once 'wordpress/wp-load.php'; $page_content = '<?php require_once 'wordpress/wp-load.php'; $page_content = '.... PHP will terminate the single-quoted $page_content string at the inner 'wordpress quote, causing a parse error. The intended code (a single require_once, one $page_content assignment, and one wp_insert_post call) appears twice, with the outer copy wrapping the inner one. The runPHP step will fail, the page won't be created, and the landingPage pointing to post=4 will likely 404 or open the wrong post.

Fix in Cursor Fix in Web

Ensures existing block content remains valid by providing a fallback for the markup used before the `screen-reader-text` class was added to the close button label.
@firestar300 firestar300 merged commit fb71f84 into ver/1.0.5 Mar 26, 2026
3 checks passed
@firestar300 firestar300 deleted the chore/blueprint branch March 26, 2026 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant