From 72a1ae58761a337ddf077dff0209614d13d44ee5 Mon Sep 17 00:00:00 2001 From: mricoul Date: Wed, 18 Feb 2026 15:35:10 +0100 Subject: [PATCH 1/7] docs(README): fix min php version chip --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 49a012f..c62d0a6 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/gpl-2.0) [![WordPress: 6.8+](https://img.shields.io/badge/WordPress-6.8+-green.svg)](https://wordpress.org/) -[![PHP: 8.1+](https://img.shields.io/badge/PHP-8.1+-purple.svg)](https://php.net/) +[![PHP: 8.0+](https://img.shields.io/badge/PHP-8.0+-purple.svg)](https://php.net/) A WordPress plugin that adds a custom Gutenberg block to display a modal dialog in the editor and on the frontend. The modal opens when a trigger (e.g. a button) is activated. From 5b5e54a362c7e9a9dc2bb09287bf82db35eddf6b Mon Sep 17 00:00:00 2001 From: mricoul Date: Wed, 18 Feb 2026 15:38:24 +0100 Subject: [PATCH 2/7] fix(workflow): downgrades PHP version for workflow Downgrades the PHP version used in the quality workflow from 8.1 to 8.0. This ensures compatibility with the current project requirements and avoids potential issues with newer PHP features. --- .github/workflows/quality-php.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/quality-php.yml b/.github/workflows/quality-php.yml index 0d58aa6..9ec0ff9 100644 --- a/.github/workflows/quality-php.yml +++ b/.github/workflows/quality-php.yml @@ -25,7 +25,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 8.1 + php-version: 8.0 extensions: mbstring, intl - name: Validate composer file From 3c92bcc1cc69540cb8f5c787d9ede9d52c5e5ac7 Mon Sep 17 00:00:00 2001 From: mricoul Date: Thu, 19 Feb 2026 12:34:15 +0100 Subject: [PATCH 3/7] fix: restricts modal trigger to allowed blocks Limits the "Open modal on click" functionality to only those blocks that are explicitly allowed as modal triggers. This prevents unintended behavior and improves the user experience by ensuring that only appropriate blocks can be used to open modals. --- src/blockparty-modal/index.js | 38 +++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/src/blockparty-modal/index.js b/src/blockparty-modal/index.js index f0040b3..99373f9 100644 --- a/src/blockparty-modal/index.js +++ b/src/blockparty-modal/index.js @@ -1,11 +1,11 @@ /** - * Registers the modal block and adds "Open modal on click" to all blocks. + * Registers the modal block and adds "Open modal on click" to blocks allowed as triggers. * * @see https://developer.wordpress.org/block-editor/reference-guides/block-api/block-registration/ */ import { registerBlockType, getBlockTypes } from '@wordpress/blocks'; import { addFilter } from '@wordpress/hooks'; -import { useSelect } from '@wordpress/data'; +import { useSelect, select } from '@wordpress/data'; import { InspectorControls } from '@wordpress/block-editor'; import { PanelBody, ComboboxControl } from '@wordpress/components'; import { __ } from '@wordpress/i18n'; @@ -33,18 +33,44 @@ registerBlockType( metadata.name, { save, } ); -// Add linkedModalId attribute to all block types (so any block can be a trigger). +/** + * Returns the list of block names allowed as modal triggers (same as filter blockparty_modal_trigger_allowed_blocks). + * Used so we only add linkedModalId to those blocks. + * + * @return {string[]} Allowed block names. + */ +function getModalTriggerAllowedBlocks() { + try { + const settings = select( 'core/block-editor' ).getSettings(); + const list = settings?.blockpartyModalTriggerAllowedBlocks; + return Array.isArray( list ) ? list : [ 'core/button' ]; + } catch { + return [ 'core/button' ]; + } +} + +// Add linkedModalId attribute only to blocks allowed as modal triggers. addFilter( 'blocks.registerBlockType', 'blockparty-modal/add-linked-modal-attribute', - addLinkedModalAttribute + ( settings, blockName ) => { + const allowedBlocks = getModalTriggerAllowedBlocks(); + if ( ! allowedBlocks.includes( blockName ) ) { + return settings; + } + return addLinkedModalAttribute( settings ); + } ); // Blocks registered before our script loaded (e.g. core blocks) didn't get the -// filter — re-register them so linkedModalId is persisted on save. +// filter — re-register only allowed blocks so linkedModalId is persisted on save. +const allowedBlocks = getModalTriggerAllowedBlocks(); const blockTypes = getBlockTypes(); blockTypes.forEach( ( blockType ) => { - if ( ! blockType.attributes?.[ LINKED_MODAL_ATTR ] ) { + if ( + allowedBlocks.includes( blockType.name ) && + ! blockType.attributes?.[ LINKED_MODAL_ATTR ] + ) { registerBlockType( blockType.name, addLinkedModalAttribute( blockType ) From c3ced9c30ee70810514dd58d4f66799cc91faf29 Mon Sep 17 00:00:00 2001 From: mricoul Date: Thu, 19 Feb 2026 12:36:28 +0100 Subject: [PATCH 4/7] chore: releases version 1.0.3 Updates plugin version to 1.0.3 in all relevant files. Includes a fix that prevents adding `linkedModalId` attribute to blocks that are not allowed. --- .plugin-data | 2 +- README.md | 3 +++ blockparty-modal.php | 4 ++-- package.json | 2 +- readme.txt | 3 +++ src/blockparty-modal/block.json | 2 +- 6 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.plugin-data b/.plugin-data index 783dffd..5f90b2a 100644 --- a/.plugin-data +++ b/.plugin-data @@ -1,4 +1,4 @@ { - "version": "1.0.2", + "version": "1.0.3", "slug": "blockparty-modal" } diff --git a/README.md b/README.md index c62d0a6..060e47c 100644 --- a/README.md +++ b/README.md @@ -249,6 +249,9 @@ This plugin is distributed under the GPL-2.0-or-later license. See the [LICENSE] See [readme.txt](readme.txt) for the full version history. Recent highlights: +- **1.0.3** + - Fix: prevent adding linkedModalId attribute to non allowed blocks. + - **1.0.2** - Filter `blockparty_modal_trigger_allowed_blocks` to control which blocks can be modal triggers; dialog margin and InnerBlocks fixes. - Crawl Modal blocks from patterns diff --git a/blockparty-modal.php b/blockparty-modal.php index b028c3b..7e8b101 100644 --- a/blockparty-modal.php +++ b/blockparty-modal.php @@ -2,7 +2,7 @@ /** * Plugin Name: Blockparty Modal * Description: Modal block for WordPress editor. - * Version: 1.0.2 + * Version: 1.0.3 * Requires at least: 6.8 * Requires PHP: 8.0 * Author: Be API Technical Team @@ -19,7 +19,7 @@ exit; // Exit if accessed directly. } -define( 'BLOCKPARTY_MODAL_VERSION', '1.0.2' ); +define( 'BLOCKPARTY_MODAL_VERSION', '1.0.3' ); define( 'BLOCKPARTY_MODAL_URL', plugin_dir_url( __FILE__ ) ); define( 'BLOCKPARTY_MODAL_DIR', plugin_dir_path( __FILE__ ) ); diff --git a/package.json b/package.json index 0da2287..209f6db 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockparty-modal", - "version": "1.0.2", + "version": "1.0.3", "description": "Add a modal block to the WordPress editor.", "author": "Be API", "license": "GPL-2.0-or-later", diff --git a/readme.txt b/readme.txt index 1a7766d..8d8b76f 100644 --- a/readme.txt +++ b/readme.txt @@ -45,6 +45,9 @@ directory take precedence. For example, `/assets/screenshot-1.png` would win ove == Changelog == += 1.0.3 = +* Fix: prevent adding linkedModalId attribute to non allowed blocks. + = 1.0.2 = * Filter `blockparty_modal_trigger_allowed_blocks` to control which blocks can be modal triggers; dialog margin and InnerBlocks fixes. * Crawl Modal blocks from patterns diff --git a/src/blockparty-modal/block.json b/src/blockparty-modal/block.json index 9ce4cad..42e0aaa 100644 --- a/src/blockparty-modal/block.json +++ b/src/blockparty-modal/block.json @@ -2,7 +2,7 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "blockparty/modal", - "version": "1.0.2", + "version": "1.0.3", "title": "Modal", "category": "widgets", "description": "Insert a modal dialog that opens on trigger. Configure content and behaviour in the editor; the modal is displayed on the frontend when activated.", From 2abc7c4033709cb06059b9b643fdcc9aca6cf39a Mon Sep 17 00:00:00 2001 From: mricoul Date: Thu, 19 Feb 2026 12:46:06 +0100 Subject: [PATCH 5/7] chore: updates PHP version compatibility Relaxing the PHP version requirement to 8.0 to ensure broader compatibility for users. Also configures Node.js version using package.json. --- .github/workflows/quality-php.yml | 2 +- .github/workflows/release.yml | 4 +- README.md | 4 +- blockparty-modal.php | 2 +- composer.json | 2 +- composer.lock | 156 ++++++++++++++---------------- package.json | 3 + readme.txt | 2 +- 8 files changed, 86 insertions(+), 89 deletions(-) diff --git a/.github/workflows/quality-php.yml b/.github/workflows/quality-php.yml index 9ec0ff9..0d58aa6 100644 --- a/.github/workflows/quality-php.yml +++ b/.github/workflows/quality-php.yml @@ -25,7 +25,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: 8.0 + php-version: 8.1 extensions: mbstring, intl - name: Validate composer file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b051fd..489ffd9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -42,14 +42,14 @@ jobs: name: "Build project PHP" uses: shivammathur/setup-php@v2 with: - php-version: 8.3 + php-version: 8.1 - run: composer install --prefer-dist --no-dev -o --ignore-platform-reqs - id: setup-node name: "Setup Node.js" uses: actions/setup-node@v4 with: - node-version: '20' + node-version-file: 'package.json' cache: 'npm' - id: build-js diff --git a/README.md b/README.md index 060e47c..db57c05 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/gpl-2.0) [![WordPress: 6.8+](https://img.shields.io/badge/WordPress-6.8+-green.svg)](https://wordpress.org/) -[![PHP: 8.0+](https://img.shields.io/badge/PHP-8.0+-purple.svg)](https://php.net/) +[![PHP: 8.1+](https://img.shields.io/badge/PHP-8.1+-purple.svg)](https://php.net/) A WordPress plugin that adds a custom Gutenberg block to display a modal dialog in the editor and on the frontend. The modal opens when a trigger (e.g. a button) is activated. @@ -255,7 +255,7 @@ See [readme.txt](readme.txt) for the full version history. Recent highlights: - **1.0.2** - Filter `blockparty_modal_trigger_allowed_blocks` to control which blocks can be modal triggers; dialog margin and InnerBlocks fixes. - Crawl Modal blocks from patterns - - Set min required PHP version to 8.0 + - Set min required PHP version to 8.1 - Style issues - **1.0.1** diff --git a/blockparty-modal.php b/blockparty-modal.php index 7e8b101..f7bd456 100644 --- a/blockparty-modal.php +++ b/blockparty-modal.php @@ -4,7 +4,7 @@ * Description: Modal block for WordPress editor. * Version: 1.0.3 * Requires at least: 6.8 - * Requires PHP: 8.0 + * Requires PHP: 8.1 * Author: Be API Technical Team * License: GPL-2.0-or-later * License URI: https://www.gnu.org/licenses/gpl-2.0.html diff --git a/composer.json b/composer.json index 33b1092..f9f9d24 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "phpro/grumphp-shim": true }, "platform": { - "php": "8.3.28" + "php": "8.1.31" } }, "require": { diff --git a/composer.lock b/composer.lock index 697401e..0acda2f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9a712678399b3657193b1525263cfd5d", + "content-hash": "92b88d47f2f14b96832bda5db8a372b4", "packages": [ { "name": "composer/installers", @@ -2973,12 +2973,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "1476a499c47192447981cb2a9b63f87eca5abc83" + "reference": "9746179cca33c473a76c87aba60ed34fb3b633a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/1476a499c47192447981cb2a9b63f87eca5abc83", - "reference": "1476a499c47192447981cb2a9b63f87eca5abc83", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/9746179cca33c473a76c87aba60ed34fb3b633a7", + "reference": "9746179cca33c473a76c87aba60ed34fb3b633a7", "shasum": "" }, "conflict": { @@ -3410,7 +3410,7 @@ "leantime/leantime": "<3.3", "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", "libreform/libreform": ">=2,<=2.0.8", - "librenms/librenms": "<25.12", + "librenms/librenms": "<26.2", "liftkit/database": "<2.13.2", "lightsaml/lightsaml": "<1.3.5", "limesurvey/limesurvey": "<6.5.12", @@ -3990,7 +3990,7 @@ "type": "tidelift" } ], - "time": "2026-02-18T01:37:03+00:00" + "time": "2026-02-18T22:11:51+00:00" }, { "name": "roots/wordpress-no-content", @@ -4065,29 +4065,29 @@ }, { "name": "sebastian/diff", - "version": "7.0.0", + "version": "5.1.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7ab1ea946c012266ca32390913653d844ecd085f" + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f", - "reference": "7ab1ea946c012266ca32390913653d844ecd085f", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/c41e007b4b62af48218231d6c2275e4c9b975b2e", + "reference": "c41e007b4b62af48218231d6c2275e4c9b975b2e", "shasum": "" }, "require": { - "php": ">=8.3" + "php": ">=8.1" }, "require-dev": { - "phpunit/phpunit": "^12.0", - "symfony/process": "^7.2" + "phpunit/phpunit": "^10.0", + "symfony/process": "^6.4" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "7.0-dev" + "dev-main": "5.1-dev" } }, "autoload": { @@ -4120,7 +4120,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0" + "source": "https://github.com/sebastianbergmann/diff/tree/5.1.1" }, "funding": [ { @@ -4128,7 +4128,7 @@ "type": "github" } ], - "time": "2025-02-07T04:55:46+00:00" + "time": "2024-03-02T07:15:17+00:00" }, { "name": "spatie/array-to-xml", @@ -4279,47 +4279,47 @@ }, { "name": "symfony/console", - "version": "v7.4.4", + "version": "v6.4.32", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894" + "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/41e38717ac1dd7a46b6bda7d6a82af2d98a78894", - "reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894", + "url": "https://api.github.com/repos/symfony/console/zipball/0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3", + "reference": "0bc2199c6c1f05276b05956f1ddc63f6d7eb5fc3", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-mbstring": "~1.0", "symfony/service-contracts": "^2.5|^3", - "symfony/string": "^7.2|^8.0" + "symfony/string": "^5.4|^6.0|^7.0" }, "conflict": { - "symfony/dependency-injection": "<6.4", - "symfony/dotenv": "<6.4", - "symfony/event-dispatcher": "<6.4", - "symfony/lock": "<6.4", - "symfony/process": "<6.4" + "symfony/dependency-injection": "<5.4", + "symfony/dotenv": "<5.4", + "symfony/event-dispatcher": "<5.4", + "symfony/lock": "<5.4", + "symfony/process": "<5.4" }, "provide": { "psr/log-implementation": "1.0|2.0|3.0" }, "require-dev": { "psr/log": "^1|^2|^3", - "symfony/config": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", - "symfony/event-dispatcher": "^6.4|^7.0|^8.0", - "symfony/http-foundation": "^6.4|^7.0|^8.0", - "symfony/http-kernel": "^6.4|^7.0|^8.0", - "symfony/lock": "^6.4|^7.0|^8.0", - "symfony/messenger": "^6.4|^7.0|^8.0", - "symfony/process": "^6.4|^7.0|^8.0", - "symfony/stopwatch": "^6.4|^7.0|^8.0", - "symfony/var-dumper": "^6.4|^7.0|^8.0" + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/lock": "^5.4|^6.0|^7.0", + "symfony/messenger": "^5.4|^6.0|^7.0", + "symfony/process": "^5.4|^6.0|^7.0", + "symfony/stopwatch": "^5.4|^6.0|^7.0", + "symfony/var-dumper": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -4353,7 +4353,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.4" + "source": "https://github.com/symfony/console/tree/v6.4.32" }, "funding": [ { @@ -4373,7 +4373,7 @@ "type": "tidelift" } ], - "time": "2026-01-13T11:36:38+00:00" + "time": "2026-01-13T08:45:59+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4444,25 +4444,25 @@ }, { "name": "symfony/filesystem", - "version": "v7.4.0", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "d551b38811096d0be9c4691d406991b47c0c630a" + "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/d551b38811096d0be9c4691d406991b47c0c630a", - "reference": "d551b38811096d0be9c4691d406991b47c0c630a", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/441c6b69f7222aadae7cbf5df588496d5ee37789", + "reference": "441c6b69f7222aadae7cbf5df588496d5ee37789", "shasum": "" }, "require": { - "php": ">=8.2", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, "require-dev": { - "symfony/process": "^6.4|^7.0|^8.0" + "symfony/process": "^5.4|^6.4|^7.0" }, "type": "library", "autoload": { @@ -4490,7 +4490,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.0" + "source": "https://github.com/symfony/filesystem/tree/v6.4.30" }, "funding": [ { @@ -4510,27 +4510,27 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2025-11-26T14:43:45+00:00" }, { "name": "symfony/finder", - "version": "v7.4.5", + "version": "v6.4.33", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb" + "reference": "24965ca011dac87431729640feef8bcf7b5523e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", - "reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", + "url": "https://api.github.com/repos/symfony/finder/zipball/24965ca011dac87431729640feef8bcf7b5523e0", + "reference": "24965ca011dac87431729640feef8bcf7b5523e0", "shasum": "" }, "require": { - "php": ">=8.2" + "php": ">=8.1" }, "require-dev": { - "symfony/filesystem": "^6.4|^7.0|^8.0" + "symfony/filesystem": "^6.0|^7.0" }, "type": "library", "autoload": { @@ -4558,7 +4558,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.5" + "source": "https://github.com/symfony/finder/tree/v6.4.33" }, "funding": [ { @@ -4578,7 +4578,7 @@ "type": "tidelift" } ], - "time": "2026-01-26T15:07:59+00:00" + "time": "2026-01-26T13:03:48+00:00" }, { "name": "symfony/polyfill-ctype", @@ -5084,23 +5084,22 @@ }, { "name": "symfony/string", - "version": "v7.4.4", + "version": "v6.4.30", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f" + "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/1c4b10461bf2ec27537b5f36105337262f5f5d6f", - "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f", + "url": "https://api.github.com/repos/symfony/string/zipball/50590a057841fa6bf69d12eceffce3465b9e32cb", + "reference": "50590a057841fa6bf69d12eceffce3465b9e32cb", "shasum": "" }, "require": { - "php": ">=8.2", - "symfony/deprecation-contracts": "^2.5|^3.0", + "php": ">=8.1", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-intl-grapheme": "~1.33", + "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0" }, @@ -5108,11 +5107,10 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { - "symfony/emoji": "^7.1|^8.0", - "symfony/http-client": "^6.4|^7.0|^8.0", - "symfony/intl": "^6.4|^7.0|^8.0", + "symfony/http-client": "^5.4|^6.0|^7.0", + "symfony/intl": "^6.2|^7.0", "symfony/translation-contracts": "^2.5|^3.0", - "symfony/var-exporter": "^6.4|^7.0|^8.0" + "symfony/var-exporter": "^5.4|^6.0|^7.0" }, "type": "library", "autoload": { @@ -5151,7 +5149,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.4" + "source": "https://github.com/symfony/string/tree/v6.4.30" }, "funding": [ { @@ -5171,7 +5169,7 @@ "type": "tidelift" } ], - "time": "2026-01-12T10:54:30+00:00" + "time": "2025-11-21T18:03:05+00:00" }, { "name": "vimeo/psalm", @@ -5293,23 +5291,23 @@ }, { "name": "webmozart/assert", - "version": "2.1.4", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "b39f1870fc7c3e9e4a26106df5053354b9260a33" + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/b39f1870fc7c3e9e4a26106df5053354b9260a33", - "reference": "b39f1870fc7c3e9e4a26106df5053354b9260a33", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/9be6926d8b485f55b9229203f962b51ed377ba68", + "reference": "9be6926d8b485f55b9229203f962b51ed377ba68", "shasum": "" }, "require": { "ext-ctype": "*", "ext-date": "*", "ext-filter": "*", - "php": "^8.2" + "php": "^7.2 || ^8.0" }, "suggest": { "ext-intl": "", @@ -5319,7 +5317,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-feature/2-0": "2.0-dev" + "dev-master": "1.10-dev" } }, "autoload": { @@ -5335,10 +5333,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@gmail.com" - }, - { - "name": "Woody Gilk", - "email": "woody.gilk@gmail.com" } ], "description": "Assertions to validate method input/output with nice error messages.", @@ -5349,9 +5343,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/2.1.4" + "source": "https://github.com/webmozarts/assert/tree/1.12.1" }, - "time": "2026-02-17T12:17:51+00:00" + "time": "2025-10-29T15:56:20+00:00" }, { "name": "wp-cli/mustache", @@ -5750,7 +5744,7 @@ }, "platform-dev": {}, "platform-overrides": { - "php": "8.3.28" + "php": "8.1.31" }, "plugin-api-version": "2.6.0" } diff --git a/package.json b/package.json index 209f6db..e306a11 100644 --- a/package.json +++ b/package.json @@ -34,5 +34,8 @@ "devDependencies": { "@wordpress/env": "latest", "@wordpress/scripts": "^31.4.0" + }, + "volta": { + "node": "22.22.0" } } diff --git a/readme.txt b/readme.txt index 8d8b76f..790bc22 100644 --- a/readme.txt +++ b/readme.txt @@ -51,7 +51,7 @@ directory take precedence. For example, `/assets/screenshot-1.png` would win ove = 1.0.2 = * Filter `blockparty_modal_trigger_allowed_blocks` to control which blocks can be modal triggers; dialog margin and InnerBlocks fixes. * Crawl Modal blocks from patterns -* Set min required PHP version to 8.0 +* Set min required PHP version to 8.1 * Style issues = 1.0.1 = From 8b7b0b825834312ab50c8f7cd523c2f1558c9be4 Mon Sep 17 00:00:00 2001 From: mricoul Date: Thu, 19 Feb 2026 12:47:55 +0100 Subject: [PATCH 6/7] docs(readme): update changelogs --- README.md | 2 +- readme.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index db57c05..0b52457 100644 --- a/README.md +++ b/README.md @@ -251,11 +251,11 @@ See [readme.txt](readme.txt) for the full version history. Recent highlights: - **1.0.3** - Fix: prevent adding linkedModalId attribute to non allowed blocks. + - Set min required PHP version to 8.1 - **1.0.2** - Filter `blockparty_modal_trigger_allowed_blocks` to control which blocks can be modal triggers; dialog margin and InnerBlocks fixes. - Crawl Modal blocks from patterns - - Set min required PHP version to 8.1 - Style issues - **1.0.1** diff --git a/readme.txt b/readme.txt index 790bc22..c885cca 100644 --- a/readme.txt +++ b/readme.txt @@ -47,11 +47,11 @@ directory take precedence. For example, `/assets/screenshot-1.png` would win ove = 1.0.3 = * Fix: prevent adding linkedModalId attribute to non allowed blocks. +* Set min required PHP version to 8.1 = 1.0.2 = * Filter `blockparty_modal_trigger_allowed_blocks` to control which blocks can be modal triggers; dialog margin and InnerBlocks fixes. * Crawl Modal blocks from patterns -* Set min required PHP version to 8.1 * Style issues = 1.0.1 = From 5fa94fe345fa43f8fe98d4b82927cc69c874f120 Mon Sep 17 00:00:00 2001 From: mricoul Date: Thu, 19 Feb 2026 12:49:43 +0100 Subject: [PATCH 7/7] fix: clarifies allowed block selection logic Refactors the logic for determining allowed blocks for the modal trigger. This change improves readability and maintainability by clarifying the code related to retrieving and utilizing the list of allowed blocks. It utilizes `storeSelect` instead of `select` for store selections. --- src/blockparty-modal/index.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/blockparty-modal/index.js b/src/blockparty-modal/index.js index 99373f9..d17d1a6 100644 --- a/src/blockparty-modal/index.js +++ b/src/blockparty-modal/index.js @@ -89,18 +89,18 @@ addFilter( return ; } - const allowedBlocks = useSelect( ( select ) => { - const settings = select( 'core/block-editor' ).getSettings(); + const triggerAllowedBlocks = useSelect( ( storeSelect ) => { + const settings = storeSelect( 'core/block-editor' ).getSettings(); const list = settings?.blockpartyModalTriggerAllowedBlocks; return Array.isArray( list ) ? list : [ 'core/button' ]; }, [] ); - if ( ! allowedBlocks.includes( name ) ) { + if ( ! triggerAllowedBlocks.includes( name ) ) { return ; } - const modalOptions = useSelect( ( select ) => { - return getModalOptionsFromEditor( select ); + const modalOptions = useSelect( ( storeSelect ) => { + return getModalOptionsFromEditor( storeSelect ); }, [] ); const options = [