From 9be6f369de05bf0bfa6f07f91972dd24f9c410c1 Mon Sep 17 00:00:00 2001 From: mricoul Date: Fri, 7 Nov 2025 16:56:28 +0100 Subject: [PATCH 1/5] feat (summary): replaces custom icon with @beapi/icons package --- package-lock.json | 129 +++++++++++++----- package.json | 1 + .../ComposeBlockControls.js | 4 +- src/blockparty-tabs-nav-item/iconIcon.js | 14 -- 4 files changed, 95 insertions(+), 53 deletions(-) delete mode 100644 src/blockparty-tabs-nav-item/iconIcon.js diff --git a/package-lock.json b/package-lock.json index 1c25bc9..fcbc4a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.3", "license": "GPL-2.0-or-later", "dependencies": { + "@beapi/icons": "^1.2.5", "classnames": "^2.5.1" }, "devDependencies": { @@ -1975,7 +1976,6 @@ "version": "7.24.1", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", - "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2038,6 +2038,87 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@beapi/icons": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@beapi/icons/-/icons-1.2.5.tgz", + "integrity": "sha512-jPTx6ONmdQb2hyiMdmgnSU0vshzyt/g91D0r8CNlnzwf8d6NSJvew9UVcl00XqchPZSK0tyl5kaROeEucKtc3g==", + "dependencies": { + "@wordpress/element": "^4.17.0", + "@wordpress/primitives": "^3.17.0", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, + "node_modules/@beapi/icons/node_modules/@types/react": { + "version": "17.0.89", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.89.tgz", + "integrity": "sha512-I98SaDCar5lvEYl80ClRIUztH/hyWHR+I2f+5yTVp/MQ205HgYkA2b5mVdry/+nsEIrf8I65KA5V/PASx68MsQ==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "^0.16", + "csstype": "^3.0.2" + } + }, + "node_modules/@beapi/icons/node_modules/@types/react-dom": { + "version": "17.0.26", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.26.tgz", + "integrity": "sha512-Z+2VcYXJwOqQ79HreLU/1fyQ88eXSSFh6I3JdrEHQIfYSI0kCQpTGvOrbE6jFGGYXKsHuwY9tBa/w5Uo6KzrEg==", + "peerDependencies": { + "@types/react": "^17.0.0" + } + }, + "node_modules/@beapi/icons/node_modules/@wordpress/element": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-4.20.0.tgz", + "integrity": "sha512-Ou7EoGtGe4FUL6fKALINXJLKoSfyWTBJzkJfN2HzSgM1wira9EuWahl8MQN0HAUaWeOoDqMKPvnglfS+kC8JLA==", + "dependencies": { + "@babel/runtime": "^7.16.0", + "@types/react": "^17.0.37", + "@types/react-dom": "^17.0.11", + "@wordpress/escape-html": "^2.22.0", + "change-case": "^4.1.2", + "is-plain-object": "^5.0.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@beapi/icons/node_modules/@wordpress/element/node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@beapi/icons/node_modules/@wordpress/element/node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/@beapi/icons/node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, "node_modules/@csstools/selector-specificity": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", @@ -4275,8 +4356,7 @@ "node_modules/@types/prop-types": { "version": "15.7.12", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", - "dev": true + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, "node_modules/@types/qs": { "version": "6.9.14", @@ -4294,7 +4374,6 @@ "version": "18.2.74", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.74.tgz", "integrity": "sha512-9AEqNZZyBx8OdZpxzQlaFEVCSFUM2YXJH46yPOiOpm078k6ZLOCcuAzGum/zK8YBwY+dbahVNbHrbgrAwIRlqw==", - "dev": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -4304,7 +4383,6 @@ "version": "18.2.23", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.23.tgz", "integrity": "sha512-ZQ71wgGOTmDYpnav2knkjr3qXdAFu0vsk8Ci5w3pGAIdj7/kKAyn+VsQDhXsmzzzepAiI9leWMmubXz690AI/A==", - "dev": true, "dependencies": { "@types/react": "*" } @@ -4324,6 +4402,11 @@ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, "node_modules/@types/semver": { "version": "7.5.8", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", @@ -5467,7 +5550,6 @@ "version": "5.31.0", "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.31.0.tgz", "integrity": "sha512-TVk7Ivc85AlC96cSruwTjbm2qsq2uXUd5GSPHWUNF7xZHeeJ7XxJpXe75UyJ2vLndtOn3XjT1R64T5Gpu9ipuA==", - "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "@types/react": "^18.0.21", @@ -5554,7 +5636,6 @@ "version": "2.54.0", "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.54.0.tgz", "integrity": "sha512-0fGroIVDy32bnqrvwsG4JPDylMhLo8DXoOP4gLKLh2fc7J/kIY1GsvjCyvO3VEmmHLxbeIhPRL2xTHOBA4Gcww==", - "dev": true, "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -5870,7 +5951,6 @@ "version": "3.52.0", "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.52.0.tgz", "integrity": "sha512-IX1pE+/D0GvRwNNTf/KaDxqsuieusKDZ4mzJhVLoAkUZK/rHgT6u2GVprHFDLgAJsw5zg3jV9glKBRX/r4AYZg==", - "dev": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/element": "^5.31.0", @@ -7338,7 +7418,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -7418,7 +7497,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", - "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -7445,7 +7523,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", - "dev": true, "dependencies": { "camel-case": "^4.1.2", "capital-case": "^1.0.4", @@ -7990,7 +8067,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", - "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -8601,8 +8677,7 @@ "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/cwd": { "version": "0.10.0", @@ -9206,7 +9281,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -11776,7 +11850,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", - "dev": true, "dependencies": { "capital-case": "^1.0.4", "tslib": "^2.0.3" @@ -12766,7 +12839,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -13771,8 +13843,7 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { "version": "3.14.1", @@ -14414,7 +14485,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -14426,7 +14496,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, "dependencies": { "tslib": "^2.0.3" } @@ -15147,7 +15216,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" @@ -15450,7 +15518,6 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -15951,7 +16018,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -16027,7 +16093,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -16037,7 +16102,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", - "dev": true, "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -17416,7 +17480,6 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dev": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -17453,7 +17516,6 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dev": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" @@ -17798,8 +17860,7 @@ "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" }, "node_modules/regenerator-transform": { "version": "0.15.2", @@ -18266,7 +18327,6 @@ "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dev": true, "dependencies": { "loose-envify": "^1.1.0" } @@ -18384,7 +18444,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", - "dev": true, "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3", @@ -18927,7 +18986,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dev": true, "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -20136,8 +20194,7 @@ "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -20449,7 +20506,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", - "dev": true, "dependencies": { "tslib": "^2.0.3" } @@ -20458,7 +20514,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", - "dev": true, "dependencies": { "tslib": "^2.0.3" } diff --git a/package.json b/package.json index c012530..a460bc0 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "@wordpress/scripts": "^27.5.0" }, "dependencies": { + "@beapi/icons": "^1.2.5", "classnames": "^2.5.1" }, "volta": { diff --git a/src/blockparty-tabs-nav-item/ComposeBlockControls.js b/src/blockparty-tabs-nav-item/ComposeBlockControls.js index 74ab4ad..26ee1db 100644 --- a/src/blockparty-tabs-nav-item/ComposeBlockControls.js +++ b/src/blockparty-tabs-nav-item/ComposeBlockControls.js @@ -4,7 +4,7 @@ import { withDispatch, withSelect } from '@wordpress/data'; import { compose } from '@wordpress/compose'; import { createBlock } from '@wordpress/blocks'; import { ToolbarGroup, ToolbarButton } from '@wordpress/components'; -import iconIcon from './iconIcon'; +import { shapes } from '@beapi/icons'; const ComposeBlockControls = ( { hasIcon, @@ -40,7 +40,7 @@ const ComposeBlockControls = ( { /> - - - - -); - -export default iconIcon; From f89bb428a6b816350abc1fac20d409653adbc48c Mon Sep 17 00:00:00 2001 From: mricoul Date: Fri, 7 Nov 2025 16:55:53 +0100 Subject: [PATCH 2/5] chore (*): bump version --- .plugin-data | 2 +- blockparty-tabs.php | 4 ++-- package-lock.json | 4 ++-- package.json | 2 +- readme.txt | 2 +- src/blockparty-tabs-nav-item/block.json | 2 +- src/blockparty-tabs-nav/block.json | 2 +- src/blockparty-tabs-panel-item/block.json | 2 +- src/blockparty-tabs-panels/block.json | 2 +- src/blockparty-tabs/block.json | 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.plugin-data b/.plugin-data index 1c1ec67..542a515 100644 --- a/.plugin-data +++ b/.plugin-data @@ -1,4 +1,4 @@ { - "version": "1.0.3", + "version": "1.0.4", "slug": "blockparty-tabs" } diff --git a/blockparty-tabs.php b/blockparty-tabs.php index e677313..a75c9a1 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.0.3 + * Version: 1.0.4 * 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.0.3' ); +define( 'BLOCKPARTY_TABS_VERSION', '1.0.4' ); 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-lock.json b/package-lock.json index 1c25bc9..c05fb26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "blockparty-tabs", - "version": "1.0.3", + "version": "1.0.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "blockparty-tabs", - "version": "1.0.3", + "version": "1.0.4", "license": "GPL-2.0-or-later", "dependencies": { "classnames": "^2.5.1" diff --git a/package.json b/package.json index c012530..c05219c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blockparty-tabs", - "version": "1.0.3", + "version": "1.0.4", "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 a383f99..7825b60 100644 --- a/readme.txt +++ b/readme.txt @@ -31,7 +31,7 @@ directory take precedence. For example, `/assets/screenshot-1.png` would win ove == Changelog == -= 1.0.3 = += 1.0.4 = * fix icon inserter diff --git a/src/blockparty-tabs-nav-item/block.json b/src/blockparty-tabs-nav-item/block.json index 78c195e..25e6bed 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": "1.0.3", + "version": "1.0.4", "title": "Tab", "category": "widgets", "icon": "button", diff --git a/src/blockparty-tabs-nav/block.json b/src/blockparty-tabs-nav/block.json index 9484adb..08d0fbf 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": "1.0.3", + "version": "1.0.4", "title": "Tabs list", "category": "widgets", "icon": "menu", diff --git a/src/blockparty-tabs-panel-item/block.json b/src/blockparty-tabs-panel-item/block.json index 1b16995..59ca921 100644 --- a/src/blockparty-tabs-panel-item/block.json +++ b/src/blockparty-tabs-panel-item/block.json @@ -2,7 +2,7 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "name": "blockparty/tabs-panel-item", - "version": "1.0.3", + "version": "1.0.4", "title": "Panel", "category": "widgets", "icon": "layout", diff --git a/src/blockparty-tabs-panels/block.json b/src/blockparty-tabs-panels/block.json index 6baaa8b..2cb618d 100644 --- a/src/blockparty-tabs-panels/block.json +++ b/src/blockparty-tabs-panels/block.json @@ -2,7 +2,7 @@ "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 2, "name": "blockparty/tabs-panels", - "version": "1.0.3", + "version": "1.0.4", "title": "Panels", "category": "widgets", "icon": "category", diff --git a/src/blockparty-tabs/block.json b/src/blockparty-tabs/block.json index 1509170..a0ac476 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": "1.0.3", + "version": "1.0.4", "title": "Tabs", "category": "widgets", "icon": "table-row-after", From f6a14a44db12778cc52af86785824846e269577f Mon Sep 17 00:00:00 2001 From: mricoul Date: Fri, 7 Nov 2025 17:04:48 +0100 Subject: [PATCH 3/5] docs (CHANGELOG): create and update change log file --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ readme.txt | 18 ------------------ 2 files changed, 26 insertions(+), 18 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..b397f33 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,26 @@ +# Changelog + +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.0.4 - 2025-11-07 + +* Replacement of icon for the icon block + +## 1.0.3 - 2025-09-05 + +* fix icon inserter + +## 1.0.2 - 2025-02-26 + +* allow aria and tabindex attributes + +## 1.0.1 - 2024-12-04 + +* fix tabs scripts + +## 1.0.0- 2024-04-03 + +* Initial release diff --git a/readme.txt b/readme.txt index 7825b60..c2aa1d4 100644 --- a/readme.txt +++ b/readme.txt @@ -28,21 +28,3 @@ the /assets directory or the directory that contains the stable readme.txt (tags directory take precedence. For example, `/assets/screenshot-1.png` would win over `/tags/4.3/screenshot-1.png` (or jpg, jpeg, gif). 2. This is the second screen shot - -== Changelog == - -= 1.0.4 = - -* fix icon inserter - -= 1.0.2 = - -* allow aria and tabindex attributes - -= 1.0.1 = - -* fix tabs scripts - -= 1.0.0 = - -* Initial release From 30a218f2edfc9249c94a841f744ffc84289c896e Mon Sep 17 00:00:00 2001 From: mricoul Date: Fri, 7 Nov 2025 17:16:17 +0100 Subject: [PATCH 4/5] docs (README): adds initial README for the plugin Creates a comprehensive README file to document the Blockparty Tabs plugin, including features, installation instructions, usage guidelines, accessibility details, and development setup. This aims to provide users with clear instructions and information to effectively use and contribute to the plugin. --- README.md | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 139 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ef6d260..a9a5963 100644 --- a/README.md +++ b/README.md @@ -1 +1,139 @@ -# Blockparty Tabs \ No newline at end of file +# Blockparty Tabs + +An accessible tabs block for WordPress Gutenberg editor that follows ARIA best practices. + +## Features + +- ✅ **Accessible**: Built with proper ARIA attributes and keyboard navigation support +- 🎨 **Customizable**: Add custom colors and icons to your tabs +- 🧩 **Flexible**: Nest any WordPress block inside tab panels +- ⚡ **Easy to use**: Simple interface to add, remove, and reorder tabs + +## Requirements + +- WordPress 6.2 or higher +- PHP 8.1 or higher +- Gutenberg editor enabled + +## Installation + +### Manual Installation + +1. Download the plugin files +2. Upload the `blockparty-tabs` folder to the `/wp-content/plugins/` directory +3. Activate the plugin through the 'Plugins' menu in WordPress + +### Composer Installation + +```bash +composer require beapi/blockparty-tabs +``` + +## Usage + +### Adding a Tabs Block + +1. In the WordPress editor, click the **+** button to add a new block +2. Search for "Tabs" or "Blockparty Tabs" +3. Click on the block to insert it into your content + +By default, the block comes with 3 tabs. Each tab contains a panel where you can add any content. + +### Adding/Removing Tabs + +- **Add a tab**: Click the "Add Item After" button in the block toolbar +- **Remove a tab**: Select the tab you want to remove and click the trash icon in the toolbar + +### Customizing Tabs + +#### Adding Icons + +1. Select a tab item +2. In the block toolbar, click the "Icon" button +3. Choose an icon from the available options + +#### Changing Colors + +1. Select the tabs block +2. Use the color settings in the right sidebar to customize: + - Tab background colors + - Text colors + - Active tab colors + +### Adding Content to Tabs + +1. Click inside a tab panel +2. Add any WordPress block (paragraphs, images, buttons, etc.) +3. You can nest multiple blocks within each tab panel + +## Accessibility + +The plugin generates semantic HTML with proper ARIA attributes: + +- `role="tablist"` for the tabs container +- `role="tab"` for each tab button +- `role="tabpanel"` for each content panel +- Proper `aria-controls`, `aria-labelledby`, and `aria-selected` attributes +- Keyboard navigation support (Arrow keys, Tab, Enter) + +## Generated Markup Example + +```html +
+ + +
+
+
+ +
+
+ +
+
+``` + +## Development + +### Building the Plugin + +```bash +npm install +npm run build +``` + +### Development Mode + +```bash +npm start +``` + +### Linting + +```bash +npm run lint:js +npm run lint:css +``` + +## Support + +For bug reports and feature requests, please use the [GitHub issues](https://github.com/BeAPI/blockparty-tabs/issues) page. + +## Credits + +Developed by [Be API Technical Team](https://beapi.fr) + +## License + +GPL-2.0-or-later From 2831a15c3e0eea85d9f2938c7ddf611ae4a4e129 Mon Sep 17 00:00:00 2001 From: mricoul Date: Fri, 7 Nov 2025 17:19:31 +0100 Subject: [PATCH 5/5] docs (README): adds a banner to the README Adds a banner image with a link to the Be API website to the README file. This improves visibility and branding. --- .github/banner-github.png | Bin 0 -> 26340 bytes README.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 .github/banner-github.png diff --git a/.github/banner-github.png b/.github/banner-github.png new file mode 100644 index 0000000000000000000000000000000000000000..23544f881676852cf8a2f6df271fa59bd0418fa2 GIT binary patch literal 26340 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index a9a5963..4fda01c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[![Be API Github Banner](.github/banner-github.png)](https://beapi.fr) + # Blockparty Tabs An accessible tabs block for WordPress Gutenberg editor that follows ARIA best practices.