diff --git a/.plugin-data b/.plugin-data index 52b5fe1..3f8d940 100644 --- a/.plugin-data +++ b/.plugin-data @@ -1,4 +1,4 @@ { - "version": "2.0.0", + "version": "2.0.1", "slug": "blockparty-tabs" } diff --git a/.wordpress-org/blueprints/blueprint.json b/.wordpress-org/blueprints/blueprint.json index b267134..c0ad62b 100644 --- a/.wordpress-org/blueprints/blueprint.json +++ b/.wordpress-org/blueprints/blueprint.json @@ -11,7 +11,7 @@ "pluginData": { "resource": "git:directory", "url": "https://github.com/BeAPI/blockparty-tabs", - "ref": "2.0.0", + "ref": "2.0.1", "refType": "tag" }, "options": { diff --git a/CHANGELOG.md b/CHANGELOG.md index 89646d6..51172a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ 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). +## 2.0.1 - 2026-09-29 + +- Fix full-width (`alignfull`) tabs so panel padding is reset correctly +- Scope add/remove tab toolbar controls per block type (avoid ambiguous deletions from the panels wrapper) +- Update French translations + ## 2.0.0 - 2026-09-28 - Require WordPress 6.2 or later diff --git a/blockparty-tabs.php b/blockparty-tabs.php index 4df2213..02e0a1d 100644 --- a/blockparty-tabs.php +++ b/blockparty-tabs.php @@ -4,7 +4,7 @@ * Description: Accessible Tabs block for WordPress gutenberg. * Requires at least: 6.4 * Requires PHP: 8.1 - * Version: 2.0.0 + * Version: 2.0.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', '2.0.0' ); +define( 'BLOCKPARTY_TABS_VERSION', '2.0.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/languages/blockparty-tabs-fr_FR-0bd2c273cbf16a852857c0f91fb2ec27.json b/languages/blockparty-tabs-fr_FR-0bd2c273cbf16a852857c0f91fb2ec27.json index 0601145..3511bd4 100644 --- a/languages/blockparty-tabs-fr_FR-0bd2c273cbf16a852857c0f91fb2ec27.json +++ b/languages/blockparty-tabs-fr_FR-0bd2c273cbf16a852857c0f91fb2ec27.json @@ -1 +1 @@ -{"translation-revision-date":"2026-09-24 15:04+0200","generator":"WP-CLI\/2.11.0","source":"build\/blockparty-tabs-nav\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_FR","plural-forms":"nplurals=2; plural=(n != 1);"},"Add tab":["Ajouter un onglet"],"Remove tab":["Supprimer l\u2019onglet"],"Settings":["R\u00e9glages"],"Label":["Libell\u00e9"],"Describe the purpose of this tabbed interface for assistive technologies.":["D\u00e9crivez l'objectif de cette interface \u00e0 onglets pour les technologies d'assistance."]}}} \ No newline at end of file +{"translation-revision-date":"2026-09-29 13:46+0200","generator":"WP-CLI\/2.11.0","source":"build\/blockparty-tabs-nav\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_FR","plural-forms":"nplurals=2; plural=(n != 1);"},"Add tab":["Ajouter un onglet"],"Remove tab":["Supprimer l\u2019onglet"],"Settings":["R\u00e9glages"],"Label":["Libell\u00e9"],"Describe the purpose of this tabbed interface for assistive technologies.":["D\u00e9crivez l'objectif de cette interface \u00e0 onglets pour les technologies d'assistance."]}}} \ No newline at end of file diff --git a/languages/blockparty-tabs-fr_FR-4bb7e14fed5bf4fbf5983513a33a90f6.json b/languages/blockparty-tabs-fr_FR-4bb7e14fed5bf4fbf5983513a33a90f6.json index 6893307..6821825 100644 --- a/languages/blockparty-tabs-fr_FR-4bb7e14fed5bf4fbf5983513a33a90f6.json +++ b/languages/blockparty-tabs-fr_FR-4bb7e14fed5bf4fbf5983513a33a90f6.json @@ -1 +1 @@ -{"translation-revision-date":"2026-09-24 15:04+0200","generator":"WP-CLI\/2.11.0","source":"build\/blockparty-tabs-nav-item\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_FR","plural-forms":"nplurals=2; plural=(n != 1);"},"Add tab":["Ajouter un onglet"],"Remove tab":["Supprimer l\u2019onglet"],"Move tab before":["D\u00e9placer l\u2019onglet \u00e0 gauche"],"Move tab after":["D\u00e9placer l\u2019onglet \u00e0 droite"],"Icon":["Ic\u00f4ne"],"Item\u2026":["\u00c9l\u00e9ment\u2026"]}}} \ No newline at end of file +{"translation-revision-date":"2026-09-29 13:46+0200","generator":"WP-CLI\/2.11.0","source":"build\/blockparty-tabs-nav-item\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_FR","plural-forms":"nplurals=2; plural=(n != 1);"},"Add tab":["Ajouter un onglet"],"Remove tab":["Supprimer l\u2019onglet"],"Move tab before":["D\u00e9placer l\u2019onglet \u00e0 gauche"],"Move tab after":["D\u00e9placer l\u2019onglet \u00e0 droite"],"Icon":["Ic\u00f4ne"],"Item\u2026":["\u00c9l\u00e9ment\u2026"]}}} \ No newline at end of file diff --git a/languages/blockparty-tabs-fr_FR-a6713262e631e06701a33878dcb93597.json b/languages/blockparty-tabs-fr_FR-a6713262e631e06701a33878dcb93597.json index 52c6169..789d3db 100644 --- a/languages/blockparty-tabs-fr_FR-a6713262e631e06701a33878dcb93597.json +++ b/languages/blockparty-tabs-fr_FR-a6713262e631e06701a33878dcb93597.json @@ -1 +1 @@ -{"translation-revision-date":"2026-09-24 15:04+0200","generator":"WP-CLI\/2.11.0","source":"build\/blockparty-tabs-panel-item\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_FR","plural-forms":"nplurals=2; plural=(n != 1);"},"Add tab":["Ajouter un onglet"],"Remove tab":["Supprimer l\u2019onglet"]}}} \ No newline at end of file +{"translation-revision-date":"2026-09-29 13:46+0200","generator":"WP-CLI\/2.11.0","source":"build\/blockparty-tabs-panel-item\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_FR","plural-forms":"nplurals=2; plural=(n != 1);"},"Add tab":["Ajouter un onglet"],"Remove tab":["Supprimer l\u2019onglet"]}}} \ No newline at end of file diff --git a/languages/blockparty-tabs-fr_FR-e6ab4ffdabb4ff9da5abd4470599bead.json b/languages/blockparty-tabs-fr_FR-e6ab4ffdabb4ff9da5abd4470599bead.json index 0fca148..646ab02 100644 --- a/languages/blockparty-tabs-fr_FR-e6ab4ffdabb4ff9da5abd4470599bead.json +++ b/languages/blockparty-tabs-fr_FR-e6ab4ffdabb4ff9da5abd4470599bead.json @@ -1 +1 @@ -{"translation-revision-date":"2026-09-24 15:04+0200","generator":"WP-CLI\/2.11.0","source":"build\/blockparty-tabs\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_FR","plural-forms":"nplurals=2; plural=(n != 1);"},"Add tab":["Ajouter un onglet"],"Remove tab":["Supprimer l\u2019onglet"],"Align top left":["Aligner en haut \u00e0 gauche"],"Align top center":["Aligner en haut au centre"],"Align top right":["Aligner en haut \u00e0 droite"],"Align top justified":["Aligner en haut justifi\u00e9"],"Align sidebar right":["Barre lat\u00e9rale \u00e0 droite"],"Align sidebar left":["Barre lat\u00e9rale \u00e0 gauche"]}}} \ No newline at end of file +{"translation-revision-date":"2026-09-29 13:46+0200","generator":"WP-CLI\/2.11.0","source":"build\/blockparty-tabs\/index.js","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","lang":"fr_FR","plural-forms":"nplurals=2; plural=(n != 1);"},"Add tab":["Ajouter un onglet"],"Remove tab":["Supprimer l\u2019onglet"],"Align top left":["Aligner en haut \u00e0 gauche"],"Align top center":["Aligner en haut au centre"],"Align top right":["Aligner en haut \u00e0 droite"],"Align top justified":["Aligner en haut justifi\u00e9"],"Align sidebar right":["Barre lat\u00e9rale \u00e0 droite"],"Align sidebar left":["Barre lat\u00e9rale \u00e0 gauche"]}}} \ No newline at end of file diff --git a/languages/blockparty-tabs-fr_FR.mo b/languages/blockparty-tabs-fr_FR.mo index e654ed1..48bf67e 100644 Binary files a/languages/blockparty-tabs-fr_FR.mo and b/languages/blockparty-tabs-fr_FR.mo differ diff --git a/languages/blockparty-tabs-fr_FR.po b/languages/blockparty-tabs-fr_FR.po index 1f088c7..d681706 100644 --- a/languages/blockparty-tabs-fr_FR.po +++ b/languages/blockparty-tabs-fr_FR.po @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: Blockparty Tabs 1.0.0\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/blockparty-tabs\n" -"POT-Creation-Date: 2026-09-24T13:02:27+00:00\n" -"PO-Revision-Date: 2026-09-24 15:04+0200\n" +"POT-Creation-Date: 2026-09-29T11:45:30+00:00\n" +"PO-Revision-Date: 2026-09-29 13:46+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr_FR\n" @@ -18,7 +18,7 @@ msgstr "" #. Plugin Name of the plugin #: blockparty-tabs.php msgid "Blockparty Tabs" -msgstr "" +msgstr "Blockparty Onglets" #. Description of the plugin #: blockparty-tabs.php @@ -37,15 +37,13 @@ msgstr "https://beapi.fr" #: build/blockparty-tabs-nav-item/index.js:1 #: build/blockparty-tabs-nav/index.js:1 -#: build/blockparty-tabs-panel-item/index.js:1 -#: build/blockparty-tabs-panels/index.js:1 build/blockparty-tabs/index.js:1 +#: build/blockparty-tabs-panel-item/index.js:1 build/blockparty-tabs/index.js:1 msgid "Add tab" msgstr "Ajouter un onglet" #: build/blockparty-tabs-nav-item/index.js:1 #: build/blockparty-tabs-nav/index.js:1 -#: build/blockparty-tabs-panel-item/index.js:1 -#: build/blockparty-tabs-panels/index.js:1 build/blockparty-tabs/index.js:1 +#: build/blockparty-tabs-panel-item/index.js:1 build/blockparty-tabs/index.js:1 msgid "Remove tab" msgstr "Supprimer l’onglet" @@ -160,6 +158,8 @@ msgid "" "Organize content into tabs so visitors can browse sections without scrolling " "endlessly." msgstr "" +"Organisez le contenu en onglets afin que les visiteurs puissent parcourir " +"les sections sans avoir à faire défiler la page indéfiniment." #~ msgid "Add Item Before" #~ msgstr "Ajouter un élément à gauche" diff --git a/languages/blockparty-tabs.pot b/languages/blockparty-tabs.pot index a91aa0f..24969bd 100644 --- a/languages/blockparty-tabs.pot +++ b/languages/blockparty-tabs.pot @@ -2,14 +2,14 @@ # This file is distributed under the GPL-2.0-or-later. msgid "" msgstr "" -"Project-Id-Version: Blockparty Tabs 1.1.5\n" +"Project-Id-Version: Blockparty Tabs 2.0.0\n" "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/blockparty-tabs\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"POT-Creation-Date: 2026-09-24T13:02:27+00:00\n" +"POT-Creation-Date: 2026-09-29T11:45:30+00:00\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "X-Generator: WP-CLI 2.11.0\n" "X-Domain: blockparty-tabs\n" @@ -37,7 +37,6 @@ msgstr "" #: build/blockparty-tabs-nav-item/index.js:1 #: build/blockparty-tabs-nav/index.js:1 #: build/blockparty-tabs-panel-item/index.js:1 -#: build/blockparty-tabs-panels/index.js:1 #: build/blockparty-tabs/index.js:1 msgid "Add tab" msgstr "" @@ -45,7 +44,6 @@ msgstr "" #: build/blockparty-tabs-nav-item/index.js:1 #: build/blockparty-tabs-nav/index.js:1 #: build/blockparty-tabs-panel-item/index.js:1 -#: build/blockparty-tabs-panels/index.js:1 #: build/blockparty-tabs/index.js:1 msgid "Remove tab" msgstr "" diff --git a/package-lock.json b/package-lock.json index b0be02c..01b2def 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "blockparty-tabs", - "version": "2.0.0", + "version": "2.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "blockparty-tabs", - "version": "2.0.0", + "version": "2.0.1", "license": "GPL-2.0-or-later", "dependencies": { "classnames": "^2.5.1" diff --git a/package.json b/package.json index 49606c2..e147123 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockparty-tabs", - "version": "2.0.0", + "version": "2.0.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 b7cd317..71cfd19 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: block, tabs, accessibility Requires at least: 6.4 Requires PHP: 8.1 Tested up to: 7.1 -Stable tag: 2.0.0 +Stable tag: 2.0.1 License: GPL-2.0-or-later License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -33,6 +33,12 @@ directory take precedence. For example, `/assets/screenshot-1.png` would win ove == Changelog == += 2.0.1 = + +* Fix full-width (`alignfull`) tabs so panel padding is reset correctly +* Scope add/remove tab toolbar controls per block type (avoid ambiguous deletions from the panels wrapper) +* Update French translations + = 2.0.0 = * Require WordPress 6.2 or later diff --git a/src/blockparty-tabs-nav-item/block.json b/src/blockparty-tabs-nav-item/block.json index e69e5e1..6598d60 100644 --- a/src/blockparty-tabs-nav-item/block.json +++ b/src/blockparty-tabs-nav-item/block.json @@ -2,7 +2,7 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "name": "blockparty/tabs-nav-item", - "version": "2.0.0", + "version": "2.0.1", "title": "Tab", "category": "widgets", "description": "A single tab button used to switch to its matching content panel.", diff --git a/src/blockparty-tabs-nav/block.json b/src/blockparty-tabs-nav/block.json index bb0201f..774b8b8 100644 --- a/src/blockparty-tabs-nav/block.json +++ b/src/blockparty-tabs-nav/block.json @@ -2,7 +2,7 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "name": "blockparty/tabs-nav", - "version": "2.0.0", + "version": "2.0.1", "title": "Tabs list", "category": "widgets", "description": "Display the tab list for switching between content panels.", diff --git a/src/blockparty-tabs-nav/edit.js b/src/blockparty-tabs-nav/edit.js index 6b6784c..7e9182e 100644 --- a/src/blockparty-tabs-nav/edit.js +++ b/src/blockparty-tabs-nav/edit.js @@ -35,7 +35,10 @@ export default function Edit( { attributes, setAttributes, clientId } ) { return ( <> - + - +
- -
- - ); + return
; } diff --git a/src/blockparty-tabs/TabsAddRemoveControls.js b/src/blockparty-tabs/TabsAddRemoveControls.js index cf6f3df..653efe9 100644 --- a/src/blockparty-tabs/TabsAddRemoveControls.js +++ b/src/blockparty-tabs/TabsAddRemoveControls.js @@ -195,25 +195,40 @@ export const useTabsMutations = ( clientId, index ) => { /** * Toolbar group with Add tab / Remove tab buttons. * - * @param {Object} props Component props. - * @param {string} props.clientId Block clientId (any block in the tabs tree). - * @param {number} [props.index] Explicit tab index; falls back to tabsActive. - * @return {Element} Toolbar group. + * @param {Object} props Component props. + * @param {string} props.clientId Block clientId (any block in the tabs tree). + * @param {number} [props.index] Explicit tab index; falls back to tabsActive. + * @param {boolean} [props.showAdd] Whether to show the Add tab control. + * @param {boolean} [props.showRemove] Whether to show the Remove tab control. + * @return {Element|null} Toolbar group. */ -export const TabsAddRemoveToolbar = ( { clientId, index } ) => { +export const TabsAddRemoveToolbar = ( { + clientId, + index, + showAdd = true, + showRemove = true, +} ) => { const { canRemove, insertTabAfterActive, removeTab } = useTabsMutations( clientId, index ); + if ( ! showAdd && ! showRemove ) { + return null; + } + return ( - - { __( 'Add tab', 'blockparty-tabs' ) } - - - { __( 'Remove tab', 'blockparty-tabs' ) } - + { showAdd && ( + + { __( 'Add tab', 'blockparty-tabs' ) } + + ) } + { showRemove && ( + + { __( 'Remove tab', 'blockparty-tabs' ) } + + ) } ); }; @@ -241,13 +256,31 @@ export const TabsNavAppender = ( { clientId } ) => { /** * BlockControls wrapper for Add / Remove tab actions. * - * @param {Object} props Component props. - * @param {string} props.clientId Block clientId (any block in the tabs tree). - * @param {number} [props.index] Explicit tab index; falls back to tabsActive. - * @return {Element} Block controls with shared toolbar. + * @param {Object} props Component props. + * @param {string} props.clientId Block clientId (any block in the tabs tree). + * @param {number} [props.index] Explicit tab index; falls back to tabsActive. + * @param {boolean} [props.showAdd] Whether to show the Add tab control. + * @param {boolean} [props.showRemove] Whether to show the Remove tab control. + * @return {Element|null} Block controls with shared toolbar. */ -export const TabsAddRemoveBlockControls = ( { clientId, index } ) => ( - - - -); +export const TabsAddRemoveBlockControls = ( { + clientId, + index, + showAdd = true, + showRemove = true, +} ) => { + if ( ! showAdd && ! showRemove ) { + return null; + } + + return ( + + + + ); +}; diff --git a/src/blockparty-tabs/block.json b/src/blockparty-tabs/block.json index d694539..d30c5f1 100644 --- a/src/blockparty-tabs/block.json +++ b/src/blockparty-tabs/block.json @@ -2,7 +2,7 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "name": "blockparty/tabs", - "version": "2.0.0", + "version": "2.0.1", "title": "Tabs", "category": "widgets", "description": "Organize content into tabs so visitors can browse sections without scrolling endlessly.", diff --git a/src/blockparty-tabs/edit.js b/src/blockparty-tabs/edit.js index 94c18f3..5b5ddae 100644 --- a/src/blockparty-tabs/edit.js +++ b/src/blockparty-tabs/edit.js @@ -108,7 +108,10 @@ export default function Edit( { attributes, setAttributes, clientId } ) { setAttributes( { mode: newAlign } ) } /> - +
diff --git a/src/blockparty-tabs/style.scss b/src/blockparty-tabs/style.scss index 17d9781..4597546 100644 --- a/src/blockparty-tabs/style.scss +++ b/src/blockparty-tabs/style.scss @@ -83,6 +83,10 @@ } } + .wp-block-blockparty-tabs-panels { + margin-block-start: 0; + } + &-panels { .alignfull & { padding: 0 !important;