From 8cb96c79b3a7b7308a9a7c115877e93d2f4b1140 Mon Sep 17 00:00:00 2001 From: mricoul Date: Mon, 20 Apr 2026 10:12:17 +0200 Subject: [PATCH 01/10] feat: update block icons to use standard @wordpress/icons Updates the icons for the Tabs blocks to use the latest @wordpress/icons package, replacing previous dependencies on @beapi/icons. Also bumps the @wordpress/icons version and Node.js volta configuration. --- package-lock.json | 134 +++++--------------------- package.json | 4 +- src/blockparty-tabs-nav-item/index.js | 4 +- src/blockparty-tabs-nav/index.js | 4 +- src/blockparty-tabs-panels/index.js | 4 +- src/blockparty-tabs/index.js | 2 +- 6 files changed, 35 insertions(+), 117 deletions(-) diff --git a/package-lock.json b/package-lock.json index 31bc9c2..f307ba5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "blockparty-tabs", - "version": "1.0.6", + "version": "1.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "blockparty-tabs", - "version": "1.0.6", + "version": "1.1.0", "license": "GPL-2.0-or-later", "dependencies": { "@beapi/icons": "^1.2.5", @@ -20,7 +20,7 @@ "@wordpress/data": "^9.24.0", "@wordpress/env": "^10.39.0", "@wordpress/i18n": "^4.54.0", - "@wordpress/icons": "^11.6.0", + "@wordpress/icons": "^12.2.0", "@wordpress/primitives": "^3.52.0", "@wordpress/scripts": "^30.17.0" } @@ -7406,28 +7406,12 @@ "@types/node": "*" } }, - "node_modules/@types/source-list-map": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz", - "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/@types/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true }, - "node_modules/@types/tapable": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz", - "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", - "dev": true, - "optional": true, - "peer": true - }, "node_modules/@types/tedious": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/@types/tedious/-/tedious-4.0.14.tgz", @@ -7443,79 +7427,6 @@ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", "dev": true }, - "node_modules/@types/uglify-js": { - "version": "3.17.5", - "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", - "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/@types/uglify-js/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@types/webpack": { - "version": "4.41.38", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.38.tgz", - "integrity": "sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*", - "@types/tapable": "^1", - "@types/uglify-js": "*", - "@types/webpack-sources": "*", - "anymatch": "^3.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/@types/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.7.3" - } - }, - "node_modules/@types/webpack-sources/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@types/webpack/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@types/ws": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", @@ -9001,13 +8912,15 @@ } }, "node_modules/@wordpress/icons": { - "version": "11.6.0", - "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-11.6.0.tgz", - "integrity": "sha512-X3Tp3ARJWRokFOTJ1SJQef3J+bykyZHuHL6NSaMnEtbQzs7Tre+3HEghP5S5K/AGnLr+RvpGnwEN0uNy53uIiA==", + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-12.2.0.tgz", + "integrity": "sha512-Fiw7bmfHDNPjTdCrBF23/9K0VN/GUi73d2ZPZaeWdXhTmIX62T9KYvb1c+WnlBkX7GpXgJO6Q8mypQCY9mw5SQ==", "dev": true, + "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/element": "^6.39.0", - "@wordpress/primitives": "^4.39.0" + "@wordpress/element": "^6.44.0", + "@wordpress/primitives": "^4.44.0", + "change-case": "4.1.2" }, "engines": { "node": ">=18.12.0", @@ -9018,14 +8931,15 @@ } }, "node_modules/@wordpress/icons/node_modules/@wordpress/element": { - "version": "6.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.39.0.tgz", - "integrity": "sha512-yVEjTddIVEsYjwRCY1pEzav/dGVH9S1xfwYwRyGsUGOQw5hXtIVnTbCIfQ2t3OCOGgSIYEh2ZmsSt0eTxZvtBw==", + "version": "6.44.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-6.44.0.tgz", + "integrity": "sha512-kVCRSwGMPFu7oBcAzN0VzwFQw3mwctUb/TEHkGeG5An1Uus6olruGJyvFwkHNtO9WRCdTXXunUaSk0CIA9+Wig==", "dev": true, + "license": "GPL-2.0-or-later", "dependencies": { "@types/react": "^18.3.27", "@types/react-dom": "^18.3.1", - "@wordpress/escape-html": "^3.39.0", + "@wordpress/escape-html": "^3.44.0", "change-case": "^4.1.2", "is-plain-object": "^5.0.0", "react": "^18.3.0", @@ -9041,6 +8955,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -9053,6 +8968,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dev": true, + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -9062,22 +8978,24 @@ } }, "node_modules/@wordpress/icons/node_modules/@wordpress/escape-html": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.39.0.tgz", - "integrity": "sha512-YhAmZYQsOnnfafMwInzy/M1AR77O59u4aaIVSqiQjvCLkY+BQABsU6AizDckCg57mF2SoDnARl6xQY/7FCwEmw==", + "version": "3.44.0", + "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-3.44.0.tgz", + "integrity": "sha512-nAEshSe6IYFr3G8sfY8o9pYNTRKvxocQ3DXs3KUesmdaEtrtJSlDmrMOI3FIgaYfv1PP6d+cDZpsygp6IZGo2w==", "dev": true, + "license": "GPL-2.0-or-later", "engines": { "node": ">=18.12.0", "npm": ">=8.19.2" } }, "node_modules/@wordpress/icons/node_modules/@wordpress/primitives": { - "version": "4.39.0", - "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.39.0.tgz", - "integrity": "sha512-RV9s+KzyuS8p0YKczLecmhFAtOHIWkCToHyDSmRf8N3XOy4id/T0+B5SJ2nMZJleG1oYINf5lrVcccqP2VmFJg==", + "version": "4.44.0", + "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-4.44.0.tgz", + "integrity": "sha512-IqLL1EfhhyD9hp3G0q0Djp5HYbqXr7/f+FIj98SCovZnoo6YrVYwzFSrUvjFLr7RchyF19VzOEc0w0PpyhtxYA==", "dev": true, + "license": "GPL-2.0-or-later", "dependencies": { - "@wordpress/element": "^6.39.0", + "@wordpress/element": "^6.44.0", "clsx": "^2.1.1" }, "engines": { diff --git a/package.json b/package.json index 5a9655b..dde7825 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@wordpress/data": "^9.24.0", "@wordpress/env": "^10.39.0", "@wordpress/i18n": "^4.54.0", - "@wordpress/icons": "^11.6.0", + "@wordpress/icons": "^12.2.0", "@wordpress/primitives": "^3.52.0", "@wordpress/scripts": "^30.17.0" }, @@ -36,6 +36,6 @@ "classnames": "^2.5.1" }, "volta": { - "node": "20.12.0" + "node": "24.15.0" } } diff --git a/src/blockparty-tabs-nav-item/index.js b/src/blockparty-tabs-nav-item/index.js index 2ba9746..6cac13c 100644 --- a/src/blockparty-tabs-nav-item/index.js +++ b/src/blockparty-tabs-nav-item/index.js @@ -2,10 +2,10 @@ import { registerBlockType } from '@wordpress/blocks'; import Edit from './edit'; import save from './save'; import metadata from './block.json'; -import { button } from '@wordpress/icons'; +import { tabsMenuItem } from '@wordpress/icons'; registerBlockType( metadata.name, { - icon: button, + icon: tabsMenuItem, edit: Edit, save, } ); diff --git a/src/blockparty-tabs-nav/index.js b/src/blockparty-tabs-nav/index.js index 0e11db1..037e1c8 100644 --- a/src/blockparty-tabs-nav/index.js +++ b/src/blockparty-tabs-nav/index.js @@ -2,10 +2,10 @@ import { registerBlockType } from '@wordpress/blocks'; import Edit from './edit'; import save from './save'; import metadata from './block.json'; -import { navigation } from '@beapi/icons'; +import { tabsMenu } from '@wordpress/icons'; registerBlockType( metadata.name, { - icon: navigation, + icon: tabsMenu, /** * @see ./edit.js diff --git a/src/blockparty-tabs-panels/index.js b/src/blockparty-tabs-panels/index.js index 29cf502..880aa25 100644 --- a/src/blockparty-tabs-panels/index.js +++ b/src/blockparty-tabs-panels/index.js @@ -2,10 +2,10 @@ import { registerBlockType } from '@wordpress/blocks'; import Edit from './edit'; import save from './save'; import metadata from './block.json'; -import { grid } from '@wordpress/icons'; +import { tab } from '@wordpress/icons'; registerBlockType( metadata.name, { - icon: grid, + icon: tab, edit: Edit, save, } ); diff --git a/src/blockparty-tabs/index.js b/src/blockparty-tabs/index.js index 7ce14df..5fea10b 100644 --- a/src/blockparty-tabs/index.js +++ b/src/blockparty-tabs/index.js @@ -3,7 +3,7 @@ import './style.scss'; import Edit from './edit'; import save from './save'; import metadata from './block.json'; -import { tabs } from '@beapi/icons'; +import { tabs } from '@wordpress/icons'; registerBlockType( metadata.name, { icon: tabs, From 12c2a0ed6d2c77d1795e083d3281d0aa014701a7 Mon Sep 17 00:00:00 2001 From: mricoul Date: Mon, 20 Apr 2026 15:25:01 +0200 Subject: [PATCH 02/10] feat (blueprint): adds WordPress Playground blueprint for live demo Introduces a WordPress Playground configuration to allow users to preview the plugin instantly. This includes a blueprint that installs the plugin and creates a demo page, along with a "Test with WordPress Playground" badge in the README. --- .wordpress-org/blueprints/blueprint.json | 32 ++++++++++++++++++++++++ README.md | 2 ++ 2 files changed, 34 insertions(+) create mode 100644 .wordpress-org/blueprints/blueprint.json diff --git a/.wordpress-org/blueprints/blueprint.json b/.wordpress-org/blueprints/blueprint.json new file mode 100644 index 0000000..f65a573 --- /dev/null +++ b/.wordpress-org/blueprints/blueprint.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://playground.wordpress.net/blueprint-schema.json", + "landingPage": "/blockparty-tabs-demo/", + "preferredVersions": { + "php": "8.1", + "wp": "latest" + }, + "steps": [ + { + "step": "installPlugin", + "pluginData": { + "resource": "git:directory", + "url": "https://github.com/BeAPI/blockparty-tabs", + "ref": "1.1.1", + "refType": "tag" + }, + "options": { + "activate": true, + "targetFolderName": "blockparty-tabs" + } + }, + { + "step": "login", + "username": "admin", + "password": "password" + }, + { + "step": "runPHP", + "code": "\n
\n\n\n\n\n
\n
\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\n
\n\n\n\n
\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\n
\n\n\n\n
\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\n
\n
\n
\n'; $page_id = wp_insert_post( array( 'post_title' => 'Blockparty Tabs', 'post_name' => 'blockparty-tabs-demo', 'post_content' => $page_content, 'post_status' => 'publish', 'post_type' => 'page' ) ); echo 'Page created with ID: ' . $page_id; ?>" + } + ] +} diff --git a/README.md b/README.md index 4fda01c..f7f0313 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ [![Be API Github Banner](.github/banner-github.png)](https://beapi.fr) +[![Test with WordPress Playground](https://img.shields.io/badge/Test%20with-WordPress%20Playground-0073aa?style=for-the-badge&logo=wordpress&logoColor=white)](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/beapi/blockparty-tabs/refs/heads/main/.wordpress-org/blueprints/blueprint.json) + # Blockparty Tabs An accessible tabs block for WordPress Gutenberg editor that follows ARIA best practices. From ae614798ee6633aaae878713d0f9a0b4e9be68e4 Mon Sep 17 00:00:00 2001 From: mricoul Date: Mon, 20 Apr 2026 15:29:35 +0200 Subject: [PATCH 03/10] chore: bump plugin version --- .plugin-data | 2 +- CHANGELOG.md | 5 +++++ blockparty-tabs.php | 4 ++-- package.json | 2 +- readme.txt | 5 +++++ src/blockparty-tabs-nav-item/block.json | 11 ++++++++--- src/blockparty-tabs-nav/block.json | 10 +++++++--- src/blockparty-tabs-panel-item/block.json | 11 ++++++++--- src/blockparty-tabs-panels/block.json | 11 ++++++++--- src/blockparty-tabs/block.json | 7 +++++-- 10 files changed, 50 insertions(+), 18 deletions(-) diff --git a/.plugin-data b/.plugin-data index 9d0ea2d..8302994 100644 --- a/.plugin-data +++ b/.plugin-data @@ -1,4 +1,4 @@ { - "version": "1.1.0", + "version": "1.1.1", "slug": "blockparty-tabs" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e59d9e..7fe21e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 1.1.1 - 2026-04-20 + +- Update block icons +- Add WordPress Playground blueprint file + ## 1.1.0 - 2026-02-18 - Support for `blockparty/icons` block diff --git a/blockparty-tabs.php b/blockparty-tabs.php index cad0fac..d27291e 100644 --- a/blockparty-tabs.php +++ b/blockparty-tabs.php @@ -4,7 +4,7 @@ * Description: Accessible Tabs block for WordPress gutenberg. * Requires at least: 6.2 * Requires PHP: 8.1 - * Version: 1.1.0 + * Version: 1.1.1 * Author: Be API Technical team * Author URI: https://beapi.fr * License: GPL-2.0-or-later @@ -14,7 +14,7 @@ namespace Blockparty\Tabs; -define( 'BLOCKPARTY_TABS_VERSION', '1.1.0' ); +define( 'BLOCKPARTY_TABS_VERSION', '1.1.1' ); define( 'BLOCKPARTY_TABS_URL', plugin_dir_url( __FILE__ ) ); define( 'BLOCKPARTY_TABS_DIR', plugin_dir_path( __FILE__ ) ); define( 'BLOCKPARTY_TABS_PLUGIN_BASENAME', plugin_basename( __FILE__ ) ); diff --git a/package.json b/package.json index dde7825..537434c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockparty-tabs", - "version": "1.1.0", + "version": "1.1.1", "description": "Accessible tabs block for WordPress", "author": "Be API Technical team", "license": "GPL-2.0-or-later", diff --git a/readme.txt b/readme.txt index 520ac61..189ee64 100644 --- a/readme.txt +++ b/readme.txt @@ -31,6 +31,11 @@ directory take precedence. For example, `/assets/screenshot-1.png` would win ove == Changelog == += 1.1.1 = + +* Update block icons +* Add WordPress Playground blueprint file + = 1.1.0 = * Support for `blockparty/icons` block diff --git a/src/blockparty-tabs-nav-item/block.json b/src/blockparty-tabs-nav-item/block.json index 386c271..d83ff7b 100644 --- a/src/blockparty-tabs-nav-item/block.json +++ b/src/blockparty-tabs-nav-item/block.json @@ -2,11 +2,13 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "name": "blockparty/tabs-nav-item", - "version": "1.1.0", + "version": "1.1.1", "title": "Tab", "category": "widgets", "description": "Accessible tabs block item", - "parent": [ "blockparty/tabs-nav" ], + "parent": [ + "blockparty/tabs-nav" + ], "supports": { "html": false, "anchor": false, @@ -40,7 +42,10 @@ "type": "integer" } }, - "usesContext": [ "blockparty/Tabs", "blockparty/TabsActive" ], + "usesContext": [ + "blockparty/Tabs", + "blockparty/TabsActive" + ], "textdomain": "blockparty-tabs", "editorScript": "file:./index.js" } diff --git a/src/blockparty-tabs-nav/block.json b/src/blockparty-tabs-nav/block.json index 8044866..fc17556 100644 --- a/src/blockparty-tabs-nav/block.json +++ b/src/blockparty-tabs-nav/block.json @@ -2,11 +2,13 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "name": "blockparty/tabs-nav", - "version": "1.1.0", + "version": "1.1.1", "title": "Tabs list", "category": "widgets", "description": "Accessible tabs block item", - "parent": [ "blockparty/tabs" ], + "parent": [ + "blockparty/tabs" + ], "supports": { "html": false, "anchor": false, @@ -14,7 +16,9 @@ "lock": false, "reusable": false }, - "usesContext": [ "blockparty/Tabs" ], + "usesContext": [ + "blockparty/Tabs" + ], "textdomain": "blockparty-tabs", "editorScript": "file:./index.js" } diff --git a/src/blockparty-tabs-panel-item/block.json b/src/blockparty-tabs-panel-item/block.json index 7134385..eeff424 100644 --- a/src/blockparty-tabs-panel-item/block.json +++ b/src/blockparty-tabs-panel-item/block.json @@ -2,12 +2,14 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "name": "blockparty/tabs-panel-item", - "version": "1.1.0", + "version": "1.1.1", "title": "Panel", "category": "widgets", "icon": "layout", "description": "Accessible tabs block item", - "parent": [ "blockparty/tabs-panels" ], + "parent": [ + "blockparty/tabs-panels" + ], "supports": { "html": false, "anchor": false, @@ -30,7 +32,10 @@ "type": "integer" } }, - "usesContext": [ "blockparty/Tabs", "blockparty/TabsActive" ], + "usesContext": [ + "blockparty/Tabs", + "blockparty/TabsActive" + ], "textdomain": "blockparty-tabs", "editorScript": "file:./index.js" } diff --git a/src/blockparty-tabs-panels/block.json b/src/blockparty-tabs-panels/block.json index 05344aa..455ead7 100644 --- a/src/blockparty-tabs-panels/block.json +++ b/src/blockparty-tabs-panels/block.json @@ -2,11 +2,13 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "name": "blockparty/tabs-panels", - "version": "1.1.0", + "version": "1.1.1", "title": "Panels", "category": "widgets", "description": "Accessible tabs block item", - "parent": [ "blockparty/tabs" ], + "parent": [ + "blockparty/tabs" + ], "supports": { "html": false, "anchor": false, @@ -19,7 +21,10 @@ "type": "string" } }, - "usesContext": [ "blockparty/Tabs", "blockparty/TabsActive" ], + "usesContext": [ + "blockparty/Tabs", + "blockparty/TabsActive" + ], "textdomain": "blockparty-tabs", "editorScript": "file:./index.js" } diff --git a/src/blockparty-tabs/block.json b/src/blockparty-tabs/block.json index 00e887a..0dec411 100644 --- a/src/blockparty-tabs/block.json +++ b/src/blockparty-tabs/block.json @@ -2,14 +2,17 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "name": "blockparty/tabs", - "version": "1.1.0", + "version": "1.1.1", "title": "Tabs", "category": "widgets", "description": "Accessible tabs block", "supports": { "html": false, "anchor": true, - "align": [ "wide", "full" ] + "align": [ + "wide", + "full" + ] }, "attributes": { "tabsIndex": { From 618ad7623d827a592a54c07e33c0cbd67950cc09 Mon Sep 17 00:00:00 2001 From: mricoul Date: Mon, 20 Apr 2026 15:34:25 +0200 Subject: [PATCH 04/10] chore: update package-lock.json for release 1.1.1 --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index f307ba5..7d8b547 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "blockparty-tabs", - "version": "1.1.0", + "version": "1.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "blockparty-tabs", - "version": "1.1.0", + "version": "1.1.1", "license": "GPL-2.0-or-later", "dependencies": { "@beapi/icons": "^1.2.5", From edfe8663e6c11fd58ec3d62322fa97b708797419 Mon Sep 17 00:00:00 2001 From: mricoul Date: Mon, 20 Apr 2026 20:17:28 +0200 Subject: [PATCH 05/10] chore: update readme.txt for release 1.1.1 --- readme.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.txt b/readme.txt index 189ee64..9dc00c7 100644 --- a/readme.txt +++ b/readme.txt @@ -2,7 +2,7 @@ Contributors: Be API Technical team Tags: block Tested up to: 6.0 -Stable tag: 1.0.0 +Stable tag: 1.1.1 License: GPL-2.0-or-later License URI: https://www.gnu.org/licenses/gpl-2.0.html From 2807709f7ae3851e036fdd232b843f94e949603a Mon Sep 17 00:00:00 2001 From: mricoul Date: Mon, 20 Apr 2026 20:18:23 +0200 Subject: [PATCH 06/10] chore: update changelog for Node.js version pin Documents the Volta toolchain update to Node.js 24.15.0 in the changelog for the upcoming release. --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fe21e5..b349a27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Update block icons - Add WordPress Playground blueprint file +- Pin Volta toolchain to Node.js 24.15.0 (was 20.12.0) ## 1.1.0 - 2026-02-18 From 19d2382160672b176a7a24cb3b9f5b4c7c0bfffe Mon Sep 17 00:00:00 2001 From: mricoul Date: Tue, 21 Apr 2026 16:03:09 +0200 Subject: [PATCH 07/10] feat (blueprint): update demo content with Johannes Gutenberg example Replaces generic "Lorem ipsum" placeholder text with realistic content about Johannes Gutenberg to provide a more professional experience for the live demo. This also improves the readability of the blueprint's PHP code by using a heredoc for the page markup. --- .wordpress-org/blueprints/blueprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.wordpress-org/blueprints/blueprint.json b/.wordpress-org/blueprints/blueprint.json index f65a573..b262141 100644 --- a/.wordpress-org/blueprints/blueprint.json +++ b/.wordpress-org/blueprints/blueprint.json @@ -26,7 +26,7 @@ }, { "step": "runPHP", - "code": "\n
\n\n\n\n\n
\n
\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\n
\n\n\n\n
\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\n
\n\n\n\n
\n

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

\n
\n
\n
\n'; $page_id = wp_insert_post( array( 'post_title' => 'Blockparty Tabs', 'post_name' => 'blockparty-tabs-demo', 'post_content' => $page_content, 'post_status' => 'publish', 'post_type' => 'page' ) ); echo 'Page created with ID: ' . $page_id; ?>" + "code": "\n
\n\n\n\n\n
\n
\n
\n

\"Gutenberg\" redirects here. For the Bible, see Gutenberg Bible. For other uses, see Gutenberg (disambiguation).

\n
\n\n\n\n
\n\n\n\n

Johannes Gensfleisch zur Laden zum Gutenberg (c. 1393–1406 – 3 February 1468) was a German inventor and craftsman who invented the movable-type printing press. Though movable type was already in use in East Asia, Gutenberg's invention of the printing press enabled a much faster rate of printing. The printing press later spread across the world, and led to an information revolution and the unprecedented mass-spread of literature throughout Europe. It had a profound impact on the development of the Renaissance, Reformation, and humanist movements.

\n
\n\n\n\n
\n

Johannes Gutenberg was born in Mainz (in modern-day Germany), a wealthy city along the Rhine, between the 14th and 15th centuries. His exact year of birth is unknown; on the basis of a later document indicating that he came of age by 1420, scholarly estimates have ranged from 1393 to 1406. The year 1400 is commonly assigned to Gutenberg, \"for the sake of convenience\". Tradition also holds his birthdate to be on the feast day of Saint John the Baptist, 24 June, since children of the time were often named after their birthday's patron saint. There is no verification for this assumption, since the name \"Johannes\"—and variants such as \"Johann\", \"Henne\", \"Hengin\" and \"Henchen\"—was widely popular at the time. In full, Gutenberg's name was \"Johannes Gensfleisch zur Laden zum Gutenberg\", with \"Laden\" and \"Gutenberg\" being adopted from the family's residences in Mainz.The latter refers to the Hof zum Gutenberg, a large and now destroyed Gothic-style residence inherited by Gutenberg's father. Gutenberg probably spent his earliest years at the manor, which existed beside St. Christoph's.

\n
\n\n\n\n
\n

Gutenberg's invention had an enormous impact on subsequent human history, both on cultural and social matters. His design directly impacted the mass spread of books across Europe, causing an information revolution. As a result, Venzke describes the inauguration of the Renaissance, Reformation and humanist movement as \"unthinkable\" without Gutenberg's influence. Described as \"one of the most recognized names in the world\", a team of US journalists voted Gutenberg as the \"man of the millennium\" in 1999. Similarly, in 1999 the A&E Network ranked Gutenberg the No. 1 most influential person of the second millennium on their \"Biographies of the Millennium\" countdown, while Time–Life magazine picked Gutenberg's invention as the most important of the second millennium in 1997. The scholar of paper history, Thomas Francis Carter, drew parallels between Cai Lun, the traditional inventor of paper during the Eastern Han dynasty, and Gutenberg, calling them \"spiritual father and son\" respectively. In his 1978 book, The 100: A Ranking of the Most Influential Persons in History, Michael H. Hart ranked him 8th, below Cai but above figures such as Christopher Columbus, Albert Einstein and Charles Darwin.

\n
\n
\n
\n\nBLOCKPARTY_TABS_MARKUP_EOF;\n\n$page_id = wp_insert_post(\n\tarray(\n\t\t'post_title' => 'Blockparty Tabs',\n\t\t'post_name' => 'blockparty-tabs-demo',\n\t\t'post_content' => $page_content,\n\t\t'post_status' => 'publish',\n\t\t'post_type' => 'page',\n\t)\n);\necho 'Page created with ID: ' . $page_id;\n?>\n" } ] } From 8c5b89508acb047ee94ec58d7700913fe45d4b78 Mon Sep 17 00:00:00 2001 From: mricoul Date: Tue, 21 Apr 2026 16:04:30 +0200 Subject: [PATCH 08/10] feat (blueprint): allow ARIA and role attributes in Playground demo Adds a must-use plugin to the blueprint that filters `wp_kses_allowed_html` to prevent WordPress from stripping accessibility-related attributes. This ensures the Blockparty Tabs demo content retains its required ARIA roles and attributes when rendered in the Playground. --- .wordpress-org/blueprints/blueprint.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.wordpress-org/blueprints/blueprint.json b/.wordpress-org/blueprints/blueprint.json index b262141..d6dac91 100644 --- a/.wordpress-org/blueprints/blueprint.json +++ b/.wordpress-org/blueprints/blueprint.json @@ -24,6 +24,10 @@ "username": "admin", "password": "password" }, + { + "step": "runPHP", + "code": "" + }, { "step": "runPHP", "code": "\n
\n\n\n\n\n
\n
\n
\n

\"Gutenberg\" redirects here. For the Bible, see Gutenberg Bible. For other uses, see Gutenberg (disambiguation).

\n
\n\n\n\n
\n\n\n\n

Johannes Gensfleisch zur Laden zum Gutenberg (c. 1393–1406 – 3 February 1468) was a German inventor and craftsman who invented the movable-type printing press. Though movable type was already in use in East Asia, Gutenberg's invention of the printing press enabled a much faster rate of printing. The printing press later spread across the world, and led to an information revolution and the unprecedented mass-spread of literature throughout Europe. It had a profound impact on the development of the Renaissance, Reformation, and humanist movements.

\n
\n\n\n\n
\n

Johannes Gutenberg was born in Mainz (in modern-day Germany), a wealthy city along the Rhine, between the 14th and 15th centuries. His exact year of birth is unknown; on the basis of a later document indicating that he came of age by 1420, scholarly estimates have ranged from 1393 to 1406. The year 1400 is commonly assigned to Gutenberg, \"for the sake of convenience\". Tradition also holds his birthdate to be on the feast day of Saint John the Baptist, 24 June, since children of the time were often named after their birthday's patron saint. There is no verification for this assumption, since the name \"Johannes\"—and variants such as \"Johann\", \"Henne\", \"Hengin\" and \"Henchen\"—was widely popular at the time. In full, Gutenberg's name was \"Johannes Gensfleisch zur Laden zum Gutenberg\", with \"Laden\" and \"Gutenberg\" being adopted from the family's residences in Mainz.The latter refers to the Hof zum Gutenberg, a large and now destroyed Gothic-style residence inherited by Gutenberg's father. Gutenberg probably spent his earliest years at the manor, which existed beside St. Christoph's.

\n
\n\n\n\n
\n

Gutenberg's invention had an enormous impact on subsequent human history, both on cultural and social matters. His design directly impacted the mass spread of books across Europe, causing an information revolution. As a result, Venzke describes the inauguration of the Renaissance, Reformation and humanist movement as \"unthinkable\" without Gutenberg's influence. Described as \"one of the most recognized names in the world\", a team of US journalists voted Gutenberg as the \"man of the millennium\" in 1999. Similarly, in 1999 the A&E Network ranked Gutenberg the No. 1 most influential person of the second millennium on their \"Biographies of the Millennium\" countdown, while Time–Life magazine picked Gutenberg's invention as the most important of the second millennium in 1997. The scholar of paper history, Thomas Francis Carter, drew parallels between Cai Lun, the traditional inventor of paper during the Eastern Han dynasty, and Gutenberg, calling them \"spiritual father and son\" respectively. In his 1978 book, The 100: A Ranking of the Most Influential Persons in History, Michael H. Hart ranked him 8th, below Cai but above figures such as Christopher Columbus, Albert Einstein and Charles Darwin.

\n
\n
\n
\n\nBLOCKPARTY_TABS_MARKUP_EOF;\n\n$page_id = wp_insert_post(\n\tarray(\n\t\t'post_title' => 'Blockparty Tabs',\n\t\t'post_name' => 'blockparty-tabs-demo',\n\t\t'post_content' => $page_content,\n\t\t'post_status' => 'publish',\n\t\t'post_type' => 'page',\n\t)\n);\necho 'Page created with ID: ' . $page_id;\n?>\n" From 64ecc264f929a1df7d03d367a1e89a4d4dfc7542 Mon Sep 17 00:00:00 2001 From: Milan Ricoul Date: Tue, 21 Apr 2026 16:11:59 +0200 Subject: [PATCH 09/10] chore(blueprint): update WordPress Playground demo blueprint - Keep JSON-valid runPHP steps (NOWDOC markup, mu-plugin kses) - Demo content: tabsActive default, Gutenberg article and source blocks Made-with: Cursor --- .wordpress-org/blueprints/blueprint.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.wordpress-org/blueprints/blueprint.json b/.wordpress-org/blueprints/blueprint.json index d6dac91..d32d294 100644 --- a/.wordpress-org/blueprints/blueprint.json +++ b/.wordpress-org/blueprints/blueprint.json @@ -26,11 +26,11 @@ }, { "step": "runPHP", - "code": "" + "code": "\n" }, { "step": "runPHP", - "code": "\n
\n\n\n\n\n
\n
\n
\n

\"Gutenberg\" redirects here. For the Bible, see Gutenberg Bible. For other uses, see Gutenberg (disambiguation).

\n
\n\n\n\n
\n\n\n\n

Johannes Gensfleisch zur Laden zum Gutenberg (c. 1393–1406 – 3 February 1468) was a German inventor and craftsman who invented the movable-type printing press. Though movable type was already in use in East Asia, Gutenberg's invention of the printing press enabled a much faster rate of printing. The printing press later spread across the world, and led to an information revolution and the unprecedented mass-spread of literature throughout Europe. It had a profound impact on the development of the Renaissance, Reformation, and humanist movements.

\n
\n\n\n\n
\n

Johannes Gutenberg was born in Mainz (in modern-day Germany), a wealthy city along the Rhine, between the 14th and 15th centuries. His exact year of birth is unknown; on the basis of a later document indicating that he came of age by 1420, scholarly estimates have ranged from 1393 to 1406. The year 1400 is commonly assigned to Gutenberg, \"for the sake of convenience\". Tradition also holds his birthdate to be on the feast day of Saint John the Baptist, 24 June, since children of the time were often named after their birthday's patron saint. There is no verification for this assumption, since the name \"Johannes\"—and variants such as \"Johann\", \"Henne\", \"Hengin\" and \"Henchen\"—was widely popular at the time. In full, Gutenberg's name was \"Johannes Gensfleisch zur Laden zum Gutenberg\", with \"Laden\" and \"Gutenberg\" being adopted from the family's residences in Mainz.The latter refers to the Hof zum Gutenberg, a large and now destroyed Gothic-style residence inherited by Gutenberg's father. Gutenberg probably spent his earliest years at the manor, which existed beside St. Christoph's.

\n
\n\n\n\n
\n

Gutenberg's invention had an enormous impact on subsequent human history, both on cultural and social matters. His design directly impacted the mass spread of books across Europe, causing an information revolution. As a result, Venzke describes the inauguration of the Renaissance, Reformation and humanist movement as \"unthinkable\" without Gutenberg's influence. Described as \"one of the most recognized names in the world\", a team of US journalists voted Gutenberg as the \"man of the millennium\" in 1999. Similarly, in 1999 the A&E Network ranked Gutenberg the No. 1 most influential person of the second millennium on their \"Biographies of the Millennium\" countdown, while Time–Life magazine picked Gutenberg's invention as the most important of the second millennium in 1997. The scholar of paper history, Thomas Francis Carter, drew parallels between Cai Lun, the traditional inventor of paper during the Eastern Han dynasty, and Gutenberg, calling them \"spiritual father and son\" respectively. In his 1978 book, The 100: A Ranking of the Most Influential Persons in History, Michael H. Hart ranked him 8th, below Cai but above figures such as Christopher Columbus, Albert Einstein and Charles Darwin.

\n
\n
\n
\n\nBLOCKPARTY_TABS_MARKUP_EOF;\n\n$page_id = wp_insert_post(\n\tarray(\n\t\t'post_title' => 'Blockparty Tabs',\n\t\t'post_name' => 'blockparty-tabs-demo',\n\t\t'post_content' => $page_content,\n\t\t'post_status' => 'publish',\n\t\t'post_type' => 'page',\n\t)\n);\necho 'Page created with ID: ' . $page_id;\n?>\n" + "code": "\n
\n\n\n\n\n
\n
\n
\n

\"Gutenberg\" redirects here. For the Bible, see Gutenberg Bible. For other uses, see Gutenberg (disambiguation).

\n
\n\n\n\n
\n\n\n\n

Johannes Gensfleisch zur Laden zum Gutenberg (c. 1393–1406 – 3 February 1468) was a German inventor and craftsman who invented the movable-type printing press. Though movable type was already in use in East Asia, Gutenberg's invention of the printing press enabled a much faster rate of printing. The printing press later spread across the world, and led to an information revolution and the unprecedented mass-spread of literature throughout Europe. It had a profound impact on the development of the RenaissanceReformation, and humanist movements.

\n\n\n\n

Source : Wikipedia

\n
\n\n\n\n
\n

Johannes Gutenberg was born in Mainz (in modern-day Germany), a wealthy city along the Rhine, between the 14th and 15th centuries. His exact year of birth is unknown; on the basis of a later document indicating that he came of age by 1420, scholarly estimates have ranged from 1393 to 1406. The year 1400 is commonly assigned to Gutenberg, \"for the sake of convenience\". Tradition also holds his birthdate to be on the feast day of Saint John the Baptist, 24 June, since children of the time were often named after their birthday's patron saint. There is no verification for this assumption, since the name \"Johannes\"—and variants such as \"Johann\", \"Henne\", \"Hengin\" and \"Henchen\"—was widely popular at the time. In full, Gutenberg's name was \"Johannes Gensfleisch zur Laden zum Gutenberg\", with \"Laden\" and \"Gutenberg\" being adopted from the family's residences in Mainz.The latter refers to the Hof zum Gutenberg, a large and now destroyed Gothic-style residence inherited by Gutenberg's father. Gutenberg probably spent his earliest years at the manor, which existed beside St. Christoph's.

\n\n\n\n

Source : Wikipedia

\n
\n\n\n\n
\n

Gutenberg's invention had an enormous impact on subsequent human history, both on cultural and social matters. His design directly impacted the mass spread of books across Europe, causing an information revolution. As a result, Venzke describes the inauguration of the RenaissanceReformation and humanist movement as \"unthinkable\" without Gutenberg's influence. Described as \"one of the most recognized names in the world\", a team of US journalists voted Gutenberg as the \"man of the millennium\" in 1999. Similarly, in 1999 the A&E Network ranked Gutenberg the No. 1 most influential person of the second millennium on their \"Biographies of the Millennium\" countdown, while Time–Life magazine picked Gutenberg's invention as the most important of the second millennium in 1997. The scholar of paper history, Thomas Francis Carter, drew parallels between Cai Lun, the traditional inventor of paper during the Eastern Han dynasty, and Gutenberg, calling them \"spiritual father and son\" respectively. In his 1978 book, The 100: A Ranking of the Most Influential Persons in HistoryMichael H. Hart ranked him 8th, below Cai but above figures such as Christopher ColumbusAlbert Einstein and Charles Darwin.

\n\n\n\n

Source : Wikipedia

\n
\n
\n
\n\nBLOCKPARTY_TABS_MARKUP_EOF;\n\n$page_id = wp_insert_post(\n\tarray(\n\t\t'post_title' => 'Blockparty Tabs',\n\t\t'post_name' => 'blockparty-tabs-demo',\n\t\t'post_content' => $page_content,\n\t\t'post_status' => 'publish',\n\t\t'post_type' => 'page',\n\t)\n);\necho 'Page created with ID: ' . $page_id;\n?>\n" } ] } From 42cac562299e5ba183aecf90c4610063a1ca7668 Mon Sep 17 00:00:00 2001 From: Milan Ricoul Date: Tue, 21 Apr 2026 16:14:10 +0200 Subject: [PATCH 10/10] fix(blueprint): write kses mu-plugin via nowdoc to fix literal \t parse error Single-quoted PHP strings do not expand \t to tabs; the generated mu-plugin had invalid syntax and never registered wp_kses_allowed_html. Use a heredoc body for the filter markup so Playground demo content keeps a11y attributes. Made-with: Cursor --- .wordpress-org/blueprints/blueprint.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.wordpress-org/blueprints/blueprint.json b/.wordpress-org/blueprints/blueprint.json index d32d294..ac65d36 100644 --- a/.wordpress-org/blueprints/blueprint.json +++ b/.wordpress-org/blueprints/blueprint.json @@ -26,7 +26,7 @@ }, { "step": "runPHP", - "code": "\n" + "code": "