diff --git a/Gruntfile.js b/Gruntfile.js
index 1b80ddd87e..915043bc18 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -1147,7 +1147,7 @@ module.exports = function(grunt) {
options: {
patterns: [
{
- match: new RegExp( '//# sourceMappingURL=.*\\s*' ),
+ match: new RegExp( '\/\/# sourceMappingURL=.*\\s*', 'g' ),
replacement: ''
}
]
@@ -1160,6 +1160,14 @@ module.exports = function(grunt) {
BUILD_DIR + 'wp-includes/js/underscore.js'
],
dest: BUILD_DIR + 'wp-includes/js/'
+ },
+ {
+ expand: true,
+ flatten: true,
+ src: [
+ BUILD_DIR + 'wp-includes/js/dist/block-editor.js',
+ ],
+ dest: BUILD_DIR + 'wp-includes/js/dist/'
}
]
}
@@ -1459,7 +1467,11 @@ module.exports = function(grunt) {
} );
grunt.file.write(
SOURCE_DIR + 'wp-includes/blocks/blocks-json.php',
- '=1.7.0"
}
},
- "js-sdsl": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.3.0.tgz",
- "integrity": "sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==",
- "dev": true
- },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -16977,7 +19561,7 @@
"jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
"dev": true
},
"jsdoc": {
@@ -17085,44 +19669,49 @@
"dev": true
},
"jsdom": {
- "version": "16.7.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
- "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==",
+ "version": "20.0.3",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz",
+ "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==",
"dev": true,
"requires": {
- "abab": "^2.0.5",
- "acorn": "^8.2.4",
- "acorn-globals": "^6.0.0",
- "cssom": "^0.4.4",
+ "abab": "^2.0.6",
+ "acorn": "^8.8.1",
+ "acorn-globals": "^7.0.0",
+ "cssom": "^0.5.0",
"cssstyle": "^2.3.0",
- "data-urls": "^2.0.0",
- "decimal.js": "^10.2.1",
- "domexception": "^2.0.1",
+ "data-urls": "^3.0.2",
+ "decimal.js": "^10.4.2",
+ "domexception": "^4.0.0",
"escodegen": "^2.0.0",
- "form-data": "^3.0.0",
- "html-encoding-sniffer": "^2.0.1",
- "http-proxy-agent": "^4.0.1",
- "https-proxy-agent": "^5.0.0",
+ "form-data": "^4.0.0",
+ "html-encoding-sniffer": "^3.0.0",
+ "http-proxy-agent": "^5.0.0",
+ "https-proxy-agent": "^5.0.1",
"is-potential-custom-element-name": "^1.0.1",
- "nwsapi": "^2.2.0",
- "parse5": "6.0.1",
- "saxes": "^5.0.1",
+ "nwsapi": "^2.2.2",
+ "parse5": "^7.1.1",
+ "saxes": "^6.0.0",
"symbol-tree": "^3.2.4",
- "tough-cookie": "^4.0.0",
- "w3c-hr-time": "^1.0.2",
- "w3c-xmlserializer": "^2.0.0",
- "webidl-conversions": "^6.1.0",
- "whatwg-encoding": "^1.0.5",
- "whatwg-mimetype": "^2.3.0",
- "whatwg-url": "^8.5.0",
- "ws": "^7.4.6",
- "xml-name-validator": "^3.0.0"
+ "tough-cookie": "^4.1.2",
+ "w3c-xmlserializer": "^4.0.0",
+ "webidl-conversions": "^7.0.0",
+ "whatwg-encoding": "^2.0.0",
+ "whatwg-mimetype": "^3.0.0",
+ "whatwg-url": "^11.0.0",
+ "ws": "^8.11.0",
+ "xml-name-validator": "^4.0.0"
},
"dependencies": {
+ "acorn": {
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
+ "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
+ "dev": true
+ },
"form-data": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
- "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dev": true,
"requires": {
"asynckit": "^0.4.0",
@@ -17130,31 +19719,46 @@
"mime-types": "^2.1.12"
}
},
+ "https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "dev": true,
+ "requires": {
+ "agent-base": "6",
+ "debug": "4"
+ }
+ },
"tr46": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
- "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
+ "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
"dev": true,
"requires": {
"punycode": "^2.1.1"
}
},
"webidl-conversions": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
- "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
"dev": true
},
"whatwg-url": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
- "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
+ "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
"dev": true,
"requires": {
- "lodash": "^4.7.0",
- "tr46": "^2.1.0",
- "webidl-conversions": "^6.1.0"
+ "tr46": "^3.0.0",
+ "webidl-conversions": "^7.0.0"
}
+ },
+ "ws": {
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
+ "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
+ "dev": true
}
}
},
@@ -17270,7 +19874,7 @@
"json-buffer": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=",
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==",
"dev": true,
"optional": true
},
@@ -17294,7 +19898,7 @@
"json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
"dev": true
},
"json2php": {
@@ -17403,7 +20007,7 @@
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
"dev": true,
"requires": {
"is-buffer": "^1.1.5"
@@ -17442,6 +20046,16 @@
"language-subtag-registry": "~0.3.2"
}
},
+ "launch-editor": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz",
+ "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==",
+ "dev": true,
+ "requires": {
+ "picocolors": "^1.0.0",
+ "shell-quote": "^1.7.3"
+ }
+ },
"lazy-cache": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
@@ -17492,7 +20106,7 @@
"expand-tilde": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+ "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
"dev": true,
"requires": {
"homedir-polyfill": "^1.0.1"
@@ -17533,7 +20147,7 @@
"global-prefix": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
"dev": true,
"requires": {
"expand-tilde": "^2.0.2",
@@ -17549,6 +20163,15 @@
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
"micromatch": {
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
@@ -17568,7 +20191,7 @@
"resolve-dir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
"dev": true,
"requires": {
"expand-tilde": "^2.0.0",
@@ -17632,7 +20255,7 @@
"load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
- "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+ "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==",
"dev": true,
"optional": true,
"requires": {
@@ -17646,7 +20269,7 @@
"parse-json": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==",
"dev": true,
"optional": true,
"requires": {
@@ -17656,14 +20279,14 @@
"pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"dev": true,
"optional": true
},
"strip-bom": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
- "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+ "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
"dev": true,
"optional": true,
"requires": {
@@ -17712,19 +20335,19 @@
"lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
"dev": true
},
"lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
"dev": true
},
"lodash.memoize": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
"dev": true
},
"lodash.merge": {
@@ -17742,7 +20365,7 @@
"lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
"dev": true
},
"log-symbols": {
@@ -17809,7 +20432,7 @@
"logalot": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz",
- "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=",
+ "integrity": "sha512-Ah4CgdSRfeCJagxQhcVNMi9BfGYyEKLa6d7OA6xSbld/Hg3Cf2QiOa1mDpmG7Ve8LOH6DN3mdttzjQAvWTyVkw==",
"dev": true,
"optional": true,
"requires": {
@@ -17820,7 +20443,7 @@
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
+ "integrity": "sha512-k+yt5n3l48JU4k8ftnKG6V7u32wyH2NfKzeMto9F/QRE0amxy/LayxwlvjjkZEIzqR+19IrtFO8p5kB9QaYUFg==",
"dev": true,
"optional": true
},
@@ -17835,7 +20458,7 @@
"loud-rejection": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
- "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+ "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==",
"dev": true,
"optional": true,
"requires": {
@@ -17861,7 +20484,7 @@
"lpad-align": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz",
- "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=",
+ "integrity": "sha512-MMIcFmmR9zlGZtBcFOows6c2COMekHCIFJz3ew/rRpKZ1wR4mXDPzvcVqLarux8M33X4TPSq2Jdw8WJj0q0KbQ==",
"dev": true,
"optional": true,
"requires": {
@@ -17874,7 +20497,7 @@
"get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
- "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
+ "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw==",
"dev": true,
"optional": true
}
@@ -17934,7 +20557,7 @@
"map-cache": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
- "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
"dev": true
},
"map-obj": {
@@ -17946,13 +20569,13 @@
"map-values": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/map-values/-/map-values-1.0.1.tgz",
- "integrity": "sha1-douOecAJvytk/ugG4ip7HEGQyZA=",
+ "integrity": "sha512-BbShUnr5OartXJe1GeccAWtfro11hhgNJg6G9/UtWKjVGvV5U4C09cg5nk8JUevhXODaXY+hQ3xxMUKSs62ONQ==",
"dev": true
},
"map-visit": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
- "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=",
+ "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
"dev": true,
"requires": {
"object-visit": "^1.0.0"
@@ -18087,7 +20710,7 @@
"matchdep": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz",
- "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=",
+ "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==",
"dev": true,
"requires": {
"findup-sync": "^2.0.0",
@@ -18099,7 +20722,7 @@
"expand-tilde": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
- "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=",
+ "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
"dev": true,
"requires": {
"homedir-polyfill": "^1.0.1"
@@ -18108,7 +20731,7 @@
"findup-sync": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz",
- "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=",
+ "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==",
"dev": true,
"requires": {
"detect-file": "^1.0.0",
@@ -18131,7 +20754,7 @@
"global-prefix": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
- "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=",
+ "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
"dev": true,
"requires": {
"expand-tilde": "^2.0.2",
@@ -18144,7 +20767,7 @@
"is-glob": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
+ "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
"dev": true,
"requires": {
"is-extglob": "^2.1.0"
@@ -18153,7 +20776,7 @@
"resolve-dir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
- "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=",
+ "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
"dev": true,
"requires": {
"expand-tilde": "^2.0.0",
@@ -18269,7 +20892,7 @@
"mdurl": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
- "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=",
+ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==",
"dev": true
},
"media-typer": {
@@ -18279,18 +20902,18 @@
"dev": true
},
"memfs": {
- "version": "3.4.13",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz",
- "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==",
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
+ "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
"dev": true,
"requires": {
- "fs-monkey": "^1.0.3"
+ "fs-monkey": "^1.0.4"
}
},
"memize": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/memize/-/memize-1.1.0.tgz",
- "integrity": "sha512-K4FcPETOMTwe7KL2LK0orMhpOmWD2wRGwWWpbZy0fyArwsyIKR8YJVz8+efBAh3BO4zPqlSICu4vsLTRRqtFAg=="
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.0.tgz",
+ "integrity": "sha512-yywVJy8ctVlN5lNPxsep5urnZ6TTclwPEyigM9M3Bi8vseJBOfqNrGWN/r8NzuIt3PovM323W04blJfGQfQSVg=="
},
"meow": {
"version": "3.7.0",
@@ -18420,9 +21043,9 @@
"dev": true
},
"mini-css-extract-plugin": {
- "version": "2.7.2",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz",
- "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==",
+ "version": "2.7.6",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz",
+ "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==",
"dev": true,
"requires": {
"schema-utils": "^4.0.0"
@@ -18456,15 +21079,15 @@
"dev": true
},
"schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
+ "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
+ "ajv": "^8.9.0",
"ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
+ "ajv-keywords": "^5.1.0"
}
}
}
@@ -18526,6 +21149,17 @@
"dev": true,
"requires": {
"is-plain-object": "^2.0.4"
+ },
+ "dependencies": {
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ }
}
}
}
@@ -18577,11 +21211,11 @@
"integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
},
"moment-timezone": {
- "version": "0.5.40",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.40.tgz",
- "integrity": "sha512-tWfmNkRYmBkPJz5mr9GVDn9vRlVZOTe6yqY92rFxiOdWXbjaR0+9LwQnZGGuNR63X456NqmEkbskte8tWL5ePg==",
+ "version": "0.5.43",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz",
+ "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==",
"requires": {
- "moment": ">= 2.9.0"
+ "moment": "^2.29.4"
}
},
"mousetrap": {
@@ -18614,7 +21248,7 @@
"mute-stream": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==",
"dev": true
},
"nanoid": {
@@ -18790,7 +21424,7 @@
"nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
- "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+ "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==",
"dev": true,
"requires": {
"abbrev": "1"
@@ -18825,7 +21459,7 @@
"normalize-range": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"dev": true
},
"normalize-url": {
@@ -18862,7 +21496,7 @@
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
"dev": true,
"optional": true
}
@@ -19064,9 +21698,9 @@
}
},
"semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -19147,9 +21781,9 @@
}
},
"nwsapi": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz",
- "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==",
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.5.tgz",
+ "integrity": "sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==",
"dev": true
},
"oauth-sign": {
@@ -19161,12 +21795,12 @@
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
},
"object-copy": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
- "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=",
+ "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
"dev": true,
"requires": {
"copy-descriptor": "^0.1.0",
@@ -19177,7 +21811,7 @@
"define-property": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"dev": true,
"requires": {
"is-descriptor": "^0.1.0"
@@ -19188,7 +21822,7 @@
"object-filter": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/object-filter/-/object-filter-1.0.2.tgz",
- "integrity": "sha1-rwt5f/6+r4pSxmN87b6IFs/sG8g=",
+ "integrity": "sha512-NahvP2vZcy1ZiiYah30CEPw0FpDcSkSePJBMpzl5EQgCmISijiGuJm3SPYp7U+Lf2TljyaIw3E5EgkEx/TNEVA==",
"dev": true
},
"object-inspect": {
@@ -19197,28 +21831,6 @@
"integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==",
"dev": true
},
- "object-is": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
- "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
- },
- "dependencies": {
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- }
- }
- },
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
@@ -19228,7 +21840,7 @@
"object-visit": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
- "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=",
+ "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
"dev": true,
"requires": {
"isobject": "^3.0.0"
@@ -19250,7 +21862,7 @@
"object.defaults": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
- "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=",
+ "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==",
"dev": true,
"requires": {
"array-each": "^1.0.1",
@@ -19262,7 +21874,7 @@
"for-own": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==",
"dev": true,
"requires": {
"for-in": "^1.0.1"
@@ -19302,18 +21914,18 @@
}
},
"es-abstract": {
- "version": "1.21.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
- "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
+ "version": "1.21.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+ "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
"dev": true,
"requires": {
+ "array-buffer-byte-length": "^1.0.0",
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"es-set-tostringtag": "^2.0.1",
"es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
"function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.1.3",
+ "get-intrinsic": "^1.2.0",
"get-symbol-description": "^1.0.0",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
@@ -19321,8 +21933,8 @@
"has-property-descriptors": "^1.0.0",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.4",
- "is-array-buffer": "^3.0.1",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
"is-callable": "^1.2.7",
"is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
@@ -19330,11 +21942,12 @@
"is-string": "^1.0.7",
"is-typed-array": "^1.1.10",
"is-weakref": "^1.0.2",
- "object-inspect": "^1.12.2",
+ "object-inspect": "^1.12.3",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
"string.prototype.trimend": "^1.0.6",
"string.prototype.trimstart": "^1.0.6",
"typed-array-length": "^1.0.4",
@@ -19343,13 +21956,14 @@
},
"dependencies": {
"get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
+ "has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
}
}
@@ -19457,18 +22071,18 @@
}
},
"es-abstract": {
- "version": "1.21.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
- "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
+ "version": "1.21.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+ "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
"dev": true,
"requires": {
+ "array-buffer-byte-length": "^1.0.0",
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"es-set-tostringtag": "^2.0.1",
"es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
"function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.1.3",
+ "get-intrinsic": "^1.2.0",
"get-symbol-description": "^1.0.0",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
@@ -19476,8 +22090,8 @@
"has-property-descriptors": "^1.0.0",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.4",
- "is-array-buffer": "^3.0.1",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
"is-callable": "^1.2.7",
"is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
@@ -19485,11 +22099,12 @@
"is-string": "^1.0.7",
"is-typed-array": "^1.1.10",
"is-weakref": "^1.0.2",
- "object-inspect": "^1.12.2",
+ "object-inspect": "^1.12.3",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
"string.prototype.trimend": "^1.0.6",
"string.prototype.trimstart": "^1.0.6",
"typed-array-length": "^1.0.4",
@@ -19498,13 +22113,14 @@
},
"dependencies": {
"get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
+ "has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
}
}
@@ -19646,18 +22262,18 @@
}
},
"es-abstract": {
- "version": "1.21.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
- "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
+ "version": "1.21.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+ "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
"dev": true,
"requires": {
+ "array-buffer-byte-length": "^1.0.0",
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"es-set-tostringtag": "^2.0.1",
"es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
"function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.1.3",
+ "get-intrinsic": "^1.2.0",
"get-symbol-description": "^1.0.0",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
@@ -19665,8 +22281,8 @@
"has-property-descriptors": "^1.0.0",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.4",
- "is-array-buffer": "^3.0.1",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
"is-callable": "^1.2.7",
"is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
@@ -19674,11 +22290,12 @@
"is-string": "^1.0.7",
"is-typed-array": "^1.1.10",
"is-weakref": "^1.0.2",
- "object-inspect": "^1.12.2",
+ "object-inspect": "^1.12.3",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
"string.prototype.trimend": "^1.0.6",
"string.prototype.trimstart": "^1.0.6",
"typed-array-length": "^1.0.4",
@@ -19687,13 +22304,14 @@
}
},
"get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
+ "has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
}
},
@@ -19770,7 +22388,7 @@
"object.map": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
- "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=",
+ "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==",
"dev": true,
"requires": {
"for-own": "^1.0.0",
@@ -19780,7 +22398,7 @@
"for-own": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
- "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=",
+ "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==",
"dev": true,
"requires": {
"for-in": "^1.0.1"
@@ -19791,7 +22409,7 @@
"object.pick": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
- "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=",
+ "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
"dev": true,
"requires": {
"isobject": "^3.0.1"
@@ -19867,7 +22485,7 @@
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"requires": {
"wrappy": "1"
@@ -19938,13 +22556,13 @@
"os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
"dev": true
},
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
"dev": true
},
"osenv": {
@@ -19960,7 +22578,7 @@
"outlayer": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/outlayer/-/outlayer-2.1.1.tgz",
- "integrity": "sha1-KYY7beEOpdrf/8rfoNcokHOH6aI=",
+ "integrity": "sha512-+GplXsCQ3VrbGujAeHEzP9SXsBmJxzn/YdDSQZL0xqBmAWBmortu2Y9Gwdp9J0bgDQ8/YNIPMoBM13nTwZfAhw==",
"requires": {
"ev-emitter": "^1.0.0",
"fizzy-ui-utils": "^2.0.0",
@@ -19983,7 +22601,7 @@
"p-event": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz",
- "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=",
+ "integrity": "sha512-hV1zbA7gwqPVFcapfeATaNjQ3J0NuzorHPyG8GPL9g/Y/TplWVBVoCKCXL6Ej2zscrCEv195QNWJXuBH6XZuzA==",
"dev": true,
"optional": true,
"requires": {
@@ -19993,14 +22611,14 @@
"p-finally": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
"dev": true,
"optional": true
},
"p-is-promise": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz",
- "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=",
+ "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==",
"dev": true,
"optional": true
},
@@ -20029,7 +22647,7 @@
"p-map-series": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz",
- "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=",
+ "integrity": "sha512-4k9LlvY6Bo/1FcIdV33wqZQES0Py+iKISU9Uc8p8AjWoZPnFKMpVIVD3s0EYn4jzLh1I+WeUZkJ0Yoa4Qfw3Kg==",
"dev": true,
"optional": true,
"requires": {
@@ -20039,13 +22657,13 @@
"p-pipe": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz",
- "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=",
+ "integrity": "sha512-IA8SqjIGA8l9qOksXJvsvkeQ+VGb0TAzNCzvKvz9wt5wWLqfWbV6fXy43gpR2L4Te8sOq3S+Ql9biAaMKPdbtw==",
"dev": true
},
"p-reduce": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz",
- "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=",
+ "integrity": "sha512-3Tx1T3oM1xO/Y8Gj0sWyE78EIJZ+t+aEmXUdvQgvGmSMri7aPTHoovbXEreWKkL5j21Er60XAWLTzKbAKYOujQ==",
"dev": true,
"optional": true
},
@@ -20062,7 +22680,7 @@
"p-timeout": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
- "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
+ "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==",
"dev": true,
"optional": true,
"requires": {
@@ -20094,7 +22712,7 @@
"parse-filepath": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
- "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=",
+ "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==",
"dev": true,
"requires": {
"is-absolute": "^1.0.0",
@@ -20116,20 +22734,31 @@
"parse-passwd": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
- "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=",
+ "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
"dev": true
},
"parse-srcset": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz",
- "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=",
+ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==",
"dev": true
},
"parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dev": true,
+ "requires": {
+ "entities": "^4.4.0"
+ },
+ "dependencies": {
+ "entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true
+ }
+ }
},
"parseurl": {
"version": "1.3.3",
@@ -20149,7 +22778,7 @@
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
- "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=",
+ "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
"dev": true
},
"path-case": {
@@ -20164,7 +22793,7 @@
"path-dirname": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
- "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=",
+ "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==",
"dev": true
},
"path-exists": {
@@ -20175,7 +22804,7 @@
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true
},
"path-is-inside": {
@@ -20199,7 +22828,7 @@
"path-root": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
- "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
+ "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==",
"dev": true,
"requires": {
"path-root-regex": "^0.1.0"
@@ -20208,14 +22837,13 @@
"path-root-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
- "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=",
+ "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==",
"dev": true
},
"path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==",
- "dev": true
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz",
+ "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw=="
},
"path-type": {
"version": "4.0.0",
@@ -20225,13 +22853,13 @@
"pend": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
- "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
"dev": true
},
"performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
"dev": true
},
"picocolors": {
@@ -20255,22 +22883,22 @@
"pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
"dev": true
},
"pinkie-promise": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
- "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
"dev": true,
"requires": {
"pinkie": "^2.0.0"
}
},
"pirates": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
- "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
"dev": true
},
"pixelmatch": {
@@ -20397,7 +23025,7 @@
"posix-character-classes": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
- "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=",
+ "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
"dev": true
},
"postcss": {
@@ -20517,9 +23145,9 @@
},
"dependencies": {
"semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "version": "7.5.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz",
+ "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -20676,9 +23304,9 @@
"dev": true
},
"postcss-modules-local-by-default": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz",
- "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz",
+ "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==",
"dev": true,
"requires": {
"icss-utils": "^5.0.0",
@@ -21033,6 +23661,11 @@
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true
},
+ "preact": {
+ "version": "10.15.1",
+ "resolved": "https://registry.npmjs.org/preact/-/preact-10.15.1.tgz",
+ "integrity": "sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g=="
+ },
"prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -21042,7 +23675,7 @@
"prepend-http": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==",
"dev": true,
"optional": true
},
@@ -21068,22 +23701,16 @@
"dev": true
},
"pretty-format": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
- "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
+ "version": "29.5.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz",
+ "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==",
"dev": true,
"requires": {
- "ansi-regex": "^5.0.1",
+ "@jest/schemas": "^29.4.3",
"ansi-styles": "^5.0.0",
- "react-is": "^17.0.1"
+ "react-is": "^18.0.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
"ansi-styles": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
@@ -21091,9 +23718,9 @@
"dev": true
},
"react-is": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
- "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
+ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
"dev": true
}
}
@@ -21137,7 +23764,7 @@
"proto-list": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
- "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
+ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
"dev": true,
"optional": true
},
@@ -21173,7 +23800,7 @@
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==",
"dev": true
},
"psl": {
@@ -21297,10 +23924,16 @@
}
}
},
+ "pure-rand": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.2.tgz",
+ "integrity": "sha512-6Yg0ekpKICSjPswYOuC5sku/TSWaRYlA0qsXqJgM/d/4pLPHPuTxK7Nbf7jFKzAeedUhR8C7K9Uv63FBsSo8xQ==",
+ "dev": true
+ },
"q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
- "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
"dev": true,
"optional": true
},
@@ -21426,9 +24059,9 @@
}
},
"react-easy-crop": {
- "version": "4.7.4",
- "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-4.7.4.tgz",
- "integrity": "sha512-oDi1375Jo/zuPUvo3oauxnNbfy8L4wsbmHD1KB2vT55fdgu+q8/K0w/rDWzy9jz4jfQ94Q9+3Yu366sDDFVmiA==",
+ "version": "4.7.5",
+ "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-4.7.5.tgz",
+ "integrity": "sha512-qKfI4PuhaH1jOLC3DQfQB0cE0z+3N7bfyPkPejQmylXNb8nstfPMH+oHj3gKgpBHLFUiQp/C1rY7sVCVgtjn3Q==",
"requires": {
"normalize-wheel": "^1.0.1",
"tslib": "2.0.1"
@@ -21452,6 +24085,37 @@
"integrity": "sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==",
"dev": true
},
+ "react-remove-scroll": {
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz",
+ "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==",
+ "requires": {
+ "react-remove-scroll-bar": "^2.3.3",
+ "react-style-singleton": "^2.2.1",
+ "tslib": "^2.1.0",
+ "use-callback-ref": "^1.3.0",
+ "use-sidecar": "^1.1.2"
+ }
+ },
+ "react-remove-scroll-bar": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz",
+ "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==",
+ "requires": {
+ "react-style-singleton": "^2.2.1",
+ "tslib": "^2.0.0"
+ }
+ },
+ "react-style-singleton": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz",
+ "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==",
+ "requires": {
+ "get-nonce": "^1.0.0",
+ "invariant": "^2.2.4",
+ "tslib": "^2.0.0"
+ }
+ },
"read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -21668,14 +24332,14 @@
}
},
"regexp.prototype.flags": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
- "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
+ "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "functions-have-names": "^1.2.2"
+ "define-properties": "^1.2.0",
+ "functions-have-names": "^1.2.3"
},
"dependencies": {
"call-bind": {
@@ -21687,19 +24351,23 @@
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
}
+ },
+ "define-properties": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
+ "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
}
}
},
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true
- },
"regexpu-core": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.1.tgz",
- "integrity": "sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==",
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz",
+ "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==",
"dev": true,
"requires": {
"@babel/regjsgen": "^0.8.0",
@@ -21746,13 +24414,13 @@
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
"dev": true
},
"repeating": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
- "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+ "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==",
"dev": true,
"optional": true,
"requires": {
@@ -21912,19 +24580,19 @@
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
- "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
+ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
"dev": true
},
"resolve.exports": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz",
- "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz",
+ "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==",
"dev": true
},
"responselike": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
"dev": true,
"optional": true,
"requires": {
@@ -21934,7 +24602,7 @@
"restore-cursor": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
- "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+ "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
"dev": true,
"requires": {
"onetime": "^2.0.0",
@@ -21950,7 +24618,7 @@
"onetime": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
- "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+ "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
"dev": true,
"requires": {
"mimic-fn": "^1.0.0"
@@ -22029,7 +24697,7 @@
"strip-json-comments": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
"dev": true
}
}
@@ -22041,14 +24709,14 @@
"dev": true
},
"run-con": {
- "version": "1.2.11",
- "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.11.tgz",
- "integrity": "sha512-NEMGsUT+cglWkzEr4IFK21P4Jca45HqiAbIIZIBdX5+UZTB24Mb/21iNGgz9xZa8tL6vbW7CXmq7MFN42+VjNQ==",
+ "version": "1.2.12",
+ "resolved": "https://registry.npmjs.org/run-con/-/run-con-1.2.12.tgz",
+ "integrity": "sha512-5257ILMYIF4RztL9uoZ7V9Q97zHtNHn5bN3NobeAnzB1P3ASLgg8qocM2u+R18ttp+VEM78N2LK8XcNVtnSRrg==",
"dev": true,
"requires": {
"deep-extend": "^0.6.0",
"ini": "~3.0.0",
- "minimist": "^1.2.6",
+ "minimist": "^1.2.8",
"strip-json-comments": "~3.1.1"
},
"dependencies": {
@@ -22057,6 +24725,12 @@
"resolved": "https://registry.npmjs.org/ini/-/ini-3.0.1.tgz",
"integrity": "sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==",
"dev": true
+ },
+ "minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true
}
}
},
@@ -22096,13 +24770,13 @@
"safe-json-parse": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
- "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=",
+ "integrity": "sha512-o0JmTu17WGUaUOHa1l0FPGXKBfijbxK6qoHzlkihsDXxzBHvJcA7zgviKR92Xs841rX9pK16unfphLq0/KqX7A==",
"dev": true
},
"safe-regex": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
- "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=",
+ "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
"dev": true,
"requires": {
"ret": "~0.1.10"
@@ -22130,13 +24804,14 @@
}
},
"get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
+ "has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
}
},
@@ -22298,9 +24973,9 @@
"dev": true
},
"saxes": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz",
- "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
"dev": true,
"requires": {
"xmlchars": "^2.2.0"
@@ -22338,7 +25013,7 @@
"select": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
- "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0="
+ "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA=="
},
"select-hose": {
"version": "2.0.0",
@@ -22373,7 +25048,7 @@
"semver-truncate": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz",
- "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=",
+ "integrity": "sha512-V1fGg9i4CL3qesB6U0L6XAm4xOJiHmt4QAacazumuasc03BvtFGIMCduv01JWQ69Nv+JST9TqhSCiJoxoY031w==",
"dev": true,
"optional": true,
"requires": {
@@ -22548,11 +25223,20 @@
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
"dev": true,
"requires": {
"is-extendable": "^0.1.0"
}
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
}
}
},
@@ -22594,7 +25278,7 @@
"shebang-command": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
"dev": true,
"requires": {
"shebang-regex": "^1.0.0"
@@ -22603,7 +25287,13 @@
"shebang-regex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "dev": true
+ },
+ "shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
"dev": true
},
"showdown": {
@@ -22800,7 +25490,7 @@
"define-property": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"dev": true,
"requires": {
"is-descriptor": "^0.1.0"
@@ -22809,7 +25499,7 @@
"extend-shallow": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
"dev": true,
"requires": {
"is-extendable": "^0.1.0"
@@ -22818,7 +25508,7 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
}
}
@@ -22837,7 +25527,7 @@
"define-property": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
"dev": true,
"requires": {
"is-descriptor": "^1.0.0"
@@ -22920,7 +25610,7 @@
"sort-keys": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
- "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
+ "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==",
"dev": true,
"optional": true,
"requires": {
@@ -22930,7 +25620,7 @@
"sort-keys-length": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz",
- "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=",
+ "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==",
"dev": true,
"optional": true,
"requires": {
@@ -22940,7 +25630,7 @@
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
},
"source-map-js": {
"version": "1.0.2",
@@ -23075,9 +25765,9 @@
},
"dependencies": {
"readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
"dev": true,
"requires": {
"inherits": "^2.0.3",
@@ -23104,7 +25794,7 @@
"squeak": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz",
- "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=",
+ "integrity": "sha512-YQL1ulInM+ev8nXX7vfXsCsDh6IqXlrremc1hzi77776BtpWgYJUMto3UM05GSAaGzJgWekszjoKDrVNB5XG+A==",
"dev": true,
"optional": true,
"requires": {
@@ -23116,21 +25806,21 @@
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
"dev": true,
"optional": true
},
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==",
"dev": true,
"optional": true
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
- "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==",
"dev": true,
"optional": true,
"requires": {
@@ -23144,7 +25834,7 @@
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
"dev": true,
"optional": true,
"requires": {
@@ -23154,7 +25844,7 @@
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==",
"dev": true,
"optional": true
}
@@ -23186,7 +25876,7 @@
"stack-trace": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
- "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
+ "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==",
"dev": true
},
"stack-utils": {
@@ -23215,7 +25905,7 @@
"static-extend": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
- "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=",
+ "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
"dev": true,
"requires": {
"define-property": "^0.2.5",
@@ -23225,7 +25915,7 @@
"define-property": {
"version": "0.2.5",
"resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"dev": true,
"requires": {
"is-descriptor": "^0.1.0"
@@ -23239,15 +25929,6 @@
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"dev": true
},
- "stop-iteration-iterator": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
- "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
- "dev": true,
- "requires": {
- "internal-slot": "^1.0.4"
- }
- },
"stream-from-promise": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/stream-from-promise/-/stream-from-promise-1.0.0.tgz",
@@ -23264,7 +25945,7 @@
"strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
"dev": true,
"optional": true
},
@@ -23298,7 +25979,7 @@
"string-template": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
- "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=",
+ "integrity": "sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw==",
"dev": true
},
"string-width": {
@@ -23348,18 +26029,18 @@
}
},
"es-abstract": {
- "version": "1.21.1",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
- "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
+ "version": "1.21.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+ "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
"dev": true,
"requires": {
+ "array-buffer-byte-length": "^1.0.0",
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
"es-set-tostringtag": "^2.0.1",
"es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
"function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.1.3",
+ "get-intrinsic": "^1.2.0",
"get-symbol-description": "^1.0.0",
"globalthis": "^1.0.3",
"gopd": "^1.0.1",
@@ -23367,8 +26048,8 @@
"has-property-descriptors": "^1.0.0",
"has-proto": "^1.0.1",
"has-symbols": "^1.0.3",
- "internal-slot": "^1.0.4",
- "is-array-buffer": "^3.0.1",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
"is-callable": "^1.2.7",
"is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
@@ -23376,11 +26057,12 @@
"is-string": "^1.0.7",
"is-typed-array": "^1.1.10",
"is-weakref": "^1.0.2",
- "object-inspect": "^1.12.2",
+ "object-inspect": "^1.12.3",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
"string.prototype.trimend": "^1.0.6",
"string.prototype.trimstart": "^1.0.6",
"typed-array-length": "^1.0.4",
@@ -23389,13 +26071,14 @@
}
},
"get-intrinsic": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
- "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
+ "has-proto": "^1.0.1",
"has-symbols": "^1.0.3"
}
},
@@ -23469,6 +26152,163 @@
}
}
},
+ "string.prototype.trim": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz",
+ "integrity": "sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ },
+ "dependencies": {
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "define-properties": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
+ "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "es-abstract": {
+ "version": "1.21.2",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz",
+ "integrity": "sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==",
+ "dev": true,
+ "requires": {
+ "array-buffer-byte-length": "^1.0.0",
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-set-tostringtag": "^2.0.1",
+ "es-to-primitive": "^1.2.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.2.0",
+ "get-symbol-description": "^1.0.0",
+ "globalthis": "^1.0.3",
+ "gopd": "^1.0.1",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.5",
+ "is-array-buffer": "^3.0.2",
+ "is-callable": "^1.2.7",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-typed-array": "^1.1.10",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "safe-regex-test": "^1.0.0",
+ "string.prototype.trim": "^1.2.7",
+ "string.prototype.trimend": "^1.0.6",
+ "string.prototype.trimstart": "^1.0.6",
+ "typed-array-length": "^1.0.4",
+ "unbox-primitive": "^1.0.2",
+ "which-typed-array": "^1.1.9"
+ },
+ "dependencies": {
+ "get-intrinsic": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
+ "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3"
+ }
+ }
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true
+ },
+ "is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true
+ },
+ "is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
+ "dev": true
+ },
+ "is-regex": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "object-inspect": {
+ "version": "1.12.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
+ "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+ "dev": true
+ },
+ "object.assign": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "string.prototype.trimend": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
+ "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ },
+ "string.prototype.trimstart": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
+ "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
+ }
+ }
+ }
+ },
"string.prototype.trimend": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz",
@@ -23533,7 +26373,7 @@
"strip-eof": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
"dev": true,
"optional": true
},
@@ -23793,9 +26633,9 @@
"dev": true
},
"is-core-module": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
- "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz",
+ "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==",
"dev": true,
"requires": {
"has": "^1.0.3"
@@ -23910,9 +26750,9 @@
"dev": true
},
"postcss-selector-parser": {
- "version": "6.0.11",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
- "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+ "version": "6.0.13",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
+ "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
@@ -23954,12 +26794,6 @@
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
"dev": true
},
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
"string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
@@ -24019,16 +26853,6 @@
"isexe": "^2.0.0"
}
},
- "write-file-atomic": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
- "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
- "dev": true,
- "requires": {
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.7"
- }
- },
"yargs-parser": {
"version": "20.2.9",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
@@ -24055,22 +26879,21 @@
}
},
"stylelint-scss": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.4.0.tgz",
- "integrity": "sha512-Qy66a+/30aylFhPmUArHhVsHOun1qrO93LGT15uzLuLjWS7hKDfpFm34mYo1ndR4MCo8W4bEZM1+AlJRJORaaw==",
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.7.0.tgz",
+ "integrity": "sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==",
"dev": true,
"requires": {
- "lodash": "^4.17.21",
"postcss-media-query-parser": "^0.2.3",
"postcss-resolve-nested-selector": "^0.1.1",
- "postcss-selector-parser": "^6.0.6",
- "postcss-value-parser": "^4.1.0"
+ "postcss-selector-parser": "^6.0.11",
+ "postcss-value-parser": "^4.2.0"
},
"dependencies": {
"postcss-selector-parser": {
- "version": "6.0.11",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
- "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
+ "version": "6.0.13",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz",
+ "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
@@ -24253,7 +27076,7 @@
"taffydb": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz",
- "integrity": "sha1-fLy2S1oUG2ou/CxdLGe04VCyomg=",
+ "integrity": "sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==",
"dev": true
},
"tannin": {
@@ -24311,14 +27134,14 @@
"temp-dir": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz",
- "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=",
+ "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==",
"dev": true,
"optional": true
},
"tempfile": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz",
- "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=",
+ "integrity": "sha512-ZOn6nJUgvgC09+doCEF3oB+r3ag7kUvlsXEGX069QRD60p+P3uP7XG9N2/at+EyIRGSN//ZY3LyEotA1YpmjuA==",
"dev": true,
"optional": true,
"requires": {
@@ -24335,16 +27158,6 @@
}
}
},
- "terminal-link": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz",
- "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==",
- "dev": true,
- "requires": {
- "ansi-escapes": "^4.2.1",
- "supports-hyperlinks": "^2.0.0"
- }
- },
"terser": {
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz",
@@ -24387,16 +27200,10 @@
"integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
- "throat": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz",
- "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==",
- "dev": true
- },
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
"dev": true
},
"thunky": {
@@ -24408,7 +27215,7 @@
"timed-out": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
+ "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
"dev": true,
"optional": true
},
@@ -24482,7 +27289,7 @@
"to-object-path": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
- "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=",
+ "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
"dev": true,
"requires": {
"kind-of": "^3.0.2"
@@ -24528,9 +27335,9 @@
"dev": true
},
"tough-cookie": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz",
- "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==",
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
"dev": true,
"requires": {
"psl": "^1.1.33",
@@ -24542,7 +27349,7 @@
"tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
"dev": true
},
"traverse": {
@@ -24566,20 +27373,20 @@
"trim-repeated": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
- "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=",
+ "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.2"
}
},
"tsconfig-paths": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
- "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
+ "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==",
"dev": true,
"requires": {
"@types/json5": "^0.0.29",
- "json5": "^1.0.1",
+ "json5": "^1.0.2",
"minimist": "^1.2.6",
"strip-bom": "^3.0.0"
},
@@ -24596,9 +27403,9 @@
}
},
"tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz",
+ "integrity": "sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA=="
},
"tsutils": {
"version": "3.21.0",
@@ -24620,7 +27427,7 @@
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"dev": true,
"requires": {
"safe-buffer": "^5.0.1"
@@ -24634,7 +27441,7 @@
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
"dev": true
},
"type-check": {
@@ -24691,15 +27498,6 @@
}
}
},
- "typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "dev": true,
- "requires": {
- "is-typedarray": "^1.0.0"
- }
- },
"uc.micro": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
@@ -24755,7 +27553,7 @@
"unc-path-regex": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
- "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=",
+ "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==",
"dev": true
},
"underscore": {
@@ -24834,14 +27632,14 @@
"unquote": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
- "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
+ "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==",
"dev": true,
"optional": true
},
"unset-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
- "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=",
+ "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
"dev": true,
"requires": {
"has-value": "^0.3.1",
@@ -24851,7 +27649,7 @@
"has-value": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
- "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
+ "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
"dev": true,
"requires": {
"get-value": "^2.0.3",
@@ -24862,7 +27660,7 @@
"isobject": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
- "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
"dev": true,
"requires": {
"isarray": "1.0.0"
@@ -24873,7 +27671,7 @@
"has-values": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
- "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
"dev": true
}
}
@@ -24916,13 +27714,13 @@
"uri-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
- "integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=",
+ "integrity": "sha512-8pMuAn4KacYdGMkFaoQARicp4HSw24/DHOVKWqVRJ8LhhAwPPFpdGvdL9184JVmUwe7vz7Z9n6IqI6t5n2ELdg==",
"dev": true
},
"urix": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
- "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
+ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
"dev": true
},
"url-loader": {
@@ -24949,7 +27747,7 @@
"url-parse-lax": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==",
"dev": true,
"optional": true,
"requires": {
@@ -24959,7 +27757,7 @@
"url-to-options": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
- "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
+ "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==",
"dev": true,
"optional": true
},
@@ -24969,6 +27767,14 @@
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
"dev": true
},
+ "use-callback-ref": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz",
+ "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==",
+ "requires": {
+ "tslib": "^2.0.0"
+ }
+ },
"use-lilius": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/use-lilius/-/use-lilius-2.0.3.tgz",
@@ -24982,6 +27788,15 @@
"resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz",
"integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ=="
},
+ "use-sidecar": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz",
+ "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==",
+ "requires": {
+ "detect-node-es": "^1.1.0",
+ "tslib": "^2.0.0"
+ }
+ },
"use-sync-external-store": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
@@ -24990,7 +27805,7 @@
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"util.promisify": {
"version": "1.0.1",
@@ -25012,10 +27827,9 @@
"dev": true
},
"uuid": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
- "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
- "dev": true
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
},
"v8-compile-cache": {
"version": "2.3.0",
@@ -25024,22 +27838,14 @@
"dev": true
},
"v8-to-istanbul": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
- "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz",
+ "integrity": "sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==",
"dev": true,
"requires": {
+ "@jridgewell/trace-mapping": "^0.3.12",
"@types/istanbul-lib-coverage": "^2.0.1",
- "convert-source-map": "^1.6.0",
- "source-map": "^0.7.3"
- },
- "dependencies": {
- "source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "dev": true
- }
+ "convert-source-map": "^1.6.0"
}
},
"v8flags": {
@@ -25079,7 +27885,7 @@
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0",
@@ -25087,22 +27893,13 @@
"extsprintf": "^1.2.0"
}
},
- "w3c-hr-time": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
- "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
- "dev": true,
- "requires": {
- "browser-process-hrtime": "^1.0.0"
- }
- },
"w3c-xmlserializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz",
- "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz",
+ "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==",
"dev": true,
"requires": {
- "xml-name-validator": "^3.0.0"
+ "xml-name-validator": "^4.0.0"
}
},
"wait-on": {
@@ -25200,7 +27997,7 @@
"webidl-conversions": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
"dev": true
},
"webpack": {
@@ -25256,9 +28053,9 @@
}
},
"webpack-bundle-analyzer": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.8.0.tgz",
- "integrity": "sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==",
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.0.tgz",
+ "integrity": "sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw==",
"dev": true,
"requires": {
"@discoveryjs/json-ext": "0.5.7",
@@ -25273,12 +28070,6 @@
"ws": "^7.3.1"
},
"dependencies": {
- "acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "dev": true
- },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -25452,23 +28243,23 @@
}
},
"schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
+ "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
+ "ajv": "^8.9.0",
"ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
+ "ajv-keywords": "^5.1.0"
}
}
}
},
"webpack-dev-server": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz",
- "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==",
+ "version": "4.15.1",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz",
+ "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==",
"dev": true,
"requires": {
"@types/bonjour": "^3.5.9",
@@ -25477,7 +28268,7 @@
"@types/serve-index": "^1.9.1",
"@types/serve-static": "^1.13.10",
"@types/sockjs": "^0.3.33",
- "@types/ws": "^8.5.1",
+ "@types/ws": "^8.5.5",
"ansi-html-community": "^0.0.8",
"bonjour-service": "^1.0.11",
"chokidar": "^3.5.3",
@@ -25490,6 +28281,7 @@
"html-entities": "^2.3.2",
"http-proxy-middleware": "^2.0.3",
"ipaddr.js": "^2.0.1",
+ "launch-editor": "^2.6.0",
"open": "^8.0.9",
"p-retry": "^4.5.0",
"rimraf": "^3.0.2",
@@ -25499,7 +28291,7 @@
"sockjs": "^0.3.24",
"spdy": "^4.0.2",
"webpack-dev-middleware": "^5.3.1",
- "ws": "^8.4.2"
+ "ws": "^8.13.0"
},
"dependencies": {
"ajv": {
@@ -25524,9 +28316,9 @@
}
},
"graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
"dev": true
},
"json-schema-traverse": {
@@ -25545,21 +28337,21 @@
}
},
"schema-utils": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
- "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
+ "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.9",
- "ajv": "^8.8.0",
+ "ajv": "^8.9.0",
"ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.0.0"
+ "ajv-keywords": "^5.1.0"
}
},
"ws": {
- "version": "8.12.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz",
- "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
+ "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
"dev": true
}
}
@@ -25577,9 +28369,9 @@
}
},
"webpack-merge": {
- "version": "5.8.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz",
- "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.9.0.tgz",
+ "integrity": "sha512-6NbRQw4+Sy50vYNTw7EyOn41OZItPiXB8GNv3INSoe3PSFaHJEz3SHTrYVaRm2LilNGnFUzh0FAwqPEmU/CwDg==",
"dev": true,
"requires": {
"clone-deep": "^4.0.1",
@@ -25595,6 +28387,17 @@
"is-plain-object": "^2.0.4",
"kind-of": "^6.0.2",
"shallow-clone": "^3.0.0"
+ },
+ "dependencies": {
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ }
}
},
"kind-of": {
@@ -25638,23 +28441,12 @@
"dev": true
},
"whatwg-encoding": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
- "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz",
+ "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==",
"dev": true,
"requires": {
- "iconv-lite": "0.4.24"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- }
+ "iconv-lite": "0.6.3"
}
},
"whatwg-fetch": {
@@ -25663,15 +28455,15 @@
"integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA=="
},
"whatwg-mimetype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz",
- "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz",
+ "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==",
"dev": true
},
"whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
"dev": true,
"requires": {
"tr46": "~0.0.3",
@@ -25700,22 +28492,10 @@
"is-symbol": "^1.0.3"
}
},
- "which-collection": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
- "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
- "dev": true,
- "requires": {
- "is-map": "^2.0.1",
- "is-set": "^2.0.1",
- "is-weakmap": "^2.0.1",
- "is-weakset": "^2.0.1"
- }
- },
"which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q=="
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ=="
},
"which-typed-array": {
"version": "1.1.9",
@@ -25749,9 +28529,9 @@
"integrity": "sha512-Ba9tGNYxXwaqKEi9sJJvPMKuo063umUPsHN0JJsjrs2j8KDSzkWLMZGZ+MH1Jf1Fq4OWZ5HsESJID6nRza2ang=="
},
"wildcard": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz",
- "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
+ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
"dev": true
},
"word-wrap": {
@@ -25773,19 +28553,25 @@
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
"write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
"dev": true,
"requires": {
"imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
+ "signal-exit": "^3.0.7"
+ },
+ "dependencies": {
+ "signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ }
}
},
"ws": {
@@ -25795,15 +28581,15 @@
"dev": true
},
"xml-name-validator": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
- "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
"dev": true
},
"xmlbuilder": {
"version": "8.2.2",
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
- "integrity": "sha1-aSSGc0ELS6QuGmE2VR0pIjNap3M=",
+ "integrity": "sha512-eKRAFz04jghooy8muekqzo8uCSVNeyRedbuJrp0fovbLIi7wlsYtdUn3vBAAPq2Y3/0xMz2WMEUQ8yhVVO9Stw==",
"dev": true
},
"xmlchars": {
@@ -25815,7 +28601,7 @@
"xmlrpc": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/xmlrpc/-/xmlrpc-1.3.2.tgz",
- "integrity": "sha1-JrLqNHhI0Ciqx+dRS1NRl23j6D0=",
+ "integrity": "sha512-jQf5gbrP6wvzN71fgkcPPkF4bF/Wyovd7Xdff8d6/ihxYmgETQYSuTc+Hl+tsh/jmgPLro/Aro48LMFlIyEKKQ==",
"dev": true,
"requires": {
"sax": "1.2.x",
@@ -25874,7 +28660,7 @@
"yauzl": {
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
- "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
"dev": true,
"requires": {
"buffer-crc32": "~0.2.3",
diff --git a/package.json b/package.json
index 2f65c3d2e4..8783577fcd 100644
--- a/package.json
+++ b/package.json
@@ -26,10 +26,10 @@
"devDependencies": {
"@lodder/grunt-postcss": "^3.1.1",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.5",
- "@wordpress/babel-preset-default": "7.10.2",
- "@wordpress/dependency-extraction-webpack-plugin": "4.9.1",
- "@wordpress/e2e-test-utils": "9.3.3",
- "@wordpress/scripts": "25.3.4",
+ "@wordpress/babel-preset-default": "7.19.1",
+ "@wordpress/dependency-extraction-webpack-plugin": "4.18.1",
+ "@wordpress/e2e-test-utils": "10.6.1",
+ "@wordpress/scripts": "26.6.2",
"autoprefixer": "^10.4.13",
"chalk": "5.2.0",
"check-node-version": "4.2.1",
@@ -71,76 +71,83 @@
"source-map-loader": "4.0.1",
"terser-webpack-plugin": "5.3.6",
"uglify-js": "^3.17.4",
- "uuid": "9.0.0",
+ "uuid": "8.3.2",
"wait-on": "7.0.1",
"webpack": "5.75.0",
"webpack-livereload-plugin": "3.0.2"
},
"dependencies": {
- "@wordpress/a11y": "3.26.1",
- "@wordpress/annotations": "2.26.4",
- "@wordpress/api-fetch": "6.23.1",
- "@wordpress/autop": "3.26.1",
- "@wordpress/blob": "3.26.1",
- "@wordpress/block-directory": "4.3.13",
- "@wordpress/block-editor": "11.3.10",
- "@wordpress/block-library": "8.3.13",
+ "@emotion/is-prop-valid": "0.8.8",
+ "@emotion/memoize": "0.7.4",
+ "@wordpress/a11y": "3.35.1",
+ "@wordpress/annotations": "2.35.1",
+ "@wordpress/api-fetch": "6.32.1",
+ "@wordpress/autop": "3.35.1",
+ "@wordpress/blob": "3.35.1",
+ "@wordpress/block-directory": "4.12.2",
+ "@wordpress/block-editor": "12.3.2",
+ "@wordpress/block-library": "8.12.2",
"@wordpress/block-serialization-default-parser": "4.35.1",
- "@wordpress/blocks": "12.3.3",
- "@wordpress/components": "23.3.7",
- "@wordpress/compose": "6.3.3",
- "@wordpress/core-data": "6.3.3",
- "@wordpress/customize-widgets": "4.3.13",
- "@wordpress/data": "8.3.3",
- "@wordpress/data-controls": "2.26.3",
- "@wordpress/date": "4.26.2",
- "@wordpress/deprecated": "3.26.1",
- "@wordpress/dom": "3.26.1",
- "@wordpress/dom-ready": "3.26.1",
- "@wordpress/edit-post": "7.3.13",
- "@wordpress/edit-site": "5.3.13",
- "@wordpress/edit-widgets": "5.3.13",
- "@wordpress/editor": "13.3.10",
- "@wordpress/element": "5.3.2",
- "@wordpress/escape-html": "2.26.1",
- "@wordpress/format-library": "4.3.10",
- "@wordpress/hooks": "3.26.1",
- "@wordpress/html-entities": "3.26.1",
- "@wordpress/i18n": "4.26.1",
- "@wordpress/icons": "9.17.2",
- "@wordpress/interface": "5.3.8",
- "@wordpress/is-shallow-equal": "4.26.1",
- "@wordpress/keyboard-shortcuts": "4.3.3",
- "@wordpress/keycodes": "3.26.2",
- "@wordpress/list-reusable-blocks": "4.3.7",
- "@wordpress/media-utils": "4.17.2",
- "@wordpress/notices": "3.26.3",
+ "@wordpress/blocks": "12.12.1",
+ "@wordpress/commands": "0.6.2",
+ "@wordpress/components": "25.1.2",
+ "@wordpress/compose": "6.12.1",
+ "@wordpress/core-commands": "0.4.2",
+ "@wordpress/core-data": "6.12.2",
+ "@wordpress/customize-widgets": "4.12.2",
+ "@wordpress/data": "9.5.1",
+ "@wordpress/data-controls": "3.4.1",
+ "@wordpress/date": "4.35.1",
+ "@wordpress/deprecated": "3.35.1",
+ "@wordpress/dom": "3.35.1",
+ "@wordpress/dom-ready": "3.35.1",
+ "@wordpress/edit-post": "7.12.2",
+ "@wordpress/edit-site": "5.12.2",
+ "@wordpress/edit-widgets": "5.12.2",
+ "@wordpress/editor": "13.12.2",
+ "@wordpress/element": "5.12.1",
+ "@wordpress/escape-html": "2.35.1",
+ "@wordpress/format-library": "4.12.2",
+ "@wordpress/hooks": "3.35.1",
+ "@wordpress/html-entities": "3.35.1",
+ "@wordpress/i18n": "4.35.1",
+ "@wordpress/icons": "9.26.2",
+ "@wordpress/interface": "5.12.2",
+ "@wordpress/is-shallow-equal": "4.35.1",
+ "@wordpress/keyboard-shortcuts": "4.12.1",
+ "@wordpress/keycodes": "3.35.1",
+ "@wordpress/list-reusable-blocks": "4.12.2",
+ "@wordpress/media-utils": "4.26.1",
+ "@wordpress/notices": "4.3.1",
"@wordpress/nux": "6.0.0",
- "@wordpress/plugins": "5.3.3",
- "@wordpress/preferences": "3.3.7",
- "@wordpress/preferences-persistence": "1.18.1",
- "@wordpress/primitives": "3.24.2",
- "@wordpress/priority-queue": "2.26.1",
- "@wordpress/private-apis": "0.8.1",
- "@wordpress/redux-routine": "4.26.1",
- "@wordpress/reusable-blocks": "4.3.10",
- "@wordpress/rich-text": "6.3.4",
- "@wordpress/server-side-render": "4.3.7",
- "@wordpress/shortcode": "3.26.1",
- "@wordpress/style-engine": "1.9.1",
- "@wordpress/token-list": "2.26.1",
- "@wordpress/url": "3.27.1",
- "@wordpress/viewport": "5.3.3",
- "@wordpress/warning": "2.26.1",
- "@wordpress/widgets": "3.3.10",
- "@wordpress/wordcount": "3.26.1",
+ "@wordpress/plugins": "6.3.2",
+ "@wordpress/preferences": "3.12.2",
+ "@wordpress/preferences-persistence": "1.27.1",
+ "@wordpress/primitives": "3.33.1",
+ "@wordpress/priority-queue": "2.35.1",
+ "@wordpress/private-apis": "0.17.1",
+ "@wordpress/redux-routine": "4.35.1",
+ "@wordpress/reusable-blocks": "4.12.2",
+ "@wordpress/rich-text": "6.12.1",
+ "@wordpress/router": "0.4.1",
+ "@wordpress/server-side-render": "4.12.2",
+ "@wordpress/shortcode": "3.35.1",
+ "@wordpress/style-engine": "1.18.1",
+ "@wordpress/token-list": "2.35.1",
+ "@wordpress/url": "3.36.1",
+ "@wordpress/viewport": "5.12.1",
+ "@wordpress/warning": "2.35.1",
+ "@wordpress/widgets": "3.12.2",
+ "@wordpress/wordcount": "3.35.1",
"backbone": "1.4.1",
"clipboard": "2.0.11",
"core-js-url-browser": "3.6.4",
"element-closest": "^3.0.2",
"formdata-polyfill": "4.0.10",
+ "framer-motion": "10.11.6",
"hoverintent": "2.2.1",
"imagesloaded": "4.1.4",
+ "is-plain-object": "5.0.0",
"jquery": "3.7.0",
"jquery-color": "2.2.0",
"jquery-form": "4.3.0",
@@ -148,12 +155,15 @@
"json2php": "^0.0.7",
"lodash": "4.17.21",
"masonry-layout": "4.2.2",
+ "memize": "2.1.0",
"moment": "2.29.4",
"objectFitPolyfill": "2.3.5",
+ "path-to-regexp": "6.2.1",
"polyfill-library": "4.7.0",
"react": "18.2.0",
"react-dom": "18.2.0",
"regenerator-runtime": "0.13.11",
+ "tslib": "2.6.0",
"underscore": "1.13.6",
"whatwg-fetch": "3.6.2",
"wicg-inert": "3.1.2"
diff --git a/src/wp-includes/assets/script-loader-packages.min.php b/src/wp-includes/assets/script-loader-packages.min.php
index 9165ea994a..26d564f42b 100644
--- a/src/wp-includes/assets/script-loader-packages.min.php
+++ b/src/wp-includes/assets/script-loader-packages.min.php
@@ -1 +1 @@
- array('dependencies' => array('wp-dom-ready', 'wp-i18n', 'wp-polyfill'), 'version' => 'ecce20f002eda4c19664'), 'annotations.min.js' => array('dependencies' => array('wp-data', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text'), 'version' => '1720fc5d5c76f53a1740'), 'api-fetch.min.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => 'bc0029ca2c943aec5311'), 'autop.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '43197d709df445ccf849'), 'blob.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'e7b4ea96175a89b263e2'), 'block-directory.min.js' => array('dependencies' => array('wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => '9c45b8d28fc867ceed45'), 'block-editor.min.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-api-fetch', 'wp-blob', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-rich-text', 'wp-shortcode', 'wp-style-engine', 'wp-token-list', 'wp-url', 'wp-warning', 'wp-wordcount'), 'version' => '43e40e04f77d598ede94'), 'block-library.min.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-autop', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport'), 'version' => '3115f0b5551a55bb6d3b'), 'block-serialization-default-parser.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '30ffd7e7e199f10b2a6d'), 'blocks.min.js' => array('dependencies' => array('lodash', 'wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-shortcode'), 'version' => '639e14271099dc3d85bf'), 'components.min.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-compose', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-rich-text', 'wp-warning'), 'version' => 'bf6e0ec3089253604b52'), 'compose.min.js' => array('dependencies' => array('react', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-priority-queue'), 'version' => '7d5916e3b2ef0ea01400'), 'core-data.min.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-url'), 'version' => 'fc0de6bb17aa25caf698'), 'customize-widgets.min.js' => array('dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-widgets'), 'version' => '7ae69cc350436c0cf301'), 'data.min.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-private-apis', 'wp-redux-routine'), 'version' => '90cebfec01d1a3f0368e'), 'data-controls.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-data', 'wp-deprecated', 'wp-polyfill'), 'version' => 'e10d473d392daa8501e8'), 'date.min.js' => array('dependencies' => array('moment', 'wp-deprecated', 'wp-polyfill'), 'version' => 'f8550b1212d715fbf745'), 'deprecated.min.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => '6c963cb9494ba26b77eb'), 'dom.min.js' => array('dependencies' => array('wp-deprecated', 'wp-polyfill'), 'version' => 'e03c89e1dd68aee1cb3a'), 'dom-ready.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '392bdd43726760d1f3ca'), 'edit-post.min.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-url', 'wp-viewport', 'wp-warning', 'wp-widgets'), 'version' => 'd098b8ee5bdffa238c03'), 'edit-site.min.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-widgets'), 'version' => 'fcf81e803ab1af60d4f8'), 'edit-widgets.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-widgets'), 'version' => 'd683d5fc75e655fdf974'), 'editor.min.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-wordcount'), 'version' => '1fb5fcf129627da4939e'), 'element.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => 'b3bda690cfc516378771'), 'escape-html.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '03e27a7b6ae14f7afaa6'), 'format-library.min.js' => array('dependencies' => array('wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => 'cd4a10ec005e2f001978'), 'hooks.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4169d3cf8e8d95a3d6d5'), 'html-entities.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '36a4a255da7dd2e1bf8e'), 'i18n.min.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => '9e794f35a71bb98672ae'), 'is-shallow-equal.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '20c2b06ecf04afb14fee'), 'keyboard-shortcuts.min.js' => array('dependencies' => array('wp-data', 'wp-element', 'wp-keycodes', 'wp-polyfill'), 'version' => 'b696c16720133edfc065'), 'keycodes.min.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill'), 'version' => '184b321fa2d3bc7fd173'), 'list-reusable-blocks.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '6ba78be26d660b6af113'), 'media-utils.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'f837b6298c83612cd6f6'), 'notices.min.js' => array('dependencies' => array('wp-data', 'wp-polyfill'), 'version' => '9c1575b7a31659f45a45'), 'nux.min.js' => array('dependencies' => array('wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '038c48e26a91639ae8ab'), 'plugins.min.js' => array('dependencies' => array('wp-compose', 'wp-element', 'wp-hooks', 'wp-polyfill', 'wp-primitives'), 'version' => '0d1b90278bae7df6ecf9'), 'preferences.min.js' => array('dependencies' => array('wp-a11y', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => 'c66e137a7e588dab54c3'), 'preferences-persistence.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-polyfill'), 'version' => 'c5543628aa7ff5bd5be4'), 'primitives.min.js' => array('dependencies' => array('wp-element', 'wp-polyfill'), 'version' => 'dfac1545e52734396640'), 'priority-queue.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '422e19e9d48b269c5219'), 'private-apis.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '6f247ed2bc3571743bba'), 'redux-routine.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'd86e7e9f062d7582f76b'), 'reusable-blocks.min.js' => array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => 'a7367a6154c724b51b31'), 'rich-text.min.js' => array('dependencies' => array('wp-a11y', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-escape-html', 'wp-i18n', 'wp-keycodes', 'wp-polyfill'), 'version' => '9307ec04c67d79b6e813'), 'server-side-render.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => 'd1bc93277666143a3f5e'), 'shortcode.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '7539044b04e6bca57f2e'), 'style-engine.min.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '528e6cf281ffc9b7bd3c'), 'token-list.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'f2cf0bb3ae80de227e43'), 'url.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '16185fce2fb043a0cfed'), 'viewport.min.js' => array('dependencies' => array('wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => '4f6bd168b2b8b45c8a6b'), 'warning.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4acee5fc2fd9a24cefc2'), 'widgets.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives'), 'version' => '040ac8be5e0cfc4b52df'), 'wordcount.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'feb9569307aec24292f2'));
+ array('dependencies' => array('wp-dom-ready', 'wp-i18n', 'wp-polyfill'), 'version' => '7032343a947cfccf5608'), 'annotations.min.js' => array('dependencies' => array('wp-data', 'wp-hooks', 'wp-i18n', 'wp-polyfill', 'wp-rich-text'), 'version' => 'b09221a884f97325ed72'), 'api-fetch.min.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '0fa4dabf8bf2c7adf21a'), 'autop.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'dacd785d109317df2707'), 'blob.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '10a1c5c0acdef3d15657'), 'block-directory.min.js' => array('dependencies' => array('wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => 'cf69143cf8a7a08f7e0f'), 'block-editor.min.js' => array('dependencies' => array('lodash', 'react', 'react-dom', 'wp-a11y', 'wp-api-fetch', 'wp-blob', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-rich-text', 'wp-shortcode', 'wp-style-engine', 'wp-token-list', 'wp-url', 'wp-warning', 'wp-wordcount'), 'version' => 'a425609f5b6ae62dad68'), 'block-library.min.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-autop', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport', 'wp-wordcount'), 'version' => '2291ed97305f0f4dc80c'), 'block-serialization-default-parser.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '30ffd7e7e199f10b2a6d'), 'blocks.min.js' => array('dependencies' => array('wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-private-apis', 'wp-shortcode'), 'version' => '379ac25633b7ddbdeb9f'), 'commands.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-polyfill', 'wp-private-apis'), 'version' => '4fb8f7a32011c29a7d27'), 'components.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-a11y', 'wp-compose', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-rich-text', 'wp-warning'), 'version' => '187311b3c04c385fb830'), 'compose.min.js' => array('dependencies' => array('react', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-priority-queue'), 'version' => '5efbd9a3068cfc28732f'), 'core-commands.min.js' => array('dependencies' => array('wp-commands', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-private-apis', 'wp-router', 'wp-url'), 'version' => '684b564cda0e5a71f673'), 'core-data.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-private-apis', 'wp-url'), 'version' => '6ada842e022c37dab9f9'), 'customize-widgets.min.js' => array('dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-widgets'), 'version' => 'f08d458c8f34e7be78da'), 'data.min.js' => array('dependencies' => array('wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-private-apis', 'wp-redux-routine'), 'version' => '508d42bffd7af159abd7'), 'data-controls.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-data', 'wp-deprecated', 'wp-polyfill'), 'version' => 'fe4ccc8a1782ea8e2cb1'), 'date.min.js' => array('dependencies' => array('moment', 'wp-deprecated', 'wp-polyfill'), 'version' => '239d3ae94042e61d2134'), 'deprecated.min.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => '73ad3591e7bc95f4777a'), 'dom.min.js' => array('dependencies' => array('wp-deprecated', 'wp-polyfill'), 'version' => '845eabf47b55af03adfa'), 'dom-ready.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '392bdd43726760d1f3ca'), 'edit-post.min.js' => array('dependencies' => array('wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-commands', 'wp-components', 'wp-compose', 'wp-core-commands', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-url', 'wp-viewport', 'wp-warning', 'wp-widgets'), 'version' => '00139e9b78c513902b2c'), 'edit-site.min.js' => array('dependencies' => array('lodash', 'react', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-commands', 'wp-components', 'wp-compose', 'wp-core-commands', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-editor', 'wp-element', 'wp-escape-html', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-router', 'wp-url', 'wp-viewport', 'wp-widgets', 'wp-wordcount'), 'version' => '706364921605e4988d64'), 'edit-widgets.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-block-library', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-widgets'), 'version' => 'a9e2acaf781350f2e890'), 'editor.min.js' => array('dependencies' => array('react', 'wp-a11y', 'wp-api-fetch', 'wp-blob', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-private-apis', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-wordcount'), 'version' => 'bb53a87640068425eedb'), 'element.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '6ee24e5cc389494275d1'), 'escape-html.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '03e27a7b6ae14f7afaa6'), 'format-library.min.js' => array('dependencies' => array('wp-a11y', 'wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-url'), 'version' => 'f8c3d14a13437c8f2597'), 'hooks.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'c6aec9a8d4e5a5d543a1'), 'html-entities.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '36a4a255da7dd2e1bf8e'), 'i18n.min.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => 'e84b68f41a6686234c52'), 'is-shallow-equal.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '20c2b06ecf04afb14fee'), 'keyboard-shortcuts.min.js' => array('dependencies' => array('wp-data', 'wp-element', 'wp-keycodes', 'wp-polyfill'), 'version' => '3b52bcbe392eefb3e478'), 'keycodes.min.js' => array('dependencies' => array('wp-i18n', 'wp-polyfill'), 'version' => '3460bd0fac9859d6886c'), 'list-reusable-blocks.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'dfd2345553c85e847ac0'), 'media-utils.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'bcd60e7a2fb568f38015'), 'notices.min.js' => array('dependencies' => array('wp-data', 'wp-polyfill'), 'version' => '1197329369e882c44795'), 'nux.min.js' => array('dependencies' => array('wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => '038c48e26a91639ae8ab'), 'plugins.min.js' => array('dependencies' => array('wp-compose', 'wp-element', 'wp-hooks', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-primitives'), 'version' => '463143a2aeec9687ac69'), 'preferences.min.js' => array('dependencies' => array('wp-a11y', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives'), 'version' => 'ca088ba0a612bff77aa3'), 'preferences-persistence.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-polyfill'), 'version' => '2e62a5c063c96ff71aa1'), 'primitives.min.js' => array('dependencies' => array('wp-element', 'wp-polyfill'), 'version' => 'b90ba9340ccd8dae04b5'), 'priority-queue.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '422e19e9d48b269c5219'), 'private-apis.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '7dbca6dab5a6454e2194'), 'redux-routine.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '65797a0096e4e54840a2'), 'reusable-blocks.min.js' => array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => '0d3fc9db5f010d7fd06b'), 'rich-text.min.js' => array('dependencies' => array('wp-a11y', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-escape-html', 'wp-i18n', 'wp-keycodes', 'wp-polyfill'), 'version' => 'e953b4aa3e2e62c144ab'), 'router.min.js' => array('dependencies' => array('wp-element', 'wp-polyfill', 'wp-private-apis', 'wp-url'), 'version' => 'bc3f04a9045626928db0'), 'server-side-render.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => '81299db67c0fa2c65479'), 'shortcode.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'c128a3008a96e820aa86'), 'style-engine.min.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => 'ad8ccfe490aac4ead1a9'), 'token-list.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '199103fc7cec3b9eef5a'), 'url.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '8814d23f2d64864d280d'), 'viewport.min.js' => array('dependencies' => array('wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => '1fbef8175bb335c5603b'), 'warning.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4acee5fc2fd9a24cefc2'), 'widgets.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n', 'wp-notices', 'wp-polyfill', 'wp-primitives'), 'version' => '938735ae45e739ac8b70'), 'wordcount.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '16152365fa1567c1135c'));
diff --git a/src/wp-includes/blocks/archives/block.json b/src/wp-includes/blocks/archives/block.json
index 3e589af452..4d30b5344d 100644
--- a/src/wp-includes/blocks/archives/block.json
+++ b/src/wp-includes/blocks/archives/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/archives",
"title": "Archives",
"category": "widgets",
diff --git a/src/wp-includes/blocks/audio/block.json b/src/wp-includes/blocks/audio/block.json
index 13aed78896..adcf67e4dc 100644
--- a/src/wp-includes/blocks/audio/block.json
+++ b/src/wp-includes/blocks/audio/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/audio",
"title": "Audio",
"category": "media",
diff --git a/src/wp-includes/blocks/avatar.php b/src/wp-includes/blocks/avatar.php
index 25f3ad88dc..1566fe6edf 100644
--- a/src/wp-includes/blocks/avatar.php
+++ b/src/wp-includes/blocks/avatar.php
@@ -16,67 +16,19 @@
function render_block_core_avatar( $attributes, $content, $block ) {
$size = isset( $attributes['size'] ) ? $attributes['size'] : 96;
$wrapper_attributes = get_block_wrapper_attributes();
+ $border_attributes = get_block_core_avatar_border_attributes( $attributes );
- $image_styles = array();
+ // Class gets passed through `esc_attr` via `get_avatar`.
+ $image_classes = ! empty( $border_attributes['class'] )
+ ? "wp-block-avatar__image {$border_attributes['class']}"
+ : 'wp-block-avatar__image';
- // Add border width styles.
- $has_border_width = ! empty( $attributes['style']['border']['width'] );
-
- if ( $has_border_width ) {
- $border_width = $attributes['style']['border']['width'];
- $image_styles[] = sprintf( 'border-width: %s;', esc_attr( $border_width ) );
- }
-
- // Add border radius styles.
- $has_border_radius = ! empty( $attributes['style']['border']['radius'] );
-
- if ( $has_border_radius ) {
- $border_radius = $attributes['style']['border']['radius'];
-
- if ( is_array( $border_radius ) ) {
- // Apply styles for individual corner border radii.
- foreach ( $border_radius as $key => $value ) {
- if ( null !== $value ) {
- $name = _wp_to_kebab_case( $key );
- // Add shared styles for individual border radii.
- $border_style = sprintf(
- 'border-%s-radius: %s;',
- esc_attr( $name ),
- esc_attr( $value )
- );
- $image_styles[] = $border_style;
- }
- }
- } else {
- $border_style = sprintf( 'border-radius: %s;', esc_attr( $border_radius ) );
- $image_styles[] = $border_style;
- }
- }
-
- // Add border color styles.
- $has_border_color = ! empty( $attributes['style']['border']['color'] );
-
- if ( $has_border_color ) {
- $border_color = $attributes['style']['border']['color'];
- $image_styles[] = sprintf( 'border-color: %s;', esc_attr( $border_color ) );
- }
-
- // Add border style (solid, dashed, dotted ).
- $has_border_style = ! empty( $attributes['style']['border']['style'] );
-
- if ( $has_border_style ) {
- $border_style = $attributes['style']['border']['style'];
- $image_styles[] = sprintf( 'border-style: %s;', esc_attr( $border_style ) );
- }
-
- // Add border classes to the avatar image for both custom colors and palette colors.
- $image_classes = '';
- if ( $has_border_color || isset( $attributes['borderColor'] ) ) {
- $image_classes .= 'has-border-color';
- }
- if ( isset( $attributes['borderColor'] ) ) {
- $image_classes .= ' has-' . $attributes['borderColor'] . '-border-color';
- }
+ // Unlike class, `get_avatar` doesn't filter the styles via `esc_attr`.
+ // The style engine does pass the border styles through
+ // `safecss_filter_attr` however.
+ $image_styles = ! empty( $border_attributes['style'] )
+ ? sprintf( ' style="%s"', esc_attr( $border_attributes['style'] ) )
+ : '';
if ( ! isset( $block->context['commentId'] ) ) {
$author_id = isset( $attributes['userId'] ) ? $attributes['userId'] : get_post_field( 'post_author', $block->context['postId'] );
@@ -89,8 +41,8 @@ function render_block_core_avatar( $attributes, $content, $block ) {
'',
$alt,
array(
- 'extra_attr' => isset( $image_styles ) ? sprintf( ' style="%s"', safecss_filter_attr( implode( ' ', $image_styles ) ) ) : '',
- 'class' => "wp-block-avatar__image $image_classes ",
+ 'extra_attr' => $image_styles,
+ 'class' => $image_classes,
)
);
if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) {
@@ -116,8 +68,8 @@ function render_block_core_avatar( $attributes, $content, $block ) {
'',
$alt,
array(
- 'extra_attr' => isset( $image_styles ) ? sprintf( ' style="%s"', safecss_filter_attr( implode( ' ', $image_styles ) ) ) : '',
- 'class' => "wp-block-avatar__image $image_classes",
+ 'extra_attr' => $image_styles,
+ 'class' => $image_classes,
)
);
if ( isset( $attributes['isLink'] ) && $attributes['isLink'] && isset( $comment->comment_author_url ) && '' !== $comment->comment_author_url ) {
@@ -132,6 +84,58 @@ function render_block_core_avatar( $attributes, $content, $block ) {
return sprintf( '
%2s
', $wrapper_attributes, $avatar_block );
}
+/**
+ * Generates class names and styles to apply the border support styles for
+ * the Avatar block.
+ *
+ * @param array $attributes The block attributes.
+ * @return array The border-related classnames and styles for the block.
+ */
+function get_block_core_avatar_border_attributes( $attributes ) {
+ $border_styles = array();
+ $sides = array( 'top', 'right', 'bottom', 'left' );
+
+ // Border radius.
+ if ( isset( $attributes['style']['border']['radius'] ) ) {
+ $border_styles['radius'] = $attributes['style']['border']['radius'];
+ }
+
+ // Border style.
+ if ( isset( $attributes['style']['border']['style'] ) ) {
+ $border_styles['style'] = $attributes['style']['border']['style'];
+ }
+
+ // Border width.
+ if ( isset( $attributes['style']['border']['width'] ) ) {
+ $border_styles['width'] = $attributes['style']['border']['width'];
+ }
+
+ // Border color.
+ $preset_color = array_key_exists( 'borderColor', $attributes ) ? "var:preset|color|{$attributes['borderColor']}" : null;
+ $custom_color = _wp_array_get( $attributes, array( 'style', 'border', 'color' ), null );
+ $border_styles['color'] = $preset_color ? $preset_color : $custom_color;
+
+ // Individual border styles e.g. top, left etc.
+ foreach ( $sides as $side ) {
+ $border = _wp_array_get( $attributes, array( 'style', 'border', $side ), null );
+ $border_styles[ $side ] = array(
+ 'color' => isset( $border['color'] ) ? $border['color'] : null,
+ 'style' => isset( $border['style'] ) ? $border['style'] : null,
+ 'width' => isset( $border['width'] ) ? $border['width'] : null,
+ );
+ }
+
+ $styles = wp_style_engine_get_styles( array( 'border' => $border_styles ) );
+ $attributes = array();
+ if ( ! empty( $styles['classnames'] ) ) {
+ $attributes['class'] = $styles['classnames'];
+ }
+ if ( ! empty( $styles['css'] ) ) {
+ $attributes['style'] = $styles['css'];
+ }
+ return $attributes;
+}
+
/**
* Registers the `core/avatar` block on the server.
*/
diff --git a/src/wp-includes/blocks/avatar/block.json b/src/wp-includes/blocks/avatar/block.json
index 690ef358a0..12e81d68aa 100644
--- a/src/wp-includes/blocks/avatar/block.json
+++ b/src/wp-includes/blocks/avatar/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/avatar",
"title": "Avatar",
"category": "theme",
@@ -48,6 +48,6 @@
"__experimentalDuotone": "img"
}
},
- "editorStyle": "wp-block-avatar",
+ "editorStyle": "wp-block-avatar-editor",
"style": "wp-block-avatar"
}
diff --git a/src/wp-includes/blocks/block/block.json b/src/wp-includes/blocks/block/block.json
index f472fd0f47..5846e7ead0 100644
--- a/src/wp-includes/blocks/block/block.json
+++ b/src/wp-includes/blocks/block/block.json
@@ -1,8 +1,8 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/block",
- "title": "Reusable block",
+ "title": "Pattern",
"category": "reusable",
"description": "Create and save content to reuse across your site. Update the block, and the changes apply everywhere it’s used.",
"textdomain": "default",
diff --git a/src/wp-includes/blocks/blocks-json.php b/src/wp-includes/blocks/blocks-json.php
index 52240142ae..4a1bdf9cef 100644
--- a/src/wp-includes/blocks/blocks-json.php
+++ b/src/wp-includes/blocks/blocks-json.php
@@ -1 +1,5880 @@
- array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/archives', 'title' => 'Archives', 'category' => 'widgets', 'description' => 'Display a date archive of your posts.', 'textdomain' => 'default', 'attributes' => array('displayAsDropdown' => array('type' => 'boolean', 'default' => false), 'showLabel' => array('type' => 'boolean', 'default' => true), 'showPostCounts' => array('type' => 'boolean', 'default' => false), 'type' => array('type' => 'string', 'default' => 'monthly')), 'supports' => array('align' => true, 'html' => false, 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-archives-editor'), 'audio' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/audio', 'title' => 'Audio', 'category' => 'media', 'description' => 'Embed a simple audio player.', 'keywords' => array('music', 'sound', 'podcast', 'recording'), 'textdomain' => 'default', 'attributes' => array('src' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'src', '__experimentalRole' => 'content'), 'caption' => array('type' => 'string', 'source' => 'html', 'selector' => 'figcaption', '__experimentalRole' => 'content'), 'id' => array('type' => 'number', '__experimentalRole' => 'content'), 'autoplay' => array('type' => 'boolean', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'autoplay'), 'loop' => array('type' => 'boolean', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'loop'), 'preload' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'preload')), 'supports' => array('anchor' => true, 'align' => true, 'spacing' => array('margin' => true, 'padding' => true)), 'editorStyle' => 'wp-block-audio-editor', 'style' => 'wp-block-audio'), 'avatar' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/avatar', 'title' => 'Avatar', 'category' => 'theme', 'description' => 'Add a user’s avatar.', 'textdomain' => 'default', 'attributes' => array('userId' => array('type' => 'number'), 'size' => array('type' => 'number', 'default' => 96), 'isLink' => array('type' => 'boolean', 'default' => false), 'linkTarget' => array('type' => 'string', 'default' => '_self')), 'usesContext' => array('postType', 'postId', 'commentId'), 'supports' => array('html' => false, 'align' => true, 'alignWide' => false, 'spacing' => array('margin' => true, 'padding' => true), '__experimentalBorder' => array('__experimentalSkipSerialization' => true, 'radius' => true, 'width' => true, 'color' => true, 'style' => true, '__experimentalDefaultControls' => array('radius' => true)), 'color' => array('text' => false, 'background' => false, '__experimentalDuotone' => 'img')), 'editorStyle' => 'wp-block-avatar', 'style' => 'wp-block-avatar'), 'block' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/block', 'title' => 'Reusable block', 'category' => 'reusable', 'description' => 'Create and save content to reuse across your site. Update the block, and the changes apply everywhere it’s used.', 'textdomain' => 'default', 'attributes' => array('ref' => array('type' => 'number')), 'supports' => array('customClassName' => false, 'html' => false, 'inserter' => false)), 'button' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/button', 'title' => 'Button', 'category' => 'design', 'parent' => array('core/buttons'), 'description' => 'Prompt visitors to take action with a button-style link.', 'keywords' => array('link'), 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string'), 'url' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'a', 'attribute' => 'href'), 'title' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'a', 'attribute' => 'title'), 'text' => array('type' => 'string', 'source' => 'html', 'selector' => 'a'), 'linkTarget' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'a', 'attribute' => 'target'), 'rel' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'a', 'attribute' => 'rel'), 'placeholder' => array('type' => 'string'), 'backgroundColor' => array('type' => 'string'), 'textColor' => array('type' => 'string'), 'gradient' => array('type' => 'string'), 'width' => array('type' => 'number')), 'supports' => array('anchor' => true, 'align' => false, 'alignWide' => false, 'color' => array('__experimentalSkipSerialization' => true, 'gradients' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)), 'reusable' => false, 'shadow' => true, 'spacing' => array('__experimentalSkipSerialization' => true, 'padding' => array('horizontal', 'vertical'), '__experimentalDefaultControls' => array('padding' => true)), '__experimentalBorder' => array('radius' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array('radius' => true)), '__experimentalSelector' => '.wp-block-button .wp-block-button__link'), 'styles' => array(array('name' => 'fill', 'label' => 'Fill', 'isDefault' => true), array('name' => 'outline', 'label' => 'Outline')), 'editorStyle' => 'wp-block-button-editor', 'style' => 'wp-block-button'), 'buttons' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/buttons', 'title' => 'Buttons', 'category' => 'design', 'description' => 'Prompt visitors to take action with a group of button-style links.', 'keywords' => array('link'), 'textdomain' => 'default', 'supports' => array('anchor' => true, 'align' => array('wide', 'full'), '__experimentalExposeControlsToChildren' => true, 'spacing' => array('blockGap' => true, 'margin' => array('top', 'bottom'), '__experimentalDefaultControls' => array('blockGap' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)), '__experimentalLayout' => array('allowSwitching' => false, 'allowInheriting' => false, 'default' => array('type' => 'flex'))), 'editorStyle' => 'wp-block-buttons-editor', 'style' => 'wp-block-buttons'), 'calendar' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/calendar', 'title' => 'Calendar', 'category' => 'widgets', 'description' => 'A calendar of your site’s posts.', 'keywords' => array('posts', 'archive'), 'textdomain' => 'default', 'attributes' => array('month' => array('type' => 'integer'), 'year' => array('type' => 'integer')), 'supports' => array('align' => true, 'color' => array('link' => true, '__experimentalSkipSerialization' => array('text', 'background'), '__experimentalDefaultControls' => array('background' => true, 'text' => true), '__experimentalSelector' => 'table, th'), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'style' => 'wp-block-calendar'), 'categories' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/categories', 'title' => 'Categories List', 'category' => 'widgets', 'description' => 'Display a list of all categories.', 'textdomain' => 'default', 'attributes' => array('displayAsDropdown' => array('type' => 'boolean', 'default' => false), 'showHierarchy' => array('type' => 'boolean', 'default' => false), 'showPostCounts' => array('type' => 'boolean', 'default' => false), 'showOnlyTopLevel' => array('type' => 'boolean', 'default' => false), 'showEmpty' => array('type' => 'boolean', 'default' => false)), 'supports' => array('align' => true, 'html' => false, 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-categories-editor', 'style' => 'wp-block-categories'), 'code' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/code', 'title' => 'Code', 'category' => 'text', 'description' => 'Display code snippets that respect your spacing and tabs.', 'textdomain' => 'default', 'attributes' => array('content' => array('type' => 'string', 'source' => 'html', 'selector' => 'code')), 'supports' => array('anchor' => true, 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)), 'spacing' => array('margin' => array('top', 'bottom'), 'padding' => true), '__experimentalBorder' => array('radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array('width' => true, 'color' => true)), 'color' => array('text' => true, 'background' => true, 'gradients' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true))), 'style' => 'wp-block-code'), 'column' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/column', 'title' => 'Column', 'category' => 'text', 'parent' => array('core/columns'), 'description' => 'A single column within a columns block.', 'textdomain' => 'default', 'attributes' => array('verticalAlignment' => array('type' => 'string'), 'width' => array('type' => 'string'), 'allowedBlocks' => array('type' => 'array'), 'templateLock' => array('type' => array('string', 'boolean'), 'enum' => array('all', 'insert', 'contentOnly', false))), 'supports' => array('anchor' => true, 'reusable' => false, 'html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('blockGap' => true, 'padding' => true, '__experimentalDefaultControls' => array('padding' => true)), '__experimentalBorder' => array('color' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array('color' => true, 'style' => true, 'width' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)), '__experimentalLayout' => true)), 'columns' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/columns', 'title' => 'Columns', 'category' => 'design', 'description' => 'Display content in multiple columns, with blocks added to each column.', 'textdomain' => 'default', 'attributes' => array('verticalAlignment' => array('type' => 'string'), 'isStackedOnMobile' => array('type' => 'boolean', 'default' => true)), 'supports' => array('anchor' => true, 'align' => array('wide', 'full'), 'html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('blockGap' => array('__experimentalDefault' => '2em', 'sides' => array('horizontal', 'vertical')), 'margin' => array('top', 'bottom'), 'padding' => true, '__experimentalDefaultControls' => array('padding' => true)), '__experimentalLayout' => array('allowSwitching' => false, 'allowInheriting' => false, 'allowEditing' => false, 'default' => array('type' => 'flex', 'flexWrap' => 'nowrap')), '__experimentalBorder' => array('color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array('color' => true, 'radius' => true, 'style' => true, 'width' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-columns-editor', 'style' => 'wp-block-columns'), 'comment-author-name' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comment-author-name', 'title' => 'Comment Author Name', 'category' => 'theme', 'ancestor' => array('core/comment-template'), 'description' => 'Displays the name of the author of the comment.', 'textdomain' => 'default', 'attributes' => array('isLink' => array('type' => 'boolean', 'default' => true), 'linkTarget' => array('type' => 'string', 'default' => '_self'), 'textAlign' => array('type' => 'string')), 'usesContext' => array('commentId'), 'supports' => array('html' => false, 'spacing' => array('margin' => true, 'padding' => true), 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'comment-content' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comment-content', 'title' => 'Comment Content', 'category' => 'theme', 'ancestor' => array('core/comment-template'), 'description' => 'Displays the contents of a comment.', 'textdomain' => 'default', 'usesContext' => array('commentId'), 'attributes' => array('textAlign' => array('type' => 'string')), 'supports' => array('color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)), 'spacing' => array('padding' => array('horizontal', 'vertical'), '__experimentalDefaultControls' => array('padding' => true)), 'html' => false)), 'comment-date' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comment-date', 'title' => 'Comment Date', 'category' => 'theme', 'ancestor' => array('core/comment-template'), 'description' => 'Displays the date on which the comment was posted.', 'textdomain' => 'default', 'attributes' => array('format' => array('type' => 'string'), 'isLink' => array('type' => 'boolean', 'default' => true)), 'usesContext' => array('commentId'), 'supports' => array('html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'comment-edit-link' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comment-edit-link', 'title' => 'Comment Edit Link', 'category' => 'theme', 'ancestor' => array('core/comment-template'), 'description' => 'Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.', 'textdomain' => 'default', 'usesContext' => array('commentId'), 'attributes' => array('linkTarget' => array('type' => 'string', 'default' => '_self'), 'textAlign' => array('type' => 'string')), 'supports' => array('html' => false, 'color' => array('link' => true, 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array('background' => true, 'link' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'comment-reply-link' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comment-reply-link', 'title' => 'Comment Reply Link', 'category' => 'theme', 'ancestor' => array('core/comment-template'), 'description' => 'Displays a link to reply to a comment.', 'textdomain' => 'default', 'usesContext' => array('commentId'), 'attributes' => array('textAlign' => array('type' => 'string')), 'supports' => array('color' => array('gradients' => true, 'link' => true, 'text' => false, '__experimentalDefaultControls' => array('background' => true, 'link' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)), 'html' => false)), 'comment-template' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comment-template', 'title' => 'Comment Template', 'category' => 'design', 'parent' => array('core/comments'), 'description' => 'Contains the block elements used to display a comment, like the title, date, author, avatar and more.', 'textdomain' => 'default', 'usesContext' => array('postId'), 'supports' => array('align' => true, 'html' => false, 'reusable' => false, 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'style' => 'wp-block-comment-template'), 'comments' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comments', 'title' => 'Comments', 'category' => 'theme', 'description' => 'An advanced block that allows displaying post comments using different visual configurations.', 'textdomain' => 'default', 'attributes' => array('tagName' => array('type' => 'string', 'default' => 'div'), 'legacy' => array('type' => 'boolean', 'default' => false)), 'supports' => array('align' => array('wide', 'full'), 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), 'html' => false, 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-comments-editor', 'usesContext' => array('postId', 'postType')), 'comments-pagination' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comments-pagination', 'title' => 'Comments Pagination', 'category' => 'theme', 'parent' => array('core/comments'), 'description' => 'Displays a paginated navigation to next/previous set of comments, when applicable.', 'textdomain' => 'default', 'attributes' => array('paginationArrow' => array('type' => 'string', 'default' => 'none')), 'providesContext' => array('comments/paginationArrow' => 'paginationArrow'), 'supports' => array('align' => true, 'reusable' => false, 'html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), '__experimentalLayout' => array('allowSwitching' => false, 'allowInheriting' => false, 'default' => array('type' => 'flex')), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-comments-pagination-editor', 'style' => 'wp-block-comments-pagination'), 'comments-pagination-next' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comments-pagination-next', 'title' => 'Comments Next Page', 'category' => 'theme', 'parent' => array('core/comments-pagination'), 'description' => 'Displays the next comment\'s page link.', 'textdomain' => 'default', 'attributes' => array('label' => array('type' => 'string')), 'usesContext' => array('postId', 'comments/paginationArrow'), 'supports' => array('reusable' => false, 'html' => false, 'color' => array('gradients' => true, 'text' => false, '__experimentalDefaultControls' => array('background' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'comments-pagination-numbers' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comments-pagination-numbers', 'title' => 'Comments Page Numbers', 'category' => 'theme', 'parent' => array('core/comments-pagination'), 'description' => 'Displays a list of page numbers for comments pagination.', 'textdomain' => 'default', 'usesContext' => array('postId'), 'supports' => array('reusable' => false, 'html' => false, 'color' => array('gradients' => true, 'text' => false, '__experimentalDefaultControls' => array('background' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'comments-pagination-previous' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comments-pagination-previous', 'title' => 'Comments Previous Page', 'category' => 'theme', 'parent' => array('core/comments-pagination'), 'description' => 'Displays the previous comment\'s page link.', 'textdomain' => 'default', 'attributes' => array('label' => array('type' => 'string')), 'usesContext' => array('postId', 'comments/paginationArrow'), 'supports' => array('reusable' => false, 'html' => false, 'color' => array('gradients' => true, 'text' => false, '__experimentalDefaultControls' => array('background' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'comments-title' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/comments-title', 'title' => 'Comments Title', 'category' => 'theme', 'ancestor' => array('core/comments'), 'description' => 'Displays a title with the number of comments', 'textdomain' => 'default', 'usesContext' => array('postId', 'postType'), 'attributes' => array('textAlign' => array('type' => 'string'), 'showPostTitle' => array('type' => 'boolean', 'default' => true), 'showCommentsCount' => array('type' => 'boolean', 'default' => true), 'level' => array('type' => 'number', 'default' => 2)), 'supports' => array('anchor' => false, 'align' => true, 'html' => false, '__experimentalBorder' => array('radius' => true, 'color' => true, 'width' => true, 'style' => true), 'color' => array('gradients' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true)))), 'cover' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/cover', 'title' => 'Cover', 'category' => 'media', 'description' => 'Add an image or video with a text overlay — great for headers.', 'textdomain' => 'default', 'attributes' => array('url' => array('type' => 'string'), 'useFeaturedImage' => array('type' => 'boolean', 'default' => false), 'id' => array('type' => 'number'), 'alt' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'alt', 'default' => ''), 'hasParallax' => array('type' => 'boolean', 'default' => false), 'isRepeated' => array('type' => 'boolean', 'default' => false), 'dimRatio' => array('type' => 'number', 'default' => 100), 'overlayColor' => array('type' => 'string'), 'customOverlayColor' => array('type' => 'string'), 'backgroundType' => array('type' => 'string', 'default' => 'image'), 'focalPoint' => array('type' => 'object'), 'minHeight' => array('type' => 'number'), 'minHeightUnit' => array('type' => 'string'), 'gradient' => array('type' => 'string'), 'customGradient' => array('type' => 'string'), 'contentPosition' => array('type' => 'string'), 'isDark' => array('type' => 'boolean', 'default' => true), 'allowedBlocks' => array('type' => 'array'), 'templateLock' => array('type' => array('string', 'boolean'), 'enum' => array('all', 'insert', 'contentOnly', false)), 'tagName' => array('type' => 'string', 'default' => 'div')), 'usesContext' => array('postId', 'postType'), 'supports' => array('anchor' => true, 'align' => true, 'html' => false, 'spacing' => array('padding' => true, 'margin' => array('top', 'bottom'), '__experimentalDefaultControls' => array('padding' => true)), 'color' => array('__experimentalDuotone' => '> .wp-block-cover__image-background, > .wp-block-cover__video-background', 'text' => false, 'background' => false), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-cover-editor', 'style' => 'wp-block-cover'), 'embed' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/embed', 'title' => 'Embed', 'category' => 'embed', 'description' => 'Add a block that displays content pulled from other sites, like Twitter or YouTube.', 'textdomain' => 'default', 'attributes' => array('url' => array('type' => 'string', '__experimentalRole' => 'content'), 'caption' => array('type' => 'string', 'source' => 'html', 'selector' => 'figcaption', '__experimentalRole' => 'content'), 'type' => array('type' => 'string', '__experimentalRole' => 'content'), 'providerNameSlug' => array('type' => 'string', '__experimentalRole' => 'content'), 'allowResponsive' => array('type' => 'boolean', 'default' => true), 'responsive' => array('type' => 'boolean', 'default' => false, '__experimentalRole' => 'content'), 'previewable' => array('type' => 'boolean', 'default' => true, '__experimentalRole' => 'content')), 'supports' => array('align' => true), 'editorStyle' => 'wp-block-embed-editor', 'style' => 'wp-block-embed'), 'file' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/file', 'title' => 'File', 'category' => 'media', 'description' => 'Add a link to a downloadable file.', 'keywords' => array('document', 'pdf', 'download'), 'textdomain' => 'default', 'attributes' => array('id' => array('type' => 'number'), 'href' => array('type' => 'string'), 'fileId' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'a:not([download])', 'attribute' => 'id'), 'fileName' => array('type' => 'string', 'source' => 'html', 'selector' => 'a:not([download])'), 'textLinkHref' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'a:not([download])', 'attribute' => 'href'), 'textLinkTarget' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'a:not([download])', 'attribute' => 'target'), 'showDownloadButton' => array('type' => 'boolean', 'default' => true), 'downloadButtonText' => array('type' => 'string', 'source' => 'html', 'selector' => 'a[download]'), 'displayPreview' => array('type' => 'boolean'), 'previewHeight' => array('type' => 'number', 'default' => 600)), 'supports' => array('anchor' => true, 'align' => true), 'viewScript' => 'file:./view.min.js', 'editorStyle' => 'wp-block-file-editor', 'style' => 'wp-block-file'), 'freeform' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/freeform', 'title' => 'Classic', 'category' => 'text', 'description' => 'Use the classic WordPress editor.', 'textdomain' => 'default', 'attributes' => array('content' => array('type' => 'string', 'source' => 'html')), 'supports' => array('className' => false, 'customClassName' => false, 'reusable' => false), 'editorStyle' => 'wp-block-freeform-editor'), 'gallery' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/gallery', 'title' => 'Gallery', 'category' => 'media', 'description' => 'Display multiple images in a rich gallery.', 'keywords' => array('images', 'photos'), 'textdomain' => 'default', 'attributes' => array('images' => array('type' => 'array', 'default' => array(), 'source' => 'query', 'selector' => '.blocks-gallery-item', 'query' => array('url' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'src'), 'fullUrl' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'data-full-url'), 'link' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'data-link'), 'alt' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'alt', 'default' => ''), 'id' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'data-id'), 'caption' => array('type' => 'string', 'source' => 'html', 'selector' => '.blocks-gallery-item__caption'))), 'ids' => array('type' => 'array', 'items' => array('type' => 'number'), 'default' => array()), 'shortCodeTransforms' => array('type' => 'array', 'default' => array(), 'items' => array('type' => 'object')), 'columns' => array('type' => 'number', 'minimum' => 1, 'maximum' => 8), 'caption' => array('type' => 'string', 'source' => 'html', 'selector' => '.blocks-gallery-caption'), 'imageCrop' => array('type' => 'boolean', 'default' => true), 'fixedHeight' => array('type' => 'boolean', 'default' => true), 'linkTarget' => array('type' => 'string'), 'linkTo' => array('type' => 'string'), 'sizeSlug' => array('type' => 'string', 'default' => 'large'), 'allowResize' => array('type' => 'boolean', 'default' => false)), 'providesContext' => array('allowResize' => 'allowResize', 'imageCrop' => 'imageCrop', 'fixedHeight' => 'fixedHeight'), 'supports' => array('anchor' => true, 'align' => true, 'html' => false, 'units' => array('px', 'em', 'rem', 'vh', 'vw'), 'spacing' => array('margin' => true, 'padding' => true, 'blockGap' => array('horizontal', 'vertical'), '__experimentalSkipSerialization' => array('blockGap'), '__experimentalDefaultControls' => array('blockGap' => true)), 'color' => array('text' => false, 'background' => true, 'gradients' => true), '__experimentalLayout' => array('allowSwitching' => false, 'allowInheriting' => false, 'allowEditing' => false, 'default' => array('type' => 'flex'))), 'editorStyle' => 'wp-block-gallery-editor', 'style' => 'wp-block-gallery'), 'group' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/group', 'title' => 'Group', 'category' => 'design', 'description' => 'Gather blocks in a layout container.', 'keywords' => array('container', 'wrapper', 'row', 'section'), 'textdomain' => 'default', 'attributes' => array('tagName' => array('type' => 'string', 'default' => 'div'), 'templateLock' => array('type' => array('string', 'boolean'), 'enum' => array('all', 'insert', 'contentOnly', false))), 'supports' => array('__experimentalOnEnter' => true, '__experimentalSettings' => true, 'align' => array('wide', 'full'), 'anchor' => true, 'ariaLabel' => true, 'html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('margin' => array('top', 'bottom'), 'padding' => true, 'blockGap' => true, '__experimentalDefaultControls' => array('padding' => true, 'blockGap' => true)), 'dimensions' => array('minHeight' => true), '__experimentalBorder' => array('color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array('color' => true, 'radius' => true, 'style' => true, 'width' => true)), 'position' => array('sticky' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)), '__experimentalLayout' => array('allowSizingOnChildren' => true)), 'editorStyle' => 'wp-block-group-editor', 'style' => 'wp-block-group'), 'heading' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/heading', 'title' => 'Heading', 'category' => 'text', 'description' => 'Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.', 'keywords' => array('title', 'subtitle'), 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string'), 'content' => array('type' => 'string', 'source' => 'html', 'selector' => 'h1,h2,h3,h4,h5,h6', 'default' => '', '__experimentalRole' => 'content'), 'level' => array('type' => 'number', 'default' => 2), 'placeholder' => array('type' => 'string')), 'supports' => array('align' => array('wide', 'full'), 'anchor' => true, 'className' => true, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array('fontSize' => true, 'fontAppearance' => true, 'textTransform' => true)), '__unstablePasteTextInline' => true, '__experimentalSlashInserter' => true), 'editorStyle' => 'wp-block-heading-editor', 'style' => 'wp-block-heading'), 'home-link' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/home-link', 'category' => 'design', 'parent' => array('core/navigation'), 'title' => 'Home Link', 'description' => 'Create a link that always points to the homepage of the site. Usually not necessary if there is already a site title link present in the header.', 'textdomain' => 'default', 'attributes' => array('label' => array('type' => 'string')), 'usesContext' => array('textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'fontSize', 'customFontSize', 'style'), 'supports' => array('reusable' => false, 'html' => false, 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-home-link-editor', 'style' => 'wp-block-home-link'), 'html' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/html', 'title' => 'Custom HTML', 'category' => 'widgets', 'description' => 'Add custom HTML code and preview it as you edit.', 'keywords' => array('embed'), 'textdomain' => 'default', 'attributes' => array('content' => array('type' => 'string', 'source' => 'raw')), 'supports' => array('customClassName' => false, 'className' => false, 'html' => false), 'editorStyle' => 'wp-block-html-editor'), 'image' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/image', 'title' => 'Image', 'category' => 'media', 'usesContext' => array('allowResize', 'imageCrop', 'fixedHeight'), 'description' => 'Insert an image to make a visual statement.', 'keywords' => array('img', 'photo', 'picture'), 'textdomain' => 'default', 'attributes' => array('align' => array('type' => 'string'), 'url' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'src', '__experimentalRole' => 'content'), 'alt' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'alt', 'default' => '', '__experimentalRole' => 'content'), 'caption' => array('type' => 'string', 'source' => 'html', 'selector' => 'figcaption', '__experimentalRole' => 'content'), 'title' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'title', '__experimentalRole' => 'content'), 'href' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'href', '__experimentalRole' => 'content'), 'rel' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'rel'), 'linkClass' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'class'), 'id' => array('type' => 'number', '__experimentalRole' => 'content'), 'width' => array('type' => 'number'), 'height' => array('type' => 'number'), 'sizeSlug' => array('type' => 'string'), 'linkDestination' => array('type' => 'string'), 'linkTarget' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'target')), 'supports' => array('anchor' => true, 'color' => array('__experimentalDuotone' => 'img, .components-placeholder', 'text' => false, 'background' => false), '__experimentalBorder' => array('color' => true, 'radius' => true, 'width' => true, '__experimentalSelector' => 'img, .wp-block-image__crop-area', '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array('color' => true, 'radius' => true, 'width' => true))), 'styles' => array(array('name' => 'default', 'label' => 'Default', 'isDefault' => true), array('name' => 'rounded', 'label' => 'Rounded')), 'editorStyle' => 'wp-block-image-editor', 'style' => 'wp-block-image'), 'latest-comments' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/latest-comments', 'title' => 'Latest Comments', 'category' => 'widgets', 'description' => 'Display a list of your most recent comments.', 'keywords' => array('recent comments'), 'textdomain' => 'default', 'attributes' => array('commentsToShow' => array('type' => 'number', 'default' => 5, 'minimum' => 1, 'maximum' => 100), 'displayAvatar' => array('type' => 'boolean', 'default' => true), 'displayDate' => array('type' => 'boolean', 'default' => true), 'displayExcerpt' => array('type' => 'boolean', 'default' => true)), 'supports' => array('align' => true, 'html' => false, 'spacing' => array('margin' => true, 'padding' => true)), 'editorStyle' => 'wp-block-latest-comments-editor', 'style' => 'wp-block-latest-comments'), 'latest-posts' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/latest-posts', 'title' => 'Latest Posts', 'category' => 'widgets', 'description' => 'Display a list of your most recent posts.', 'keywords' => array('recent posts'), 'textdomain' => 'default', 'attributes' => array('categories' => array('type' => 'array', 'items' => array('type' => 'object')), 'selectedAuthor' => array('type' => 'number'), 'postsToShow' => array('type' => 'number', 'default' => 5), 'displayPostContent' => array('type' => 'boolean', 'default' => false), 'displayPostContentRadio' => array('type' => 'string', 'default' => 'excerpt'), 'excerptLength' => array('type' => 'number', 'default' => 55), 'displayAuthor' => array('type' => 'boolean', 'default' => false), 'displayPostDate' => array('type' => 'boolean', 'default' => false), 'postLayout' => array('type' => 'string', 'default' => 'list'), 'columns' => array('type' => 'number', 'default' => 3), 'order' => array('type' => 'string', 'default' => 'desc'), 'orderBy' => array('type' => 'string', 'default' => 'date'), 'displayFeaturedImage' => array('type' => 'boolean', 'default' => false), 'featuredImageAlign' => array('type' => 'string', 'enum' => array('left', 'center', 'right')), 'featuredImageSizeSlug' => array('type' => 'string', 'default' => 'thumbnail'), 'featuredImageSizeWidth' => array('type' => 'number', 'default' => null), 'featuredImageSizeHeight' => array('type' => 'number', 'default' => null), 'addLinkToFeaturedImage' => array('type' => 'boolean', 'default' => false)), 'supports' => array('align' => true, 'html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-latest-posts-editor', 'style' => 'wp-block-latest-posts'), 'legacy-widget' => array('apiVersion' => 2, 'name' => 'core/legacy-widget', 'title' => 'Legacy Widget', 'category' => 'widgets', 'description' => 'Display a legacy widget.', 'textdomain' => 'default', 'attributes' => array('id' => array('type' => 'string', 'default' => null), 'idBase' => array('type' => 'string', 'default' => null), 'instance' => array('type' => 'object', 'default' => null)), 'supports' => array('html' => false, 'customClassName' => false, 'reusable' => false), 'editorStyle' => 'wp-block-legacy-widget-editor'), 'list' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/list', 'title' => 'List', 'category' => 'text', 'description' => 'Create a bulleted or numbered list.', 'keywords' => array('bullet list', 'ordered list', 'numbered list'), 'textdomain' => 'default', 'attributes' => array('ordered' => array('type' => 'boolean', 'default' => false, '__experimentalRole' => 'content'), 'values' => array('type' => 'string', 'source' => 'html', 'selector' => 'ol,ul', 'multiline' => 'li', '__unstableMultilineWrapperTags' => array('ol', 'ul'), 'default' => '', '__experimentalRole' => 'content'), 'type' => array('type' => 'string'), 'start' => array('type' => 'number'), 'reversed' => array('type' => 'boolean'), 'placeholder' => array('type' => 'string')), 'supports' => array('anchor' => true, 'className' => false, 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)), 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('margin' => true, 'padding' => true), '__unstablePasteTextInline' => true, '__experimentalSelector' => 'ol,ul', '__experimentalSlashInserter' => true), 'editorStyle' => 'wp-block-list-editor', 'style' => 'wp-block-list'), 'list-item' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/list-item', 'title' => 'List item', 'category' => 'text', 'parent' => array('core/list'), 'description' => 'Create a list item.', 'textdomain' => 'default', 'attributes' => array('placeholder' => array('type' => 'string'), 'content' => array('type' => 'string', 'source' => 'html', 'selector' => 'li', 'default' => '', '__experimentalRole' => 'content')), 'supports' => array('className' => false, '__experimentalSelector' => 'li', 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'loginout' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/loginout', 'title' => 'Login/out', 'category' => 'theme', 'description' => 'Show login & logout links.', 'keywords' => array('login', 'logout', 'form'), 'textdomain' => 'default', 'attributes' => array('displayLoginAsForm' => array('type' => 'boolean', 'default' => false), 'redirectToCurrent' => array('type' => 'boolean', 'default' => true)), 'supports' => array('className' => true, 'typography' => array('fontSize' => false))), 'media-text' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/media-text', 'title' => 'Media & Text', 'category' => 'media', 'description' => 'Set media and words side-by-side for a richer layout.', 'keywords' => array('image', 'video'), 'textdomain' => 'default', 'attributes' => array('align' => array('type' => 'string', 'default' => 'wide'), 'mediaAlt' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'figure img', 'attribute' => 'alt', 'default' => '', '__experimentalRole' => 'content'), 'mediaPosition' => array('type' => 'string', 'default' => 'left'), 'mediaId' => array('type' => 'number', '__experimentalRole' => 'content'), 'mediaUrl' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'figure video,figure img', 'attribute' => 'src', '__experimentalRole' => 'content'), 'mediaLink' => array('type' => 'string'), 'linkDestination' => array('type' => 'string'), 'linkTarget' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'target'), 'href' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'href', '__experimentalRole' => 'content'), 'rel' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'rel'), 'linkClass' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'class'), 'mediaType' => array('type' => 'string', '__experimentalRole' => 'content'), 'mediaWidth' => array('type' => 'number', 'default' => 50), 'mediaSizeSlug' => array('type' => 'string'), 'isStackedOnMobile' => array('type' => 'boolean', 'default' => true), 'verticalAlignment' => array('type' => 'string'), 'imageFill' => array('type' => 'boolean'), 'focalPoint' => array('type' => 'object')), 'supports' => array('anchor' => true, 'align' => array('wide', 'full'), 'html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-media-text-editor', 'style' => 'wp-block-media-text'), 'missing' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/missing', 'title' => 'Unsupported', 'category' => 'text', 'description' => 'Your site doesn’t include support for this block.', 'textdomain' => 'default', 'attributes' => array('originalName' => array('type' => 'string'), 'originalUndelimitedContent' => array('type' => 'string'), 'originalContent' => array('type' => 'string', 'source' => 'html')), 'supports' => array('className' => false, 'customClassName' => false, 'inserter' => false, 'html' => false, 'reusable' => false)), 'more' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/more', 'title' => 'More', 'category' => 'design', 'description' => 'Content before this block will be shown in the excerpt on your archives page.', 'keywords' => array('read more'), 'textdomain' => 'default', 'attributes' => array('customText' => array('type' => 'string'), 'noTeaser' => array('type' => 'boolean', 'default' => false)), 'supports' => array('customClassName' => false, 'className' => false, 'html' => false, 'multiple' => false), 'editorStyle' => 'wp-block-more-editor'), 'navigation' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/navigation', 'title' => 'Navigation', 'category' => 'theme', 'description' => 'A collection of blocks that allow visitors to get around your site.', 'keywords' => array('menu', 'navigation', 'links'), 'textdomain' => 'default', 'attributes' => array('ref' => array('type' => 'number'), 'textColor' => array('type' => 'string'), 'customTextColor' => array('type' => 'string'), 'rgbTextColor' => array('type' => 'string'), 'backgroundColor' => array('type' => 'string'), 'customBackgroundColor' => array('type' => 'string'), 'rgbBackgroundColor' => array('type' => 'string'), 'showSubmenuIcon' => array('type' => 'boolean', 'default' => true), 'openSubmenusOnClick' => array('type' => 'boolean', 'default' => false), 'overlayMenu' => array('type' => 'string', 'default' => 'mobile'), 'icon' => array('type' => 'string', 'default' => 'handle'), 'hasIcon' => array('type' => 'boolean', 'default' => true), '__unstableLocation' => array('type' => 'string'), 'overlayBackgroundColor' => array('type' => 'string'), 'customOverlayBackgroundColor' => array('type' => 'string'), 'overlayTextColor' => array('type' => 'string'), 'customOverlayTextColor' => array('type' => 'string'), 'maxNestingLevel' => array('type' => 'number', 'default' => 5), 'templateLock' => array('type' => array('string', 'boolean'), 'enum' => array('all', 'insert', 'contentOnly', false))), 'providesContext' => array('textColor' => 'textColor', 'customTextColor' => 'customTextColor', 'backgroundColor' => 'backgroundColor', 'customBackgroundColor' => 'customBackgroundColor', 'overlayTextColor' => 'overlayTextColor', 'customOverlayTextColor' => 'customOverlayTextColor', 'overlayBackgroundColor' => 'overlayBackgroundColor', 'customOverlayBackgroundColor' => 'customOverlayBackgroundColor', 'fontSize' => 'fontSize', 'customFontSize' => 'customFontSize', 'showSubmenuIcon' => 'showSubmenuIcon', 'openSubmenusOnClick' => 'openSubmenusOnClick', 'style' => 'style', 'orientation' => 'orientation', 'maxNestingLevel' => 'maxNestingLevel'), 'supports' => array('align' => array('wide', 'full'), 'html' => false, 'inserter' => true, 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalTextTransform' => true, '__experimentalFontFamily' => true, '__experimentalLetterSpacing' => true, '__experimentalTextDecoration' => true, '__experimentalSkipSerialization' => array('textDecoration'), '__experimentalDefaultControls' => array('fontSize' => true)), 'spacing' => array('blockGap' => true, 'units' => array('px', 'em', 'rem', 'vh', 'vw'), '__experimentalDefaultControls' => array('blockGap' => true)), '__experimentalLayout' => array('allowSwitching' => false, 'allowInheriting' => false, 'allowVerticalAlignment' => false, 'allowSizingOnChildren' => true, 'default' => array('type' => 'flex')), '__experimentalStyle' => array('elements' => array('link' => array('color' => array('text' => 'inherit'))))), 'viewScript' => array('file:./view.min.js', 'file:./view-modal.min.js'), 'editorStyle' => 'wp-block-navigation-editor', 'style' => 'wp-block-navigation'), 'navigation-link' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/navigation-link', 'title' => 'Custom Link', 'category' => 'design', 'parent' => array('core/navigation'), 'description' => 'Add a page, link, or another item to your navigation.', 'textdomain' => 'default', 'attributes' => array('label' => array('type' => 'string'), 'type' => array('type' => 'string'), 'description' => array('type' => 'string'), 'rel' => array('type' => 'string'), 'id' => array('type' => 'number'), 'opensInNewTab' => array('type' => 'boolean', 'default' => false), 'url' => array('type' => 'string'), 'title' => array('type' => 'string'), 'kind' => array('type' => 'string'), 'isTopLevelLink' => array('type' => 'boolean')), 'usesContext' => array('textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'maxNestingLevel', 'style'), 'supports' => array('reusable' => false, 'html' => false, '__experimentalSlashInserter' => true, 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-navigation-link-editor', 'style' => 'wp-block-navigation-link'), 'navigation-submenu' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/navigation-submenu', 'title' => 'Submenu', 'category' => 'design', 'parent' => array('core/navigation'), 'description' => 'Add a submenu to your navigation.', 'textdomain' => 'default', 'attributes' => array('label' => array('type' => 'string'), 'type' => array('type' => 'string'), 'description' => array('type' => 'string'), 'rel' => array('type' => 'string'), 'id' => array('type' => 'number'), 'opensInNewTab' => array('type' => 'boolean', 'default' => false), 'url' => array('type' => 'string'), 'title' => array('type' => 'string'), 'kind' => array('type' => 'string'), 'isTopLevelItem' => array('type' => 'boolean')), 'usesContext' => array('textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'maxNestingLevel', 'openSubmenusOnClick', 'style'), 'supports' => array('reusable' => false, 'html' => false), 'editorStyle' => 'wp-block-navigation-submenu-editor', 'style' => 'wp-block-navigation-submenu'), 'nextpage' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/nextpage', 'title' => 'Page Break', 'category' => 'design', 'description' => 'Separate your content into a multi-page experience.', 'keywords' => array('next page', 'pagination'), 'parent' => array('core/post-content'), 'textdomain' => 'default', 'supports' => array('customClassName' => false, 'className' => false, 'html' => false), 'editorStyle' => 'wp-block-nextpage-editor'), 'page-list' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/page-list', 'title' => 'Page List', 'category' => 'widgets', 'description' => 'Display a list of all pages.', 'keywords' => array('menu', 'navigation'), 'textdomain' => 'default', 'attributes' => array('parentPageID' => array('type' => 'integer', 'default' => 0), 'isNested' => array('type' => 'boolean', 'default' => false)), 'usesContext' => array('textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'style', 'openSubmenusOnClick'), 'supports' => array('reusable' => false, 'html' => false, 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-page-list-editor', 'style' => 'wp-block-page-list'), 'page-list-item' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/page-list-item', 'title' => 'Page List Item', 'category' => 'widgets', 'parent' => array('core/page-list'), 'description' => 'Displays a page inside a list of all pages.', 'keywords' => array('page', 'menu', 'navigation'), 'textdomain' => 'default', 'attributes' => array('id' => array('type' => 'number'), 'label' => array('type' => 'string'), 'title' => array('type' => 'string'), 'link' => array('type' => 'string'), 'hasChildren' => array('type' => 'boolean')), 'usesContext' => array('textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'style', 'openSubmenusOnClick'), 'supports' => array('reusable' => false, 'html' => false, 'lock' => false, 'inserter' => false, '__experimentalToolbar' => false), 'editorStyle' => 'wp-block-page-list-editor', 'style' => 'wp-block-page-list'), 'paragraph' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/paragraph', 'title' => 'Paragraph', 'category' => 'text', 'description' => 'Start with the basic building block of all narrative.', 'keywords' => array('text'), 'textdomain' => 'default', 'attributes' => array('align' => array('type' => 'string'), 'content' => array('type' => 'string', 'source' => 'html', 'selector' => 'p', 'default' => '', '__experimentalRole' => 'content'), 'dropCap' => array('type' => 'boolean', 'default' => false), 'placeholder' => array('type' => 'string'), 'direction' => array('type' => 'string', 'enum' => array('ltr', 'rtl'))), 'supports' => array('anchor' => true, 'className' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalDefaultControls' => array('fontSize' => true)), '__experimentalSelector' => 'p', '__unstablePasteTextInline' => true), 'editorStyle' => 'wp-block-paragraph-editor', 'style' => 'wp-block-paragraph'), 'pattern' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/pattern', 'title' => 'Pattern', 'category' => 'theme', 'description' => 'Show a block pattern.', 'supports' => array('html' => false, 'inserter' => false), 'textdomain' => 'default', 'attributes' => array('slug' => array('type' => 'string'))), 'post-author' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-author', 'title' => 'Post Author', 'category' => 'theme', 'description' => 'Display post author details such as name, avatar, and bio.', 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string'), 'avatarSize' => array('type' => 'number', 'default' => 48), 'showAvatar' => array('type' => 'boolean', 'default' => true), 'showBio' => array('type' => 'boolean'), 'byline' => array('type' => 'string'), 'isLink' => array('type' => 'boolean', 'default' => false), 'linkTarget' => array('type' => 'string', 'default' => '_self')), 'usesContext' => array('postType', 'postId', 'queryId'), 'supports' => array('html' => false, 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)), 'color' => array('gradients' => true, 'link' => true, '__experimentalDuotone' => '.wp-block-post-author__avatar img', '__experimentalDefaultControls' => array('background' => true, 'text' => true))), 'editorStyle' => 'wp-block-post-author-editor', 'style' => 'wp-block-post-author'), 'post-author-biography' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-author-biography', 'title' => 'Post Author Biography', 'category' => 'theme', 'description' => 'The author biography.', 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string')), 'usesContext' => array('postType', 'postId'), 'supports' => array('spacing' => array('margin' => true, 'padding' => true), 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'post-author-name' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-author-name', 'title' => 'Post Author Name', 'category' => 'theme', 'description' => 'The author name.', 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string'), 'isLink' => array('type' => 'boolean', 'default' => false), 'linkTarget' => array('type' => 'string', 'default' => '_self')), 'usesContext' => array('postType', 'postId'), 'supports' => array('html' => false, 'spacing' => array('margin' => true, 'padding' => true), 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'post-comments-form' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-comments-form', 'title' => 'Post Comments Form', 'category' => 'theme', 'description' => 'Display a post\'s comments form.', 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string')), 'usesContext' => array('postId', 'postType'), 'supports' => array('html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-post-comments-form-editor', 'style' => array('wp-block-post-comments-form', 'wp-block-buttons', 'wp-block-button')), 'post-content' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-content', 'title' => 'Post Content', 'category' => 'theme', 'description' => 'Displays the contents of a post or page.', 'textdomain' => 'default', 'usesContext' => array('postId', 'postType', 'queryId'), 'supports' => array('align' => array('wide', 'full'), 'html' => false, '__experimentalLayout' => true, 'dimensions' => array('minHeight' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-post-content-editor'), 'post-date' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-date', 'title' => 'Post Date', 'category' => 'theme', 'description' => 'Add the date of this post.', 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string'), 'format' => array('type' => 'string'), 'isLink' => array('type' => 'boolean', 'default' => false), 'displayType' => array('type' => 'string', 'default' => 'date')), 'usesContext' => array('postId', 'postType', 'queryId'), 'supports' => array('html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'post-excerpt' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-excerpt', 'title' => 'Post Excerpt', 'category' => 'theme', 'description' => 'Display a post\'s excerpt.', 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string'), 'moreText' => array('type' => 'string'), 'showMoreOnNewLine' => array('type' => 'boolean', 'default' => true)), 'usesContext' => array('postId', 'postType', 'queryId'), 'supports' => array('html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-post-excerpt-editor', 'style' => 'wp-block-post-excerpt'), 'post-featured-image' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-featured-image', 'title' => 'Post Featured Image', 'category' => 'theme', 'description' => 'Display a post\'s featured image.', 'textdomain' => 'default', 'attributes' => array('isLink' => array('type' => 'boolean', 'default' => false), 'width' => array('type' => 'string'), 'height' => array('type' => 'string'), 'scale' => array('type' => 'string', 'default' => 'cover'), 'sizeSlug' => array('type' => 'string'), 'rel' => array('type' => 'string', 'attribute' => 'rel', 'default' => ''), 'linkTarget' => array('type' => 'string', 'default' => '_self'), 'overlayColor' => array('type' => 'string'), 'customOverlayColor' => array('type' => 'string'), 'dimRatio' => array('type' => 'number', 'default' => 0), 'gradient' => array('type' => 'string'), 'customGradient' => array('type' => 'string')), 'usesContext' => array('postId', 'postType', 'queryId'), 'supports' => array('align' => array('left', 'right', 'center', 'wide', 'full'), 'color' => array('__experimentalDuotone' => 'img, .wp-block-post-featured-image__placeholder, .components-placeholder__illustration, .components-placeholder::before', 'text' => false, 'background' => false), '__experimentalBorder' => array('color' => true, 'radius' => true, 'width' => true, '__experimentalSelector' => 'img, .block-editor-media-placeholder, .wp-block-post-featured-image__overlay', '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array('color' => true, 'radius' => true, 'width' => true)), 'html' => false, 'spacing' => array('margin' => true, 'padding' => true)), 'editorStyle' => 'wp-block-post-featured-image-editor', 'style' => 'wp-block-post-featured-image'), 'post-navigation-link' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-navigation-link', 'title' => 'Post Navigation Link', 'category' => 'theme', 'description' => 'Displays the next or previous post link that is adjacent to the current post.', 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string'), 'type' => array('type' => 'string', 'default' => 'next'), 'label' => array('type' => 'string'), 'showTitle' => array('type' => 'boolean', 'default' => false), 'linkLabel' => array('type' => 'boolean', 'default' => false), 'arrow' => array('type' => 'string', 'default' => 'none')), 'supports' => array('reusable' => false, 'html' => false, 'color' => array('link' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'style' => 'wp-block-post-navigation-link'), 'post-template' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-template', 'title' => 'Post Template', 'category' => 'theme', 'parent' => array('core/query'), 'description' => 'Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.', 'textdomain' => 'default', 'usesContext' => array('queryId', 'query', 'queryContext', 'displayLayout', 'templateSlug', 'previewPostType'), 'supports' => array('reusable' => false, 'html' => false, 'align' => true, '__experimentalLayout' => array('allowEditing' => false), 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'style' => 'wp-block-post-template', 'editorStyle' => 'wp-block-post-template-editor'), 'post-terms' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-terms', 'title' => 'Post Terms', 'category' => 'theme', 'description' => 'Post terms.', 'textdomain' => 'default', 'attributes' => array('term' => array('type' => 'string'), 'textAlign' => array('type' => 'string'), 'separator' => array('type' => 'string', 'default' => ', '), 'prefix' => array('type' => 'string', 'default' => ''), 'suffix' => array('type' => 'string', 'default' => '')), 'usesContext' => array('postId', 'postType'), 'supports' => array('html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'style' => 'wp-block-post-terms'), 'post-title' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/post-title', 'title' => 'Post Title', 'category' => 'theme', 'description' => 'Displays the title of a post, page, or any other content-type.', 'textdomain' => 'default', 'usesContext' => array('postId', 'postType', 'queryId'), 'attributes' => array('textAlign' => array('type' => 'string'), 'level' => array('type' => 'number', 'default' => 2), 'isLink' => array('type' => 'boolean', 'default' => false), 'rel' => array('type' => 'string', 'attribute' => 'rel', 'default' => ''), 'linkTarget' => array('type' => 'string', 'default' => '_self')), 'supports' => array('align' => array('wide', 'full'), 'html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true, 'fontAppearance' => true, 'textTransform' => true))), 'style' => 'wp-block-post-title'), 'preformatted' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/preformatted', 'title' => 'Preformatted', 'category' => 'text', 'description' => 'Add text that respects your spacing and tabs, and also allows styling.', 'textdomain' => 'default', 'attributes' => array('content' => array('type' => 'string', 'source' => 'html', 'selector' => 'pre', 'default' => '', '__unstablePreserveWhiteSpace' => true, '__experimentalRole' => 'content')), 'supports' => array('anchor' => true, 'color' => array('gradients' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'style' => 'wp-block-preformatted'), 'pullquote' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/pullquote', 'title' => 'Pullquote', 'category' => 'text', 'description' => 'Give special visual emphasis to a quote from your text.', 'textdomain' => 'default', 'attributes' => array('value' => array('type' => 'string', 'source' => 'html', 'selector' => 'p', '__experimentalRole' => 'content'), 'citation' => array('type' => 'string', 'source' => 'html', 'selector' => 'cite', 'default' => '', '__experimentalRole' => 'content'), 'textAlign' => array('type' => 'string')), 'supports' => array('anchor' => true, 'align' => array('left', 'right', 'wide', 'full'), 'color' => array('gradients' => true, 'background' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true, 'fontAppearance' => true)), '__experimentalBorder' => array('color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array('color' => true, 'radius' => true, 'style' => true, 'width' => true)), '__experimentalStyle' => array('typography' => array('fontSize' => '1.5em', 'lineHeight' => '1.6'))), 'editorStyle' => 'wp-block-pullquote-editor', 'style' => 'wp-block-pullquote'), 'query' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/query', 'title' => 'Query Loop', 'category' => 'theme', 'description' => 'An advanced block that allows displaying post types based on different query parameters and visual configurations.', 'textdomain' => 'default', 'attributes' => array('queryId' => array('type' => 'number'), 'query' => array('type' => 'object', 'default' => array('perPage' => null, 'pages' => 0, 'offset' => 0, 'postType' => 'post', 'order' => 'desc', 'orderBy' => 'date', 'author' => '', 'search' => '', 'exclude' => array(), 'sticky' => '', 'inherit' => true, 'taxQuery' => null, 'parents' => array())), 'tagName' => array('type' => 'string', 'default' => 'div'), 'displayLayout' => array('type' => 'object', 'default' => array('type' => 'list')), 'namespace' => array('type' => 'string')), 'providesContext' => array('queryId' => 'queryId', 'query' => 'query', 'displayLayout' => 'displayLayout'), 'supports' => array('align' => array('wide', 'full'), 'html' => false, '__experimentalLayout' => true), 'editorStyle' => 'wp-block-query-editor'), 'query-no-results' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/query-no-results', 'title' => 'No results', 'category' => 'theme', 'description' => 'Contains the block elements used to render content when no query results are found.', 'parent' => array('core/query'), 'textdomain' => 'default', 'usesContext' => array('queryId', 'query'), 'supports' => array('align' => true, 'reusable' => false, 'html' => false, 'color' => array('gradients' => true, 'link' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'query-pagination' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/query-pagination', 'title' => 'Pagination', 'category' => 'theme', 'parent' => array('core/query'), 'description' => 'Displays a paginated navigation to next/previous set of posts, when applicable.', 'textdomain' => 'default', 'attributes' => array('paginationArrow' => array('type' => 'string', 'default' => 'none')), 'usesContext' => array('queryId', 'query'), 'providesContext' => array('paginationArrow' => 'paginationArrow'), 'supports' => array('align' => true, 'reusable' => false, 'html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), '__experimentalLayout' => array('allowSwitching' => false, 'allowInheriting' => false, 'default' => array('type' => 'flex')), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-query-pagination-editor', 'style' => 'wp-block-query-pagination'), 'query-pagination-next' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/query-pagination-next', 'title' => 'Next Page', 'category' => 'theme', 'parent' => array('core/query-pagination'), 'description' => 'Displays the next posts page link.', 'textdomain' => 'default', 'attributes' => array('label' => array('type' => 'string')), 'usesContext' => array('queryId', 'query', 'paginationArrow'), 'supports' => array('reusable' => false, 'html' => false, 'color' => array('gradients' => true, 'text' => false, '__experimentalDefaultControls' => array('background' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'query-pagination-numbers' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/query-pagination-numbers', 'title' => 'Page Numbers', 'category' => 'theme', 'parent' => array('core/query-pagination'), 'description' => 'Displays a list of page numbers for pagination', 'textdomain' => 'default', 'usesContext' => array('queryId', 'query'), 'supports' => array('reusable' => false, 'html' => false, 'color' => array('gradients' => true, 'text' => false, '__experimentalDefaultControls' => array('background' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'query-pagination-numbers-editor'), 'query-pagination-previous' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/query-pagination-previous', 'title' => 'Previous Page', 'category' => 'theme', 'parent' => array('core/query-pagination'), 'description' => 'Displays the previous posts page link.', 'textdomain' => 'default', 'attributes' => array('label' => array('type' => 'string')), 'usesContext' => array('queryId', 'query', 'paginationArrow'), 'supports' => array('reusable' => false, 'html' => false, 'color' => array('gradients' => true, 'text' => false, '__experimentalDefaultControls' => array('background' => true)), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)))), 'query-title' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/query-title', 'title' => 'Query Title', 'category' => 'theme', 'description' => 'Display the query title.', 'textdomain' => 'default', 'attributes' => array('type' => array('type' => 'string'), 'textAlign' => array('type' => 'string'), 'level' => array('type' => 'number', 'default' => 1), 'showPrefix' => array('type' => 'boolean', 'default' => true), 'showSearchTerm' => array('type' => 'boolean', 'default' => true)), 'supports' => array('align' => array('wide', 'full'), 'html' => false, 'color' => array('gradients' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array('fontSize' => true, 'fontAppearance' => true, 'textTransform' => true))), 'style' => 'wp-block-query-title'), 'quote' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/quote', 'title' => 'Quote', 'category' => 'text', 'description' => 'Give quoted text visual emphasis. "In quoting others, we cite ourselves." — Julio Cortázar', 'keywords' => array('blockquote', 'cite'), 'textdomain' => 'default', 'attributes' => array('value' => array('type' => 'string', 'source' => 'html', 'selector' => 'blockquote', 'multiline' => 'p', 'default' => '', '__experimentalRole' => 'content'), 'citation' => array('type' => 'string', 'source' => 'html', 'selector' => 'cite', 'default' => '', '__experimentalRole' => 'content'), 'align' => array('type' => 'string')), 'supports' => array('anchor' => true, '__experimentalOnEnter' => true, 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true, 'fontAppearance' => true)), 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true))), 'styles' => array(array('name' => 'default', 'label' => 'Default', 'isDefault' => true), array('name' => 'plain', 'label' => 'Plain')), 'editorStyle' => 'wp-block-quote-editor', 'style' => 'wp-block-quote'), 'read-more' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/read-more', 'title' => 'Read More', 'category' => 'theme', 'description' => 'Displays the link of a post, page, or any other content-type.', 'textdomain' => 'default', 'attributes' => array('content' => array('type' => 'string'), 'linkTarget' => array('type' => 'string', 'default' => '_self')), 'usesContext' => array('postId'), 'supports' => array('html' => false, 'color' => array('gradients' => true, 'text' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalLetterSpacing' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array('fontSize' => true, 'textDecoration' => true)), 'spacing' => array('margin' => array('top', 'bottom'), 'padding' => true, '__experimentalDefaultControls' => array('padding' => true)), '__experimentalBorder' => array('color' => true, 'radius' => true, 'width' => true, '__experimentalDefaultControls' => array('width' => true))), 'style' => 'wp-block-read-more'), 'rss' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/rss', 'title' => 'RSS', 'category' => 'widgets', 'description' => 'Display entries from any RSS or Atom feed.', 'keywords' => array('atom', 'feed'), 'textdomain' => 'default', 'attributes' => array('columns' => array('type' => 'number', 'default' => 2), 'blockLayout' => array('type' => 'string', 'default' => 'list'), 'feedURL' => array('type' => 'string', 'default' => ''), 'itemsToShow' => array('type' => 'number', 'default' => 5), 'displayExcerpt' => array('type' => 'boolean', 'default' => false), 'displayAuthor' => array('type' => 'boolean', 'default' => false), 'displayDate' => array('type' => 'boolean', 'default' => false), 'excerptLength' => array('type' => 'number', 'default' => 55)), 'supports' => array('align' => true, 'html' => false), 'editorStyle' => 'wp-block-rss-editor', 'style' => 'wp-block-rss'), 'search' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/search', 'title' => 'Search', 'category' => 'widgets', 'description' => 'Help visitors find your content.', 'keywords' => array('find'), 'textdomain' => 'default', 'attributes' => array('label' => array('type' => 'string', '__experimentalRole' => 'content'), 'showLabel' => array('type' => 'boolean', 'default' => true), 'placeholder' => array('type' => 'string', 'default' => '', '__experimentalRole' => 'content'), 'width' => array('type' => 'number'), 'widthUnit' => array('type' => 'string'), 'buttonText' => array('type' => 'string', '__experimentalRole' => 'content'), 'buttonPosition' => array('type' => 'string', 'default' => 'button-outside'), 'buttonUseIcon' => array('type' => 'boolean', 'default' => false), 'query' => array('type' => 'object', 'default' => array())), 'supports' => array('align' => array('left', 'center', 'right'), 'color' => array('gradients' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'typography' => array('__experimentalSkipSerialization' => true, '__experimentalSelector' => '.wp-block-search__label, .wp-block-search__input, .wp-block-search__button', 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true)), '__experimentalBorder' => array('color' => true, 'radius' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array('color' => true, 'radius' => true, 'width' => true)), 'html' => false), 'editorStyle' => 'wp-block-search-editor', 'style' => 'wp-block-search'), 'separator' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/separator', 'title' => 'Separator', 'category' => 'design', 'description' => 'Create a break between ideas or sections with a horizontal separator.', 'keywords' => array('horizontal-line', 'hr', 'divider'), 'textdomain' => 'default', 'attributes' => array('opacity' => array('type' => 'string', 'default' => 'alpha-channel')), 'supports' => array('anchor' => true, 'align' => array('center', 'wide', 'full'), 'color' => array('enableContrastChecker' => false, '__experimentalSkipSerialization' => true, 'gradients' => true, 'background' => true, 'text' => false, '__experimentalDefaultControls' => array('background' => true)), 'spacing' => array('margin' => array('top', 'bottom'))), 'styles' => array(array('name' => 'default', 'label' => 'Default', 'isDefault' => true), array('name' => 'wide', 'label' => 'Wide Line'), array('name' => 'dots', 'label' => 'Dots')), 'editorStyle' => 'wp-block-separator-editor', 'style' => 'wp-block-separator'), 'shortcode' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/shortcode', 'title' => 'Shortcode', 'category' => 'widgets', 'description' => 'Insert additional custom elements with a WordPress shortcode.', 'textdomain' => 'default', 'attributes' => array('text' => array('type' => 'string', 'source' => 'html')), 'supports' => array('className' => false, 'customClassName' => false, 'html' => false), 'editorStyle' => 'wp-block-shortcode-editor'), 'site-logo' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/site-logo', 'title' => 'Site Logo', 'category' => 'theme', 'description' => 'Display a graphic to represent this site. Update the block, and the changes apply everywhere it’s used. This is different than the site icon, which is the smaller image visible in your dashboard, browser tabs, etc used to help others recognize this site.', 'textdomain' => 'default', 'attributes' => array('width' => array('type' => 'number'), 'isLink' => array('type' => 'boolean', 'default' => true), 'linkTarget' => array('type' => 'string', 'default' => '_self'), 'shouldSyncIcon' => array('type' => 'boolean')), 'example' => array('viewportWidth' => 500, 'attributes' => array('width' => 350, 'className' => 'block-editor-block-types-list__site-logo-example')), 'supports' => array('html' => false, 'align' => true, 'alignWide' => false, 'color' => array('__experimentalDuotone' => 'img, .components-placeholder__illustration, .components-placeholder::before', 'text' => false, 'background' => false), 'spacing' => array('margin' => true, 'padding' => true)), 'styles' => array(array('name' => 'default', 'label' => 'Default', 'isDefault' => true), array('name' => 'rounded', 'label' => 'Rounded')), 'editorStyle' => 'wp-block-site-logo-editor', 'style' => 'wp-block-site-logo'), 'site-tagline' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/site-tagline', 'title' => 'Site Tagline', 'category' => 'theme', 'description' => 'Describe in a few words what the site is about. The tagline can be used in search results or when sharing on social networks even if it’s not displayed in the theme design.', 'keywords' => array('description'), 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string')), 'example' => array(), 'supports' => array('align' => array('wide', 'full'), 'html' => false, 'color' => array('gradients' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-site-tagline-editor'), 'site-title' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/site-title', 'title' => 'Site Title', 'category' => 'theme', 'description' => 'Displays the name of this site. Update the block, and the changes apply everywhere it’s used. This will also appear in the browser title bar and in search results.', 'textdomain' => 'default', 'attributes' => array('level' => array('type' => 'number', 'default' => 1), 'textAlign' => array('type' => 'string'), 'isLink' => array('type' => 'boolean', 'default' => true), 'linkTarget' => array('type' => 'string', 'default' => '_self')), 'example' => array('viewportWidth' => 500), 'supports' => array('align' => array('wide', 'full'), 'html' => false, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true, 'link' => true)), 'spacing' => array('padding' => true, 'margin' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true, 'lineHeight' => true, 'fontAppearance' => true, 'letterSpacing' => true, 'textTransform' => true))), 'editorStyle' => 'wp-block-site-title-editor', 'style' => 'wp-block-site-title'), 'social-link' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/social-link', 'title' => 'Social Icon', 'category' => 'widgets', 'parent' => array('core/social-links'), 'description' => 'Display an icon linking to a social media profile or site.', 'textdomain' => 'default', 'attributes' => array('url' => array('type' => 'string'), 'service' => array('type' => 'string'), 'label' => array('type' => 'string'), 'rel' => array('type' => 'string')), 'usesContext' => array('openInNewTab', 'showLabels', 'iconColorValue', 'iconBackgroundColorValue'), 'supports' => array('reusable' => false, 'html' => false), 'editorStyle' => 'wp-block-social-link-editor'), 'social-links' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/social-links', 'title' => 'Social Icons', 'category' => 'widgets', 'description' => 'Display icons linking to your social media profiles or sites.', 'keywords' => array('links'), 'textdomain' => 'default', 'attributes' => array('iconColor' => array('type' => 'string'), 'customIconColor' => array('type' => 'string'), 'iconColorValue' => array('type' => 'string'), 'iconBackgroundColor' => array('type' => 'string'), 'customIconBackgroundColor' => array('type' => 'string'), 'iconBackgroundColorValue' => array('type' => 'string'), 'openInNewTab' => array('type' => 'boolean', 'default' => false), 'showLabels' => array('type' => 'boolean', 'default' => false), 'size' => array('type' => 'string')), 'providesContext' => array('openInNewTab' => 'openInNewTab', 'showLabels' => 'showLabels', 'iconColorValue' => 'iconColorValue', 'iconBackgroundColorValue' => 'iconBackgroundColorValue'), 'supports' => array('align' => array('left', 'center', 'right'), 'anchor' => true, '__experimentalExposeControlsToChildren' => true, '__experimentalLayout' => array('allowSwitching' => false, 'allowInheriting' => false, 'allowVerticalAlignment' => false, 'default' => array('type' => 'flex')), 'color' => array('enableContrastChecker' => false, 'background' => true, 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array('background' => false)), 'spacing' => array('blockGap' => array('horizontal', 'vertical'), 'margin' => true, 'padding' => true, 'units' => array('px', 'em', 'rem', 'vh', 'vw'), '__experimentalDefaultControls' => array('blockGap' => true))), 'styles' => array(array('name' => 'default', 'label' => 'Default', 'isDefault' => true), array('name' => 'logos-only', 'label' => 'Logos Only'), array('name' => 'pill-shape', 'label' => 'Pill Shape')), 'editorStyle' => 'wp-block-social-links-editor', 'style' => 'wp-block-social-links'), 'spacer' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/spacer', 'title' => 'Spacer', 'category' => 'design', 'description' => 'Add white space between blocks and customize its height.', 'textdomain' => 'default', 'attributes' => array('height' => array('type' => 'string', 'default' => '100px'), 'width' => array('type' => 'string')), 'usesContext' => array('orientation'), 'supports' => array('anchor' => true, 'spacing' => array('margin' => array('top', 'bottom'), '__experimentalDefaultControls' => array('margin' => true))), 'editorStyle' => 'wp-block-spacer-editor', 'style' => 'wp-block-spacer'), 'table' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/table', 'title' => 'Table', 'category' => 'text', 'description' => 'Create structured content in rows and columns to display information.', 'textdomain' => 'default', 'attributes' => array('hasFixedLayout' => array('type' => 'boolean', 'default' => false), 'caption' => array('type' => 'string', 'source' => 'html', 'selector' => 'figcaption', 'default' => ''), 'head' => array('type' => 'array', 'default' => array(), 'source' => 'query', 'selector' => 'thead tr', 'query' => array('cells' => array('type' => 'array', 'default' => array(), 'source' => 'query', 'selector' => 'td,th', 'query' => array('content' => array('type' => 'string', 'source' => 'html'), 'tag' => array('type' => 'string', 'default' => 'td', 'source' => 'tag'), 'scope' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'scope'), 'align' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'data-align'), 'colspan' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'colspan'), 'rowspan' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'rowspan'))))), 'body' => array('type' => 'array', 'default' => array(), 'source' => 'query', 'selector' => 'tbody tr', 'query' => array('cells' => array('type' => 'array', 'default' => array(), 'source' => 'query', 'selector' => 'td,th', 'query' => array('content' => array('type' => 'string', 'source' => 'html'), 'tag' => array('type' => 'string', 'default' => 'td', 'source' => 'tag'), 'scope' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'scope'), 'align' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'data-align'), 'colspan' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'colspan'), 'rowspan' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'rowspan'))))), 'foot' => array('type' => 'array', 'default' => array(), 'source' => 'query', 'selector' => 'tfoot tr', 'query' => array('cells' => array('type' => 'array', 'default' => array(), 'source' => 'query', 'selector' => 'td,th', 'query' => array('content' => array('type' => 'string', 'source' => 'html'), 'tag' => array('type' => 'string', 'default' => 'td', 'source' => 'tag'), 'scope' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'scope'), 'align' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'data-align'), 'colspan' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'colspan'), 'rowspan' => array('type' => 'string', 'source' => 'attribute', 'attribute' => 'rowspan')))))), 'supports' => array('anchor' => true, 'align' => true, 'color' => array('__experimentalSkipSerialization' => true, 'gradients' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array('fontSize' => true)), '__experimentalBorder' => array('__experimentalSkipSerialization' => true, 'color' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array('color' => true, 'style' => true, 'width' => true)), '__experimentalSelector' => '.wp-block-table > table'), 'styles' => array(array('name' => 'regular', 'label' => 'Default', 'isDefault' => true), array('name' => 'stripes', 'label' => 'Stripes')), 'editorStyle' => 'wp-block-table-editor', 'style' => 'wp-block-table'), 'tag-cloud' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/tag-cloud', 'title' => 'Tag Cloud', 'category' => 'widgets', 'description' => 'A cloud of your most used tags.', 'textdomain' => 'default', 'attributes' => array('numberOfTags' => array('type' => 'number', 'default' => 45, 'minimum' => 1, 'maximum' => 100), 'taxonomy' => array('type' => 'string', 'default' => 'post_tag'), 'showTagCounts' => array('type' => 'boolean', 'default' => false), 'smallestFontSize' => array('type' => 'string', 'default' => '8pt'), 'largestFontSize' => array('type' => 'string', 'default' => '22pt')), 'styles' => array(array('name' => 'default', 'label' => 'Default', 'isDefault' => true), array('name' => 'outline', 'label' => 'Outline')), 'supports' => array('html' => false, 'align' => true, 'spacing' => array('margin' => true, 'padding' => true), 'typography' => array('lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalLetterSpacing' => true)), 'editorStyle' => 'wp-block-tag-cloud-editor'), 'template-part' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/template-part', 'title' => 'Template Part', 'category' => 'theme', 'description' => 'Edit the different global regions of your site, like the header, footer, sidebar, or create your own.', 'textdomain' => 'default', 'attributes' => array('slug' => array('type' => 'string'), 'theme' => array('type' => 'string'), 'tagName' => array('type' => 'string'), 'area' => array('type' => 'string')), 'supports' => array('align' => true, 'html' => false, 'reusable' => false), 'editorStyle' => 'wp-block-template-part-editor'), 'term-description' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/term-description', 'title' => 'Term Description', 'category' => 'theme', 'description' => 'Display the description of categories, tags and custom taxonomies when viewing an archive.', 'textdomain' => 'default', 'attributes' => array('textAlign' => array('type' => 'string')), 'supports' => array('align' => array('wide', 'full'), 'html' => false, 'color' => array('link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'spacing' => array('padding' => true, 'margin' => true), 'typography' => array('fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array('fontSize' => true))), 'editorStyle' => 'wp-block-term-description-editor'), 'text-columns' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/text-columns', 'title' => 'Text Columns (deprecated)', 'icon' => 'columns', 'category' => 'design', 'description' => 'This block is deprecated. Please use the Columns block instead.', 'textdomain' => 'default', 'attributes' => array('content' => array('type' => 'array', 'source' => 'query', 'selector' => 'p', 'query' => array('children' => array('type' => 'string', 'source' => 'html')), 'default' => array(array(), array())), 'columns' => array('type' => 'number', 'default' => 2), 'width' => array('type' => 'string')), 'supports' => array('inserter' => false), 'editorStyle' => 'wp-block-text-columns-editor', 'style' => 'wp-block-text-columns'), 'verse' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/verse', 'title' => 'Verse', 'category' => 'text', 'description' => 'Insert poetry. Use special spacing formats. Or quote song lyrics.', 'keywords' => array('poetry', 'poem'), 'textdomain' => 'default', 'attributes' => array('content' => array('type' => 'string', 'source' => 'html', 'selector' => 'pre', 'default' => '', '__unstablePreserveWhiteSpace' => true, '__experimentalRole' => 'content'), 'textAlign' => array('type' => 'string')), 'supports' => array('anchor' => true, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), 'typography' => array('fontSize' => true, '__experimentalFontFamily' => true, 'lineHeight' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array('fontSize' => true, 'fontAppearance' => true)), 'spacing' => array('margin' => true, 'padding' => true)), 'style' => 'wp-block-verse', 'editorStyle' => 'wp-block-verse-editor'), 'video' => array('$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 2, 'name' => 'core/video', 'title' => 'Video', 'category' => 'media', 'description' => 'Embed a video from your media library or upload a new one.', 'keywords' => array('movie'), 'textdomain' => 'default', 'attributes' => array('autoplay' => array('type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'autoplay'), 'caption' => array('type' => 'string', 'source' => 'html', 'selector' => 'figcaption', '__experimentalRole' => 'content'), 'controls' => array('type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'controls', 'default' => true), 'id' => array('type' => 'number', '__experimentalRole' => 'content'), 'loop' => array('type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'loop'), 'muted' => array('type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'muted'), 'poster' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'poster'), 'preload' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'preload', 'default' => 'metadata'), 'src' => array('type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'src', '__experimentalRole' => 'content'), 'playsInline' => array('type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'playsinline'), 'tracks' => array('__experimentalRole' => 'content', 'type' => 'array', 'items' => array('type' => 'object'), 'default' => array())), 'supports' => array('anchor' => true, 'align' => true, 'spacing' => array('margin' => true, 'padding' => true)), 'editorStyle' => 'wp-block-video-editor', 'style' => 'wp-block-video'), 'widget-group' => array('apiVersion' => 2, 'name' => 'core/widget-group', 'category' => 'widgets', 'attributes' => array('title' => array('type' => 'string')), 'supports' => array('html' => false, 'inserter' => true, 'customClassName' => true, 'reusable' => false), 'editorStyle' => 'wp-block-widget-group-editor', 'style' => 'wp-block-widget-group'));
\ No newline at end of file
+ array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/archives',
+ 'title' => 'Archives',
+ 'category' => 'widgets',
+ 'description' => 'Display a date archive of your posts.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'displayAsDropdown' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'showLabel' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'showPostCounts' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'type' => array(
+ 'type' => 'string',
+ 'default' => 'monthly'
+ )
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'html' => false,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-archives-editor'
+ ),
+ 'audio' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/audio',
+ 'title' => 'Audio',
+ 'category' => 'media',
+ 'description' => 'Embed a simple audio player.',
+ 'keywords' => array(
+ 'music',
+ 'sound',
+ 'podcast',
+ 'recording'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'src' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'audio',
+ 'attribute' => 'src',
+ '__experimentalRole' => 'content'
+ ),
+ 'caption' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'figcaption',
+ '__experimentalRole' => 'content'
+ ),
+ 'id' => array(
+ 'type' => 'number',
+ '__experimentalRole' => 'content'
+ ),
+ 'autoplay' => array(
+ 'type' => 'boolean',
+ 'source' => 'attribute',
+ 'selector' => 'audio',
+ 'attribute' => 'autoplay'
+ ),
+ 'loop' => array(
+ 'type' => 'boolean',
+ 'source' => 'attribute',
+ 'selector' => 'audio',
+ 'attribute' => 'loop'
+ ),
+ 'preload' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'audio',
+ 'attribute' => 'preload'
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => true,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ )
+ ),
+ 'editorStyle' => 'wp-block-audio-editor',
+ 'style' => 'wp-block-audio'
+ ),
+ 'avatar' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/avatar',
+ 'title' => 'Avatar',
+ 'category' => 'theme',
+ 'description' => 'Add a user’s avatar.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'userId' => array(
+ 'type' => 'number'
+ ),
+ 'size' => array(
+ 'type' => 'number',
+ 'default' => 96
+ ),
+ 'isLink' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'default' => '_self'
+ )
+ ),
+ 'usesContext' => array(
+ 'postType',
+ 'postId',
+ 'commentId'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'align' => true,
+ 'alignWide' => false,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ '__experimentalBorder' => array(
+ '__experimentalSkipSerialization' => true,
+ 'radius' => true,
+ 'width' => true,
+ 'color' => true,
+ 'style' => true,
+ '__experimentalDefaultControls' => array(
+ 'radius' => true
+ )
+ ),
+ 'color' => array(
+ 'text' => false,
+ 'background' => false,
+ '__experimentalDuotone' => 'img'
+ )
+ ),
+ 'editorStyle' => 'wp-block-avatar-editor',
+ 'style' => 'wp-block-avatar'
+ ),
+ 'block' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/block',
+ 'title' => 'Pattern',
+ 'category' => 'reusable',
+ 'description' => 'Create and save content to reuse across your site. Update the block, and the changes apply everywhere it’s used.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'ref' => array(
+ 'type' => 'number'
+ )
+ ),
+ 'supports' => array(
+ 'customClassName' => false,
+ 'html' => false,
+ 'inserter' => false
+ )
+ ),
+ 'button' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/button',
+ 'title' => 'Button',
+ 'category' => 'design',
+ 'parent' => array(
+ 'core/buttons'
+ ),
+ 'description' => 'Prompt visitors to take action with a button-style link.',
+ 'keywords' => array(
+ 'link'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'url' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'a',
+ 'attribute' => 'href',
+ '__experimentalRole' => 'content'
+ ),
+ 'title' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'a',
+ 'attribute' => 'title',
+ '__experimentalRole' => 'content'
+ ),
+ 'text' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'a',
+ '__experimentalRole' => 'content'
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'a',
+ 'attribute' => 'target',
+ '__experimentalRole' => 'content'
+ ),
+ 'rel' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'a',
+ 'attribute' => 'rel',
+ '__experimentalRole' => 'content'
+ ),
+ 'placeholder' => array(
+ 'type' => 'string'
+ ),
+ 'backgroundColor' => array(
+ 'type' => 'string'
+ ),
+ 'textColor' => array(
+ 'type' => 'string'
+ ),
+ 'gradient' => array(
+ 'type' => 'string'
+ ),
+ 'width' => array(
+ 'type' => 'number'
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => false,
+ 'alignWide' => false,
+ 'color' => array(
+ '__experimentalSkipSerialization' => true,
+ 'gradients' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'reusable' => false,
+ 'shadow' => true,
+ 'spacing' => array(
+ '__experimentalSkipSerialization' => true,
+ 'padding' => array(
+ 'horizontal',
+ 'vertical'
+ ),
+ '__experimentalDefaultControls' => array(
+ 'padding' => true
+ )
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'style' => true,
+ 'width' => true,
+ '__experimentalSkipSerialization' => true,
+ '__experimentalDefaultControls' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'style' => true,
+ 'width' => true
+ )
+ ),
+ '__experimentalSelector' => '.wp-block-button .wp-block-button__link'
+ ),
+ 'styles' => array(
+ array(
+ 'name' => 'fill',
+ 'label' => 'Fill',
+ 'isDefault' => true
+ ),
+ array(
+ 'name' => 'outline',
+ 'label' => 'Outline'
+ )
+ ),
+ 'editorStyle' => 'wp-block-button-editor',
+ 'style' => 'wp-block-button'
+ ),
+ 'buttons' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/buttons',
+ 'title' => 'Buttons',
+ 'category' => 'design',
+ 'description' => 'Prompt visitors to take action with a group of button-style links.',
+ 'keywords' => array(
+ 'link'
+ ),
+ 'textdomain' => 'default',
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ '__experimentalExposeControlsToChildren' => true,
+ 'spacing' => array(
+ 'blockGap' => true,
+ 'margin' => array(
+ 'top',
+ 'bottom'
+ ),
+ '__experimentalDefaultControls' => array(
+ 'blockGap' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'layout' => array(
+ 'allowSwitching' => false,
+ 'allowInheriting' => false,
+ 'default' => array(
+ 'type' => 'flex'
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-buttons-editor',
+ 'style' => 'wp-block-buttons'
+ ),
+ 'calendar' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/calendar',
+ 'title' => 'Calendar',
+ 'category' => 'widgets',
+ 'description' => 'A calendar of your site’s posts.',
+ 'keywords' => array(
+ 'posts',
+ 'archive'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'month' => array(
+ 'type' => 'integer'
+ ),
+ 'year' => array(
+ 'type' => 'integer'
+ )
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'color' => array(
+ 'link' => true,
+ '__experimentalSkipSerialization' => array(
+ 'text',
+ 'background'
+ ),
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ ),
+ '__experimentalSelector' => 'table, th'
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-calendar'
+ ),
+ 'categories' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/categories',
+ 'title' => 'Categories List',
+ 'category' => 'widgets',
+ 'description' => 'Display a list of all categories.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'displayAsDropdown' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'showHierarchy' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'showPostCounts' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'showOnlyTopLevel' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'showEmpty' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ )
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'html' => false,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-categories-editor',
+ 'style' => 'wp-block-categories'
+ ),
+ 'code' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/code',
+ 'title' => 'Code',
+ 'category' => 'text',
+ 'description' => 'Display code snippets that respect your spacing and tabs.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'code'
+ )
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide'
+ ),
+ 'anchor' => true,
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => array(
+ 'top',
+ 'bottom'
+ ),
+ 'padding' => true
+ ),
+ '__experimentalBorder' => array(
+ 'radius' => true,
+ 'color' => true,
+ 'width' => true,
+ 'style' => true,
+ '__experimentalDefaultControls' => array(
+ 'width' => true,
+ 'color' => true
+ )
+ ),
+ 'color' => array(
+ 'text' => true,
+ 'background' => true,
+ 'gradients' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-code'
+ ),
+ 'column' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/column',
+ 'title' => 'Column',
+ 'category' => 'design',
+ 'parent' => array(
+ 'core/columns'
+ ),
+ 'description' => 'A single column within a columns block.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'verticalAlignment' => array(
+ 'type' => 'string'
+ ),
+ 'width' => array(
+ 'type' => 'string'
+ ),
+ 'allowedBlocks' => array(
+ 'type' => 'array'
+ ),
+ 'templateLock' => array(
+ 'type' => array(
+ 'string',
+ 'boolean'
+ ),
+ 'enum' => array(
+ 'all',
+ 'insert',
+ 'contentOnly',
+ false
+ )
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'blockGap' => true,
+ 'padding' => true,
+ '__experimentalDefaultControls' => array(
+ 'padding' => true,
+ 'blockGap' => true
+ )
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'style' => true,
+ 'width' => true,
+ '__experimentalDefaultControls' => array(
+ 'color' => true,
+ 'style' => true,
+ 'width' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'layout' => true
+ )
+ ),
+ 'columns' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/columns',
+ 'title' => 'Columns',
+ 'category' => 'design',
+ 'description' => 'Display content in multiple columns, with blocks added to each column.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'verticalAlignment' => array(
+ 'type' => 'string'
+ ),
+ 'isStackedOnMobile' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'templateLock' => array(
+ 'type' => array(
+ 'string',
+ 'boolean'
+ ),
+ 'enum' => array(
+ 'all',
+ 'insert',
+ 'contentOnly',
+ false
+ )
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'blockGap' => array(
+ '__experimentalDefault' => '2em',
+ 'sides' => array(
+ 'horizontal',
+ 'vertical'
+ )
+ ),
+ 'margin' => array(
+ 'top',
+ 'bottom'
+ ),
+ 'padding' => true,
+ '__experimentalDefaultControls' => array(
+ 'padding' => true,
+ 'blockGap' => true
+ )
+ ),
+ 'layout' => array(
+ 'allowSwitching' => false,
+ 'allowInheriting' => false,
+ 'allowEditing' => false,
+ 'default' => array(
+ 'type' => 'flex',
+ 'flexWrap' => 'nowrap'
+ )
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'style' => true,
+ 'width' => true,
+ '__experimentalDefaultControls' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'style' => true,
+ 'width' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-columns-editor',
+ 'style' => 'wp-block-columns'
+ ),
+ 'comment-author-name' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comment-author-name',
+ 'title' => 'Comment Author Name',
+ 'category' => 'theme',
+ 'ancestor' => array(
+ 'core/comment-template'
+ ),
+ 'description' => 'Displays the name of the author of the comment.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'isLink' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'default' => '_self'
+ ),
+ 'textAlign' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'commentId'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'comment-content' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comment-content',
+ 'title' => 'Comment Content',
+ 'category' => 'theme',
+ 'ancestor' => array(
+ 'core/comment-template'
+ ),
+ 'description' => 'Displays the contents of a comment.',
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'commentId'
+ ),
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'spacing' => array(
+ 'padding' => array(
+ 'horizontal',
+ 'vertical'
+ ),
+ '__experimentalDefaultControls' => array(
+ 'padding' => true
+ )
+ ),
+ 'html' => false
+ )
+ ),
+ 'comment-date' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comment-date',
+ 'title' => 'Comment Date',
+ 'category' => 'theme',
+ 'ancestor' => array(
+ 'core/comment-template'
+ ),
+ 'description' => 'Displays the date on which the comment was posted.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'format' => array(
+ 'type' => 'string'
+ ),
+ 'isLink' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ )
+ ),
+ 'usesContext' => array(
+ 'commentId'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'comment-edit-link' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comment-edit-link',
+ 'title' => 'Comment Edit Link',
+ 'category' => 'theme',
+ 'ancestor' => array(
+ 'core/comment-template'
+ ),
+ 'description' => 'Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.',
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'commentId'
+ ),
+ 'attributes' => array(
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'default' => '_self'
+ ),
+ 'textAlign' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'color' => array(
+ 'link' => true,
+ 'gradients' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'link' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'comment-reply-link' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comment-reply-link',
+ 'title' => 'Comment Reply Link',
+ 'category' => 'theme',
+ 'ancestor' => array(
+ 'core/comment-template'
+ ),
+ 'description' => 'Displays a link to reply to a comment.',
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'commentId'
+ ),
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'link' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'html' => false
+ )
+ ),
+ 'comment-template' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comment-template',
+ 'title' => 'Comment Template',
+ 'category' => 'design',
+ 'parent' => array(
+ 'core/comments'
+ ),
+ 'description' => 'Contains the block elements used to display a comment, like the title, date, author, avatar and more.',
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'postId'
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'html' => false,
+ 'reusable' => false,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-comment-template'
+ ),
+ 'comments' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comments',
+ 'title' => 'Comments',
+ 'category' => 'theme',
+ 'description' => 'An advanced block that allows displaying post comments using different visual configurations.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'tagName' => array(
+ 'type' => 'string',
+ 'default' => 'div'
+ ),
+ 'legacy' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ )
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-comments-editor',
+ 'usesContext' => array(
+ 'postId',
+ 'postType'
+ )
+ ),
+ 'comments-pagination' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comments-pagination',
+ 'title' => 'Comments Pagination',
+ 'category' => 'theme',
+ 'parent' => array(
+ 'core/comments'
+ ),
+ 'description' => 'Displays a paginated navigation to next/previous set of comments, when applicable.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'paginationArrow' => array(
+ 'type' => 'string',
+ 'default' => 'none'
+ )
+ ),
+ 'providesContext' => array(
+ 'comments/paginationArrow' => 'paginationArrow'
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'layout' => array(
+ 'allowSwitching' => false,
+ 'allowInheriting' => false,
+ 'default' => array(
+ 'type' => 'flex'
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-comments-pagination-editor',
+ 'style' => 'wp-block-comments-pagination'
+ ),
+ 'comments-pagination-next' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comments-pagination-next',
+ 'title' => 'Comments Next Page',
+ 'category' => 'theme',
+ 'parent' => array(
+ 'core/comments-pagination'
+ ),
+ 'description' => 'Displays the next comment\'s page link.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'label' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'postId',
+ 'comments/paginationArrow'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'comments-pagination-numbers' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comments-pagination-numbers',
+ 'title' => 'Comments Page Numbers',
+ 'category' => 'theme',
+ 'parent' => array(
+ 'core/comments-pagination'
+ ),
+ 'description' => 'Displays a list of page numbers for comments pagination.',
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'postId'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'comments-pagination-previous' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comments-pagination-previous',
+ 'title' => 'Comments Previous Page',
+ 'category' => 'theme',
+ 'parent' => array(
+ 'core/comments-pagination'
+ ),
+ 'description' => 'Displays the previous comment\'s page link.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'label' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'postId',
+ 'comments/paginationArrow'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'comments-title' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/comments-title',
+ 'title' => 'Comments Title',
+ 'category' => 'theme',
+ 'ancestor' => array(
+ 'core/comments'
+ ),
+ 'description' => 'Displays a title with the number of comments',
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'postId',
+ 'postType'
+ ),
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'showPostTitle' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'showCommentsCount' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'level' => array(
+ 'type' => 'number',
+ 'default' => 2
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => false,
+ 'align' => true,
+ 'html' => false,
+ '__experimentalBorder' => array(
+ 'radius' => true,
+ 'color' => true,
+ 'width' => true,
+ 'style' => true
+ ),
+ 'color' => array(
+ 'gradients' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalFontWeight' => true
+ )
+ )
+ )
+ ),
+ 'cover' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/cover',
+ 'title' => 'Cover',
+ 'category' => 'media',
+ 'description' => 'Add an image or video with a text overlay.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'url' => array(
+ 'type' => 'string'
+ ),
+ 'useFeaturedImage' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'id' => array(
+ 'type' => 'number'
+ ),
+ 'alt' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'img',
+ 'attribute' => 'alt',
+ 'default' => ''
+ ),
+ 'hasParallax' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'isRepeated' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'dimRatio' => array(
+ 'type' => 'number',
+ 'default' => 100
+ ),
+ 'overlayColor' => array(
+ 'type' => 'string'
+ ),
+ 'customOverlayColor' => array(
+ 'type' => 'string'
+ ),
+ 'backgroundType' => array(
+ 'type' => 'string',
+ 'default' => 'image'
+ ),
+ 'focalPoint' => array(
+ 'type' => 'object'
+ ),
+ 'minHeight' => array(
+ 'type' => 'number'
+ ),
+ 'minHeightUnit' => array(
+ 'type' => 'string'
+ ),
+ 'gradient' => array(
+ 'type' => 'string'
+ ),
+ 'customGradient' => array(
+ 'type' => 'string'
+ ),
+ 'contentPosition' => array(
+ 'type' => 'string'
+ ),
+ 'isDark' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'allowedBlocks' => array(
+ 'type' => 'array'
+ ),
+ 'templateLock' => array(
+ 'type' => array(
+ 'string',
+ 'boolean'
+ ),
+ 'enum' => array(
+ 'all',
+ 'insert',
+ 'contentOnly',
+ false
+ )
+ ),
+ 'tagName' => array(
+ 'type' => 'string',
+ 'default' => 'div'
+ )
+ ),
+ 'usesContext' => array(
+ 'postId',
+ 'postType'
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => true,
+ 'html' => false,
+ 'spacing' => array(
+ 'padding' => true,
+ 'margin' => array(
+ 'top',
+ 'bottom'
+ ),
+ 'blockGap' => true,
+ '__experimentalDefaultControls' => array(
+ 'padding' => true,
+ 'blockGap' => true
+ )
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'style' => true,
+ 'width' => true,
+ '__experimentalDefaultControls' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'style' => true,
+ 'width' => true
+ )
+ ),
+ 'color' => array(
+ '__experimentalDuotone' => '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
+ 'text' => true,
+ 'background' => false,
+ '__experimentalSkipSerialization' => array(
+ 'gradients'
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'layout' => array(
+ 'allowJustification' => false
+ )
+ ),
+ 'editorStyle' => 'wp-block-cover-editor',
+ 'style' => 'wp-block-cover'
+ ),
+ 'details' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/details',
+ 'title' => 'Details',
+ 'category' => 'text',
+ 'description' => 'Hide and show additional content.',
+ 'keywords' => array(
+ 'disclosure',
+ 'summary',
+ 'hide'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'showContent' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'summary' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'width' => true,
+ 'style' => true
+ ),
+ 'html' => false,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-details-editor',
+ 'style' => 'wp-block-details'
+ ),
+ 'embed' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/embed',
+ 'title' => 'Embed',
+ 'category' => 'embed',
+ 'description' => 'Add a block that displays content pulled from other sites, like Twitter or YouTube.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'url' => array(
+ 'type' => 'string',
+ '__experimentalRole' => 'content'
+ ),
+ 'caption' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'figcaption',
+ '__experimentalRole' => 'content'
+ ),
+ 'type' => array(
+ 'type' => 'string',
+ '__experimentalRole' => 'content'
+ ),
+ 'providerNameSlug' => array(
+ 'type' => 'string',
+ '__experimentalRole' => 'content'
+ ),
+ 'allowResponsive' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'responsive' => array(
+ 'type' => 'boolean',
+ 'default' => false,
+ '__experimentalRole' => 'content'
+ ),
+ 'previewable' => array(
+ 'type' => 'boolean',
+ 'default' => true,
+ '__experimentalRole' => 'content'
+ )
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'spacing' => array(
+ 'margin' => true
+ )
+ ),
+ 'editorStyle' => 'wp-block-embed-editor',
+ 'style' => 'wp-block-embed'
+ ),
+ 'file' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/file',
+ 'title' => 'File',
+ 'category' => 'media',
+ 'description' => 'Add a link to a downloadable file.',
+ 'keywords' => array(
+ 'document',
+ 'pdf',
+ 'download'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'id' => array(
+ 'type' => 'number'
+ ),
+ 'href' => array(
+ 'type' => 'string'
+ ),
+ 'fileId' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'a:not([download])',
+ 'attribute' => 'id'
+ ),
+ 'fileName' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'a:not([download])'
+ ),
+ 'textLinkHref' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'a:not([download])',
+ 'attribute' => 'href'
+ ),
+ 'textLinkTarget' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'a:not([download])',
+ 'attribute' => 'target'
+ ),
+ 'showDownloadButton' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'downloadButtonText' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'a[download]'
+ ),
+ 'displayPreview' => array(
+ 'type' => 'boolean'
+ ),
+ 'previewHeight' => array(
+ 'type' => 'number',
+ 'default' => 600
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => true,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'link' => true
+ )
+ )
+ ),
+ 'viewScript' => 'file:./view.min.js',
+ 'editorStyle' => 'wp-block-file-editor',
+ 'style' => 'wp-block-file'
+ ),
+ 'footnotes' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/footnotes',
+ 'title' => 'Footnotes',
+ 'category' => 'text',
+ 'description' => '',
+ 'keywords' => array(
+ 'references'
+ ),
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'postId',
+ 'postType'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'multiple' => false,
+ 'inserter' => false,
+ 'reusable' => false
+ ),
+ 'style' => 'wp-block-footnotes'
+ ),
+ 'freeform' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/freeform',
+ 'title' => 'Classic',
+ 'category' => 'text',
+ 'description' => 'Use the classic WordPress editor.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'raw'
+ )
+ ),
+ 'supports' => array(
+ 'className' => false,
+ 'customClassName' => false,
+ 'reusable' => false
+ ),
+ 'editorStyle' => 'wp-block-freeform-editor'
+ ),
+ 'gallery' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/gallery',
+ 'title' => 'Gallery',
+ 'category' => 'media',
+ 'description' => 'Display multiple images in a rich gallery.',
+ 'keywords' => array(
+ 'images',
+ 'photos'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'images' => array(
+ 'type' => 'array',
+ 'default' => array(
+
+ ),
+ 'source' => 'query',
+ 'selector' => '.blocks-gallery-item',
+ 'query' => array(
+ 'url' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'img',
+ 'attribute' => 'src'
+ ),
+ 'fullUrl' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'img',
+ 'attribute' => 'data-full-url'
+ ),
+ 'link' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'img',
+ 'attribute' => 'data-link'
+ ),
+ 'alt' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'img',
+ 'attribute' => 'alt',
+ 'default' => ''
+ ),
+ 'id' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'img',
+ 'attribute' => 'data-id'
+ ),
+ 'caption' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => '.blocks-gallery-item__caption'
+ )
+ )
+ ),
+ 'ids' => array(
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'number'
+ ),
+ 'default' => array(
+
+ )
+ ),
+ 'shortCodeTransforms' => array(
+ 'type' => 'array',
+ 'default' => array(
+
+ ),
+ 'items' => array(
+ 'type' => 'object'
+ )
+ ),
+ 'columns' => array(
+ 'type' => 'number',
+ 'minimum' => 1,
+ 'maximum' => 8
+ ),
+ 'caption' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => '.blocks-gallery-caption'
+ ),
+ 'imageCrop' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'fixedHeight' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string'
+ ),
+ 'linkTo' => array(
+ 'type' => 'string'
+ ),
+ 'sizeSlug' => array(
+ 'type' => 'string',
+ 'default' => 'large'
+ ),
+ 'allowResize' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ )
+ ),
+ 'providesContext' => array(
+ 'allowResize' => 'allowResize',
+ 'imageCrop' => 'imageCrop',
+ 'fixedHeight' => 'fixedHeight'
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => true,
+ 'html' => false,
+ 'units' => array(
+ 'px',
+ 'em',
+ 'rem',
+ 'vh',
+ 'vw'
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true,
+ 'blockGap' => array(
+ 'horizontal',
+ 'vertical'
+ ),
+ '__experimentalSkipSerialization' => array(
+ 'blockGap'
+ ),
+ '__experimentalDefaultControls' => array(
+ 'blockGap' => true
+ )
+ ),
+ 'color' => array(
+ 'text' => false,
+ 'background' => true,
+ 'gradients' => true
+ ),
+ 'layout' => array(
+ 'allowSwitching' => false,
+ 'allowInheriting' => false,
+ 'allowEditing' => false,
+ 'default' => array(
+ 'type' => 'flex'
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-gallery-editor',
+ 'style' => 'wp-block-gallery'
+ ),
+ 'group' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/group',
+ 'title' => 'Group',
+ 'category' => 'design',
+ 'description' => 'Gather blocks in a layout container.',
+ 'keywords' => array(
+ 'container',
+ 'wrapper',
+ 'row',
+ 'section'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'tagName' => array(
+ 'type' => 'string',
+ 'default' => 'div'
+ ),
+ 'templateLock' => array(
+ 'type' => array(
+ 'string',
+ 'boolean'
+ ),
+ 'enum' => array(
+ 'all',
+ 'insert',
+ 'contentOnly',
+ false
+ )
+ ),
+ 'allowedBlocks' => array(
+ 'type' => 'array'
+ )
+ ),
+ 'supports' => array(
+ '__experimentalOnEnter' => true,
+ '__experimentalSettings' => true,
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'anchor' => true,
+ 'ariaLabel' => true,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => array(
+ 'top',
+ 'bottom'
+ ),
+ 'padding' => true,
+ 'blockGap' => true,
+ '__experimentalDefaultControls' => array(
+ 'padding' => true,
+ 'blockGap' => true
+ )
+ ),
+ 'dimensions' => array(
+ 'minHeight' => true
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'style' => true,
+ 'width' => true,
+ '__experimentalDefaultControls' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'style' => true,
+ 'width' => true
+ )
+ ),
+ 'position' => array(
+ 'sticky' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'layout' => array(
+ 'allowSizingOnChildren' => true
+ )
+ ),
+ 'editorStyle' => 'wp-block-group-editor',
+ 'style' => 'wp-block-group'
+ ),
+ 'heading' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/heading',
+ 'title' => 'Heading',
+ 'category' => 'text',
+ 'description' => 'Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.',
+ 'keywords' => array(
+ 'title',
+ 'subtitle'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'h1,h2,h3,h4,h5,h6',
+ 'default' => '',
+ '__experimentalRole' => 'content'
+ ),
+ 'level' => array(
+ 'type' => 'number',
+ 'default' => 2
+ ),
+ 'placeholder' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'anchor' => true,
+ 'className' => true,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true,
+ 'fontAppearance' => true,
+ 'textTransform' => true
+ )
+ ),
+ '__unstablePasteTextInline' => true,
+ '__experimentalSlashInserter' => true
+ ),
+ 'editorStyle' => 'wp-block-heading-editor',
+ 'style' => 'wp-block-heading'
+ ),
+ 'home-link' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/home-link',
+ 'category' => 'design',
+ 'parent' => array(
+ 'core/navigation'
+ ),
+ 'title' => 'Home Link',
+ 'description' => 'Create a link that always points to the homepage of the site. Usually not necessary if there is already a site title link present in the header.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'label' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'textColor',
+ 'customTextColor',
+ 'backgroundColor',
+ 'customBackgroundColor',
+ 'fontSize',
+ 'customFontSize',
+ 'style'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-home-link-editor',
+ 'style' => 'wp-block-home-link'
+ ),
+ 'html' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/html',
+ 'title' => 'Custom HTML',
+ 'category' => 'widgets',
+ 'description' => 'Add custom HTML code and preview it as you edit.',
+ 'keywords' => array(
+ 'embed'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'raw'
+ )
+ ),
+ 'supports' => array(
+ 'customClassName' => false,
+ 'className' => false,
+ 'html' => false
+ ),
+ 'editorStyle' => 'wp-block-html-editor'
+ ),
+ 'image' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/image',
+ 'title' => 'Image',
+ 'category' => 'media',
+ 'usesContext' => array(
+ 'allowResize',
+ 'imageCrop',
+ 'fixedHeight'
+ ),
+ 'description' => 'Insert an image to make a visual statement.',
+ 'keywords' => array(
+ 'img',
+ 'photo',
+ 'picture'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'align' => array(
+ 'type' => 'string'
+ ),
+ 'url' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'img',
+ 'attribute' => 'src',
+ '__experimentalRole' => 'content'
+ ),
+ 'alt' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'img',
+ 'attribute' => 'alt',
+ 'default' => '',
+ '__experimentalRole' => 'content'
+ ),
+ 'caption' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'figcaption',
+ '__experimentalRole' => 'content'
+ ),
+ 'title' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'img',
+ 'attribute' => 'title',
+ '__experimentalRole' => 'content'
+ ),
+ 'href' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'figure > a',
+ 'attribute' => 'href',
+ '__experimentalRole' => 'content'
+ ),
+ 'rel' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'figure > a',
+ 'attribute' => 'rel'
+ ),
+ 'linkClass' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'figure > a',
+ 'attribute' => 'class'
+ ),
+ 'id' => array(
+ 'type' => 'number',
+ '__experimentalRole' => 'content'
+ ),
+ 'width' => array(
+ 'type' => 'number'
+ ),
+ 'height' => array(
+ 'type' => 'number'
+ ),
+ 'aspectRatio' => array(
+ 'type' => 'string'
+ ),
+ 'scale' => array(
+ 'type' => 'string'
+ ),
+ 'sizeSlug' => array(
+ 'type' => 'string'
+ ),
+ 'linkDestination' => array(
+ 'type' => 'string'
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'figure > a',
+ 'attribute' => 'target'
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'behaviors' => array(
+ 'lightbox' => true
+ ),
+ 'color' => array(
+ 'text' => false,
+ 'background' => false
+ ),
+ 'filter' => array(
+ 'duotone' => true
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'width' => true,
+ '__experimentalSkipSerialization' => true,
+ '__experimentalDefaultControls' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'width' => true
+ )
+ )
+ ),
+ 'selectors' => array(
+ 'border' => '.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder',
+ 'filter' => array(
+ 'duotone' => '.wp-block-image img, .wp-block-image .components-placeholder'
+ )
+ ),
+ 'styles' => array(
+ array(
+ 'name' => 'default',
+ 'label' => 'Default',
+ 'isDefault' => true
+ ),
+ array(
+ 'name' => 'rounded',
+ 'label' => 'Rounded'
+ )
+ ),
+ 'editorStyle' => 'wp-block-image-editor',
+ 'style' => 'wp-block-image'
+ ),
+ 'latest-comments' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/latest-comments',
+ 'title' => 'Latest Comments',
+ 'category' => 'widgets',
+ 'description' => 'Display a list of your most recent comments.',
+ 'keywords' => array(
+ 'recent comments'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'commentsToShow' => array(
+ 'type' => 'number',
+ 'default' => 5,
+ 'minimum' => 1,
+ 'maximum' => 100
+ ),
+ 'displayAvatar' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'displayDate' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'displayExcerpt' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ )
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'html' => false,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-latest-comments-editor',
+ 'style' => 'wp-block-latest-comments'
+ ),
+ 'latest-posts' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/latest-posts',
+ 'title' => 'Latest Posts',
+ 'category' => 'widgets',
+ 'description' => 'Display a list of your most recent posts.',
+ 'keywords' => array(
+ 'recent posts'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'categories' => array(
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'object'
+ )
+ ),
+ 'selectedAuthor' => array(
+ 'type' => 'number'
+ ),
+ 'postsToShow' => array(
+ 'type' => 'number',
+ 'default' => 5
+ ),
+ 'displayPostContent' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'displayPostContentRadio' => array(
+ 'type' => 'string',
+ 'default' => 'excerpt'
+ ),
+ 'excerptLength' => array(
+ 'type' => 'number',
+ 'default' => 55
+ ),
+ 'displayAuthor' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'displayPostDate' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'postLayout' => array(
+ 'type' => 'string',
+ 'default' => 'list'
+ ),
+ 'columns' => array(
+ 'type' => 'number',
+ 'default' => 3
+ ),
+ 'order' => array(
+ 'type' => 'string',
+ 'default' => 'desc'
+ ),
+ 'orderBy' => array(
+ 'type' => 'string',
+ 'default' => 'date'
+ ),
+ 'displayFeaturedImage' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'featuredImageAlign' => array(
+ 'type' => 'string',
+ 'enum' => array(
+ 'left',
+ 'center',
+ 'right'
+ )
+ ),
+ 'featuredImageSizeSlug' => array(
+ 'type' => 'string',
+ 'default' => 'thumbnail'
+ ),
+ 'featuredImageSizeWidth' => array(
+ 'type' => 'number',
+ 'default' => null
+ ),
+ 'featuredImageSizeHeight' => array(
+ 'type' => 'number',
+ 'default' => null
+ ),
+ 'addLinkToFeaturedImage' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ )
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-latest-posts-editor',
+ 'style' => 'wp-block-latest-posts'
+ ),
+ 'legacy-widget' => array(
+ 'apiVersion' => 3,
+ 'name' => 'core/legacy-widget',
+ 'title' => 'Legacy Widget',
+ 'category' => 'widgets',
+ 'description' => 'Display a legacy widget.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'id' => array(
+ 'type' => 'string',
+ 'default' => null
+ ),
+ 'idBase' => array(
+ 'type' => 'string',
+ 'default' => null
+ ),
+ 'instance' => array(
+ 'type' => 'object',
+ 'default' => null
+ )
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'customClassName' => false,
+ 'reusable' => false
+ ),
+ 'editorStyle' => 'wp-block-legacy-widget-editor'
+ ),
+ 'list' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/list',
+ 'title' => 'List',
+ 'category' => 'text',
+ 'description' => 'Create a bulleted or numbered list.',
+ 'keywords' => array(
+ 'bullet list',
+ 'ordered list',
+ 'numbered list'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'ordered' => array(
+ 'type' => 'boolean',
+ 'default' => false,
+ '__experimentalRole' => 'content'
+ ),
+ 'values' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'ol,ul',
+ 'multiline' => 'li',
+ '__unstableMultilineWrapperTags' => array(
+ 'ol',
+ 'ul'
+ ),
+ 'default' => '',
+ '__experimentalRole' => 'content'
+ ),
+ 'type' => array(
+ 'type' => 'string'
+ ),
+ 'start' => array(
+ 'type' => 'number'
+ ),
+ 'reversed' => array(
+ 'type' => 'boolean'
+ ),
+ 'placeholder' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'className' => false,
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ '__unstablePasteTextInline' => true,
+ '__experimentalSelector' => 'ol,ul',
+ '__experimentalSlashInserter' => true
+ ),
+ 'editorStyle' => 'wp-block-list-editor',
+ 'style' => 'wp-block-list'
+ ),
+ 'list-item' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/list-item',
+ 'title' => 'List item',
+ 'category' => 'text',
+ 'parent' => array(
+ 'core/list'
+ ),
+ 'description' => 'Create a list item.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'placeholder' => array(
+ 'type' => 'string'
+ ),
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'li',
+ 'default' => '',
+ '__experimentalRole' => 'content'
+ )
+ ),
+ 'supports' => array(
+ 'className' => false,
+ '__experimentalSelector' => 'li',
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'loginout' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/loginout',
+ 'title' => 'Login/out',
+ 'category' => 'theme',
+ 'description' => 'Show login & logout links.',
+ 'keywords' => array(
+ 'login',
+ 'logout',
+ 'form'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'displayLoginAsForm' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'redirectToCurrent' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ )
+ ),
+ 'supports' => array(
+ 'className' => true,
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'media-text' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/media-text',
+ 'title' => 'Media & Text',
+ 'category' => 'media',
+ 'description' => 'Set media and words side-by-side for a richer layout.',
+ 'keywords' => array(
+ 'image',
+ 'video'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'align' => array(
+ 'type' => 'string',
+ 'default' => 'none'
+ ),
+ 'mediaAlt' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'figure img',
+ 'attribute' => 'alt',
+ 'default' => '',
+ '__experimentalRole' => 'content'
+ ),
+ 'mediaPosition' => array(
+ 'type' => 'string',
+ 'default' => 'left'
+ ),
+ 'mediaId' => array(
+ 'type' => 'number',
+ '__experimentalRole' => 'content'
+ ),
+ 'mediaUrl' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'figure video,figure img',
+ 'attribute' => 'src',
+ '__experimentalRole' => 'content'
+ ),
+ 'mediaLink' => array(
+ 'type' => 'string'
+ ),
+ 'linkDestination' => array(
+ 'type' => 'string'
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'figure a',
+ 'attribute' => 'target'
+ ),
+ 'href' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'figure a',
+ 'attribute' => 'href',
+ '__experimentalRole' => 'content'
+ ),
+ 'rel' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'figure a',
+ 'attribute' => 'rel'
+ ),
+ 'linkClass' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'figure a',
+ 'attribute' => 'class'
+ ),
+ 'mediaType' => array(
+ 'type' => 'string',
+ '__experimentalRole' => 'content'
+ ),
+ 'mediaWidth' => array(
+ 'type' => 'number',
+ 'default' => 50
+ ),
+ 'mediaSizeSlug' => array(
+ 'type' => 'string'
+ ),
+ 'isStackedOnMobile' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'verticalAlignment' => array(
+ 'type' => 'string'
+ ),
+ 'imageFill' => array(
+ 'type' => 'boolean'
+ ),
+ 'focalPoint' => array(
+ 'type' => 'object'
+ ),
+ 'allowedBlocks' => array(
+ 'type' => 'array'
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-media-text-editor',
+ 'style' => 'wp-block-media-text'
+ ),
+ 'missing' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/missing',
+ 'title' => 'Unsupported',
+ 'category' => 'text',
+ 'description' => 'Your site doesn’t include support for this block.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'originalName' => array(
+ 'type' => 'string'
+ ),
+ 'originalUndelimitedContent' => array(
+ 'type' => 'string'
+ ),
+ 'originalContent' => array(
+ 'type' => 'string',
+ 'source' => 'html'
+ )
+ ),
+ 'supports' => array(
+ 'className' => false,
+ 'customClassName' => false,
+ 'inserter' => false,
+ 'html' => false,
+ 'reusable' => false
+ )
+ ),
+ 'more' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/more',
+ 'title' => 'More',
+ 'category' => 'design',
+ 'description' => 'Content before this block will be shown in the excerpt on your archives page.',
+ 'keywords' => array(
+ 'read more'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'customText' => array(
+ 'type' => 'string'
+ ),
+ 'noTeaser' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ )
+ ),
+ 'supports' => array(
+ 'customClassName' => false,
+ 'className' => false,
+ 'html' => false,
+ 'multiple' => false
+ ),
+ 'editorStyle' => 'wp-block-more-editor'
+ ),
+ 'navigation' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/navigation',
+ 'title' => 'Navigation',
+ 'category' => 'theme',
+ 'description' => 'A collection of blocks that allow visitors to get around your site.',
+ 'keywords' => array(
+ 'menu',
+ 'navigation',
+ 'links'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'ref' => array(
+ 'type' => 'number'
+ ),
+ 'textColor' => array(
+ 'type' => 'string'
+ ),
+ 'customTextColor' => array(
+ 'type' => 'string'
+ ),
+ 'rgbTextColor' => array(
+ 'type' => 'string'
+ ),
+ 'backgroundColor' => array(
+ 'type' => 'string'
+ ),
+ 'customBackgroundColor' => array(
+ 'type' => 'string'
+ ),
+ 'rgbBackgroundColor' => array(
+ 'type' => 'string'
+ ),
+ 'showSubmenuIcon' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'openSubmenusOnClick' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'overlayMenu' => array(
+ 'type' => 'string',
+ 'default' => 'mobile'
+ ),
+ 'icon' => array(
+ 'type' => 'string',
+ 'default' => 'handle'
+ ),
+ 'hasIcon' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ '__unstableLocation' => array(
+ 'type' => 'string'
+ ),
+ 'overlayBackgroundColor' => array(
+ 'type' => 'string'
+ ),
+ 'customOverlayBackgroundColor' => array(
+ 'type' => 'string'
+ ),
+ 'overlayTextColor' => array(
+ 'type' => 'string'
+ ),
+ 'customOverlayTextColor' => array(
+ 'type' => 'string'
+ ),
+ 'maxNestingLevel' => array(
+ 'type' => 'number',
+ 'default' => 5
+ ),
+ 'templateLock' => array(
+ 'type' => array(
+ 'string',
+ 'boolean'
+ ),
+ 'enum' => array(
+ 'all',
+ 'insert',
+ 'contentOnly',
+ false
+ )
+ )
+ ),
+ 'providesContext' => array(
+ 'textColor' => 'textColor',
+ 'customTextColor' => 'customTextColor',
+ 'backgroundColor' => 'backgroundColor',
+ 'customBackgroundColor' => 'customBackgroundColor',
+ 'overlayTextColor' => 'overlayTextColor',
+ 'customOverlayTextColor' => 'customOverlayTextColor',
+ 'overlayBackgroundColor' => 'overlayBackgroundColor',
+ 'customOverlayBackgroundColor' => 'customOverlayBackgroundColor',
+ 'fontSize' => 'fontSize',
+ 'customFontSize' => 'customFontSize',
+ 'showSubmenuIcon' => 'showSubmenuIcon',
+ 'openSubmenusOnClick' => 'openSubmenusOnClick',
+ 'style' => 'style',
+ 'maxNestingLevel' => 'maxNestingLevel'
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'inserter' => true,
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalSkipSerialization' => array(
+ 'textDecoration'
+ ),
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'spacing' => array(
+ 'blockGap' => true,
+ 'units' => array(
+ 'px',
+ 'em',
+ 'rem',
+ 'vh',
+ 'vw'
+ ),
+ '__experimentalDefaultControls' => array(
+ 'blockGap' => true
+ )
+ ),
+ 'layout' => array(
+ 'allowSwitching' => false,
+ 'allowInheriting' => false,
+ 'allowVerticalAlignment' => false,
+ 'allowSizingOnChildren' => true,
+ 'default' => array(
+ 'type' => 'flex'
+ )
+ ),
+ '__experimentalStyle' => array(
+ 'elements' => array(
+ 'link' => array(
+ 'color' => array(
+ 'text' => 'inherit'
+ )
+ )
+ )
+ )
+ ),
+ 'viewScript' => array(
+ 'file:./view.min.js',
+ 'file:./view-modal.min.js'
+ ),
+ 'editorStyle' => 'wp-block-navigation-editor',
+ 'style' => 'wp-block-navigation'
+ ),
+ 'navigation-link' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/navigation-link',
+ 'title' => 'Custom Link',
+ 'category' => 'design',
+ 'parent' => array(
+ 'core/navigation'
+ ),
+ 'description' => 'Add a page, link, or another item to your navigation.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'label' => array(
+ 'type' => 'string'
+ ),
+ 'type' => array(
+ 'type' => 'string'
+ ),
+ 'description' => array(
+ 'type' => 'string'
+ ),
+ 'rel' => array(
+ 'type' => 'string'
+ ),
+ 'id' => array(
+ 'type' => 'number'
+ ),
+ 'opensInNewTab' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'url' => array(
+ 'type' => 'string'
+ ),
+ 'title' => array(
+ 'type' => 'string'
+ ),
+ 'kind' => array(
+ 'type' => 'string'
+ ),
+ 'isTopLevelLink' => array(
+ 'type' => 'boolean'
+ )
+ ),
+ 'usesContext' => array(
+ 'textColor',
+ 'customTextColor',
+ 'backgroundColor',
+ 'customBackgroundColor',
+ 'overlayTextColor',
+ 'customOverlayTextColor',
+ 'overlayBackgroundColor',
+ 'customOverlayBackgroundColor',
+ 'fontSize',
+ 'customFontSize',
+ 'showSubmenuIcon',
+ 'maxNestingLevel',
+ 'style'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ '__experimentalSlashInserter' => true,
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-navigation-link-editor',
+ 'style' => 'wp-block-navigation-link'
+ ),
+ 'navigation-submenu' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/navigation-submenu',
+ 'title' => 'Submenu',
+ 'category' => 'design',
+ 'parent' => array(
+ 'core/navigation'
+ ),
+ 'description' => 'Add a submenu to your navigation.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'label' => array(
+ 'type' => 'string'
+ ),
+ 'type' => array(
+ 'type' => 'string'
+ ),
+ 'description' => array(
+ 'type' => 'string'
+ ),
+ 'rel' => array(
+ 'type' => 'string'
+ ),
+ 'id' => array(
+ 'type' => 'number'
+ ),
+ 'opensInNewTab' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'url' => array(
+ 'type' => 'string'
+ ),
+ 'title' => array(
+ 'type' => 'string'
+ ),
+ 'kind' => array(
+ 'type' => 'string'
+ ),
+ 'isTopLevelItem' => array(
+ 'type' => 'boolean'
+ )
+ ),
+ 'usesContext' => array(
+ 'textColor',
+ 'customTextColor',
+ 'backgroundColor',
+ 'customBackgroundColor',
+ 'overlayTextColor',
+ 'customOverlayTextColor',
+ 'overlayBackgroundColor',
+ 'customOverlayBackgroundColor',
+ 'fontSize',
+ 'customFontSize',
+ 'showSubmenuIcon',
+ 'maxNestingLevel',
+ 'openSubmenusOnClick',
+ 'style'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false
+ ),
+ 'editorStyle' => 'wp-block-navigation-submenu-editor',
+ 'style' => 'wp-block-navigation-submenu'
+ ),
+ 'nextpage' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/nextpage',
+ 'title' => 'Page Break',
+ 'category' => 'design',
+ 'description' => 'Separate your content into a multi-page experience.',
+ 'keywords' => array(
+ 'next page',
+ 'pagination'
+ ),
+ 'parent' => array(
+ 'core/post-content'
+ ),
+ 'textdomain' => 'default',
+ 'supports' => array(
+ 'customClassName' => false,
+ 'className' => false,
+ 'html' => false
+ ),
+ 'editorStyle' => 'wp-block-nextpage-editor'
+ ),
+ 'page-list' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/page-list',
+ 'title' => 'Page List',
+ 'category' => 'widgets',
+ 'description' => 'Display a list of all pages.',
+ 'keywords' => array(
+ 'menu',
+ 'navigation'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'parentPageID' => array(
+ 'type' => 'integer',
+ 'default' => 0
+ ),
+ 'isNested' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ )
+ ),
+ 'usesContext' => array(
+ 'textColor',
+ 'customTextColor',
+ 'backgroundColor',
+ 'customBackgroundColor',
+ 'overlayTextColor',
+ 'customOverlayTextColor',
+ 'overlayBackgroundColor',
+ 'customOverlayBackgroundColor',
+ 'fontSize',
+ 'customFontSize',
+ 'showSubmenuIcon',
+ 'style',
+ 'openSubmenusOnClick'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-page-list-editor',
+ 'style' => 'wp-block-page-list'
+ ),
+ 'page-list-item' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/page-list-item',
+ 'title' => 'Page List Item',
+ 'category' => 'widgets',
+ 'parent' => array(
+ 'core/page-list'
+ ),
+ 'description' => 'Displays a page inside a list of all pages.',
+ 'keywords' => array(
+ 'page',
+ 'menu',
+ 'navigation'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'id' => array(
+ 'type' => 'number'
+ ),
+ 'label' => array(
+ 'type' => 'string'
+ ),
+ 'title' => array(
+ 'type' => 'string'
+ ),
+ 'link' => array(
+ 'type' => 'string'
+ ),
+ 'hasChildren' => array(
+ 'type' => 'boolean'
+ )
+ ),
+ 'usesContext' => array(
+ 'textColor',
+ 'customTextColor',
+ 'backgroundColor',
+ 'customBackgroundColor',
+ 'overlayTextColor',
+ 'customOverlayTextColor',
+ 'overlayBackgroundColor',
+ 'customOverlayBackgroundColor',
+ 'fontSize',
+ 'customFontSize',
+ 'showSubmenuIcon',
+ 'style',
+ 'openSubmenusOnClick'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'lock' => false,
+ 'inserter' => false,
+ '__experimentalToolbar' => false
+ ),
+ 'editorStyle' => 'wp-block-page-list-editor',
+ 'style' => 'wp-block-page-list'
+ ),
+ 'paragraph' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/paragraph',
+ 'title' => 'Paragraph',
+ 'category' => 'text',
+ 'description' => 'Start with the basic building block of all narrative.',
+ 'keywords' => array(
+ 'text'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'align' => array(
+ 'type' => 'string'
+ ),
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'p',
+ 'default' => '',
+ '__experimentalRole' => 'content'
+ ),
+ 'dropCap' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'placeholder' => array(
+ 'type' => 'string'
+ ),
+ 'direction' => array(
+ 'type' => 'string',
+ 'enum' => array(
+ 'ltr',
+ 'rtl'
+ )
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'className' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true,
+ '__experimentalDefaultControls' => array(
+ 'margin' => false,
+ 'padding' => false
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ '__experimentalSelector' => 'p',
+ '__unstablePasteTextInline' => true
+ ),
+ 'editorStyle' => 'wp-block-paragraph-editor',
+ 'style' => 'wp-block-paragraph'
+ ),
+ 'pattern' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/pattern',
+ 'title' => 'Pattern placeholder',
+ 'category' => 'theme',
+ 'description' => 'Show a block pattern.',
+ 'supports' => array(
+ 'html' => false,
+ 'inserter' => false
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'slug' => array(
+ 'type' => 'string'
+ )
+ )
+ ),
+ 'post-author' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-author',
+ 'title' => 'Post Author',
+ 'category' => 'theme',
+ 'description' => 'Display post author details such as name, avatar, and bio.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'avatarSize' => array(
+ 'type' => 'number',
+ 'default' => 48
+ ),
+ 'showAvatar' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'showBio' => array(
+ 'type' => 'boolean'
+ ),
+ 'byline' => array(
+ 'type' => 'string'
+ ),
+ 'isLink' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'default' => '_self'
+ )
+ ),
+ 'usesContext' => array(
+ 'postType',
+ 'postId',
+ 'queryId'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDuotone' => '.wp-block-post-author__avatar img',
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-post-author'
+ ),
+ 'post-author-biography' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-author-biography',
+ 'title' => 'Post Author Biography',
+ 'category' => 'theme',
+ 'description' => 'The author biography.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'postType',
+ 'postId'
+ ),
+ 'supports' => array(
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'post-author-name' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-author-name',
+ 'title' => 'Post Author Name',
+ 'category' => 'theme',
+ 'description' => 'The author name.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'isLink' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'default' => '_self'
+ )
+ ),
+ 'usesContext' => array(
+ 'postType',
+ 'postId'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'post-comments-form' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-comments-form',
+ 'title' => 'Post Comments Form',
+ 'category' => 'theme',
+ 'description' => 'Display a post\'s comments form.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'postId',
+ 'postType'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-post-comments-form-editor',
+ 'style' => array(
+ 'wp-block-post-comments-form',
+ 'wp-block-buttons',
+ 'wp-block-button'
+ )
+ ),
+ 'post-content' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-content',
+ 'title' => 'Post Content',
+ 'category' => 'theme',
+ 'description' => 'Displays the contents of a post or page.',
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'postId',
+ 'postType',
+ 'queryId'
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'layout' => true,
+ 'dimensions' => array(
+ 'minHeight' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-post-content-editor'
+ ),
+ 'post-date' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-date',
+ 'title' => 'Post Date',
+ 'category' => 'theme',
+ 'description' => 'Add the date of this post.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'format' => array(
+ 'type' => 'string'
+ ),
+ 'isLink' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'displayType' => array(
+ 'type' => 'string',
+ 'default' => 'date'
+ )
+ ),
+ 'usesContext' => array(
+ 'postId',
+ 'postType',
+ 'queryId'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'post-excerpt' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-excerpt',
+ 'title' => 'Excerpt',
+ 'category' => 'theme',
+ 'description' => 'Display the excerpt.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'moreText' => array(
+ 'type' => 'string'
+ ),
+ 'showMoreOnNewLine' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'excerptLength' => array(
+ 'type' => 'number',
+ 'default' => 55
+ )
+ ),
+ 'usesContext' => array(
+ 'postId',
+ 'postType',
+ 'queryId'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-post-excerpt-editor',
+ 'style' => 'wp-block-post-excerpt'
+ ),
+ 'post-featured-image' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-featured-image',
+ 'title' => 'Post Featured Image',
+ 'category' => 'theme',
+ 'description' => 'Display a post\'s featured image.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'isLink' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'aspectRatio' => array(
+ 'type' => 'string'
+ ),
+ 'width' => array(
+ 'type' => 'string'
+ ),
+ 'height' => array(
+ 'type' => 'string'
+ ),
+ 'scale' => array(
+ 'type' => 'string',
+ 'default' => 'cover'
+ ),
+ 'sizeSlug' => array(
+ 'type' => 'string'
+ ),
+ 'rel' => array(
+ 'type' => 'string',
+ 'attribute' => 'rel',
+ 'default' => ''
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'default' => '_self'
+ ),
+ 'overlayColor' => array(
+ 'type' => 'string'
+ ),
+ 'customOverlayColor' => array(
+ 'type' => 'string'
+ ),
+ 'dimRatio' => array(
+ 'type' => 'number',
+ 'default' => 0
+ ),
+ 'gradient' => array(
+ 'type' => 'string'
+ ),
+ 'customGradient' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'postId',
+ 'postType',
+ 'queryId'
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'left',
+ 'right',
+ 'center',
+ 'wide',
+ 'full'
+ ),
+ 'color' => array(
+ '__experimentalDuotone' => 'img, .wp-block-post-featured-image__placeholder, .components-placeholder__illustration, .components-placeholder::before',
+ 'text' => false,
+ 'background' => false
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'width' => true,
+ '__experimentalSelector' => 'img, .block-editor-media-placeholder, .wp-block-post-featured-image__overlay',
+ '__experimentalSkipSerialization' => true,
+ '__experimentalDefaultControls' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'width' => true
+ )
+ ),
+ 'html' => false,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ )
+ ),
+ 'editorStyle' => 'wp-block-post-featured-image-editor',
+ 'style' => 'wp-block-post-featured-image'
+ ),
+ 'post-navigation-link' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-navigation-link',
+ 'title' => 'Post Navigation Link',
+ 'category' => 'theme',
+ 'description' => 'Displays the next or previous post link that is adjacent to the current post.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'type' => array(
+ 'type' => 'string',
+ 'default' => 'next'
+ ),
+ 'label' => array(
+ 'type' => 'string'
+ ),
+ 'showTitle' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'linkLabel' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'arrow' => array(
+ 'type' => 'string',
+ 'default' => 'none'
+ )
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'link' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-post-navigation-link'
+ ),
+ 'post-template' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-template',
+ 'title' => 'Post Template',
+ 'category' => 'theme',
+ 'parent' => array(
+ 'core/query'
+ ),
+ 'description' => 'Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.',
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'queryId',
+ 'query',
+ 'queryContext',
+ 'displayLayout',
+ 'templateSlug',
+ 'previewPostType'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'layout' => true,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ 'spacing' => array(
+ 'blockGap' => array(
+ '__experimentalDefault' => '1.25em'
+ ),
+ '__experimentalDefaultControls' => array(
+ 'blockGap' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-post-template',
+ 'editorStyle' => 'wp-block-post-template-editor'
+ ),
+ 'post-terms' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-terms',
+ 'title' => 'Post Terms',
+ 'category' => 'theme',
+ 'description' => 'Post terms.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'term' => array(
+ 'type' => 'string'
+ ),
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'separator' => array(
+ 'type' => 'string',
+ 'default' => ', '
+ ),
+ 'prefix' => array(
+ 'type' => 'string',
+ 'default' => ''
+ ),
+ 'suffix' => array(
+ 'type' => 'string',
+ 'default' => ''
+ )
+ ),
+ 'usesContext' => array(
+ 'postId',
+ 'postType'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-post-terms'
+ ),
+ 'post-title' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/post-title',
+ 'title' => 'Title',
+ 'category' => 'theme',
+ 'description' => 'Displays the title of a post, page, or any other content-type.',
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'postId',
+ 'postType',
+ 'queryId'
+ ),
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'level' => array(
+ 'type' => 'number',
+ 'default' => 2
+ ),
+ 'isLink' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'rel' => array(
+ 'type' => 'string',
+ 'attribute' => 'rel',
+ 'default' => ''
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'default' => '_self'
+ )
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true,
+ 'fontAppearance' => true,
+ 'textTransform' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-post-title'
+ ),
+ 'preformatted' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/preformatted',
+ 'title' => 'Preformatted',
+ 'category' => 'text',
+ 'description' => 'Add text that respects your spacing and tabs, and also allows styling.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'pre',
+ 'default' => '',
+ '__unstablePreserveWhiteSpace' => true,
+ '__experimentalRole' => 'content'
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'color' => array(
+ 'gradients' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-preformatted'
+ ),
+ 'pullquote' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/pullquote',
+ 'title' => 'Pullquote',
+ 'category' => 'text',
+ 'description' => 'Give special visual emphasis to a quote from your text.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'value' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'p',
+ '__experimentalRole' => 'content'
+ ),
+ 'citation' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'cite',
+ 'default' => '',
+ '__experimentalRole' => 'content'
+ ),
+ 'textAlign' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => array(
+ 'left',
+ 'right',
+ 'wide',
+ 'full'
+ ),
+ 'color' => array(
+ 'gradients' => true,
+ 'background' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true,
+ 'fontAppearance' => true
+ )
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'style' => true,
+ 'width' => true,
+ '__experimentalDefaultControls' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'style' => true,
+ 'width' => true
+ )
+ ),
+ '__experimentalStyle' => array(
+ 'typography' => array(
+ 'fontSize' => '1.5em',
+ 'lineHeight' => '1.6'
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-pullquote-editor',
+ 'style' => 'wp-block-pullquote'
+ ),
+ 'query' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/query',
+ 'title' => 'Query Loop',
+ 'category' => 'theme',
+ 'description' => 'An advanced block that allows displaying post types based on different query parameters and visual configurations.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'queryId' => array(
+ 'type' => 'number'
+ ),
+ 'query' => array(
+ 'type' => 'object',
+ 'default' => array(
+ 'perPage' => null,
+ 'pages' => 0,
+ 'offset' => 0,
+ 'postType' => 'post',
+ 'order' => 'desc',
+ 'orderBy' => 'date',
+ 'author' => '',
+ 'search' => '',
+ 'exclude' => array(
+
+ ),
+ 'sticky' => '',
+ 'inherit' => true,
+ 'taxQuery' => null,
+ 'parents' => array(
+
+ )
+ )
+ ),
+ 'tagName' => array(
+ 'type' => 'string',
+ 'default' => 'div'
+ ),
+ 'namespace' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'providesContext' => array(
+ 'queryId' => 'queryId',
+ 'query' => 'query',
+ 'displayLayout' => 'displayLayout'
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'layout' => true
+ ),
+ 'editorStyle' => 'wp-block-query-editor'
+ ),
+ 'query-no-results' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/query-no-results',
+ 'title' => 'No results',
+ 'category' => 'theme',
+ 'description' => 'Contains the block elements used to render content when no query results are found.',
+ 'parent' => array(
+ 'core/query'
+ ),
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'queryId',
+ 'query'
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'query-pagination' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/query-pagination',
+ 'title' => 'Pagination',
+ 'category' => 'theme',
+ 'parent' => array(
+ 'core/query'
+ ),
+ 'description' => 'Displays a paginated navigation to next/previous set of posts, when applicable.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'paginationArrow' => array(
+ 'type' => 'string',
+ 'default' => 'none'
+ ),
+ 'showLabel' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ )
+ ),
+ 'usesContext' => array(
+ 'queryId',
+ 'query'
+ ),
+ 'providesContext' => array(
+ 'paginationArrow' => 'paginationArrow',
+ 'showLabel' => 'showLabel'
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'layout' => array(
+ 'allowSwitching' => false,
+ 'allowInheriting' => false,
+ 'default' => array(
+ 'type' => 'flex'
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-query-pagination-editor',
+ 'style' => 'wp-block-query-pagination'
+ ),
+ 'query-pagination-next' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/query-pagination-next',
+ 'title' => 'Next Page',
+ 'category' => 'theme',
+ 'parent' => array(
+ 'core/query-pagination'
+ ),
+ 'description' => 'Displays the next posts page link.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'label' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'queryId',
+ 'query',
+ 'paginationArrow',
+ 'showLabel'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'query-pagination-numbers' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/query-pagination-numbers',
+ 'title' => 'Page Numbers',
+ 'category' => 'theme',
+ 'parent' => array(
+ 'core/query-pagination'
+ ),
+ 'description' => 'Displays a list of page numbers for pagination',
+ 'textdomain' => 'default',
+ 'usesContext' => array(
+ 'queryId',
+ 'query'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-query-pagination-numbers-editor'
+ ),
+ 'query-pagination-previous' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/query-pagination-previous',
+ 'title' => 'Previous Page',
+ 'category' => 'theme',
+ 'parent' => array(
+ 'core/query-pagination'
+ ),
+ 'description' => 'Displays the previous posts page link.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'label' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'queryId',
+ 'query',
+ 'paginationArrow',
+ 'showLabel'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'query-title' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/query-title',
+ 'title' => 'Query Title',
+ 'category' => 'theme',
+ 'description' => 'Display the query title.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'type' => array(
+ 'type' => 'string'
+ ),
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'level' => array(
+ 'type' => 'number',
+ 'default' => 1
+ ),
+ 'showPrefix' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'showSearchTerm' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ )
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true,
+ 'fontAppearance' => true,
+ 'textTransform' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-query-title'
+ ),
+ 'quote' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/quote',
+ 'title' => 'Quote',
+ 'category' => 'text',
+ 'description' => 'Give quoted text visual emphasis. "In quoting others, we cite ourselves." — Julio Cortázar',
+ 'keywords' => array(
+ 'blockquote',
+ 'cite'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'value' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'blockquote',
+ 'multiline' => 'p',
+ 'default' => '',
+ '__experimentalRole' => 'content'
+ ),
+ 'citation' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'cite',
+ 'default' => '',
+ '__experimentalRole' => 'content'
+ ),
+ 'align' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'html' => false,
+ '__experimentalOnEnter' => true,
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true,
+ 'fontAppearance' => true
+ )
+ ),
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ )
+ ),
+ 'styles' => array(
+ array(
+ 'name' => 'default',
+ 'label' => 'Default',
+ 'isDefault' => true
+ ),
+ array(
+ 'name' => 'plain',
+ 'label' => 'Plain'
+ )
+ ),
+ 'editorStyle' => 'wp-block-quote-editor',
+ 'style' => 'wp-block-quote'
+ ),
+ 'read-more' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/read-more',
+ 'title' => 'Read More',
+ 'category' => 'theme',
+ 'description' => 'Displays the link of a post, page, or any other content-type.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'content' => array(
+ 'type' => 'string'
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'default' => '_self'
+ )
+ ),
+ 'usesContext' => array(
+ 'postId'
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'text' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true,
+ 'textDecoration' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => array(
+ 'top',
+ 'bottom'
+ ),
+ 'padding' => true,
+ '__experimentalDefaultControls' => array(
+ 'padding' => true
+ )
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'width' => true,
+ '__experimentalDefaultControls' => array(
+ 'width' => true
+ )
+ )
+ ),
+ 'style' => 'wp-block-read-more'
+ ),
+ 'rss' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/rss',
+ 'title' => 'RSS',
+ 'category' => 'widgets',
+ 'description' => 'Display entries from any RSS or Atom feed.',
+ 'keywords' => array(
+ 'atom',
+ 'feed'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'columns' => array(
+ 'type' => 'number',
+ 'default' => 2
+ ),
+ 'blockLayout' => array(
+ 'type' => 'string',
+ 'default' => 'list'
+ ),
+ 'feedURL' => array(
+ 'type' => 'string',
+ 'default' => ''
+ ),
+ 'itemsToShow' => array(
+ 'type' => 'number',
+ 'default' => 5
+ ),
+ 'displayExcerpt' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'displayAuthor' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'displayDate' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'excerptLength' => array(
+ 'type' => 'number',
+ 'default' => 55
+ )
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'html' => false
+ ),
+ 'editorStyle' => 'wp-block-rss-editor',
+ 'style' => 'wp-block-rss'
+ ),
+ 'search' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/search',
+ 'title' => 'Search',
+ 'category' => 'widgets',
+ 'description' => 'Help visitors find your content.',
+ 'keywords' => array(
+ 'find'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'label' => array(
+ 'type' => 'string',
+ '__experimentalRole' => 'content'
+ ),
+ 'showLabel' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'placeholder' => array(
+ 'type' => 'string',
+ 'default' => '',
+ '__experimentalRole' => 'content'
+ ),
+ 'width' => array(
+ 'type' => 'number'
+ ),
+ 'widthUnit' => array(
+ 'type' => 'string'
+ ),
+ 'buttonText' => array(
+ 'type' => 'string',
+ '__experimentalRole' => 'content'
+ ),
+ 'buttonPosition' => array(
+ 'type' => 'string',
+ 'default' => 'button-outside'
+ ),
+ 'buttonUseIcon' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'query' => array(
+ 'type' => 'object',
+ 'default' => array(
+
+ )
+ ),
+ 'buttonBehavior' => array(
+ 'type' => 'string',
+ 'default' => 'expand-searchfield'
+ ),
+ 'isSearchFieldHidden' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ )
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'left',
+ 'center',
+ 'right'
+ ),
+ 'color' => array(
+ 'gradients' => true,
+ '__experimentalSkipSerialization' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'typography' => array(
+ '__experimentalSkipSerialization' => true,
+ '__experimentalSelector' => '.wp-block-search__label, .wp-block-search__input, .wp-block-search__button',
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ '__experimentalBorder' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'width' => true,
+ '__experimentalSkipSerialization' => true,
+ '__experimentalDefaultControls' => array(
+ 'color' => true,
+ 'radius' => true,
+ 'width' => true
+ )
+ ),
+ 'html' => false
+ ),
+ 'editorStyle' => 'wp-block-search-editor',
+ 'style' => 'wp-block-search'
+ ),
+ 'separator' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/separator',
+ 'title' => 'Separator',
+ 'category' => 'design',
+ 'description' => 'Create a break between ideas or sections with a horizontal separator.',
+ 'keywords' => array(
+ 'horizontal-line',
+ 'hr',
+ 'divider'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'opacity' => array(
+ 'type' => 'string',
+ 'default' => 'alpha-channel'
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => array(
+ 'center',
+ 'wide',
+ 'full'
+ ),
+ 'color' => array(
+ 'enableContrastChecker' => false,
+ '__experimentalSkipSerialization' => true,
+ 'gradients' => true,
+ 'background' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => array(
+ 'top',
+ 'bottom'
+ )
+ )
+ ),
+ 'styles' => array(
+ array(
+ 'name' => 'default',
+ 'label' => 'Default',
+ 'isDefault' => true
+ ),
+ array(
+ 'name' => 'wide',
+ 'label' => 'Wide Line'
+ ),
+ array(
+ 'name' => 'dots',
+ 'label' => 'Dots'
+ )
+ ),
+ 'editorStyle' => 'wp-block-separator-editor',
+ 'style' => 'wp-block-separator'
+ ),
+ 'shortcode' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/shortcode',
+ 'title' => 'Shortcode',
+ 'category' => 'widgets',
+ 'description' => 'Insert additional custom elements with a WordPress shortcode.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'text' => array(
+ 'type' => 'string',
+ 'source' => 'raw'
+ )
+ ),
+ 'supports' => array(
+ 'className' => false,
+ 'customClassName' => false,
+ 'html' => false
+ ),
+ 'editorStyle' => 'wp-block-shortcode-editor'
+ ),
+ 'site-logo' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/site-logo',
+ 'title' => 'Site Logo',
+ 'category' => 'theme',
+ 'description' => 'Display an image to represent this site. Update this block and the changes apply everywhere.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'width' => array(
+ 'type' => 'number'
+ ),
+ 'isLink' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'default' => '_self'
+ ),
+ 'shouldSyncIcon' => array(
+ 'type' => 'boolean'
+ )
+ ),
+ 'example' => array(
+ 'viewportWidth' => 500,
+ 'attributes' => array(
+ 'width' => 350,
+ 'className' => 'block-editor-block-types-list__site-logo-example'
+ )
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'align' => true,
+ 'alignWide' => false,
+ 'color' => array(
+ '__experimentalDuotone' => 'img, .components-placeholder__illustration, .components-placeholder::before',
+ 'text' => false,
+ 'background' => false
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ )
+ ),
+ 'styles' => array(
+ array(
+ 'name' => 'default',
+ 'label' => 'Default',
+ 'isDefault' => true
+ ),
+ array(
+ 'name' => 'rounded',
+ 'label' => 'Rounded'
+ )
+ ),
+ 'editorStyle' => 'wp-block-site-logo-editor',
+ 'style' => 'wp-block-site-logo'
+ ),
+ 'site-tagline' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/site-tagline',
+ 'title' => 'Site Tagline',
+ 'category' => 'theme',
+ 'description' => 'Describe in a few words what the site is about. The tagline can be used in search results or when sharing on social networks even if it’s not displayed in the theme design.',
+ 'keywords' => array(
+ 'description'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'example' => array(
+
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-site-tagline-editor'
+ ),
+ 'site-title' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/site-title',
+ 'title' => 'Site Title',
+ 'category' => 'theme',
+ 'description' => 'Displays the name of this site. Update the block, and the changes apply everywhere it’s used. This will also appear in the browser title bar and in search results.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'level' => array(
+ 'type' => 'number',
+ 'default' => 1
+ ),
+ 'textAlign' => array(
+ 'type' => 'string'
+ ),
+ 'isLink' => array(
+ 'type' => 'boolean',
+ 'default' => true
+ ),
+ 'linkTarget' => array(
+ 'type' => 'string',
+ 'default' => '_self'
+ )
+ ),
+ 'example' => array(
+ 'viewportWidth' => 500
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true,
+ 'link' => true
+ )
+ ),
+ 'spacing' => array(
+ 'padding' => true,
+ 'margin' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ 'fontAppearance' => true,
+ 'letterSpacing' => true,
+ 'textTransform' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-site-title-editor',
+ 'style' => 'wp-block-site-title'
+ ),
+ 'social-link' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/social-link',
+ 'title' => 'Social Icon',
+ 'category' => 'widgets',
+ 'parent' => array(
+ 'core/social-links'
+ ),
+ 'description' => 'Display an icon linking to a social media profile or site.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'url' => array(
+ 'type' => 'string'
+ ),
+ 'service' => array(
+ 'type' => 'string'
+ ),
+ 'label' => array(
+ 'type' => 'string'
+ ),
+ 'rel' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'openInNewTab',
+ 'showLabels',
+ 'iconColor',
+ 'iconColorValue',
+ 'iconBackgroundColor',
+ 'iconBackgroundColorValue'
+ ),
+ 'supports' => array(
+ 'reusable' => false,
+ 'html' => false
+ ),
+ 'editorStyle' => 'wp-block-social-link-editor'
+ ),
+ 'social-links' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/social-links',
+ 'title' => 'Social Icons',
+ 'category' => 'widgets',
+ 'description' => 'Display icons linking to your social media profiles or sites.',
+ 'keywords' => array(
+ 'links'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'iconColor' => array(
+ 'type' => 'string'
+ ),
+ 'customIconColor' => array(
+ 'type' => 'string'
+ ),
+ 'iconColorValue' => array(
+ 'type' => 'string'
+ ),
+ 'iconBackgroundColor' => array(
+ 'type' => 'string'
+ ),
+ 'customIconBackgroundColor' => array(
+ 'type' => 'string'
+ ),
+ 'iconBackgroundColorValue' => array(
+ 'type' => 'string'
+ ),
+ 'openInNewTab' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'showLabels' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'size' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'providesContext' => array(
+ 'openInNewTab' => 'openInNewTab',
+ 'showLabels' => 'showLabels',
+ 'iconColor' => 'iconColor',
+ 'iconColorValue' => 'iconColorValue',
+ 'iconBackgroundColor' => 'iconBackgroundColor',
+ 'iconBackgroundColorValue' => 'iconBackgroundColorValue'
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'left',
+ 'center',
+ 'right'
+ ),
+ 'anchor' => true,
+ '__experimentalExposeControlsToChildren' => true,
+ 'layout' => array(
+ 'allowSwitching' => false,
+ 'allowInheriting' => false,
+ 'allowVerticalAlignment' => false,
+ 'default' => array(
+ 'type' => 'flex'
+ )
+ ),
+ 'color' => array(
+ 'enableContrastChecker' => false,
+ 'background' => true,
+ 'gradients' => true,
+ 'text' => false,
+ '__experimentalDefaultControls' => array(
+ 'background' => false
+ )
+ ),
+ 'spacing' => array(
+ 'blockGap' => array(
+ 'horizontal',
+ 'vertical'
+ ),
+ 'margin' => true,
+ 'padding' => true,
+ 'units' => array(
+ 'px',
+ 'em',
+ 'rem',
+ 'vh',
+ 'vw'
+ ),
+ '__experimentalDefaultControls' => array(
+ 'blockGap' => true
+ )
+ )
+ ),
+ 'styles' => array(
+ array(
+ 'name' => 'default',
+ 'label' => 'Default',
+ 'isDefault' => true
+ ),
+ array(
+ 'name' => 'logos-only',
+ 'label' => 'Logos Only'
+ ),
+ array(
+ 'name' => 'pill-shape',
+ 'label' => 'Pill Shape'
+ )
+ ),
+ 'editorStyle' => 'wp-block-social-links-editor',
+ 'style' => 'wp-block-social-links'
+ ),
+ 'spacer' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/spacer',
+ 'title' => 'Spacer',
+ 'category' => 'design',
+ 'description' => 'Add white space between blocks and customize its height.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'height' => array(
+ 'type' => 'string',
+ 'default' => '100px'
+ ),
+ 'width' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'usesContext' => array(
+ 'orientation'
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'spacing' => array(
+ 'margin' => array(
+ 'top',
+ 'bottom'
+ ),
+ '__experimentalDefaultControls' => array(
+ 'margin' => true
+ )
+ )
+ ),
+ 'editorStyle' => 'wp-block-spacer-editor',
+ 'style' => 'wp-block-spacer'
+ ),
+ 'table' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/table',
+ 'title' => 'Table',
+ 'category' => 'text',
+ 'description' => 'Create structured content in rows and columns to display information.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'hasFixedLayout' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'caption' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'figcaption',
+ 'default' => ''
+ ),
+ 'head' => array(
+ 'type' => 'array',
+ 'default' => array(
+
+ ),
+ 'source' => 'query',
+ 'selector' => 'thead tr',
+ 'query' => array(
+ 'cells' => array(
+ 'type' => 'array',
+ 'default' => array(
+
+ ),
+ 'source' => 'query',
+ 'selector' => 'td,th',
+ 'query' => array(
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'html'
+ ),
+ 'tag' => array(
+ 'type' => 'string',
+ 'default' => 'td',
+ 'source' => 'tag'
+ ),
+ 'scope' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'scope'
+ ),
+ 'align' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'data-align'
+ ),
+ 'colspan' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'colspan'
+ ),
+ 'rowspan' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'rowspan'
+ )
+ )
+ )
+ )
+ ),
+ 'body' => array(
+ 'type' => 'array',
+ 'default' => array(
+
+ ),
+ 'source' => 'query',
+ 'selector' => 'tbody tr',
+ 'query' => array(
+ 'cells' => array(
+ 'type' => 'array',
+ 'default' => array(
+
+ ),
+ 'source' => 'query',
+ 'selector' => 'td,th',
+ 'query' => array(
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'html'
+ ),
+ 'tag' => array(
+ 'type' => 'string',
+ 'default' => 'td',
+ 'source' => 'tag'
+ ),
+ 'scope' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'scope'
+ ),
+ 'align' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'data-align'
+ ),
+ 'colspan' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'colspan'
+ ),
+ 'rowspan' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'rowspan'
+ )
+ )
+ )
+ )
+ ),
+ 'foot' => array(
+ 'type' => 'array',
+ 'default' => array(
+
+ ),
+ 'source' => 'query',
+ 'selector' => 'tfoot tr',
+ 'query' => array(
+ 'cells' => array(
+ 'type' => 'array',
+ 'default' => array(
+
+ ),
+ 'source' => 'query',
+ 'selector' => 'td,th',
+ 'query' => array(
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'html'
+ ),
+ 'tag' => array(
+ 'type' => 'string',
+ 'default' => 'td',
+ 'source' => 'tag'
+ ),
+ 'scope' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'scope'
+ ),
+ 'align' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'data-align'
+ ),
+ 'colspan' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'colspan'
+ ),
+ 'rowspan' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'attribute' => 'rowspan'
+ )
+ )
+ )
+ )
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => true,
+ 'color' => array(
+ '__experimentalSkipSerialization' => true,
+ 'gradients' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ ),
+ '__experimentalBorder' => array(
+ '__experimentalSkipSerialization' => true,
+ 'color' => true,
+ 'style' => true,
+ 'width' => true,
+ '__experimentalDefaultControls' => array(
+ 'color' => true,
+ 'style' => true,
+ 'width' => true
+ )
+ ),
+ '__experimentalSelector' => '.wp-block-table > table'
+ ),
+ 'styles' => array(
+ array(
+ 'name' => 'regular',
+ 'label' => 'Default',
+ 'isDefault' => true
+ ),
+ array(
+ 'name' => 'stripes',
+ 'label' => 'Stripes'
+ )
+ ),
+ 'editorStyle' => 'wp-block-table-editor',
+ 'style' => 'wp-block-table'
+ ),
+ 'tag-cloud' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/tag-cloud',
+ 'title' => 'Tag Cloud',
+ 'category' => 'widgets',
+ 'description' => 'A cloud of your most used tags.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'numberOfTags' => array(
+ 'type' => 'number',
+ 'default' => 45,
+ 'minimum' => 1,
+ 'maximum' => 100
+ ),
+ 'taxonomy' => array(
+ 'type' => 'string',
+ 'default' => 'post_tag'
+ ),
+ 'showTagCounts' => array(
+ 'type' => 'boolean',
+ 'default' => false
+ ),
+ 'smallestFontSize' => array(
+ 'type' => 'string',
+ 'default' => '8pt'
+ ),
+ 'largestFontSize' => array(
+ 'type' => 'string',
+ 'default' => '22pt'
+ )
+ ),
+ 'styles' => array(
+ array(
+ 'name' => 'default',
+ 'label' => 'Default',
+ 'isDefault' => true
+ ),
+ array(
+ 'name' => 'outline',
+ 'label' => 'Outline'
+ )
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'align' => true,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ 'typography' => array(
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalLetterSpacing' => true
+ )
+ ),
+ 'editorStyle' => 'wp-block-tag-cloud-editor'
+ ),
+ 'template-part' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/template-part',
+ 'title' => 'Template Part',
+ 'category' => 'theme',
+ 'description' => 'Edit the different global regions of your site, like the header, footer, sidebar, or create your own.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'slug' => array(
+ 'type' => 'string'
+ ),
+ 'theme' => array(
+ 'type' => 'string'
+ ),
+ 'tagName' => array(
+ 'type' => 'string'
+ ),
+ 'area' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'align' => true,
+ 'html' => false,
+ 'reusable' => false
+ ),
+ 'editorStyle' => 'wp-block-template-part-editor'
+ ),
+ 'term-description' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/term-description',
+ 'title' => 'Term Description',
+ 'category' => 'theme',
+ 'description' => 'Display the description of categories, tags and custom taxonomies when viewing an archive.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'textAlign' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'align' => array(
+ 'wide',
+ 'full'
+ ),
+ 'html' => false,
+ 'color' => array(
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'spacing' => array(
+ 'padding' => true,
+ 'margin' => true
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ 'lineHeight' => true,
+ '__experimentalFontFamily' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true
+ )
+ )
+ )
+ ),
+ 'text-columns' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/text-columns',
+ 'title' => 'Text Columns (deprecated)',
+ 'icon' => 'columns',
+ 'category' => 'design',
+ 'description' => 'This block is deprecated. Please use the Columns block instead.',
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'content' => array(
+ 'type' => 'array',
+ 'source' => 'query',
+ 'selector' => 'p',
+ 'query' => array(
+ 'children' => array(
+ 'type' => 'string',
+ 'source' => 'html'
+ )
+ ),
+ 'default' => array(
+ array(
+
+ ),
+ array(
+
+ )
+ )
+ ),
+ 'columns' => array(
+ 'type' => 'number',
+ 'default' => 2
+ ),
+ 'width' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'inserter' => false
+ ),
+ 'editorStyle' => 'wp-block-text-columns-editor',
+ 'style' => 'wp-block-text-columns'
+ ),
+ 'verse' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/verse',
+ 'title' => 'Verse',
+ 'category' => 'text',
+ 'description' => 'Insert poetry. Use special spacing formats. Or quote song lyrics.',
+ 'keywords' => array(
+ 'poetry',
+ 'poem'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'content' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'pre',
+ 'default' => '',
+ '__unstablePreserveWhiteSpace' => true,
+ '__experimentalRole' => 'content'
+ ),
+ 'textAlign' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'color' => array(
+ 'gradients' => true,
+ 'link' => true,
+ '__experimentalDefaultControls' => array(
+ 'background' => true,
+ 'text' => true
+ )
+ ),
+ 'typography' => array(
+ 'fontSize' => true,
+ '__experimentalFontFamily' => true,
+ 'lineHeight' => true,
+ '__experimentalFontStyle' => true,
+ '__experimentalFontWeight' => true,
+ '__experimentalLetterSpacing' => true,
+ '__experimentalTextTransform' => true,
+ '__experimentalTextDecoration' => true,
+ '__experimentalDefaultControls' => array(
+ 'fontSize' => true,
+ 'fontAppearance' => true
+ )
+ ),
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ ),
+ '__experimentalBorder' => array(
+ 'radius' => true,
+ 'width' => true,
+ 'color' => true,
+ 'style' => true
+ )
+ ),
+ 'style' => 'wp-block-verse',
+ 'editorStyle' => 'wp-block-verse-editor'
+ ),
+ 'video' => array(
+ '$schema' => 'https://schemas.wp.org/trunk/block.json',
+ 'apiVersion' => 3,
+ 'name' => 'core/video',
+ 'title' => 'Video',
+ 'category' => 'media',
+ 'description' => 'Embed a video from your media library or upload a new one.',
+ 'keywords' => array(
+ 'movie'
+ ),
+ 'textdomain' => 'default',
+ 'attributes' => array(
+ 'autoplay' => array(
+ 'type' => 'boolean',
+ 'source' => 'attribute',
+ 'selector' => 'video',
+ 'attribute' => 'autoplay'
+ ),
+ 'caption' => array(
+ 'type' => 'string',
+ 'source' => 'html',
+ 'selector' => 'figcaption',
+ '__experimentalRole' => 'content'
+ ),
+ 'controls' => array(
+ 'type' => 'boolean',
+ 'source' => 'attribute',
+ 'selector' => 'video',
+ 'attribute' => 'controls',
+ 'default' => true
+ ),
+ 'id' => array(
+ 'type' => 'number',
+ '__experimentalRole' => 'content'
+ ),
+ 'loop' => array(
+ 'type' => 'boolean',
+ 'source' => 'attribute',
+ 'selector' => 'video',
+ 'attribute' => 'loop'
+ ),
+ 'muted' => array(
+ 'type' => 'boolean',
+ 'source' => 'attribute',
+ 'selector' => 'video',
+ 'attribute' => 'muted'
+ ),
+ 'poster' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'video',
+ 'attribute' => 'poster'
+ ),
+ 'preload' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'video',
+ 'attribute' => 'preload',
+ 'default' => 'metadata'
+ ),
+ 'src' => array(
+ 'type' => 'string',
+ 'source' => 'attribute',
+ 'selector' => 'video',
+ 'attribute' => 'src',
+ '__experimentalRole' => 'content'
+ ),
+ 'playsInline' => array(
+ 'type' => 'boolean',
+ 'source' => 'attribute',
+ 'selector' => 'video',
+ 'attribute' => 'playsinline'
+ ),
+ 'tracks' => array(
+ '__experimentalRole' => 'content',
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'object'
+ ),
+ 'default' => array(
+
+ )
+ )
+ ),
+ 'supports' => array(
+ 'anchor' => true,
+ 'align' => true,
+ 'spacing' => array(
+ 'margin' => true,
+ 'padding' => true
+ )
+ ),
+ 'editorStyle' => 'wp-block-video-editor',
+ 'style' => 'wp-block-video'
+ ),
+ 'widget-group' => array(
+ 'apiVersion' => 3,
+ 'name' => 'core/widget-group',
+ 'category' => 'widgets',
+ 'attributes' => array(
+ 'title' => array(
+ 'type' => 'string'
+ )
+ ),
+ 'supports' => array(
+ 'html' => false,
+ 'inserter' => true,
+ 'customClassName' => true,
+ 'reusable' => false
+ ),
+ 'editorStyle' => 'wp-block-widget-group-editor',
+ 'style' => 'wp-block-widget-group'
+ )
+);
\ No newline at end of file
diff --git a/src/wp-includes/blocks/button/block.json b/src/wp-includes/blocks/button/block.json
index cc9921953a..e337aa857f 100644
--- a/src/wp-includes/blocks/button/block.json
+++ b/src/wp-includes/blocks/button/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/button",
"title": "Button",
"category": "design",
@@ -16,30 +16,35 @@
"type": "string",
"source": "attribute",
"selector": "a",
- "attribute": "href"
+ "attribute": "href",
+ "__experimentalRole": "content"
},
"title": {
"type": "string",
"source": "attribute",
"selector": "a",
- "attribute": "title"
+ "attribute": "title",
+ "__experimentalRole": "content"
},
"text": {
"type": "string",
"source": "html",
- "selector": "a"
+ "selector": "a",
+ "__experimentalRole": "content"
},
"linkTarget": {
"type": "string",
"source": "attribute",
"selector": "a",
- "attribute": "target"
+ "attribute": "target",
+ "__experimentalRole": "content"
},
"rel": {
"type": "string",
"source": "attribute",
"selector": "a",
- "attribute": "rel"
+ "attribute": "rel",
+ "__experimentalRole": "content"
},
"placeholder": {
"type": "string"
@@ -92,10 +97,16 @@
}
},
"__experimentalBorder": {
+ "color": true,
"radius": true,
+ "style": true,
+ "width": true,
"__experimentalSkipSerialization": true,
"__experimentalDefaultControls": {
- "radius": true
+ "color": true,
+ "radius": true,
+ "style": true,
+ "width": true
}
},
"__experimentalSelector": ".wp-block-button .wp-block-button__link"
diff --git a/src/wp-includes/blocks/buttons/block.json b/src/wp-includes/blocks/buttons/block.json
index 266646d96b..4dc420bd41 100644
--- a/src/wp-includes/blocks/buttons/block.json
+++ b/src/wp-includes/blocks/buttons/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/buttons",
"title": "Buttons",
"category": "design",
@@ -10,6 +10,7 @@
"supports": {
"anchor": true,
"align": [ "wide", "full" ],
+ "html": false,
"__experimentalExposeControlsToChildren": true,
"spacing": {
"blockGap": true,
@@ -31,7 +32,7 @@
"fontSize": true
}
},
- "__experimentalLayout": {
+ "layout": {
"allowSwitching": false,
"allowInheriting": false,
"default": {
diff --git a/src/wp-includes/blocks/calendar/block.json b/src/wp-includes/blocks/calendar/block.json
index 2accd7142c..974d47ff8e 100644
--- a/src/wp-includes/blocks/calendar/block.json
+++ b/src/wp-includes/blocks/calendar/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/calendar",
"title": "Calendar",
"category": "widgets",
diff --git a/src/wp-includes/blocks/categories/block.json b/src/wp-includes/blocks/categories/block.json
index adf28dc42b..e0d77ff569 100644
--- a/src/wp-includes/blocks/categories/block.json
+++ b/src/wp-includes/blocks/categories/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/categories",
"title": "Categories List",
"category": "widgets",
diff --git a/src/wp-includes/blocks/code/block.json b/src/wp-includes/blocks/code/block.json
index 6927800229..7f58e79d22 100644
--- a/src/wp-includes/blocks/code/block.json
+++ b/src/wp-includes/blocks/code/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/code",
"title": "Code",
"category": "text",
@@ -14,6 +14,7 @@
}
},
"supports": {
+ "align": [ "wide" ],
"anchor": true,
"typography": {
"fontSize": true,
diff --git a/src/wp-includes/blocks/column/block.json b/src/wp-includes/blocks/column/block.json
index f6f7bc8d1f..31ad66cb6b 100644
--- a/src/wp-includes/blocks/column/block.json
+++ b/src/wp-includes/blocks/column/block.json
@@ -1,9 +1,9 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/column",
"title": "Column",
- "category": "text",
+ "category": "design",
"parent": [ "core/columns" ],
"description": "A single column within a columns block.",
"textdomain": "default",
@@ -38,7 +38,8 @@
"blockGap": true,
"padding": true,
"__experimentalDefaultControls": {
- "padding": true
+ "padding": true,
+ "blockGap": true
}
},
"__experimentalBorder": {
@@ -64,6 +65,6 @@
"fontSize": true
}
},
- "__experimentalLayout": true
+ "layout": true
}
}
diff --git a/src/wp-includes/blocks/columns/block.json b/src/wp-includes/blocks/columns/block.json
index aaaa72263e..a99fd020ca 100644
--- a/src/wp-includes/blocks/columns/block.json
+++ b/src/wp-includes/blocks/columns/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/columns",
"title": "Columns",
"category": "design",
@@ -13,6 +13,10 @@
"isStackedOnMobile": {
"type": "boolean",
"default": true
+ },
+ "templateLock": {
+ "type": [ "string", "boolean" ],
+ "enum": [ "all", "insert", "contentOnly", false ]
}
},
"supports": {
@@ -35,10 +39,11 @@
"margin": [ "top", "bottom" ],
"padding": true,
"__experimentalDefaultControls": {
- "padding": true
+ "padding": true,
+ "blockGap": true
}
},
- "__experimentalLayout": {
+ "layout": {
"allowSwitching": false,
"allowInheriting": false,
"allowEditing": false,
diff --git a/src/wp-includes/blocks/comment-author-name/block.json b/src/wp-includes/blocks/comment-author-name/block.json
index 59300c317a..93350779fc 100644
--- a/src/wp-includes/blocks/comment-author-name/block.json
+++ b/src/wp-includes/blocks/comment-author-name/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comment-author-name",
"title": "Comment Author Name",
"category": "theme",
diff --git a/src/wp-includes/blocks/comment-content/block.json b/src/wp-includes/blocks/comment-content/block.json
index 0c28c25f33..9ac4b54533 100644
--- a/src/wp-includes/blocks/comment-content/block.json
+++ b/src/wp-includes/blocks/comment-content/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comment-content",
"title": "Comment Content",
"category": "theme",
diff --git a/src/wp-includes/blocks/comment-date/block.json b/src/wp-includes/blocks/comment-date/block.json
index e90cb0b0d8..7e4776c68f 100644
--- a/src/wp-includes/blocks/comment-date/block.json
+++ b/src/wp-includes/blocks/comment-date/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comment-date",
"title": "Comment Date",
"category": "theme",
diff --git a/src/wp-includes/blocks/comment-edit-link/block.json b/src/wp-includes/blocks/comment-edit-link/block.json
index 14795c83e1..505305f609 100644
--- a/src/wp-includes/blocks/comment-edit-link/block.json
+++ b/src/wp-includes/blocks/comment-edit-link/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comment-edit-link",
"title": "Comment Edit Link",
"category": "theme",
diff --git a/src/wp-includes/blocks/comment-reply-link/block.json b/src/wp-includes/blocks/comment-reply-link/block.json
index 9d4a1d8668..c101294121 100644
--- a/src/wp-includes/blocks/comment-reply-link/block.json
+++ b/src/wp-includes/blocks/comment-reply-link/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comment-reply-link",
"title": "Comment Reply Link",
"category": "theme",
diff --git a/src/wp-includes/blocks/comment-template.php b/src/wp-includes/blocks/comment-template.php
index 45fd993adb..3a553e802d 100644
--- a/src/wp-includes/blocks/comment-template.php
+++ b/src/wp-includes/blocks/comment-template.php
@@ -25,13 +25,26 @@ function block_core_comment_template_render_comments( $comments, $block ) {
$content = '';
foreach ( $comments as $comment ) {
+ $comment_id = $comment->comment_ID;
+ $filter_block_context = static function( $context ) use ( $comment_id ) {
+ $context['commentId'] = $comment_id;
+ return $context;
+ };
- $block_content = ( new WP_Block(
- $block->parsed_block,
- array(
- 'commentId' => $comment->comment_ID,
- )
- ) )->render( array( 'dynamic' => false ) );
+ /*
+ * We set commentId context through the `render_block_context` filter so
+ * that dynamically inserted blocks (at `render_block` filter stage)
+ * will also receive that context.
+ */
+ add_filter( 'render_block_context', $filter_block_context );
+
+ /*
+ * We construct a new WP_Block instance from the parsed block so that
+ * it'll receive any changes made by the `render_block_data` filter.
+ */
+ $block_content = ( new WP_Block( $block->parsed_block ) )->render( array( 'dynamic' => false ) );
+
+ remove_filter( 'render_block_context', $filter_block_context );
$children = $comment->get_children();
diff --git a/src/wp-includes/blocks/comment-template/block.json b/src/wp-includes/blocks/comment-template/block.json
index 1c318a8c21..7b9bfc5e03 100644
--- a/src/wp-includes/blocks/comment-template/block.json
+++ b/src/wp-includes/blocks/comment-template/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comment-template",
"title": "Comment Template",
"category": "design",
diff --git a/src/wp-includes/blocks/comments-pagination-next.php b/src/wp-includes/blocks/comments-pagination-next.php
index a535b7c40d..5a8df691ff 100644
--- a/src/wp-includes/blocks/comments-pagination-next.php
+++ b/src/wp-includes/blocks/comments-pagination-next.php
@@ -26,7 +26,7 @@ function render_block_core_comments_pagination_next( $attributes, $content, $blo
$label = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? $attributes['label'] : $default_label;
$pagination_arrow = get_comments_pagination_arrow( $block, 'next' );
- $filter_link_attributes = function() {
+ $filter_link_attributes = static function() {
return get_block_wrapper_attributes();
};
add_filter( 'next_comments_link_attributes', $filter_link_attributes );
diff --git a/src/wp-includes/blocks/comments-pagination-next/block.json b/src/wp-includes/blocks/comments-pagination-next/block.json
index 48da9495bf..d619865ebd 100644
--- a/src/wp-includes/blocks/comments-pagination-next/block.json
+++ b/src/wp-includes/blocks/comments-pagination-next/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comments-pagination-next",
"title": "Comments Next Page",
"category": "theme",
diff --git a/src/wp-includes/blocks/comments-pagination-numbers/block.json b/src/wp-includes/blocks/comments-pagination-numbers/block.json
index 479872bccf..fcebb52763 100644
--- a/src/wp-includes/blocks/comments-pagination-numbers/block.json
+++ b/src/wp-includes/blocks/comments-pagination-numbers/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comments-pagination-numbers",
"title": "Comments Page Numbers",
"category": "theme",
diff --git a/src/wp-includes/blocks/comments-pagination-previous.php b/src/wp-includes/blocks/comments-pagination-previous.php
index 951dc8dd78..ed3fa653ab 100644
--- a/src/wp-includes/blocks/comments-pagination-previous.php
+++ b/src/wp-includes/blocks/comments-pagination-previous.php
@@ -22,7 +22,7 @@ function render_block_core_comments_pagination_previous( $attributes, $content,
$label = $pagination_arrow . $label;
}
- $filter_link_attributes = function() {
+ $filter_link_attributes = static function() {
return get_block_wrapper_attributes();
};
add_filter( 'previous_comments_link_attributes', $filter_link_attributes );
diff --git a/src/wp-includes/blocks/comments-pagination-previous/block.json b/src/wp-includes/blocks/comments-pagination-previous/block.json
index a48782af29..2dab1e9dd7 100644
--- a/src/wp-includes/blocks/comments-pagination-previous/block.json
+++ b/src/wp-includes/blocks/comments-pagination-previous/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comments-pagination-previous",
"title": "Comments Previous Page",
"category": "theme",
diff --git a/src/wp-includes/blocks/comments-pagination/block.json b/src/wp-includes/blocks/comments-pagination/block.json
index ffa2828912..a11decd201 100644
--- a/src/wp-includes/blocks/comments-pagination/block.json
+++ b/src/wp-includes/blocks/comments-pagination/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comments-pagination",
"title": "Comments Pagination",
"category": "theme",
@@ -29,7 +29,7 @@
"link": true
}
},
- "__experimentalLayout": {
+ "layout": {
"allowSwitching": false,
"allowInheriting": false,
"default": {
diff --git a/src/wp-includes/blocks/comments-title/block.json b/src/wp-includes/blocks/comments-title/block.json
index 3c5db438a3..12b105afe9 100644
--- a/src/wp-includes/blocks/comments-title/block.json
+++ b/src/wp-includes/blocks/comments-title/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comments-title",
"title": "Comments Title",
"category": "theme",
diff --git a/src/wp-includes/blocks/comments.php b/src/wp-includes/blocks/comments.php
index a5e51cfbf4..48aac15af6 100644
--- a/src/wp-includes/blocks/comments.php
+++ b/src/wp-includes/blocks/comments.php
@@ -29,13 +29,8 @@ function render_block_core_comments( $attributes, $content, $block ) {
return '';
}
- $comment_args = array(
- 'post_id' => $post_id,
- 'count' => true,
- 'status' => 'approve',
- );
// Return early if there are no comments and comments are closed.
- if ( ! comments_open( $post_id ) && get_comments( $comment_args ) === 0 ) {
+ if ( ! comments_open( $post_id ) && (int) get_comments_number( $post_id ) === 0 ) {
return '';
}
@@ -212,6 +207,7 @@ function register_legacy_post_comments_block() {
* like `_wp_multiple_block_styles`, which is required in this case because
* the block has multiple styles.
*/
+ /** This filter is documented in wp-includes/blocks.php */
$metadata = apply_filters( 'block_type_metadata', $metadata );
register_block_type( 'core/post-comments', $metadata );
diff --git a/src/wp-includes/blocks/comments/block.json b/src/wp-includes/blocks/comments/block.json
index 399941891d..4bfe4bb901 100644
--- a/src/wp-includes/blocks/comments/block.json
+++ b/src/wp-includes/blocks/comments/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/comments",
"title": "Comments",
"category": "theme",
@@ -18,6 +18,7 @@
},
"supports": {
"align": [ "wide", "full" ],
+ "html": false,
"color": {
"gradients": true,
"link": true,
@@ -27,7 +28,6 @@
"link": true
}
},
- "html": false,
"spacing": {
"margin": true,
"padding": true
diff --git a/src/wp-includes/blocks/cover.php b/src/wp-includes/blocks/cover.php
index e5a497fd76..5f6b2cadaa 100644
--- a/src/wp-includes/blocks/cover.php
+++ b/src/wp-includes/blocks/cover.php
@@ -34,7 +34,7 @@ function render_block_core_cover( $attributes, $content ) {
/*
* Inserts the featured image between the (1st) cover 'background' `span` and 'inner_container' `div`,
- * and removes eventual withespace characters between the two (typically introduced at template level)
+ * and removes eventual whitespace characters between the two (typically introduced at template level)
*/
$inner_container_start = '/]+wp-block-cover__inner-container[\s|"][^>]*>/U';
if ( 1 === preg_match( $inner_container_start, $content, $matches, PREG_OFFSET_CAPTURE ) ) {
@@ -46,22 +46,19 @@ function render_block_core_cover( $attributes, $content ) {
update_post_thumbnail_cache();
}
$current_featured_image = get_the_post_thumbnail_url();
-
- $styles = 'background-image:url(' . esc_url( $current_featured_image ) . '); ';
-
- if ( isset( $attributes['minHeight'] ) ) {
- $height_unit = empty( $attributes['minHeightUnit'] ) ? 'px' : $attributes['minHeightUnit'];
- $height = " min-height:{$attributes['minHeight']}{$height_unit}";
-
- $styles .= $height;
+ if ( ! $current_featured_image ) {
+ return $content;
}
- $content = preg_replace(
- '/class=\".*?\"/',
- '${0} style="' . $styles . '"',
- $content,
- 1
- );
+ $processor = new WP_HTML_Tag_Processor( $content );
+ $processor->next_tag();
+
+ $styles = $processor->get_attribute( 'style' );
+ $merged_styles = ! empty( $styles ) ? $styles . ';' : '';
+ $merged_styles .= 'background-image:url(' . esc_url( $current_featured_image ) . ');';
+
+ $processor->set_attribute( 'style', $merged_styles );
+ $content = $processor->get_updated_html();
}
return $content;
diff --git a/src/wp-includes/blocks/cover/block.json b/src/wp-includes/blocks/cover/block.json
index 3bcc779a0f..39ee697802 100644
--- a/src/wp-includes/blocks/cover/block.json
+++ b/src/wp-includes/blocks/cover/block.json
@@ -1,10 +1,10 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/cover",
"title": "Cover",
"category": "media",
- "description": "Add an image or video with a text overlay — great for headers.",
+ "description": "Add an image or video with a text overlay.",
"textdomain": "default",
"attributes": {
"url": {
@@ -88,14 +88,29 @@
"spacing": {
"padding": true,
"margin": [ "top", "bottom" ],
+ "blockGap": true,
"__experimentalDefaultControls": {
- "padding": true
+ "padding": true,
+ "blockGap": true
+ }
+ },
+ "__experimentalBorder": {
+ "color": true,
+ "radius": true,
+ "style": true,
+ "width": true,
+ "__experimentalDefaultControls": {
+ "color": true,
+ "radius": true,
+ "style": true,
+ "width": true
}
},
"color": {
"__experimentalDuotone": "> .wp-block-cover__image-background, > .wp-block-cover__video-background",
- "text": false,
- "background": false
+ "text": true,
+ "background": false,
+ "__experimentalSkipSerialization": [ "gradients" ]
},
"typography": {
"fontSize": true,
@@ -109,6 +124,9 @@
"__experimentalDefaultControls": {
"fontSize": true
}
+ },
+ "layout": {
+ "allowJustification": false
}
},
"editorStyle": "wp-block-cover-editor",
diff --git a/src/wp-includes/blocks/details/block.json b/src/wp-includes/blocks/details/block.json
new file mode 100644
index 0000000000..01110dfec2
--- /dev/null
+++ b/src/wp-includes/blocks/details/block.json
@@ -0,0 +1,55 @@
+{
+ "$schema": "https://schemas.wp.org/trunk/block.json",
+ "apiVersion": 3,
+ "name": "core/details",
+ "title": "Details",
+ "category": "text",
+ "description": "Hide and show additional content.",
+ "keywords": [ "disclosure", "summary", "hide" ],
+ "textdomain": "default",
+ "attributes": {
+ "showContent": {
+ "type": "boolean",
+ "default": false
+ },
+ "summary": {
+ "type": "string"
+ }
+ },
+ "supports": {
+ "align": [ "wide", "full" ],
+ "color": {
+ "gradients": true,
+ "link": true,
+ "__experimentalDefaultControls": {
+ "background": true,
+ "text": true
+ }
+ },
+ "__experimentalBorder": {
+ "color": true,
+ "width": true,
+ "style": true
+ },
+ "html": false,
+ "spacing": {
+ "margin": true,
+ "padding": true
+ },
+ "typography": {
+ "fontSize": true,
+ "lineHeight": true,
+ "__experimentalFontFamily": true,
+ "__experimentalFontWeight": true,
+ "__experimentalFontStyle": true,
+ "__experimentalTextTransform": true,
+ "__experimentalTextDecoration": true,
+ "__experimentalLetterSpacing": true,
+ "__experimentalDefaultControls": {
+ "fontSize": true
+ }
+ }
+ },
+ "editorStyle": "wp-block-details-editor",
+ "style": "wp-block-details"
+}
diff --git a/src/wp-includes/blocks/embed/block.json b/src/wp-includes/blocks/embed/block.json
index e36768cd72..9ca54db871 100644
--- a/src/wp-includes/blocks/embed/block.json
+++ b/src/wp-includes/blocks/embed/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/embed",
"title": "Embed",
"category": "embed",
@@ -41,7 +41,10 @@
}
},
"supports": {
- "align": true
+ "align": true,
+ "spacing": {
+ "margin": true
+ }
},
"editorStyle": "wp-block-embed-editor",
"style": "wp-block-embed"
diff --git a/src/wp-includes/blocks/file.php b/src/wp-includes/blocks/file.php
index 9081b63a5e..26a48ccad9 100644
--- a/src/wp-includes/blocks/file.php
+++ b/src/wp-includes/blocks/file.php
@@ -5,18 +5,47 @@
* @package WordPress
*/
+if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
+ /**
+ * Replaces view script for the File block with version using Interactivity API.
+ *
+ * @param array $metadata Block metadata as read in via block.json.
+ *
+ * @return array Filtered block type metadata.
+ */
+ function gutenberg_block_core_file_update_interactive_view_script( $metadata ) {
+ if ( 'core/file' === $metadata['name'] ) {
+ $metadata['viewScript'] = array( 'file:./interactivity.min.js' );
+ }
+ return $metadata;
+ }
+ add_filter( 'block_type_metadata', 'gutenberg_block_core_file_update_interactive_view_script', 10, 1 );
+}
+
/**
* When the `core/file` block is rendering, check if we need to enqueue the `'wp-block-file-view` script.
*
- * @param array $attributes The block attributes.
- * @param string $content The block content.
+ * @param array $attributes The block attributes.
+ * @param string $content The block content.
+ * @param WP_Block $block The parsed block.
*
* @return string Returns the block content.
*/
-function render_block_core_file( $attributes, $content ) {
- $should_load_view_script = ! empty( $attributes['displayPreview'] ) && ! wp_script_is( 'wp-block-file-view' );
- if ( $should_load_view_script ) {
- wp_enqueue_script( 'wp-block-file-view' );
+function render_block_core_file( $attributes, $content, $block ) {
+ $should_load_view_script = ! empty( $attributes['displayPreview'] );
+ $view_js_file = 'wp-block-file-view';
+ // If the script already exists, there is no point in removing it from viewScript.
+ if ( ! wp_script_is( $view_js_file ) ) {
+ $script_handles = $block->block_type->view_script_handles;
+
+ // If the script is not needed, and it is still in the `view_script_handles`, remove it.
+ if ( ! $should_load_view_script && in_array( $view_js_file, $script_handles, true ) ) {
+ $block->block_type->view_script_handles = array_diff( $script_handles, array( $view_js_file ) );
+ }
+ // If the script is needed, but it was previously removed, add it again.
+ if ( $should_load_view_script && ! in_array( $view_js_file, $script_handles, true ) ) {
+ $block->block_type->view_script_handles = array_merge( $script_handles, array( $view_js_file ) );
+ }
}
// Update object's aria-label attribute if present in block HTML.
@@ -25,7 +54,7 @@ function render_block_core_file( $attributes, $content ) {
$pattern = '@
aria-label="(?[^"]+)?")@i';
$content = preg_replace_callback(
$pattern,
- function ( $matches ) {
+ static function ( $matches ) {
$filename = ! empty( $matches['filename'] ) ? $matches['filename'] : '';
$has_filename = ! empty( $filename ) && 'PDF embed' !== $filename;
$label = $has_filename ?
@@ -41,6 +70,17 @@ function render_block_core_file( $attributes, $content ) {
$content
);
+ // If it uses the Interactivity API, add the directives.
+ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && $should_load_view_script ) {
+ $processor = new WP_HTML_Tag_Processor( $content );
+ $processor->next_tag();
+ $processor->set_attribute( 'data-wp-interactive', '' );
+ $processor->next_tag( 'object' );
+ $processor->set_attribute( 'data-wp-bind--hidden', '!selectors.core.file.hasPdfPreview' );
+ $processor->set_attribute( 'hidden', true );
+ return $processor->get_updated_html();
+ }
+
return $content;
}
diff --git a/src/wp-includes/blocks/file/block.json b/src/wp-includes/blocks/file/block.json
index 8e90825a64..12edc20630 100644
--- a/src/wp-includes/blocks/file/block.json
+++ b/src/wp-includes/blocks/file/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/file",
"title": "File",
"category": "media",
@@ -56,7 +56,16 @@
},
"supports": {
"anchor": true,
- "align": true
+ "align": true,
+ "color": {
+ "gradients": true,
+ "link": true,
+ "text": false,
+ "__experimentalDefaultControls": {
+ "background": true,
+ "link": true
+ }
+ }
},
"viewScript": "file:./view.min.js",
"editorStyle": "wp-block-file-editor",
diff --git a/src/wp-includes/blocks/file/view.asset.php b/src/wp-includes/blocks/file/view.asset.php
index 06a9e2f578..66a3d9b76a 100644
--- a/src/wp-includes/blocks/file/view.asset.php
+++ b/src/wp-includes/blocks/file/view.asset.php
@@ -1 +1 @@
- array(), 'version' => 'ee575fc5e86fe255013d');
+ array(), 'version' => 'e614f07ba8410b17e456');
diff --git a/src/wp-includes/blocks/file/view.min.asset.php b/src/wp-includes/blocks/file/view.min.asset.php
index d27ebcbf94..1f266d5b8d 100644
--- a/src/wp-includes/blocks/file/view.min.asset.php
+++ b/src/wp-includes/blocks/file/view.min.asset.php
@@ -1 +1 @@
- array(), 'version' => '2a20786ca914ea00891f');
+ array(), 'version' => '9d287166f699a66eff3b');
diff --git a/src/wp-includes/blocks/footnotes.php b/src/wp-includes/blocks/footnotes.php
new file mode 100644
index 0000000000..b7be0542d7
--- /dev/null
+++ b/src/wp-includes/blocks/footnotes.php
@@ -0,0 +1,78 @@
+context['postId'] ) ) {
+ return '';
+ }
+
+ if ( post_password_required( $block->context['postId'] ) ) {
+ return;
+ }
+
+ $footnotes = get_post_meta( $block->context['postId'], 'footnotes', true );
+
+ if ( ! $footnotes ) {
+ return;
+ }
+
+ $footnotes = json_decode( $footnotes, true );
+
+ if ( count( $footnotes ) === 0 ) {
+ return '';
+ }
+
+ $wrapper_attributes = get_block_wrapper_attributes();
+
+ $block_content = '';
+
+ foreach ( $footnotes as $footnote ) {
+ $block_content .= sprintf(
+ '%2$s ↩︎',
+ $footnote['id'],
+ $footnote['content']
+ );
+ }
+
+ return sprintf(
+ '%2$s
',
+ $wrapper_attributes,
+ $block_content
+ );
+}
+
+/**
+ * Registers the `core/footnotes` block on the server.
+ */
+function register_block_core_footnotes() {
+ register_post_meta(
+ 'post',
+ 'footnotes',
+ array(
+ 'show_in_rest' => true,
+ 'single' => true,
+ 'type' => 'string',
+ )
+ );
+ register_block_type_from_metadata(
+ __DIR__ . '/footnotes',
+ array(
+ 'render_callback' => 'render_block_core_footnotes',
+ )
+ );
+}
+add_action( 'init', 'register_block_core_footnotes' );
diff --git a/src/wp-includes/blocks/footnotes/block.json b/src/wp-includes/blocks/footnotes/block.json
new file mode 100644
index 0000000000..0ab992009d
--- /dev/null
+++ b/src/wp-includes/blocks/footnotes/block.json
@@ -0,0 +1,18 @@
+{
+ "$schema": "https://schemas.wp.org/trunk/block.json",
+ "apiVersion": 3,
+ "name": "core/footnotes",
+ "title": "Footnotes",
+ "category": "text",
+ "description": "",
+ "keywords": [ "references" ],
+ "textdomain": "default",
+ "usesContext": [ "postId", "postType" ],
+ "supports": {
+ "html": false,
+ "multiple": false,
+ "inserter": false,
+ "reusable": false
+ },
+ "style": "wp-block-footnotes"
+}
diff --git a/src/wp-includes/blocks/freeform/block.json b/src/wp-includes/blocks/freeform/block.json
index 84b57b7532..d40e8ea13d 100644
--- a/src/wp-includes/blocks/freeform/block.json
+++ b/src/wp-includes/blocks/freeform/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/freeform",
"title": "Classic",
"category": "text",
@@ -9,7 +9,7 @@
"attributes": {
"content": {
"type": "string",
- "source": "html"
+ "source": "raw"
}
},
"supports": {
diff --git a/src/wp-includes/blocks/gallery/block.json b/src/wp-includes/blocks/gallery/block.json
index 0400430b95..07425e1037 100644
--- a/src/wp-includes/blocks/gallery/block.json
+++ b/src/wp-includes/blocks/gallery/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/gallery",
"title": "Gallery",
"category": "media",
@@ -123,7 +123,7 @@
"background": true,
"gradients": true
},
- "__experimentalLayout": {
+ "layout": {
"allowSwitching": false,
"allowInheriting": false,
"allowEditing": false,
diff --git a/src/wp-includes/blocks/group/block.json b/src/wp-includes/blocks/group/block.json
index 2b227a1584..6eaf785862 100644
--- a/src/wp-includes/blocks/group/block.json
+++ b/src/wp-includes/blocks/group/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/group",
"title": "Group",
"category": "design",
@@ -15,6 +15,9 @@
"templateLock": {
"type": [ "string", "boolean" ],
"enum": [ "all", "insert", "contentOnly", false ]
+ },
+ "allowedBlocks": {
+ "type": "array"
}
},
"supports": {
@@ -72,7 +75,7 @@
"fontSize": true
}
},
- "__experimentalLayout": {
+ "layout": {
"allowSizingOnChildren": true
}
},
diff --git a/src/wp-includes/blocks/heading/block.json b/src/wp-includes/blocks/heading/block.json
index f9d701eace..ff2a5d2675 100644
--- a/src/wp-includes/blocks/heading/block.json
+++ b/src/wp-includes/blocks/heading/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/heading",
"title": "Heading",
"category": "text",
diff --git a/src/wp-includes/blocks/home-link.php b/src/wp-includes/blocks/home-link.php
index 33f41057c9..459979b0d4 100644
--- a/src/wp-includes/blocks/home-link.php
+++ b/src/wp-includes/blocks/home-link.php
@@ -98,12 +98,12 @@ function block_core_home_link_build_li_wrapper_attributes( $context ) {
$colors['css_classes'],
$font_sizes['css_classes']
);
+ $classes[] = 'wp-block-navigation-item';
$style_attribute = ( $colors['inline_styles'] . $font_sizes['inline_styles'] );
- $css_classes = trim( implode( ' ', $classes ) ) . ' wp-block-navigation-item';
$wrapper_attributes = get_block_wrapper_attributes(
array(
- 'class' => $css_classes,
+ 'class' => implode( ' ', $classes ),
'style' => $style_attribute,
)
);
diff --git a/src/wp-includes/blocks/home-link/block.json b/src/wp-includes/blocks/home-link/block.json
index 567bdf8c27..a9827b7718 100644
--- a/src/wp-includes/blocks/home-link/block.json
+++ b/src/wp-includes/blocks/home-link/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/home-link",
"category": "design",
"parent": [ "core/navigation" ],
diff --git a/src/wp-includes/blocks/html/block.json b/src/wp-includes/blocks/html/block.json
index c1e1e94b87..b1a2ad6062 100644
--- a/src/wp-includes/blocks/html/block.json
+++ b/src/wp-includes/blocks/html/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/html",
"title": "Custom HTML",
"category": "widgets",
diff --git a/src/wp-includes/blocks/image.php b/src/wp-includes/blocks/image.php
index 9a9f175556..1e437d860a 100644
--- a/src/wp-includes/blocks/image.php
+++ b/src/wp-includes/blocks/image.php
@@ -14,24 +14,30 @@
* @return string Returns the block content with the data-id attribute added.
*/
function render_block_core_image( $attributes, $content ) {
+
+ $processor = new WP_HTML_Tag_Processor( $content );
+ $processor->next_tag( 'img' );
+
+ if ( $processor->get_attribute( 'src' ) === null ) {
+ return '';
+ }
+
if ( isset( $attributes['data-id'] ) ) {
// Add the data-id="$id" attribute to the img element
// to provide backwards compatibility for the Gallery Block,
// which now wraps Image Blocks within innerBlocks.
// The data-id attribute is added in a core/gallery `render_block_data` hook.
- $data_id_attribute = 'data-id="' . esc_attr( $attributes['data-id'] ) . '"';
- if ( ! str_contains( $content, $data_id_attribute ) ) {
- $content = str_replace( '
set_attribute( 'data-id', $attributes['data-id'] );
}
- return $content;
-}
+ return $processor->get_updated_html();
+}
/**
* Registers the `core/image` block on server.
*/
function register_block_core_image() {
+
register_block_type_from_metadata(
__DIR__ . '/image',
array(
diff --git a/src/wp-includes/blocks/image/block.json b/src/wp-includes/blocks/image/block.json
index 62edb882be..7c8b2c2715 100644
--- a/src/wp-includes/blocks/image/block.json
+++ b/src/wp-includes/blocks/image/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/image",
"title": "Image",
"category": "media",
@@ -69,6 +69,12 @@
"height": {
"type": "number"
},
+ "aspectRatio": {
+ "type": "string"
+ },
+ "scale": {
+ "type": "string"
+ },
"sizeSlug": {
"type": "string"
},
@@ -84,16 +90,20 @@
},
"supports": {
"anchor": true,
+ "behaviors": {
+ "lightbox": true
+ },
"color": {
- "__experimentalDuotone": "img, .components-placeholder",
"text": false,
"background": false
},
+ "filter": {
+ "duotone": true
+ },
"__experimentalBorder": {
"color": true,
"radius": true,
"width": true,
- "__experimentalSelector": "img, .wp-block-image__crop-area",
"__experimentalSkipSerialization": true,
"__experimentalDefaultControls": {
"color": true,
@@ -102,6 +112,12 @@
}
}
},
+ "selectors": {
+ "border": ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder",
+ "filter": {
+ "duotone": ".wp-block-image img, .wp-block-image .components-placeholder"
+ }
+ },
"styles": [
{
"name": "default",
diff --git a/src/wp-includes/blocks/latest-comments/block.json b/src/wp-includes/blocks/latest-comments/block.json
index 0b1ae021b5..0b213e9b79 100644
--- a/src/wp-includes/blocks/latest-comments/block.json
+++ b/src/wp-includes/blocks/latest-comments/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/latest-comments",
"title": "Latest Comments",
"category": "widgets",
@@ -33,6 +33,19 @@
"spacing": {
"margin": true,
"padding": true
+ },
+ "typography": {
+ "fontSize": true,
+ "lineHeight": true,
+ "__experimentalFontFamily": true,
+ "__experimentalFontWeight": true,
+ "__experimentalFontStyle": true,
+ "__experimentalTextTransform": true,
+ "__experimentalTextDecoration": true,
+ "__experimentalLetterSpacing": true,
+ "__experimentalDefaultControls": {
+ "fontSize": true
+ }
}
},
"editorStyle": "wp-block-latest-comments-editor",
diff --git a/src/wp-includes/blocks/latest-posts.php b/src/wp-includes/blocks/latest-posts.php
index d3945ee2c9..746133ec7a 100644
--- a/src/wp-includes/blocks/latest-posts.php
+++ b/src/wp-includes/blocks/latest-posts.php
@@ -48,6 +48,14 @@ function render_block_core_latest_posts( $attributes ) {
$block_core_latest_posts_excerpt_length = $attributes['excerptLength'];
add_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 );
+ $filter_latest_posts_excerpt_more = static function( $more ) use ( $attributes ) {
+ $use_excerpt = 'excerpt' === $attributes['displayPostContentRadio'];
+ /* translators: %1$s is a URL to a post, excerpt truncation character, default … */
+ return $use_excerpt ? sprintf( __( ' … Read more', 'gutenberg' ), esc_url( get_permalink() ) ) : $more;
+ };
+
+ add_filter( 'excerpt_more', $filter_latest_posts_excerpt_more );
+
if ( isset( $attributes['categories'] ) ) {
$args['category__in'] = array_column( $attributes['categories'], 'id' );
}
diff --git a/src/wp-includes/blocks/latest-posts/block.json b/src/wp-includes/blocks/latest-posts/block.json
index 13a01280c4..f36164614d 100644
--- a/src/wp-includes/blocks/latest-posts/block.json
+++ b/src/wp-includes/blocks/latest-posts/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/latest-posts",
"title": "Latest Posts",
"category": "widgets",
diff --git a/src/wp-includes/blocks/legacy-widget/block.json b/src/wp-includes/blocks/legacy-widget/block.json
index 30b60c6448..6b0c1e2a91 100644
--- a/src/wp-includes/blocks/legacy-widget/block.json
+++ b/src/wp-includes/blocks/legacy-widget/block.json
@@ -1,5 +1,5 @@
{
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/legacy-widget",
"title": "Legacy Widget",
"category": "widgets",
diff --git a/src/wp-includes/blocks/list-item/block.json b/src/wp-includes/blocks/list-item/block.json
index 745d6e30b4..41221f1c31 100644
--- a/src/wp-includes/blocks/list-item/block.json
+++ b/src/wp-includes/blocks/list-item/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/list-item",
"title": "List item",
"category": "text",
diff --git a/src/wp-includes/blocks/list/block.json b/src/wp-includes/blocks/list/block.json
index 4e1089b088..e7ef850d29 100644
--- a/src/wp-includes/blocks/list/block.json
+++ b/src/wp-includes/blocks/list/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/list",
"title": "List",
"category": "text",
diff --git a/src/wp-includes/blocks/loginout/block.json b/src/wp-includes/blocks/loginout/block.json
index 3db9d0040c..3593961c09 100644
--- a/src/wp-includes/blocks/loginout/block.json
+++ b/src/wp-includes/blocks/loginout/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/loginout",
"title": "Login/out",
"category": "theme",
@@ -20,7 +20,17 @@
"supports": {
"className": true,
"typography": {
- "fontSize": false
+ "fontSize": true,
+ "lineHeight": true,
+ "__experimentalFontFamily": true,
+ "__experimentalFontWeight": true,
+ "__experimentalFontStyle": true,
+ "__experimentalTextTransform": true,
+ "__experimentalTextDecoration": true,
+ "__experimentalLetterSpacing": true,
+ "__experimentalDefaultControls": {
+ "fontSize": true
+ }
}
}
}
diff --git a/src/wp-includes/blocks/media-text/block.json b/src/wp-includes/blocks/media-text/block.json
index 1c9fc0b682..8ffc653d68 100644
--- a/src/wp-includes/blocks/media-text/block.json
+++ b/src/wp-includes/blocks/media-text/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/media-text",
"title": "Media & Text",
"category": "media",
@@ -10,7 +10,7 @@
"attributes": {
"align": {
"type": "string",
- "default": "wide"
+ "default": "none"
},
"mediaAlt": {
"type": "string",
@@ -89,6 +89,9 @@
},
"focalPoint": {
"type": "object"
+ },
+ "allowedBlocks": {
+ "type": "array"
}
},
"supports": {
diff --git a/src/wp-includes/blocks/missing/block.json b/src/wp-includes/blocks/missing/block.json
index 9a44caa248..0bc512bbbf 100644
--- a/src/wp-includes/blocks/missing/block.json
+++ b/src/wp-includes/blocks/missing/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/missing",
"title": "Unsupported",
"category": "text",
diff --git a/src/wp-includes/blocks/more/block.json b/src/wp-includes/blocks/more/block.json
index 25f1df2377..bfd95652ea 100644
--- a/src/wp-includes/blocks/more/block.json
+++ b/src/wp-includes/blocks/more/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/more",
"title": "More",
"category": "design",
diff --git a/src/wp-includes/blocks/navigation-link.php b/src/wp-includes/blocks/navigation-link.php
index ab384f8349..5333ab6ea3 100644
--- a/src/wp-includes/blocks/navigation-link.php
+++ b/src/wp-includes/blocks/navigation-link.php
@@ -181,7 +181,8 @@ function render_block_core_navigation_link( $attributes, $content, $block ) {
$css_classes = trim( implode( ' ', $classes ) );
$has_submenu = count( $block->inner_blocks ) > 0;
- $is_active = ! empty( $attributes['id'] ) && ( get_queried_object_id() === (int) $attributes['id'] );
+ $kind = empty( $attributes['kind'] ) ? 'post_type' : str_replace( '-', '_', $attributes['kind'] );
+ $is_active = ! empty( $attributes['id'] ) && get_queried_object_id() === (int) $attributes['id'] && ! empty( get_queried_object()->$kind );
$wrapper_attributes = get_block_wrapper_attributes(
array(
diff --git a/src/wp-includes/blocks/navigation-link/block.json b/src/wp-includes/blocks/navigation-link/block.json
index ae151a279e..b2cbeaed63 100644
--- a/src/wp-includes/blocks/navigation-link/block.json
+++ b/src/wp-includes/blocks/navigation-link/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/navigation-link",
"title": "Custom Link",
"category": "design",
diff --git a/src/wp-includes/blocks/navigation-submenu.php b/src/wp-includes/blocks/navigation-submenu.php
index cf1364f81f..748613193b 100644
--- a/src/wp-includes/blocks/navigation-submenu.php
+++ b/src/wp-includes/blocks/navigation-submenu.php
@@ -14,66 +14,6 @@
* @param bool $is_sub_menu Whether the block is a sub-menu.
* @return array Colors CSS classes and inline styles.
*/
-function block_core_navigation_submenu_build_css_colors( $context, $attributes, $is_sub_menu = false ) {
- $colors = array(
- 'css_classes' => array(),
- 'inline_styles' => '',
- );
-
- // Text color.
- $named_text_color = null;
- $custom_text_color = null;
-
- if ( $is_sub_menu && array_key_exists( 'customOverlayTextColor', $context ) ) {
- $custom_text_color = $context['customOverlayTextColor'];
- } elseif ( $is_sub_menu && array_key_exists( 'overlayTextColor', $context ) ) {
- $named_text_color = $context['overlayTextColor'];
- } elseif ( array_key_exists( 'customTextColor', $context ) ) {
- $custom_text_color = $context['customTextColor'];
- } elseif ( array_key_exists( 'textColor', $context ) ) {
- $named_text_color = $context['textColor'];
- } elseif ( isset( $context['style']['color']['text'] ) ) {
- $custom_text_color = $context['style']['color']['text'];
- }
-
- // If has text color.
- if ( ! is_null( $named_text_color ) ) {
- // Add the color class.
- array_push( $colors['css_classes'], 'has-text-color', sprintf( 'has-%s-color', $named_text_color ) );
- } elseif ( ! is_null( $custom_text_color ) ) {
- // Add the custom color inline style.
- $colors['css_classes'][] = 'has-text-color';
- $colors['inline_styles'] .= sprintf( 'color: %s;', $custom_text_color );
- }
-
- // Background color.
- $named_background_color = null;
- $custom_background_color = null;
-
- if ( $is_sub_menu && array_key_exists( 'customOverlayBackgroundColor', $context ) ) {
- $custom_background_color = $context['customOverlayBackgroundColor'];
- } elseif ( $is_sub_menu && array_key_exists( 'overlayBackgroundColor', $context ) ) {
- $named_background_color = $context['overlayBackgroundColor'];
- } elseif ( array_key_exists( 'customBackgroundColor', $context ) ) {
- $custom_background_color = $context['customBackgroundColor'];
- } elseif ( array_key_exists( 'backgroundColor', $context ) ) {
- $named_background_color = $context['backgroundColor'];
- } elseif ( isset( $context['style']['color']['background'] ) ) {
- $custom_background_color = $context['style']['color']['background'];
- }
-
- // If has background color.
- if ( ! is_null( $named_background_color ) ) {
- // Add the background-color class.
- array_push( $colors['css_classes'], 'has-background', sprintf( 'has-%s-background-color', $named_background_color ) );
- } elseif ( ! is_null( $custom_background_color ) ) {
- // Add the custom background-color inline style.
- $colors['css_classes'][] = 'has-background';
- $colors['inline_styles'] .= sprintf( 'background-color: %s;', $custom_background_color );
- }
-
- return $colors;
-}
/**
* Build an array with CSS classes and inline styles defining the font sizes
@@ -129,7 +69,6 @@ function block_core_navigation_submenu_render_submenu_icon() {
* @return string Returns the post content with the legacy widget added.
*/
function render_block_core_navigation_submenu( $attributes, $content, $block ) {
-
$navigation_link_has_id = isset( $attributes['id'] ) && is_numeric( $attributes['id'] );
$is_post_type = isset( $attributes['kind'] ) && 'post-type' === $attributes['kind'];
$is_post_type = $is_post_type || isset( $attributes['type'] ) && ( 'post' === $attributes['type'] || 'page' === $attributes['type'] );
@@ -144,17 +83,13 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
return '';
}
- $colors = block_core_navigation_submenu_build_css_colors( $block->context, $attributes );
$font_sizes = block_core_navigation_submenu_build_css_font_sizes( $block->context );
- $classes = array_merge(
- $colors['css_classes'],
- $font_sizes['css_classes']
- );
- $style_attribute = ( $colors['inline_styles'] . $font_sizes['inline_styles'] );
+ $style_attribute = $font_sizes['inline_styles'];
- $css_classes = trim( implode( ' ', $classes ) );
+ $css_classes = trim( implode( ' ', $font_sizes['css_classes'] ) );
$has_submenu = count( $block->inner_blocks ) > 0;
- $is_active = ! empty( $attributes['id'] ) && ( get_queried_object_id() === (int) $attributes['id'] );
+ $kind = empty( $attributes['kind'] ) ? 'post_type' : str_replace( '-', '_', $attributes['kind'] );
+ $is_active = ! empty( $attributes['id'] ) && get_queried_object_id() === (int) $attributes['id'] && ! empty( get_queried_object()->$kind );
$show_submenu_indicators = isset( $block->context['showSubmenuIcon'] ) && $block->context['showSubmenuIcon'];
$open_on_click = isset( $block->context['openSubmenusOnClick'] ) && $block->context['openSubmenusOnClick'];
@@ -249,14 +184,33 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
}
if ( $has_submenu ) {
- $colors = block_core_navigation_submenu_build_css_colors( $block->context, $attributes, $has_submenu );
- $classes = array_merge(
- array( 'wp-block-navigation__submenu-container' ),
- $colors['css_classes']
- );
- $css_classes = trim( implode( ' ', $classes ) );
+ // Copy some attributes from the parent block to this one.
+ // Ideally this would happen in the client when the block is created.
+ if ( array_key_exists( 'overlayTextColor', $block->context ) ) {
+ $attributes['textColor'] = $block->context['overlayTextColor'];
+ }
+ if ( array_key_exists( 'overlayBackgroundColor', $block->context ) ) {
+ $attributes['backgroundColor'] = $block->context['overlayBackgroundColor'];
+ }
+ if ( array_key_exists( 'customOverlayTextColor', $block->context ) ) {
+ $attributes['style']['color']['text'] = $block->context['customOverlayTextColor'];
+ }
+ if ( array_key_exists( 'customOverlayBackgroundColor', $block->context ) ) {
+ $attributes['style']['color']['background'] = $block->context['customOverlayBackgroundColor'];
+ }
- $style_attribute = $colors['inline_styles'];
+ // This allows us to be able to get a response from gutenberg_apply_colors_support.
+ $block->block_type->supports['color'] = true;
+ $colors_supports = gutenberg_apply_colors_support( $block->block_type, $attributes );
+ $css_classes = 'wp-block-navigation__submenu-container';
+ if ( array_key_exists( 'class', $colors_supports ) ) {
+ $css_classes .= ' ' . $colors_supports['class'];
+ }
+
+ $style_attribute = '';
+ if ( array_key_exists( 'style', $colors_supports ) ) {
+ $style_attribute = $colors_supports['style'];
+ }
$inner_blocks_html = '';
foreach ( $block->inner_blocks as $inner_block ) {
diff --git a/src/wp-includes/blocks/navigation-submenu/block.json b/src/wp-includes/blocks/navigation-submenu/block.json
index f311a9f36e..91364109ea 100644
--- a/src/wp-includes/blocks/navigation-submenu/block.json
+++ b/src/wp-includes/blocks/navigation-submenu/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/navigation-submenu",
"title": "Submenu",
"category": "design",
diff --git a/src/wp-includes/blocks/navigation.php b/src/wp-includes/blocks/navigation.php
index 03aaae31c5..f8f53a93e7 100644
--- a/src/wp-includes/blocks/navigation.php
+++ b/src/wp-includes/blocks/navigation.php
@@ -65,59 +65,87 @@ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) {
return $menu_items_by_parent_id;
}
+
+ /**
+ * Add Interactivity API directives to the navigation-submenu and page-list blocks markup using the Tag Processor
+ * The final HTML of the navigation-submenu and the page-list blocks will look similar to this:
+ *
+ *
+ *
+ * Title
+ *
+ *
+ *
+ * @param string $w Markup of the navigation block.
+ * @param array $block_attributes Block attributes.
+ *
+ * @return string Submenu markup with the directives injected.
+ */
+ function gutenberg_block_core_navigation_add_directives_to_submenu( $w, $block_attributes ) {
+ while ( $w->next_tag(
+ array(
+ 'tag_name' => 'LI',
+ 'class_name' => 'has-child',
+ )
+ ) ) {
+ // Add directives to the parent ``.
+ $w->set_attribute( 'data-wp-interactive', true );
+ $w->set_attribute( 'data-wp-context', '{ "core": { "navigation": { "isMenuOpen": { "click": false, "hover": false }, "overlay": false } } }' );
+ $w->set_attribute( 'data-wp-effect', 'effects.core.navigation.initMenu' );
+ $w->set_attribute( 'data-wp-on--focusout', 'actions.core.navigation.handleMenuFocusout' );
+ $w->set_attribute( 'data-wp-on--keydown', 'actions.core.navigation.handleMenuKeydown' );
+ if ( ! isset( $block_attributes['openSubmenusOnClick'] ) || false === $block_attributes['openSubmenusOnClick'] ) {
+ $w->set_attribute( 'data-wp-on--mouseenter', 'actions.core.navigation.openMenuOnHover' );
+ $w->set_attribute( 'data-wp-on--mouseleave', 'actions.core.navigation.closeMenuOnHover' );
+ }
+
+ // Add directives to the toggle submenu button.
+ if ( $w->next_tag(
+ array(
+ 'tag_name' => 'BUTTON',
+ 'class_name' => 'wp-block-navigation-submenu__toggle',
+ )
+ ) ) {
+ $w->set_attribute( 'data-wp-on--click', 'actions.core.navigation.toggleMenuOnClick' );
+ $w->set_attribute( 'data-wp-bind--aria-expanded', 'selectors.core.navigation.isMenuOpen' );
+ };
+
+ // Iterate through subitems if exist.
+ gutenberg_block_core_navigation_add_directives_to_submenu( $w, $block_attributes );
+ }
+ return $w->get_updated_html();
+ };
+
+ /**
+ * Replaces view script for the Navigation block with version using Interactivity API.
+ *
+ * @param array $metadata Block metadata as read in via block.json.
+ *
+ * @return array Filtered block type metadata.
+ */
+ function gutenberg_block_core_navigation_update_interactive_view_script( $metadata ) {
+ if ( 'core/navigation' === $metadata['name'] ) {
+ $metadata['viewScript'] = array( 'file:./interactivity.min.js' );
+ }
+ return $metadata;
+ }
+ add_filter( 'block_type_metadata', 'gutenberg_block_core_navigation_update_interactive_view_script', 10, 1 );
}
-/**
- * Turns menu item data into a nested array of parsed blocks
- *
- * @param array $menu_items An array of menu items that represent
- * an individual level of a menu.
- * @param array $menu_items_by_parent_id An array keyed by the id of the
- * parent menu where each element is an
- * array of menu items that belong to
- * that parent.
- * @return array An array of parsed block data.
- */
-function block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_items_by_parent_id ) {
- if ( empty( $menu_items ) ) {
- return array();
- }
- $blocks = array();
-
- foreach ( $menu_items as $menu_item ) {
- $class_name = ! empty( $menu_item->classes ) ? implode( ' ', (array) $menu_item->classes ) : null;
- $id = ( null !== $menu_item->object_id && 'custom' !== $menu_item->object ) ? $menu_item->object_id : null;
- $opens_in_new_tab = null !== $menu_item->target && '_blank' === $menu_item->target;
- $rel = ( null !== $menu_item->xfn && '' !== $menu_item->xfn ) ? $menu_item->xfn : null;
- $kind = null !== $menu_item->type ? str_replace( '_', '-', $menu_item->type ) : 'custom';
-
- $block = array(
- 'blockName' => isset( $menu_items_by_parent_id[ $menu_item->ID ] ) ? 'core/navigation-submenu' : 'core/navigation-link',
- 'attrs' => array(
- 'className' => $class_name,
- 'description' => $menu_item->description,
- 'id' => $id,
- 'kind' => $kind,
- 'label' => $menu_item->title,
- 'opensInNewTab' => $opens_in_new_tab,
- 'rel' => $rel,
- 'title' => $menu_item->attr_title,
- 'type' => $menu_item->object,
- 'url' => $menu_item->url,
- ),
- );
-
- $block['innerBlocks'] = isset( $menu_items_by_parent_id[ $menu_item->ID ] )
- ? block_core_navigation_parse_blocks_from_menu_items( $menu_items_by_parent_id[ $menu_item->ID ], $menu_items_by_parent_id )
- : array();
- $block['innerContent'] = array_map( 'serialize_block', $block['innerBlocks'] );
-
- $blocks[] = $block;
- }
-
- return $blocks;
-}
/**
* Build an array with CSS classes and inline styles defining the colors
@@ -248,148 +276,9 @@ function block_core_navigation_render_submenu_icon() {
return '';
}
-/**
- * Get the classic navigation menu to use as a fallback.
- *
- * @return object WP_Term The classic navigation.
- */
-function block_core_navigation_get_classic_menu_fallback() {
- $classic_nav_menus = wp_get_nav_menus();
- // If menus exist.
- if ( $classic_nav_menus && ! is_wp_error( $classic_nav_menus ) ) {
- // Handles simple use case where user has a classic menu and switches to a block theme.
- // Returns the menu assigned to location `primary`.
- $locations = get_nav_menu_locations();
- if ( isset( $locations['primary'] ) ) {
- $primary_menu = wp_get_nav_menu_object( $locations['primary'] );
- if ( $primary_menu ) {
- return $primary_menu;
- }
- }
- // Returns a menu if `primary` is its slug.
- foreach ( $classic_nav_menus as $classic_nav_menu ) {
- if ( 'primary' === $classic_nav_menu->slug ) {
- return $classic_nav_menu;
- }
- }
-
- // Otherwise return the most recently created classic menu.
- usort(
- $classic_nav_menus,
- function( $a, $b ) {
- return $b->term_id - $a->term_id;
- }
- );
- return $classic_nav_menus[0];
- }
-}
-
-/**
- * Converts a classic navigation to blocks.
- *
- * @param object $classic_nav_menu WP_Term The classic navigation object to convert.
- * @return array the normalized parsed blocks.
- */
-function block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu ) {
- // BEGIN: Code that already exists in wp_nav_menu().
- $menu_items = wp_get_nav_menu_items( $classic_nav_menu->term_id, array( 'update_post_term_cache' => false ) );
-
- // Set up the $menu_item variables.
- _wp_menu_item_classes_by_context( $menu_items );
-
- $sorted_menu_items = array();
- foreach ( (array) $menu_items as $menu_item ) {
- $sorted_menu_items[ $menu_item->menu_order ] = $menu_item;
- }
-
- unset( $menu_items, $menu_item );
-
- // END: Code that already exists in wp_nav_menu().
-
- $menu_items_by_parent_id = array();
- foreach ( $sorted_menu_items as $menu_item ) {
- $menu_items_by_parent_id[ $menu_item->menu_item_parent ][] = $menu_item;
- }
-
- $inner_blocks = block_core_navigation_parse_blocks_from_menu_items(
- isset( $menu_items_by_parent_id[0] )
- ? $menu_items_by_parent_id[0]
- : array(),
- $menu_items_by_parent_id
- );
-
- return serialize_blocks( $inner_blocks );
-}
-
-/**
- * If there's a the classic menu then use it as a fallback.
- *
- * @return array the normalized parsed blocks.
- */
-function block_core_navigation_maybe_use_classic_menu_fallback() {
- // See if we have a classic menu.
- $classic_nav_menu = block_core_navigation_get_classic_menu_fallback();
-
- if ( ! $classic_nav_menu ) {
- return;
- }
-
- // If we have a classic menu then convert it to blocks.
- $classic_nav_menu_blocks = block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu );
-
- if ( empty( $classic_nav_menu_blocks ) ) {
- return;
- }
-
- // Create a new navigation menu from the classic menu.
- $wp_insert_post_result = wp_insert_post(
- array(
- 'post_content' => $classic_nav_menu_blocks,
- 'post_title' => $classic_nav_menu->slug,
- 'post_name' => $classic_nav_menu->slug,
- 'post_status' => 'publish',
- 'post_type' => 'wp_navigation',
- ),
- true // So that we can check whether the result is an error.
- );
-
- if ( is_wp_error( $wp_insert_post_result ) ) {
- return;
- }
-
- // Fetch the most recently published navigation which will be the classic one created above.
- return block_core_navigation_get_most_recently_published_navigation();
-}
-
-/**
- * Finds the most recently published `wp_navigation` Post.
- *
- * @return WP_Post|null the first non-empty Navigation or null.
- */
-function block_core_navigation_get_most_recently_published_navigation() {
-
- // Default to the most recently created menu.
- $parsed_args = array(
- 'post_type' => 'wp_navigation',
- 'no_found_rows' => true,
- 'update_post_meta_cache' => false,
- 'update_post_term_cache' => false,
- 'order' => 'DESC',
- 'orderby' => 'date',
- 'post_status' => 'publish',
- 'posts_per_page' => 1, // get only the most recent.
- );
-
- $navigation_post = new WP_Query( $parsed_args );
- if ( count( $navigation_post->posts ) > 0 ) {
- return $navigation_post->posts[0];
- }
-
- return null;
-}
/**
* Filter out empty "null" blocks from the block list.
@@ -403,7 +292,7 @@ function block_core_navigation_get_most_recently_published_navigation() {
function block_core_navigation_filter_out_empty_blocks( $parsed_blocks ) {
$filtered = array_filter(
$parsed_blocks,
- function( $block ) {
+ static function( $block ) {
return isset( $block['blockName'] );
}
);
@@ -452,15 +341,7 @@ function block_core_navigation_get_fallback_blocks() {
// If `core/page-list` is not registered then return empty blocks.
$fallback_blocks = $registry->is_registered( 'core/page-list' ) ? $page_list_fallback : array();
- // Default to a list of Pages.
-
- $navigation_post = block_core_navigation_get_most_recently_published_navigation();
-
- // If there are no navigation posts then try to find a classic menu
- // and convert it into a block based navigation menu.
- if ( ! $navigation_post ) {
- $navigation_post = block_core_navigation_maybe_use_classic_menu_fallback();
- }
+ $navigation_post = WP_Navigation_Fallback_Gutenberg::get_fallback();
// Use the first non-empty Navigation as fallback if available.
if ( $navigation_post ) {
@@ -531,7 +412,6 @@ function block_core_navigation_from_block_get_post_ids( $block ) {
* @return string Returns the post content with the legacy widget added.
*/
function render_block_core_navigation( $attributes, $content, $block ) {
-
static $seen_menu_names = array();
// Flag used to indicate whether the rendered output is considered to be
@@ -562,15 +442,6 @@ function render_block_core_navigation( $attributes, $content, $block ) {
*/
$has_old_responsive_attribute = ! empty( $attributes['isResponsive'] ) && $attributes['isResponsive'];
$is_responsive_menu = isset( $attributes['overlayMenu'] ) && 'never' !== $attributes['overlayMenu'] || $has_old_responsive_attribute;
- $should_load_view_script = ! wp_script_is( 'wp-block-navigation-view' ) && ( $is_responsive_menu || $attributes['openSubmenusOnClick'] || $attributes['showSubmenuIcon'] );
- if ( $should_load_view_script ) {
- wp_enqueue_script( 'wp-block-navigation-view' );
- }
-
- $should_load_modal_view_script = isset( $attributes['overlayMenu'] ) && 'never' !== $attributes['overlayMenu'];
- if ( $should_load_modal_view_script ) {
- wp_enqueue_script( 'wp-block-navigation-view-modal' );
- }
$inner_blocks = $block->inner_blocks;
@@ -668,7 +539,10 @@ function render_block_core_navigation( $attributes, $content, $block ) {
// Restore legacy classnames for submenu positioning.
$layout_class = '';
- if ( isset( $attributes['layout']['justifyContent'] ) ) {
+ if (
+ isset( $attributes['layout']['justifyContent'] ) &&
+ isset( $layout_justification[ $attributes['layout']['justifyContent'] ] )
+ ) {
$layout_class .= $layout_justification[ $attributes['layout']['justifyContent'] ];
}
if ( isset( $attributes['layout']['orientation'] ) && 'vertical' === $attributes['layout']['orientation'] ) {
@@ -712,14 +586,44 @@ function render_block_core_navigation( $attributes, $content, $block ) {
'core/site-logo',
);
+ $block_styles = isset( $attributes['styles'] ) ? $attributes['styles'] : '';
+ $style = $block_styles . $colors['inline_styles'] . $font_sizes['inline_styles'];
+ $class = implode( ' ', $classes );
+
+ // If the menu name has been used previously then append an ID
+ // to the name to ensure uniqueness across a given post.
+ if ( isset( $seen_menu_names[ $nav_menu_name ] ) && $seen_menu_names[ $nav_menu_name ] > 1 ) {
+ $count = $seen_menu_names[ $nav_menu_name ];
+ $nav_menu_name = $nav_menu_name . ' ' . ( $count );
+ }
+
+ $wrapper_attributes = get_block_wrapper_attributes(
+ array(
+ 'class' => $class,
+ 'style' => $style,
+ 'aria-label' => $nav_menu_name,
+ )
+ );
+
+ $container_attributes = get_block_wrapper_attributes(
+ array(
+ 'class' => 'wp-block-navigation__container ' . $class,
+ 'style' => $style,
+ )
+ );
+
$inner_blocks_html = '';
$is_list_open = false;
+ $has_submenus = false;
foreach ( $inner_blocks as $inner_block ) {
$is_list_item = in_array( $inner_block->name, $list_item_nav_blocks, true );
if ( $is_list_item && ! $is_list_open ) {
$is_list_open = true;
- $inner_blocks_html .= '';
+ $inner_blocks_html .= sprintf(
+ '',
+ $container_attributes
+ );
}
if ( ! $is_list_item && $is_list_open ) {
@@ -728,6 +632,15 @@ function render_block_core_navigation( $attributes, $content, $block ) {
}
$inner_block_content = $inner_block->render();
+ $p = new WP_HTML_Tag_Processor( $inner_block_content );
+ if ( $p->next_tag(
+ array(
+ 'name' => 'LI',
+ 'class_name' => 'has-child',
+ )
+ ) ) {
+ $has_submenus = true;
+ }
if ( ! empty( $inner_block_content ) ) {
if ( in_array( $inner_block->name, $needs_list_item_wrapper, true ) ) {
$inner_blocks_html .= '- ' . $inner_block_content . '
';
@@ -741,22 +654,27 @@ function render_block_core_navigation( $attributes, $content, $block ) {
$inner_blocks_html .= '
';
}
- $block_styles = isset( $attributes['styles'] ) ? $attributes['styles'] : '';
+ // If the script already exists, there is no point in removing it from viewScript.
+ $should_load_view_script = ( $is_responsive_menu || ( $has_submenus && ( $attributes['openSubmenusOnClick'] || $attributes['showSubmenuIcon'] ) ) );
+ $view_js_file = 'wp-block-navigation-view';
+ if ( ! wp_script_is( $view_js_file ) ) {
+ $script_handles = $block->block_type->view_script_handles;
- // If the menu name has been used previously then append an ID
- // to the name to ensure uniqueness across a given post.
- if ( isset( $seen_menu_names[ $nav_menu_name ] ) && $seen_menu_names[ $nav_menu_name ] > 1 ) {
- $count = $seen_menu_names[ $nav_menu_name ];
- $nav_menu_name = $nav_menu_name . ' ' . ( $count );
+ // If the script is not needed, and it is still in the `view_script_handles`, remove it.
+ if ( ! $should_load_view_script && in_array( $view_js_file, $script_handles, true ) ) {
+ $block->block_type->view_script_handles = array_diff( $script_handles, array( $view_js_file, 'wp-block-navigation-view-2' ) );
+ }
+ // If the script is needed, but it was previously removed, add it again.
+ if ( $should_load_view_script && ! in_array( $view_js_file, $script_handles, true ) ) {
+ $block->block_type->view_script_handles = array_merge( $script_handles, array( $view_js_file, 'wp-block-navigation-view-2' ) );
+ }
}
- $wrapper_attributes = get_block_wrapper_attributes(
- array(
- 'class' => implode( ' ', $classes ),
- 'style' => $block_styles . $colors['inline_styles'] . $font_sizes['inline_styles'],
- 'aria-label' => $nav_menu_name,
- )
- );
+ // Add directives to the submenu if needed.
+ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && $has_submenus && $should_load_view_script ) {
+ $w = new WP_HTML_Tag_Processor( $inner_blocks_html );
+ $inner_blocks_html = gutenberg_block_core_navigation_add_directives_to_submenu( $w, $attributes );
+ }
$modal_unique_id = wp_unique_id( 'modal-' );
@@ -795,12 +713,45 @@ function render_block_core_navigation( $attributes, $content, $block ) {
$toggle_aria_label_open = $should_display_icon_label ? 'aria-label="' . __( 'Open menu' ) . '"' : ''; // Open button label.
$toggle_aria_label_close = $should_display_icon_label ? 'aria-label="' . __( 'Close menu' ) . '"' : ''; // Close button label.
+ // Add Interactivity API directives to the markup if needed.
+ $nav_element_directives = '';
+ $open_button_directives = '';
+ $responsive_container_directives = '';
+ $responsive_dialog_directives = '';
+ $close_button_directives = '';
+ if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && $should_load_view_script ) {
+ $nav_element_directives = '
+ data-wp-interactive
+ data-wp-context=\'{ "core": { "navigation": { "isMenuOpen": { "click": false, "hover": false }, "overlay": true, "roleAttribute": "" } } }\'
+ ';
+ $open_button_directives = '
+ data-wp-on--click="actions.core.navigation.openMenuOnClick"
+ data-wp-on--keydown="actions.core.navigation.handleMenuKeydown"
+ ';
+ $responsive_container_directives = '
+ data-wp-class--has-modal-open="selectors.core.navigation.isMenuOpen"
+ data-wp-class--is-menu-open="selectors.core.navigation.isMenuOpen"
+ data-wp-effect="effects.core.navigation.initMenu"
+ data-wp-on--keydown="actions.core.navigation.handleMenuKeydown"
+ data-wp-on--focusout="actions.core.navigation.handleMenuFocusout"
+ tabindex="-1"
+ ';
+ $responsive_dialog_directives = '
+ data-wp-bind--aria-modal="selectors.core.navigation.isMenuOpen"
+ data-wp-bind--role="selectors.core.navigation.roleAttribute"
+ data-wp-effect="effects.core.navigation.focusFirstElement"
+ ';
+ $close_button_directives = '
+ data-wp-on--click="actions.core.navigation.closeMenuOnClick"
+ ';
+ }
+
$responsive_container_markup = sprintf(
- '
-
+ '
+
-
-
+
+
%2$s
@@ -816,13 +767,18 @@ function render_block_core_navigation( $attributes, $content, $block ) {
esc_attr( safecss_filter_attr( $colors['overlay_inline_styles'] ) ),
__( 'Menu' ),
$toggle_button_content,
- $toggle_close_button_content
+ $toggle_close_button_content,
+ $open_button_directives,
+ $responsive_container_directives,
+ $responsive_dialog_directives,
+ $close_button_directives
);
return sprintf(
- '
',
+ '
',
$wrapper_attributes,
- $responsive_container_markup
+ $responsive_container_markup,
+ $nav_element_directives
);
}
@@ -876,3 +832,212 @@ function block_core_navigation_typographic_presets_backcompatibility( $parsed_bl
}
add_filter( 'render_block_data', 'block_core_navigation_typographic_presets_backcompatibility' );
+
+/**
+ * Turns menu item data into a nested array of parsed blocks
+ *
+ * @param array $menu_items An array of menu items that represent
+ * an individual level of a menu.
+ * @param array $menu_items_by_parent_id An array keyed by the id of the
+ * parent menu where each element is an
+ * array of menu items that belong to
+ * that parent.
+ * @return array An array of parsed block data.
+ */
+function block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_items_by_parent_id ) {
+
+ _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::parse_blocks_from_menu_items' );
+
+ if ( empty( $menu_items ) ) {
+ return array();
+ }
+
+ $blocks = array();
+
+ foreach ( $menu_items as $menu_item ) {
+ $class_name = ! empty( $menu_item->classes ) ? implode( ' ', (array) $menu_item->classes ) : null;
+ $id = ( null !== $menu_item->object_id && 'custom' !== $menu_item->object ) ? $menu_item->object_id : null;
+ $opens_in_new_tab = null !== $menu_item->target && '_blank' === $menu_item->target;
+ $rel = ( null !== $menu_item->xfn && '' !== $menu_item->xfn ) ? $menu_item->xfn : null;
+ $kind = null !== $menu_item->type ? str_replace( '_', '-', $menu_item->type ) : 'custom';
+
+ $block = array(
+ 'blockName' => isset( $menu_items_by_parent_id[ $menu_item->ID ] ) ? 'core/navigation-submenu' : 'core/navigation-link',
+ 'attrs' => array(
+ 'className' => $class_name,
+ 'description' => $menu_item->description,
+ 'id' => $id,
+ 'kind' => $kind,
+ 'label' => $menu_item->title,
+ 'opensInNewTab' => $opens_in_new_tab,
+ 'rel' => $rel,
+ 'title' => $menu_item->attr_title,
+ 'type' => $menu_item->object,
+ 'url' => $menu_item->url,
+ ),
+ );
+
+ $block['innerBlocks'] = isset( $menu_items_by_parent_id[ $menu_item->ID ] )
+ ? block_core_navigation_parse_blocks_from_menu_items( $menu_items_by_parent_id[ $menu_item->ID ], $menu_items_by_parent_id )
+ : array();
+ $block['innerContent'] = array_map( 'serialize_block', $block['innerBlocks'] );
+
+ $blocks[] = $block;
+ }
+
+ return $blocks;
+}
+
+/**
+ * Get the classic navigation menu to use as a fallback.
+ *
+ * @return object WP_Term The classic navigation.
+ */
+function block_core_navigation_get_classic_menu_fallback() {
+
+ _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::get_classic_menu_fallback' );
+
+ $classic_nav_menus = wp_get_nav_menus();
+
+ // If menus exist.
+ if ( $classic_nav_menus && ! is_wp_error( $classic_nav_menus ) ) {
+ // Handles simple use case where user has a classic menu and switches to a block theme.
+
+ // Returns the menu assigned to location `primary`.
+ $locations = get_nav_menu_locations();
+ if ( isset( $locations['primary'] ) ) {
+ $primary_menu = wp_get_nav_menu_object( $locations['primary'] );
+ if ( $primary_menu ) {
+ return $primary_menu;
+ }
+ }
+
+ // Returns a menu if `primary` is its slug.
+ foreach ( $classic_nav_menus as $classic_nav_menu ) {
+ if ( 'primary' === $classic_nav_menu->slug ) {
+ return $classic_nav_menu;
+ }
+ }
+
+ // Otherwise return the most recently created classic menu.
+ usort(
+ $classic_nav_menus,
+ static function( $a, $b ) {
+ return $b->term_id - $a->term_id;
+ }
+ );
+ return $classic_nav_menus[0];
+ }
+}
+
+/**
+ * Converts a classic navigation to blocks.
+ *
+ * @param object $classic_nav_menu WP_Term The classic navigation object to convert.
+ * @return array the normalized parsed blocks.
+ */
+function block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu ) {
+
+ _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::get_classic_menu_fallback_blocks' );
+
+ // BEGIN: Code that already exists in wp_nav_menu().
+ $menu_items = wp_get_nav_menu_items( $classic_nav_menu->term_id, array( 'update_post_term_cache' => false ) );
+
+ // Set up the $menu_item variables.
+ _wp_menu_item_classes_by_context( $menu_items );
+
+ $sorted_menu_items = array();
+ foreach ( (array) $menu_items as $menu_item ) {
+ $sorted_menu_items[ $menu_item->menu_order ] = $menu_item;
+ }
+
+ unset( $menu_items, $menu_item );
+
+ // END: Code that already exists in wp_nav_menu().
+
+ $menu_items_by_parent_id = array();
+ foreach ( $sorted_menu_items as $menu_item ) {
+ $menu_items_by_parent_id[ $menu_item->menu_item_parent ][] = $menu_item;
+ }
+
+ $inner_blocks = block_core_navigation_parse_blocks_from_menu_items(
+ isset( $menu_items_by_parent_id[0] )
+ ? $menu_items_by_parent_id[0]
+ : array(),
+ $menu_items_by_parent_id
+ );
+
+ return serialize_blocks( $inner_blocks );
+}
+
+/**
+ * If there's a the classic menu then use it as a fallback.
+ *
+ * @return array the normalized parsed blocks.
+ */
+function block_core_navigation_maybe_use_classic_menu_fallback() {
+
+ _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::create_classic_menu_fallback' );
+
+ // See if we have a classic menu.
+ $classic_nav_menu = block_core_navigation_get_classic_menu_fallback();
+
+ if ( ! $classic_nav_menu ) {
+ return;
+ }
+
+ // If we have a classic menu then convert it to blocks.
+ $classic_nav_menu_blocks = block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu );
+
+ if ( empty( $classic_nav_menu_blocks ) ) {
+ return;
+ }
+
+ // Create a new navigation menu from the classic menu.
+ $wp_insert_post_result = wp_insert_post(
+ array(
+ 'post_content' => $classic_nav_menu_blocks,
+ 'post_title' => $classic_nav_menu->name,
+ 'post_name' => $classic_nav_menu->slug,
+ 'post_status' => 'publish',
+ 'post_type' => 'wp_navigation',
+ ),
+ true // So that we can check whether the result is an error.
+ );
+
+ if ( is_wp_error( $wp_insert_post_result ) ) {
+ return;
+ }
+
+ // Fetch the most recently published navigation which will be the classic one created above.
+ return block_core_navigation_get_most_recently_published_navigation();
+}
+
+/**
+ * Finds the most recently published `wp_navigation` Post.
+ *
+ * @return WP_Post|null the first non-empty Navigation or null.
+ */
+function block_core_navigation_get_most_recently_published_navigation() {
+
+ _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback_Gutenberg::get_most_recently_published_navigation' );
+
+ // Default to the most recently created menu.
+ $parsed_args = array(
+ 'post_type' => 'wp_navigation',
+ 'no_found_rows' => true,
+ 'update_post_meta_cache' => false,
+ 'update_post_term_cache' => false,
+ 'order' => 'DESC',
+ 'orderby' => 'date',
+ 'post_status' => 'publish',
+ 'posts_per_page' => 1, // get only the most recent.
+ );
+
+ $navigation_post = new WP_Query( $parsed_args );
+ if ( count( $navigation_post->posts ) > 0 ) {
+ return $navigation_post->posts[0];
+ }
+
+ return null;
+}
diff --git a/src/wp-includes/blocks/navigation/block.json b/src/wp-includes/blocks/navigation/block.json
index ee67381620..e45d053536 100644
--- a/src/wp-includes/blocks/navigation/block.json
+++ b/src/wp-includes/blocks/navigation/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/navigation",
"title": "Navigation",
"category": "theme",
@@ -87,7 +87,6 @@
"showSubmenuIcon": "showSubmenuIcon",
"openSubmenusOnClick": "openSubmenusOnClick",
"style": "style",
- "orientation": "orientation",
"maxNestingLevel": "maxNestingLevel"
},
"supports": {
@@ -115,7 +114,7 @@
"blockGap": true
}
},
- "__experimentalLayout": {
+ "layout": {
"allowSwitching": false,
"allowInheriting": false,
"allowVerticalAlignment": false,
diff --git a/src/wp-includes/blocks/navigation/view-modal.asset.php b/src/wp-includes/blocks/navigation/view-modal.asset.php
index 35bf91ef33..94385651cd 100644
--- a/src/wp-includes/blocks/navigation/view-modal.asset.php
+++ b/src/wp-includes/blocks/navigation/view-modal.asset.php
@@ -1 +1 @@
- array(), 'version' => 'd09326a9acd3f6992aae');
+ array(), 'version' => 'a145d0113e969f692877');
diff --git a/src/wp-includes/blocks/navigation/view-modal.min.asset.php b/src/wp-includes/blocks/navigation/view-modal.min.asset.php
index c6b1fdefa2..3bfd6f1641 100644
--- a/src/wp-includes/blocks/navigation/view-modal.min.asset.php
+++ b/src/wp-includes/blocks/navigation/view-modal.min.asset.php
@@ -1 +1 @@
- array(), 'version' => 'f51363b18f0497ec84da');
+ array(), 'version' => '4922697e0a5370a09f02');
diff --git a/src/wp-includes/blocks/navigation/view.asset.php b/src/wp-includes/blocks/navigation/view.asset.php
index 47c4cec85f..728ff5dd4d 100644
--- a/src/wp-includes/blocks/navigation/view.asset.php
+++ b/src/wp-includes/blocks/navigation/view.asset.php
@@ -1 +1 @@
- array(), 'version' => '4ab20ef60d94f9632256');
+ array(), 'version' => 'e0302ba06467706c7421');
diff --git a/src/wp-includes/blocks/navigation/view.min.asset.php b/src/wp-includes/blocks/navigation/view.min.asset.php
index a5cea71cb5..8372aaad5f 100644
--- a/src/wp-includes/blocks/navigation/view.min.asset.php
+++ b/src/wp-includes/blocks/navigation/view.min.asset.php
@@ -1 +1 @@
- array(), 'version' => 'c24330f635f5cb9d5e0e');
+ array(), 'version' => '886680af40b7521d60fc');
diff --git a/src/wp-includes/blocks/nextpage/block.json b/src/wp-includes/blocks/nextpage/block.json
index 6a133264d6..ab88d4a7be 100644
--- a/src/wp-includes/blocks/nextpage/block.json
+++ b/src/wp-includes/blocks/nextpage/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/nextpage",
"title": "Page Break",
"category": "design",
diff --git a/src/wp-includes/blocks/page-list-item.php b/src/wp-includes/blocks/page-list-item.php
new file mode 100644
index 0000000000..2955c795ae
--- /dev/null
+++ b/src/wp-includes/blocks/page-list-item.php
@@ -0,0 +1,14 @@
+post_parent ][ $page->ID ] = array(
'page_id' => $page->ID,
'title' => $page->post_title,
- 'link' => get_permalink( $page->ID ),
+ 'link' => get_permalink( $page ),
'is_active' => $is_active,
);
} else {
$top_level_pages[ $page->ID ] = array(
'page_id' => $page->ID,
'title' => $page->post_title,
- 'link' => get_permalink( $page->ID ),
+ 'link' => get_permalink( $page ),
'is_active' => $is_active,
);
diff --git a/src/wp-includes/blocks/page-list/block.json b/src/wp-includes/blocks/page-list/block.json
index 4f4f45c4bb..7f4f2ce86c 100644
--- a/src/wp-includes/blocks/page-list/block.json
+++ b/src/wp-includes/blocks/page-list/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/page-list",
"title": "Page List",
"category": "widgets",
diff --git a/src/wp-includes/blocks/paragraph/block.json b/src/wp-includes/blocks/paragraph/block.json
index 497a6b2c29..cbabc108ec 100644
--- a/src/wp-includes/blocks/paragraph/block.json
+++ b/src/wp-includes/blocks/paragraph/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/paragraph",
"title": "Paragraph",
"category": "text",
@@ -43,7 +43,11 @@
},
"spacing": {
"margin": true,
- "padding": true
+ "padding": true,
+ "__experimentalDefaultControls": {
+ "margin": false,
+ "padding": false
+ }
},
"typography": {
"fontSize": true,
diff --git a/src/wp-includes/blocks/pattern.php b/src/wp-includes/blocks/pattern.php
index 32a08601ca..a819cb6bd4 100644
--- a/src/wp-includes/blocks/pattern.php
+++ b/src/wp-includes/blocks/pattern.php
@@ -33,6 +33,7 @@ function render_block_core_pattern( $attributes ) {
$slug = $attributes['slug'];
$registry = WP_Block_Patterns_Registry::get_instance();
+
if ( ! $registry->is_registered( $slug ) ) {
return '';
}
diff --git a/src/wp-includes/blocks/pattern/block.json b/src/wp-includes/blocks/pattern/block.json
index da02314240..e9a85a9b2f 100644
--- a/src/wp-includes/blocks/pattern/block.json
+++ b/src/wp-includes/blocks/pattern/block.json
@@ -1,8 +1,8 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/pattern",
- "title": "Pattern",
+ "title": "Pattern placeholder",
"category": "theme",
"description": "Show a block pattern.",
"supports": {
diff --git a/src/wp-includes/blocks/post-author-biography/block.json b/src/wp-includes/blocks/post-author-biography/block.json
index 434b6b0965..6964da1969 100644
--- a/src/wp-includes/blocks/post-author-biography/block.json
+++ b/src/wp-includes/blocks/post-author-biography/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-author-biography",
"title": "Post Author Biography",
"category": "theme",
diff --git a/src/wp-includes/blocks/post-author-name/block.json b/src/wp-includes/blocks/post-author-name/block.json
index 29ad4b0d4d..3acb8c19bf 100644
--- a/src/wp-includes/blocks/post-author-name/block.json
+++ b/src/wp-includes/blocks/post-author-name/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-author-name",
"title": "Post Author Name",
"category": "theme",
diff --git a/src/wp-includes/blocks/post-author.php b/src/wp-includes/blocks/post-author.php
index 7e6a9e6a0b..898d947828 100644
--- a/src/wp-includes/blocks/post-author.php
+++ b/src/wp-includes/blocks/post-author.php
@@ -32,7 +32,7 @@ function render_block_core_post_author( $attributes, $content, $block ) {
$link = get_author_posts_url( $author_id );
$author_name = get_the_author_meta( 'display_name', $author_id );
if ( ! empty( $attributes['isLink'] && ! empty( $attributes['linkTarget'] ) ) ) {
- $author_name = sprintf( '
%2s', esc_url( $link ), esc_attr( $attributes['linkTarget'] ), $author_name );
+ $author_name = sprintf( '
%3$s', esc_url( $link ), esc_attr( $attributes['linkTarget'] ), $author_name );
}
$byline = ! empty( $attributes['byline'] ) ? $attributes['byline'] : false;
diff --git a/src/wp-includes/blocks/post-author/block.json b/src/wp-includes/blocks/post-author/block.json
index 7d7cd28225..ada3a77803 100644
--- a/src/wp-includes/blocks/post-author/block.json
+++ b/src/wp-includes/blocks/post-author/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-author",
"title": "Post Author",
"category": "theme",
@@ -63,6 +63,5 @@
}
}
},
- "editorStyle": "wp-block-post-author-editor",
"style": "wp-block-post-author"
}
diff --git a/src/wp-includes/blocks/post-comments-form/block.json b/src/wp-includes/blocks/post-comments-form/block.json
index 5ed4122d11..62f92b7581 100644
--- a/src/wp-includes/blocks/post-comments-form/block.json
+++ b/src/wp-includes/blocks/post-comments-form/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-comments-form",
"title": "Post Comments Form",
"category": "theme",
diff --git a/src/wp-includes/blocks/post-content/block.json b/src/wp-includes/blocks/post-content/block.json
index c6041e036d..044ca5768b 100644
--- a/src/wp-includes/blocks/post-content/block.json
+++ b/src/wp-includes/blocks/post-content/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-content",
"title": "Post Content",
"category": "theme",
@@ -10,7 +10,7 @@
"supports": {
"align": [ "wide", "full" ],
"html": false,
- "__experimentalLayout": true,
+ "layout": true,
"dimensions": {
"minHeight": true
},
diff --git a/src/wp-includes/blocks/post-date.php b/src/wp-includes/blocks/post-date.php
index 5c20ee30c2..b59db80b24 100644
--- a/src/wp-includes/blocks/post-date.php
+++ b/src/wp-includes/blocks/post-date.php
@@ -18,25 +18,34 @@ function render_block_core_post_date( $attributes, $content, $block ) {
return '';
}
- $post_ID = $block->context['postId'];
+ $post_ID = $block->context['postId'];
+ $formatted_date = get_the_date( empty( $attributes['format'] ) ? '' : $attributes['format'], $post_ID );
+ $unformatted_date = esc_attr( get_the_date( 'c', $post_ID ) );
+ $classes = array();
- $classes = array();
if ( isset( $attributes['textAlign'] ) ) {
$classes[] = 'has-text-align-' . $attributes['textAlign'];
}
if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
$classes[] = 'has-link-color';
}
- $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
+ /*
+ * If the "Display last modified date" setting is enabled,
+ * only display the modified date if it is later than the publishing date.
+ */
if ( isset( $attributes['displayType'] ) && 'modified' === $attributes['displayType'] ) {
- $formatted_date = get_the_modified_date( empty( $attributes['format'] ) ? '' : $attributes['format'], $post_ID );
- $unformatted_date = esc_attr( get_the_modified_date( 'c', $post_ID ) );
- } else {
- $formatted_date = get_the_date( empty( $attributes['format'] ) ? '' : $attributes['format'], $post_ID );
- $unformatted_date = esc_attr( get_the_date( 'c', $post_ID ) );
+ if ( get_the_modified_date( 'Ymdhi', $post_ID ) > get_the_date( 'Ymdhi', $post_ID ) ) {
+ $formatted_date = get_the_modified_date( empty( $attributes['format'] ) ? '' : $attributes['format'], $post_ID );
+ $unformatted_date = esc_attr( get_the_modified_date( 'c', $post_ID ) );
+ $classes[] = 'wp-block-post-date__modified-date';
+ } else {
+ return '';
+ }
}
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
+
if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) {
$formatted_date = sprintf( '
%2s', get_the_permalink( $post_ID ), $formatted_date );
}
diff --git a/src/wp-includes/blocks/post-date/block.json b/src/wp-includes/blocks/post-date/block.json
index b469dbe87d..ed87259c3b 100644
--- a/src/wp-includes/blocks/post-date/block.json
+++ b/src/wp-includes/blocks/post-date/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-date",
"title": "Post Date",
"category": "theme",
diff --git a/src/wp-includes/blocks/post-excerpt.php b/src/wp-includes/blocks/post-excerpt.php
index 1380918fe1..4ed4edab95 100644
--- a/src/wp-includes/blocks/post-excerpt.php
+++ b/src/wp-includes/blocks/post-excerpt.php
@@ -18,14 +18,20 @@ function render_block_core_post_excerpt( $attributes, $content, $block ) {
return '';
}
- $excerpt = get_the_excerpt();
-
- if ( empty( $excerpt ) ) {
- return '';
+ /*
+ * The purpose of the excerpt length setting is to limit the length of both
+ * automatically generated and user-created excerpts.
+ * Because the excerpt_length filter only applies to auto generated excerpts,
+ * wp_trim_words is used instead.
+ */
+ $excerpt_length = $attributes['excerptLength'];
+ $excerpt = get_the_excerpt( $block->context['postId'] );
+ if ( isset( $excerpt_length ) ) {
+ $excerpt = wp_trim_words( $excerpt, $excerpt_length );
}
$more_text = ! empty( $attributes['moreText'] ) ? '
' . wp_kses_post( $attributes['moreText'] ) . '' : '';
- $filter_excerpt_more = function( $more ) use ( $more_text ) {
+ $filter_excerpt_more = static function( $more ) use ( $more_text ) {
return empty( $more_text ) ? $more : '';
};
/**
@@ -70,3 +76,20 @@ function register_block_core_post_excerpt() {
);
}
add_action( 'init', 'register_block_core_post_excerpt' );
+
+/**
+ * If themes or plugins filter the excerpt_length, we need to
+ * override the filter in the editor, otherwise
+ * the excerpt length block setting has no effect.
+ * Returns 100 because 100 is the max length in the setting.
+ */
+if ( is_admin() ||
+ defined( 'REST_REQUEST' ) && REST_REQUEST ) {
+ add_filter(
+ 'excerpt_length',
+ static function() {
+ return 100;
+ },
+ PHP_INT_MAX
+ );
+}
diff --git a/src/wp-includes/blocks/post-excerpt/block.json b/src/wp-includes/blocks/post-excerpt/block.json
index 03107ff900..33b7818ebe 100644
--- a/src/wp-includes/blocks/post-excerpt/block.json
+++ b/src/wp-includes/blocks/post-excerpt/block.json
@@ -1,10 +1,10 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-excerpt",
- "title": "Post Excerpt",
+ "title": "Excerpt",
"category": "theme",
- "description": "Display a post's excerpt.",
+ "description": "Display the excerpt.",
"textdomain": "default",
"attributes": {
"textAlign": {
@@ -16,6 +16,10 @@
"showMoreOnNewLine": {
"type": "boolean",
"default": true
+ },
+ "excerptLength": {
+ "type": "number",
+ "default": 55
}
},
"usesContext": [ "postId", "postType", "queryId" ],
diff --git a/src/wp-includes/blocks/post-featured-image.php b/src/wp-includes/blocks/post-featured-image.php
index 8da66accd3..6cb4110ee0 100644
--- a/src/wp-includes/blocks/post-featured-image.php
+++ b/src/wp-includes/blocks/post-featured-image.php
@@ -42,11 +42,20 @@ function render_block_core_post_featured_image( $attributes, $content, $block )
}
}
- if ( ! empty( $attributes['height'] ) ) {
- $extra_styles = "height:{$attributes['height']};";
- if ( ! empty( $attributes['scale'] ) ) {
- $extra_styles .= "object-fit:{$attributes['scale']};";
- }
+ $extra_styles = '';
+
+ // Aspect ratio with a height set needs to override the default width/height.
+ if ( ! empty( $attributes['aspectRatio'] ) ) {
+ $extra_styles .= 'width:100%;height:100%;';
+ } elseif ( ! empty( $attributes['height'] ) ) {
+ $extra_styles .= "height:{$attributes['height']};";
+ }
+
+ if ( ! empty( $attributes['scale'] ) ) {
+ $extra_styles .= "object-fit:{$attributes['scale']};";
+ }
+
+ if ( ! empty( $extra_styles ) ) {
$attr['style'] = empty( $attr['style'] ) ? $extra_styles : $attr['style'] . $extra_styles;
}
@@ -71,12 +80,19 @@ function render_block_core_post_featured_image( $attributes, $content, $block )
$featured_image = $featured_image . $overlay_markup;
}
- $width = ! empty( $attributes['width'] ) ? esc_attr( safecss_filter_attr( 'width:' . $attributes['width'] ) ) . ';' : '';
- $height = ! empty( $attributes['height'] ) ? esc_attr( safecss_filter_attr( 'height:' . $attributes['height'] ) ) . ';' : '';
- if ( ! $height && ! $width ) {
+ $aspect_ratio = ! empty( $attributes['aspectRatio'] )
+ ? esc_attr( safecss_filter_attr( 'aspect-ratio:' . $attributes['aspectRatio'] ) ) . ';'
+ : '';
+ $width = ! empty( $attributes['width'] )
+ ? esc_attr( safecss_filter_attr( 'width:' . $attributes['width'] ) ) . ';'
+ : '';
+ $height = ! empty( $attributes['height'] )
+ ? esc_attr( safecss_filter_attr( 'height:' . $attributes['height'] ) ) . ';'
+ : '';
+ if ( ! $height && ! $width && ! $aspect_ratio ) {
$wrapper_attributes = get_block_wrapper_attributes();
} else {
- $wrapper_attributes = get_block_wrapper_attributes( array( 'style' => $width . $height ) );
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'style' => $aspect_ratio . $width . $height ) );
}
return "
{$featured_image}";
}
diff --git a/src/wp-includes/blocks/post-featured-image/block.json b/src/wp-includes/blocks/post-featured-image/block.json
index 40f51cffa0..aa6428cad0 100644
--- a/src/wp-includes/blocks/post-featured-image/block.json
+++ b/src/wp-includes/blocks/post-featured-image/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-featured-image",
"title": "Post Featured Image",
"category": "theme",
@@ -11,6 +11,9 @@
"type": "boolean",
"default": false
},
+ "aspectRatio": {
+ "type": "string"
+ },
"width": {
"type": "string"
},
diff --git a/src/wp-includes/blocks/post-navigation-link/block.json b/src/wp-includes/blocks/post-navigation-link/block.json
index 7b8d87fe26..4e7df560c6 100644
--- a/src/wp-includes/blocks/post-navigation-link/block.json
+++ b/src/wp-includes/blocks/post-navigation-link/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-navigation-link",
"title": "Post Navigation Link",
"category": "theme",
diff --git a/src/wp-includes/blocks/post-template.php b/src/wp-includes/blocks/post-template.php
index 3a3c207cf9..3c023c80ed 100644
--- a/src/wp-includes/blocks/post-template.php
+++ b/src/wp-includes/blocks/post-template.php
@@ -72,6 +72,11 @@ function render_block_core_post_template( $attributes, $content, $block ) {
$classnames .= ' has-link-color';
}
+ // Ensure backwards compatibility by flagging the number of columns via classname when using grid layout.
+ if ( isset( $attributes['layout']['type'] ) && 'grid' === $attributes['layout']['type'] && ! empty( $attributes['layout']['columnCount'] ) ) {
+ $classnames .= ' ' . sanitize_title( 'columns-' . $attributes['layout']['columnCount'] );
+ }
+
$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => trim( $classnames ) ) );
$content = '';
@@ -85,17 +90,18 @@ function render_block_core_post_template( $attributes, $content, $block ) {
// This ensures that for the inner instances of the Post Template block, we do not render any block supports.
$block_instance['blockName'] = 'core/null';
+ $post_id = get_the_ID();
+ $post_type = get_post_type();
+ $filter_block_context = static function( $context ) use ( $post_id, $post_type ) {
+ $context['postType'] = $post_type;
+ $context['postId'] = $post_id;
+ return $context;
+ };
+ add_filter( 'render_block_context', $filter_block_context );
// Render the inner blocks of the Post Template block with `dynamic` set to `false` to prevent calling
// `render_callback` and ensure that no wrapper markup is included.
- $block_content = (
- new WP_Block(
- $block_instance,
- array(
- 'postType' => get_post_type(),
- 'postId' => get_the_ID(),
- )
- )
- )->render( array( 'dynamic' => false ) );
+ $block_content = ( new WP_Block( $block_instance ) )->render( array( 'dynamic' => false ) );
+ remove_filter( 'render_block_context', $filter_block_context );
// Wrap the render inner blocks in a `li` element with the appropriate post classes.
$post_classes = implode( ' ', get_post_class( 'wp-block-post' ) );
diff --git a/src/wp-includes/blocks/post-template/block.json b/src/wp-includes/blocks/post-template/block.json
index bc9910b47d..1f0d4677e6 100644
--- a/src/wp-includes/blocks/post-template/block.json
+++ b/src/wp-includes/blocks/post-template/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-template",
"title": "Post Template",
"category": "theme",
@@ -18,10 +18,8 @@
"supports": {
"reusable": false,
"html": false,
- "align": true,
- "__experimentalLayout": {
- "allowEditing": false
- },
+ "align": [ "wide", "full" ],
+ "layout": true,
"color": {
"gradients": true,
"link": true,
@@ -42,6 +40,14 @@
"__experimentalDefaultControls": {
"fontSize": true
}
+ },
+ "spacing": {
+ "blockGap": {
+ "__experimentalDefault": "1.25em"
+ },
+ "__experimentalDefaultControls": {
+ "blockGap": true
+ }
}
},
"style": "wp-block-post-template",
diff --git a/src/wp-includes/blocks/post-terms.php b/src/wp-includes/blocks/post-terms.php
index 5511dd2f8e..96951a9e15 100644
--- a/src/wp-includes/blocks/post-terms.php
+++ b/src/wp-includes/blocks/post-terms.php
@@ -64,8 +64,8 @@ function render_block_core_post_terms( $attributes, $content, $block ) {
function register_block_core_post_terms() {
$taxonomies = get_taxonomies(
array(
- 'public' => true,
- 'show_in_rest' => true,
+ 'publicly_queryable' => true,
+ 'show_in_rest' => true,
),
'objects'
);
@@ -87,6 +87,7 @@ function register_block_core_post_terms() {
'term' => $taxonomy->name,
),
'isActive' => array( 'term' ),
+ 'scope' => array( 'inserter', 'transform' ),
);
// Set the category variation as the default one.
if ( 'category' === $taxonomy->name ) {
diff --git a/src/wp-includes/blocks/post-terms/block.json b/src/wp-includes/blocks/post-terms/block.json
index e14f96170c..0da7fb02f8 100644
--- a/src/wp-includes/blocks/post-terms/block.json
+++ b/src/wp-includes/blocks/post-terms/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-terms",
"title": "Post Terms",
"category": "theme",
diff --git a/src/wp-includes/blocks/post-title.php b/src/wp-includes/blocks/post-title.php
index 1f03b12fc2..e1d4b255c5 100644
--- a/src/wp-includes/blocks/post-title.php
+++ b/src/wp-includes/blocks/post-title.php
@@ -19,8 +19,8 @@ function render_block_core_post_title( $attributes, $content, $block ) {
return '';
}
- $post_ID = $block->context['postId'];
- $title = get_the_title();
+ $post = get_post( $block->context['postId'] );
+ $title = get_the_title( $post );
if ( ! $title ) {
return '';
@@ -28,12 +28,12 @@ function render_block_core_post_title( $attributes, $content, $block ) {
$tag_name = 'h2';
if ( isset( $attributes['level'] ) ) {
- $tag_name = 0 === $attributes['level'] ? 'p' : 'h' . $attributes['level'];
+ $tag_name = 'h' . $attributes['level'];
}
if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) {
$rel = ! empty( $attributes['rel'] ) ? 'rel="' . esc_attr( $attributes['rel'] ) . '"' : '';
- $title = sprintf( '
%4$s', get_the_permalink( $post_ID ), esc_attr( $attributes['linkTarget'] ), $rel, $title );
+ $title = sprintf( '
%4$s', get_the_permalink( $post ), esc_attr( $attributes['linkTarget'] ), $rel, $title );
}
$classes = array();
diff --git a/src/wp-includes/blocks/post-title/block.json b/src/wp-includes/blocks/post-title/block.json
index 015896ff1b..eda5332f24 100644
--- a/src/wp-includes/blocks/post-title/block.json
+++ b/src/wp-includes/blocks/post-title/block.json
@@ -1,8 +1,8 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/post-title",
- "title": "Post Title",
+ "title": "Title",
"category": "theme",
"description": "Displays the title of a post, page, or any other content-type.",
"textdomain": "default",
diff --git a/src/wp-includes/blocks/preformatted/block.json b/src/wp-includes/blocks/preformatted/block.json
index bab40b94a7..f781cb1125 100644
--- a/src/wp-includes/blocks/preformatted/block.json
+++ b/src/wp-includes/blocks/preformatted/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/preformatted",
"title": "Preformatted",
"category": "text",
diff --git a/src/wp-includes/blocks/pullquote/block.json b/src/wp-includes/blocks/pullquote/block.json
index 0732bb52f6..54c4175d31 100644
--- a/src/wp-includes/blocks/pullquote/block.json
+++ b/src/wp-includes/blocks/pullquote/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/pullquote",
"title": "Pullquote",
"category": "text",
diff --git a/src/wp-includes/blocks/query-no-results/block.json b/src/wp-includes/blocks/query-no-results/block.json
index f042223f36..32088752bb 100644
--- a/src/wp-includes/blocks/query-no-results/block.json
+++ b/src/wp-includes/blocks/query-no-results/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/query-no-results",
"title": "No results",
"category": "theme",
diff --git a/src/wp-includes/blocks/query-pagination-next.php b/src/wp-includes/blocks/query-pagination-next.php
index e92b58938d..f0ded727ee 100644
--- a/src/wp-includes/blocks/query-pagination-next.php
+++ b/src/wp-includes/blocks/query-pagination-next.php
@@ -20,10 +20,15 @@ function render_block_core_query_pagination_next( $attributes, $content, $block
$max_page = isset( $block->context['query']['pages'] ) ? (int) $block->context['query']['pages'] : 0;
$wrapper_attributes = get_block_wrapper_attributes();
+ $show_label = isset( $block->context['showLabel'] ) ? (bool) $block->context['showLabel'] : true;
$default_label = __( 'Next Page' );
- $label = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? esc_html( $attributes['label'] ) : $default_label;
+ $label_text = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? esc_html( $attributes['label'] ) : $default_label;
+ $label = $show_label ? $label_text : '';
$pagination_arrow = get_query_pagination_arrow( $block, true );
+ if ( ! $label ) {
+ $wrapper_attributes .= ' aria-label="' . $label_text . '"';
+ }
if ( $pagination_arrow ) {
$label .= $pagination_arrow;
}
@@ -31,7 +36,7 @@ function render_block_core_query_pagination_next( $attributes, $content, $block
// Check if the pagination is for Query that inherits the global context.
if ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ) {
- $filter_link_attributes = function() use ( $wrapper_attributes ) {
+ $filter_link_attributes = static function() use ( $wrapper_attributes ) {
return $wrapper_attributes;
};
add_filter( 'next_posts_link_attributes', $filter_link_attributes );
diff --git a/src/wp-includes/blocks/query-pagination-next/block.json b/src/wp-includes/blocks/query-pagination-next/block.json
index ad87d05b5e..60d44d7ca1 100644
--- a/src/wp-includes/blocks/query-pagination-next/block.json
+++ b/src/wp-includes/blocks/query-pagination-next/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/query-pagination-next",
"title": "Next Page",
"category": "theme",
@@ -12,7 +12,7 @@
"type": "string"
}
},
- "usesContext": [ "queryId", "query", "paginationArrow" ],
+ "usesContext": [ "queryId", "query", "paginationArrow", "showLabel" ],
"supports": {
"reusable": false,
"html": false,
diff --git a/src/wp-includes/blocks/query-pagination-numbers/block.json b/src/wp-includes/blocks/query-pagination-numbers/block.json
index fd28596581..f00b2993a7 100644
--- a/src/wp-includes/blocks/query-pagination-numbers/block.json
+++ b/src/wp-includes/blocks/query-pagination-numbers/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/query-pagination-numbers",
"title": "Page Numbers",
"category": "theme",
@@ -32,5 +32,5 @@
}
}
},
- "editorStyle": "query-pagination-numbers-editor"
+ "editorStyle": "wp-block-query-pagination-numbers-editor"
}
diff --git a/src/wp-includes/blocks/query-pagination-previous.php b/src/wp-includes/blocks/query-pagination-previous.php
index 9bb9f0d1f2..5665506598 100644
--- a/src/wp-includes/blocks/query-pagination-previous.php
+++ b/src/wp-includes/blocks/query-pagination-previous.php
@@ -19,9 +19,14 @@ function render_block_core_query_pagination_previous( $attributes, $content, $bl
$page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ];
$wrapper_attributes = get_block_wrapper_attributes();
+ $show_label = isset( $block->context['showLabel'] ) ? (bool) $block->context['showLabel'] : true;
$default_label = __( 'Previous Page' );
- $label = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? esc_html( $attributes['label'] ) : $default_label;
+ $label_text = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? esc_html( $attributes['label'] ) : $default_label;
+ $label = $show_label ? $label_text : '';
$pagination_arrow = get_query_pagination_arrow( $block, false );
+ if ( ! $label ) {
+ $wrapper_attributes .= ' aria-label="' . $label_text . '"';
+ }
if ( $pagination_arrow ) {
$label = $pagination_arrow . $label;
}
@@ -29,7 +34,7 @@ function render_block_core_query_pagination_previous( $attributes, $content, $bl
// Check if the pagination is for Query that inherits the global context
// and handle appropriately.
if ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ) {
- $filter_link_attributes = function() use ( $wrapper_attributes ) {
+ $filter_link_attributes = static function() use ( $wrapper_attributes ) {
return $wrapper_attributes;
};
diff --git a/src/wp-includes/blocks/query-pagination-previous/block.json b/src/wp-includes/blocks/query-pagination-previous/block.json
index 484cefe6bb..d13442f831 100644
--- a/src/wp-includes/blocks/query-pagination-previous/block.json
+++ b/src/wp-includes/blocks/query-pagination-previous/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/query-pagination-previous",
"title": "Previous Page",
"category": "theme",
@@ -12,7 +12,7 @@
"type": "string"
}
},
- "usesContext": [ "queryId", "query", "paginationArrow" ],
+ "usesContext": [ "queryId", "query", "paginationArrow", "showLabel" ],
"supports": {
"reusable": false,
"html": false,
diff --git a/src/wp-includes/blocks/query-pagination/block.json b/src/wp-includes/blocks/query-pagination/block.json
index f75f4077d4..e32a9ba9b4 100644
--- a/src/wp-includes/blocks/query-pagination/block.json
+++ b/src/wp-includes/blocks/query-pagination/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/query-pagination",
"title": "Pagination",
"category": "theme",
@@ -11,11 +11,16 @@
"paginationArrow": {
"type": "string",
"default": "none"
+ },
+ "showLabel": {
+ "type": "boolean",
+ "default": true
}
},
"usesContext": [ "queryId", "query" ],
"providesContext": {
- "paginationArrow": "paginationArrow"
+ "paginationArrow": "paginationArrow",
+ "showLabel": "showLabel"
},
"supports": {
"align": true,
@@ -30,7 +35,7 @@
"link": true
}
},
- "__experimentalLayout": {
+ "layout": {
"allowSwitching": false,
"allowInheriting": false,
"default": {
diff --git a/src/wp-includes/blocks/query-title.php b/src/wp-includes/blocks/query-title.php
index d781de3826..29793e5227 100644
--- a/src/wp-includes/blocks/query-title.php
+++ b/src/wp-includes/blocks/query-title.php
@@ -28,12 +28,9 @@ function render_block_core_query_title( $attributes ) {
if ( $is_archive ) {
$show_prefix = isset( $attributes['showPrefix'] ) ? $attributes['showPrefix'] : true;
if ( ! $show_prefix ) {
- $filter_title = function( $title, $original_title ) {
- return $original_title;
- };
- add_filter( 'get_the_archive_title', $filter_title, 10, 2 );
+ add_filter( 'get_the_archive_title_prefix', '__return_empty_string', 1 );
$title = get_the_archive_title();
- remove_filter( 'get_the_archive_title', $filter_title, 10, 2 );
+ remove_filter( 'get_the_archive_title_prefix', '__return_empty_string', 1 );
} else {
$title = get_the_archive_title();
}
diff --git a/src/wp-includes/blocks/query-title/block.json b/src/wp-includes/blocks/query-title/block.json
index 33df75866b..2db349e55d 100644
--- a/src/wp-includes/blocks/query-title/block.json
+++ b/src/wp-includes/blocks/query-title/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/query-title",
"title": "Query Title",
"category": "theme",
diff --git a/src/wp-includes/blocks/query/block.json b/src/wp-includes/blocks/query/block.json
index 1974761962..e4b78b585b 100644
--- a/src/wp-includes/blocks/query/block.json
+++ b/src/wp-includes/blocks/query/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/query",
"title": "Query Loop",
"category": "theme",
@@ -32,12 +32,6 @@
"type": "string",
"default": "div"
},
- "displayLayout": {
- "type": "object",
- "default": {
- "type": "list"
- }
- },
"namespace": {
"type": "string"
}
@@ -50,7 +44,7 @@
"supports": {
"align": [ "wide", "full" ],
"html": false,
- "__experimentalLayout": true
+ "layout": true
},
"editorStyle": "wp-block-query-editor"
}
diff --git a/src/wp-includes/blocks/quote/block.json b/src/wp-includes/blocks/quote/block.json
index adb9fddca7..49ee925794 100644
--- a/src/wp-includes/blocks/quote/block.json
+++ b/src/wp-includes/blocks/quote/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/quote",
"title": "Quote",
"category": "text",
@@ -29,6 +29,7 @@
},
"supports": {
"anchor": true,
+ "html": false,
"__experimentalOnEnter": true,
"typography": {
"fontSize": true,
diff --git a/src/wp-includes/blocks/read-more/block.json b/src/wp-includes/blocks/read-more/block.json
index 61b0452c7c..d3386a49d6 100644
--- a/src/wp-includes/blocks/read-more/block.json
+++ b/src/wp-includes/blocks/read-more/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/read-more",
"title": "Read More",
"category": "theme",
diff --git a/src/wp-includes/blocks/require-dynamic-blocks.php b/src/wp-includes/blocks/require-dynamic-blocks.php
index 1f9bf0a16c..229a0311b8 100644
--- a/src/wp-includes/blocks/require-dynamic-blocks.php
+++ b/src/wp-includes/blocks/require-dynamic-blocks.php
@@ -21,6 +21,7 @@ require_once ABSPATH . WPINC . '/blocks/comments-pagination-previous.php';
require_once ABSPATH . WPINC . '/blocks/comments-title.php';
require_once ABSPATH . WPINC . '/blocks/cover.php';
require_once ABSPATH . WPINC . '/blocks/file.php';
+require_once ABSPATH . WPINC . '/blocks/footnotes.php';
require_once ABSPATH . WPINC . '/blocks/gallery.php';
require_once ABSPATH . WPINC . '/blocks/heading.php';
require_once ABSPATH . WPINC . '/blocks/home-link.php';
@@ -32,6 +33,7 @@ require_once ABSPATH . WPINC . '/blocks/navigation.php';
require_once ABSPATH . WPINC . '/blocks/navigation-link.php';
require_once ABSPATH . WPINC . '/blocks/navigation-submenu.php';
require_once ABSPATH . WPINC . '/blocks/page-list.php';
+require_once ABSPATH . WPINC . '/blocks/page-list-item.php';
require_once ABSPATH . WPINC . '/blocks/pattern.php';
require_once ABSPATH . WPINC . '/blocks/post-author.php';
require_once ABSPATH . WPINC . '/blocks/post-author-biography.php';
diff --git a/src/wp-includes/blocks/require-static-blocks.php b/src/wp-includes/blocks/require-static-blocks.php
index 44009bef5f..69f6d68410 100644
--- a/src/wp-includes/blocks/require-static-blocks.php
+++ b/src/wp-includes/blocks/require-static-blocks.php
@@ -9,6 +9,7 @@ return array(
'code',
'column',
'columns',
+ 'details',
'embed',
'freeform',
'group',
@@ -19,7 +20,6 @@ return array(
'missing',
'more',
'nextpage',
- 'page-list-item',
'paragraph',
'preformatted',
'pullquote',
diff --git a/src/wp-includes/blocks/rss/block.json b/src/wp-includes/blocks/rss/block.json
index 8a351d877a..2535eda594 100644
--- a/src/wp-includes/blocks/rss/block.json
+++ b/src/wp-includes/blocks/rss/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/rss",
"title": "RSS",
"category": "widgets",
diff --git a/src/wp-includes/blocks/search.php b/src/wp-includes/blocks/search.php
index c7461a8679..ce76587dbb 100644
--- a/src/wp-includes/blocks/search.php
+++ b/src/wp-includes/blocks/search.php
@@ -29,11 +29,11 @@ function render_block_core_search( $attributes ) {
$classnames = classnames_for_block_core_search( $attributes );
$show_label = ( ! empty( $attributes['showLabel'] ) ) ? true : false;
$use_icon_button = ( ! empty( $attributes['buttonUseIcon'] ) ) ? true : false;
- $show_input = ( ! empty( $attributes['buttonPosition'] ) && 'button-only' === $attributes['buttonPosition'] ) ? false : true;
$show_button = ( ! empty( $attributes['buttonPosition'] ) && 'no-button' === $attributes['buttonPosition'] ) ? false : true;
+ $button_position = $show_button ? $attributes['buttonPosition'] : null;
$query_params = ( ! empty( $attributes['query'] ) ) ? $attributes['query'] : array();
- $input_markup = '';
- $button_markup = '';
+ $button_behavior = ( ! empty( $attributes['buttonBehavior'] ) ) ? $attributes['buttonBehavior'] : 'default';
+ $button = '';
$query_params_markup = '';
$inline_styles = styles_for_block_core_search( $attributes );
$color_classes = get_color_classes_for_block_core_search( $attributes );
@@ -44,42 +44,37 @@ function render_block_core_search( $attributes ) {
$border_color_classes = get_border_color_classes_for_block_core_search( $attributes );
$label_inner_html = empty( $attributes['label'] ) ? __( 'Search' ) : wp_kses_post( $attributes['label'] );
-
- $label_markup = sprintf(
- '
',
- esc_attr( $input_id ),
- $label_inner_html
- );
- if ( $show_label && ! empty( $attributes['label'] ) ) {
- $label_classes = array( 'wp-block-search__label' );
- if ( ! empty( $typography_classes ) ) {
- $label_classes[] = $typography_classes;
+ $label = new WP_HTML_Tag_Processor( sprintf( '
', $inline_styles['label'], $label_inner_html ) );
+ if ( $label->next_tag() ) {
+ $label->set_attribute( 'for', $input_id );
+ $label->add_class( 'wp-block-search__label' );
+ if ( $show_label && ! empty( $attributes['label'] ) ) {
+ if ( ! empty( $typography_classes ) ) {
+ $label->add_class( $typography_classes );
+ }
+ } else {
+ $label->add_class( 'screen-reader-text' );
}
- $label_markup = sprintf(
- '
',
- esc_attr( $input_id ),
- esc_attr( implode( ' ', $label_classes ) ),
- $inline_styles['label'],
- $label_inner_html
- );
}
- if ( $show_input ) {
- $input_classes = array( 'wp-block-search__input' );
- if ( ! $is_button_inside && ! empty( $border_color_classes ) ) {
- $input_classes[] = $border_color_classes;
+ $input = new WP_HTML_Tag_Processor( sprintf( '
', $inline_styles['input'] ) );
+ $input_classes = array( 'wp-block-search__input' );
+ if ( ! $is_button_inside && ! empty( $border_color_classes ) ) {
+ $input_classes[] = $border_color_classes;
+ }
+ if ( ! empty( $typography_classes ) ) {
+ $input_classes[] = $typography_classes;
+ }
+ if ( $input->next_tag() ) {
+ $input->add_class( implode( ' ', $input_classes ) );
+ $input->set_attribute( 'id', $input_id );
+ $input->set_attribute( 'value', get_search_query() );
+ $input->set_attribute( 'placeholder', $attributes['placeholder'] );
+ if ( 'button-only' === $button_position && 'expand-searchfield' === $button_behavior ) {
+ $input->set_attribute( 'aria-hidden', 'true' );
+ $input->set_attribute( 'tabindex', '-1' );
+ wp_enqueue_script( 'wp-block--search-view', plugins_url( 'search/view.min.js', __FILE__ ) );
}
- if ( ! empty( $typography_classes ) ) {
- $input_classes[] = $typography_classes;
- }
- $input_markup = sprintf(
- '
',
- $input_id,
- esc_attr( implode( ' ', $input_classes ) ),
- get_search_query(),
- esc_attr( $attributes['placeholder'] ),
- $inline_styles['input']
- );
}
if ( count( $query_params ) > 0 ) {
@@ -101,7 +96,6 @@ function render_block_core_search( $attributes ) {
if ( ! empty( $typography_classes ) ) {
$button_classes[] = $typography_classes;
}
- $aria_label = '';
if ( ! $is_button_inside && ! empty( $border_color_classes ) ) {
$button_classes[] = $border_color_classes;
@@ -111,24 +105,27 @@ function render_block_core_search( $attributes ) {
$button_internal_markup = wp_kses_post( $attributes['buttonText'] );
}
} else {
- $aria_label = sprintf( 'aria-label="%s"', esc_attr( wp_strip_all_tags( $attributes['buttonText'] ) ) );
- $button_classes[] = 'has-icon';
-
+ $button_classes[] = 'has-icon';
$button_internal_markup =
'
';
}
// Include the button element class.
$button_classes[] = wp_theme_get_element_class_name( 'button' );
- $button_markup = sprintf(
- '
',
- esc_attr( implode( ' ', $button_classes ) ),
- $inline_styles['button'],
- $aria_label,
- $button_internal_markup
- );
+ $button = new WP_HTML_Tag_Processor( sprintf( '
', $inline_styles['button'], $button_internal_markup ) );
+
+ if ( $button->next_tag() ) {
+ $button->add_class( implode( ' ', $button_classes ) );
+ if ( 'expand-searchfield' === $attributes['buttonBehavior'] && 'button-only' === $attributes['buttonPosition'] ) {
+ $button->set_attribute( 'aria-label', __( 'Expand search field' ) );
+ $button->set_attribute( 'aria-controls', 'wp-block-search__input-' . $input_id );
+ $button->set_attribute( 'aria-expanded', 'false' );
+ } else {
+ $button->set_attribute( 'aria-label', wp_strip_all_tags( $attributes['buttonText'] ) );
+ }
+ }
}
$field_markup_classes = $is_button_inside ? $border_color_classes : '';
@@ -136,7 +133,7 @@ function render_block_core_search( $attributes ) {
'
%s
',
esc_attr( $field_markup_classes ),
$inline_styles['wrapper'],
- $input_markup . $query_params_markup . $button_markup
+ $input . $query_params_markup . $button
);
$wrapper_attributes = get_block_wrapper_attributes(
array( 'class' => $classnames )
@@ -146,7 +143,7 @@ function render_block_core_search( $attributes ) {
'
',
esc_url( home_url( '/' ) ),
$wrapper_attributes,
- $label_markup . $field_markup
+ $label . $field_markup
);
}
@@ -188,6 +185,9 @@ function classnames_for_block_core_search( $attributes ) {
if ( 'button-only' === $attributes['buttonPosition'] ) {
$classnames[] = 'wp-block-search__button-only';
+ if ( ! empty( $attributes['buttonBehavior'] ) && 'expand-searchfield' === $attributes['buttonBehavior'] ) {
+ $classnames[] = 'wp-block-search__button-behavior-expand wp-block-search__searchfield-hidden';
+ }
}
}
@@ -294,10 +294,9 @@ function styles_for_block_core_search( $attributes ) {
$show_label = ( isset( $attributes['showLabel'] ) ) && false !== $attributes['showLabel'];
// Add width styles.
- $has_width = ! empty( $attributes['width'] ) && ! empty( $attributes['widthUnit'] );
- $button_only = ! empty( $attributes['buttonPosition'] ) && 'button-only' === $attributes['buttonPosition'];
+ $has_width = ! empty( $attributes['width'] ) && ! empty( $attributes['widthUnit'] );
- if ( $has_width && ! $button_only ) {
+ if ( $has_width ) {
$wrapper_styles[] = sprintf(
'width: %d%s;',
esc_attr( $attributes['width'] ),
diff --git a/src/wp-includes/blocks/search/block.json b/src/wp-includes/blocks/search/block.json
index fbd0fa874c..1a23590699 100644
--- a/src/wp-includes/blocks/search/block.json
+++ b/src/wp-includes/blocks/search/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/search",
"title": "Search",
"category": "widgets",
@@ -42,6 +42,14 @@
"query": {
"type": "object",
"default": {}
+ },
+ "buttonBehavior": {
+ "type": "string",
+ "default": "expand-searchfield"
+ },
+ "isSearchFieldHidden": {
+ "type": "boolean",
+ "default": false
}
},
"supports": {
diff --git a/src/wp-includes/blocks/separator/block.json b/src/wp-includes/blocks/separator/block.json
index bee358d208..970f6b5cbb 100644
--- a/src/wp-includes/blocks/separator/block.json
+++ b/src/wp-includes/blocks/separator/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/separator",
"title": "Separator",
"category": "design",
diff --git a/src/wp-includes/blocks/shortcode/block.json b/src/wp-includes/blocks/shortcode/block.json
index 5b36d141dd..22d838a719 100644
--- a/src/wp-includes/blocks/shortcode/block.json
+++ b/src/wp-includes/blocks/shortcode/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/shortcode",
"title": "Shortcode",
"category": "widgets",
@@ -9,7 +9,7 @@
"attributes": {
"text": {
"type": "string",
- "source": "html"
+ "source": "raw"
}
},
"supports": {
diff --git a/src/wp-includes/blocks/site-logo.php b/src/wp-includes/blocks/site-logo.php
index 35e199d59d..f1819fcaac 100644
--- a/src/wp-includes/blocks/site-logo.php
+++ b/src/wp-includes/blocks/site-logo.php
@@ -13,7 +13,7 @@
* @return string The render.
*/
function render_block_core_site_logo( $attributes ) {
- $adjust_width_height_filter = function ( $image ) use ( $attributes ) {
+ $adjust_width_height_filter = static function ( $image ) use ( $attributes ) {
if ( empty( $attributes['width'] ) || empty( $image ) || ! $image[1] || ! $image[2] ) {
return $image;
}
@@ -39,8 +39,13 @@ function render_block_core_site_logo( $attributes ) {
if ( $attributes['isLink'] && '_blank' === $attributes['linkTarget'] ) {
// Add the link target after the rel="home".
// Add an aria-label for informing that the page opens in a new tab.
- $aria_label = 'aria-label="' . esc_attr__( '(Home link, opens in a new tab)' ) . '"';
- $custom_logo = str_replace( 'rel="home"', 'rel="home" target="' . esc_attr( $attributes['linkTarget'] ) . '"' . $aria_label, $custom_logo );
+ $processor = new WP_HTML_Tag_Processor( $custom_logo );
+ $processor->next_tag( 'a' );
+ if ( 'home' === $processor->get_attribute( 'rel' ) ) {
+ $processor->set_attribute( 'aria-label', __( '(Home link, opens in a new tab)' ) );
+ $processor->set_attribute( 'target', $attributes['linkTarget'] );
+ }
+ $custom_logo = $processor->get_updated_html();
}
$classnames = array();
diff --git a/src/wp-includes/blocks/site-logo/block.json b/src/wp-includes/blocks/site-logo/block.json
index f7efcb7215..747f1ab94a 100644
--- a/src/wp-includes/blocks/site-logo/block.json
+++ b/src/wp-includes/blocks/site-logo/block.json
@@ -1,10 +1,10 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/site-logo",
"title": "Site Logo",
"category": "theme",
- "description": "Display a graphic to represent this site. Update the block, and the changes apply everywhere it’s used. This is different than the site icon, which is the smaller image visible in your dashboard, browser tabs, etc used to help others recognize this site.",
+ "description": "Display an image to represent this site. Update this block and the changes apply everywhere.",
"textdomain": "default",
"attributes": {
"width": {
diff --git a/src/wp-includes/blocks/site-tagline/block.json b/src/wp-includes/blocks/site-tagline/block.json
index 230bdd5fef..7382c084ee 100644
--- a/src/wp-includes/blocks/site-tagline/block.json
+++ b/src/wp-includes/blocks/site-tagline/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/site-tagline",
"title": "Site Tagline",
"category": "theme",
diff --git a/src/wp-includes/blocks/site-title/block.json b/src/wp-includes/blocks/site-title/block.json
index aeac5ee574..2c37258acb 100644
--- a/src/wp-includes/blocks/site-title/block.json
+++ b/src/wp-includes/blocks/site-title/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/site-title",
"title": "Site Title",
"category": "theme",
diff --git a/src/wp-includes/blocks/social-link.php b/src/wp-includes/blocks/social-link.php
index 7e669bf56d..51ed9374c9 100644
--- a/src/wp-includes/blocks/social-link.php
+++ b/src/wp-includes/blocks/social-link.php
@@ -47,7 +47,7 @@ function render_block_core_social_link( $attributes, $content, $block ) {
$icon = block_core_social_link_get_icon( $service );
$wrapper_attributes = get_block_wrapper_attributes(
array(
- 'class' => 'wp-social-link wp-social-link-' . $service,
+ 'class' => 'wp-social-link wp-social-link-' . $service . block_core_social_link_get_color_classes( $block->context ),
'style' => block_core_social_link_get_color_styles( $block->context ),
)
);
@@ -59,15 +59,15 @@ function render_block_core_social_link( $attributes, $content, $block ) {
$link .= esc_html( $label );
$link .= '';
- $w = new WP_HTML_Tag_Processor( $link );
- $w->next_tag( 'a' );
+ $processor = new WP_HTML_Tag_Processor( $link );
+ $processor->next_tag( 'a' );
if ( $open_in_new_tab ) {
- $w->set_attribute( 'rel', esc_attr( $rel ) . ' noopener nofollow' );
- $w->set_attribute( 'target', '_blank' );
+ $processor->set_attribute( 'rel', esc_attr( $rel ) . ' noopener nofollow' );
+ $processor->set_attribute( 'target', '_blank' );
} elseif ( '' !== $rel ) {
- $w->set_attribute( 'rel', esc_attr( $rel ) );
+ $processor->set_attribute( 'rel', esc_attr( $rel ) );
}
- return $w;
+ return $processor->get_updated_html();
}
/**
@@ -144,7 +144,7 @@ function block_core_social_link_services( $service = '', $field = '' ) {
),
'chain' => array(
'name' => 'Link',
- 'icon' => '
',
+ 'icon' => '
',
),
'codepen' => array(
'name' => 'CodePen',
@@ -208,7 +208,7 @@ function block_core_social_link_services( $service = '', $field = '' ) {
),
'mail' => array(
'name' => 'Mail',
- 'icon' => '
',
+ 'icon' => '
',
),
'mastodon' => array(
'name' => 'Mastodon',
@@ -337,3 +337,24 @@ function block_core_social_link_get_color_styles( $context ) {
return implode( '', $styles );
}
+
+/**
+ * Returns CSS classes for icon and icon background colors.
+ *
+ * @param array $context Block context passed to Social Sharing Link.
+ *
+ * @return string CSS classes for link's icon and background colors.
+ */
+function block_core_social_link_get_color_classes( $context ) {
+ $classes = array();
+
+ if ( array_key_exists( 'iconColor', $context ) ) {
+ $classes[] = 'has-' . $context['iconColor'] . '-color';
+ }
+
+ if ( array_key_exists( 'iconBackgroundColor', $context ) ) {
+ $classes[] = 'has-' . $context['iconBackgroundColor'] . '-background-color';
+ }
+
+ return ' ' . implode( ' ', $classes );
+}
diff --git a/src/wp-includes/blocks/social-link/block.json b/src/wp-includes/blocks/social-link/block.json
index 5f64b7dcf7..50e95efedb 100644
--- a/src/wp-includes/blocks/social-link/block.json
+++ b/src/wp-includes/blocks/social-link/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/social-link",
"title": "Social Icon",
"category": "widgets",
@@ -24,7 +24,9 @@
"usesContext": [
"openInNewTab",
"showLabels",
+ "iconColor",
"iconColorValue",
+ "iconBackgroundColor",
"iconBackgroundColorValue"
],
"supports": {
diff --git a/src/wp-includes/blocks/social-links/block.json b/src/wp-includes/blocks/social-links/block.json
index a7707cf195..064b077b5e 100644
--- a/src/wp-includes/blocks/social-links/block.json
+++ b/src/wp-includes/blocks/social-links/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/social-links",
"title": "Social Icons",
"category": "widgets",
@@ -41,14 +41,16 @@
"providesContext": {
"openInNewTab": "openInNewTab",
"showLabels": "showLabels",
+ "iconColor": "iconColor",
"iconColorValue": "iconColorValue",
+ "iconBackgroundColor": "iconBackgroundColor",
"iconBackgroundColorValue": "iconBackgroundColorValue"
},
"supports": {
"align": [ "left", "center", "right" ],
"anchor": true,
"__experimentalExposeControlsToChildren": true,
- "__experimentalLayout": {
+ "layout": {
"allowSwitching": false,
"allowInheriting": false,
"allowVerticalAlignment": false,
diff --git a/src/wp-includes/blocks/spacer/block.json b/src/wp-includes/blocks/spacer/block.json
index 021ff9f4a2..a9da8d537f 100644
--- a/src/wp-includes/blocks/spacer/block.json
+++ b/src/wp-includes/blocks/spacer/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/spacer",
"title": "Spacer",
"category": "design",
diff --git a/src/wp-includes/blocks/table/block.json b/src/wp-includes/blocks/table/block.json
index adac1e9c21..54e4bc26ca 100644
--- a/src/wp-includes/blocks/table/block.json
+++ b/src/wp-includes/blocks/table/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/table",
"title": "Table",
"category": "text",
diff --git a/src/wp-includes/blocks/tag-cloud/block.json b/src/wp-includes/blocks/tag-cloud/block.json
index c722227398..9481dc9456 100644
--- a/src/wp-includes/blocks/tag-cloud/block.json
+++ b/src/wp-includes/blocks/tag-cloud/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/tag-cloud",
"title": "Tag Cloud",
"category": "widgets",
diff --git a/src/wp-includes/blocks/template-part.php b/src/wp-includes/blocks/template-part.php
index 6f41f2a793..84e3a985ec 100644
--- a/src/wp-includes/blocks/template-part.php
+++ b/src/wp-includes/blocks/template-part.php
@@ -18,27 +18,29 @@ function render_block_core_template_part( $attributes ) {
$template_part_id = null;
$content = null;
$area = WP_TEMPLATE_PART_AREA_UNCATEGORIZED;
+ $stylesheet = get_stylesheet();
if (
isset( $attributes['slug'] ) &&
isset( $attributes['theme'] ) &&
- get_stylesheet() === $attributes['theme']
+ $stylesheet === $attributes['theme']
) {
$template_part_id = $attributes['theme'] . '//' . $attributes['slug'];
$template_part_query = new WP_Query(
array(
- 'post_type' => 'wp_template_part',
- 'post_status' => 'publish',
- 'post_name__in' => array( $attributes['slug'] ),
- 'tax_query' => array(
+ 'post_type' => 'wp_template_part',
+ 'post_status' => 'publish',
+ 'post_name__in' => array( $attributes['slug'] ),
+ 'tax_query' => array(
array(
'taxonomy' => 'wp_theme',
'field' => 'name',
'terms' => $attributes['theme'],
),
),
- 'posts_per_page' => 1,
- 'no_found_rows' => true,
+ 'posts_per_page' => 1,
+ 'no_found_rows' => true,
+ 'lazy_load_term_meta' => false, // Do not lazy load term meta, as template parts only have one term.
)
);
$template_part_post = $template_part_query->have_posts() ? $template_part_query->next_post() : null;
@@ -64,16 +66,22 @@ function render_block_core_template_part( $attributes ) {
} else {
// Else, if the template part was provided by the active theme,
// render the corresponding file content.
- $parent_theme_folders = get_block_theme_folders( get_template() );
- $child_theme_folders = get_block_theme_folders( get_stylesheet() );
- $child_theme_part_file_path = get_theme_file_path( '/' . $child_theme_folders['wp_template_part'] . '/' . $attributes['slug'] . '.html' );
- $parent_theme_part_file_path = get_theme_file_path( '/' . $parent_theme_folders['wp_template_part'] . '/' . $attributes['slug'] . '.html' );
- $template_part_file_path = 0 === validate_file( $attributes['slug'] ) && file_exists( $child_theme_part_file_path ) ? $child_theme_part_file_path : $parent_theme_part_file_path;
- if ( 0 === validate_file( $attributes['slug'] ) && file_exists( $template_part_file_path ) ) {
- $content = file_get_contents( $template_part_file_path );
- $content = is_string( $content ) && '' !== $content
- ? _inject_theme_attribute_in_block_template_content( $content )
- : '';
+ if ( 0 === validate_file( $attributes['slug'] ) ) {
+ $themes = array( $stylesheet );
+ $template = get_template();
+ if ( $stylesheet !== $template ) {
+ $themes[] = $template;
+ }
+
+ foreach ( $themes as $theme ) {
+ $theme_folders = get_block_theme_folders( $theme );
+ $template_part_file_path = get_theme_file_path( '/' . $theme_folders['wp_template_part'] . '/' . $attributes['slug'] . '.html' );
+ if ( file_exists( $template_part_file_path ) ) {
+ $content = (string) file_get_contents( $template_part_file_path );
+ $content = '' !== $content ? _inject_theme_attribute_in_block_template_content( $content ) : '';
+ break;
+ }
+ }
}
if ( '' !== $content && null !== $content ) {
@@ -172,21 +180,34 @@ function render_block_core_template_part( $attributes ) {
/**
* Returns an array of area variation objects for the template part block.
*
+ * @param array $instance_variations The variations for instances.
+ *
* @return array Array containing the block variation objects.
*/
-function build_template_part_block_area_variations() {
+function build_template_part_block_area_variations( $instance_variations ) {
$variations = array();
$defined_areas = get_allowed_block_template_part_areas();
+
foreach ( $defined_areas as $area ) {
if ( 'uncategorized' !== $area['area'] ) {
+ $has_instance_for_area = false;
+ foreach ( $instance_variations as $variation ) {
+ if ( $variation['attributes']['area'] === $area['area'] ) {
+ $has_instance_for_area = true;
+ break;
+ }
+ }
+
+ $scope = $has_instance_for_area ? array() : array( 'inserter' );
+
$variations[] = array(
- 'name' => $area['area'],
+ 'name' => 'area_' . $area['area'],
'title' => $area['label'],
'description' => $area['description'],
'attributes' => array(
'area' => $area['area'],
),
- 'scope' => array( 'inserter' ),
+ 'scope' => $scope,
'icon' => $area['icon'],
);
}
@@ -222,7 +243,7 @@ function build_template_part_block_instance_variations() {
foreach ( $template_parts as $template_part ) {
$variations[] = array(
- 'name' => sanitize_title( $template_part->slug ),
+ 'name' => 'instance_' . sanitize_title( $template_part->slug ),
'title' => $template_part->title,
// If there's no description for the template part don't show the
// block description. This is a bit hacky, but prevent the fallback
@@ -254,7 +275,9 @@ function build_template_part_block_instance_variations() {
* @return array Array containing the block variation objects.
*/
function build_template_part_block_variations() {
- return array_merge( build_template_part_block_area_variations(), build_template_part_block_instance_variations() );
+ $instance_variations = build_template_part_block_instance_variations();
+ $area_variations = build_template_part_block_area_variations( $instance_variations );
+ return array_merge( $area_variations, $instance_variations );
}
/**
diff --git a/src/wp-includes/blocks/template-part/block.json b/src/wp-includes/blocks/template-part/block.json
index 3801eee941..9fe431150a 100644
--- a/src/wp-includes/blocks/template-part/block.json
+++ b/src/wp-includes/blocks/template-part/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/template-part",
"title": "Template Part",
"category": "theme",
diff --git a/src/wp-includes/blocks/term-description/block.json b/src/wp-includes/blocks/term-description/block.json
index 66eb9348a4..fc91a4aff4 100644
--- a/src/wp-includes/blocks/term-description/block.json
+++ b/src/wp-includes/blocks/term-description/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/term-description",
"title": "Term Description",
"category": "theme",
@@ -38,6 +38,5 @@
"fontSize": true
}
}
- },
- "editorStyle": "wp-block-term-description-editor"
+ }
}
diff --git a/src/wp-includes/blocks/text-columns/block.json b/src/wp-includes/blocks/text-columns/block.json
index 84d5ccece0..3af169fadb 100644
--- a/src/wp-includes/blocks/text-columns/block.json
+++ b/src/wp-includes/blocks/text-columns/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/text-columns",
"title": "Text Columns (deprecated)",
"icon": "columns",
diff --git a/src/wp-includes/blocks/verse/block.json b/src/wp-includes/blocks/verse/block.json
index dc0772cc9a..5fabf49ade 100644
--- a/src/wp-includes/blocks/verse/block.json
+++ b/src/wp-includes/blocks/verse/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/verse",
"title": "Verse",
"category": "text",
@@ -47,6 +47,12 @@
"spacing": {
"margin": true,
"padding": true
+ },
+ "__experimentalBorder": {
+ "radius": true,
+ "width": true,
+ "color": true,
+ "style": true
}
},
"style": "wp-block-verse",
diff --git a/src/wp-includes/blocks/video/block.json b/src/wp-includes/blocks/video/block.json
index 6f53246cc8..df2d207537 100644
--- a/src/wp-includes/blocks/video/block.json
+++ b/src/wp-includes/blocks/video/block.json
@@ -1,6 +1,6 @@
{
"$schema": "https://schemas.wp.org/trunk/block.json",
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/video",
"title": "Video",
"category": "media",
diff --git a/src/wp-includes/blocks/widget-group/block.json b/src/wp-includes/blocks/widget-group/block.json
index ec48d90eda..c29e811554 100644
--- a/src/wp-includes/blocks/widget-group/block.json
+++ b/src/wp-includes/blocks/widget-group/block.json
@@ -1,5 +1,5 @@
{
- "apiVersion": 2,
+ "apiVersion": 3,
"name": "core/widget-group",
"category": "widgets",
"attributes": {
diff --git a/src/wp-includes/load.php b/src/wp-includes/load.php
index c0398cb4f9..fb5f98d261 100644
--- a/src/wp-includes/load.php
+++ b/src/wp-includes/load.php
@@ -73,12 +73,14 @@ function wp_fix_server_vars() {
}
// Fix for PHP as CGI hosts that set SCRIPT_FILENAME to something ending in php.cgi for all requests.
- if ( isset( $_SERVER['SCRIPT_FILENAME'] ) && str_ends_with( $_SERVER['SCRIPT_FILENAME'], 'php.cgi' ) ) {
+ if ( isset( $_SERVER['SCRIPT_FILENAME'] )
+ && ( strpos( $_SERVER['SCRIPT_FILENAME'], 'php.cgi' ) === strlen( $_SERVER['SCRIPT_FILENAME'] ) - 7 )
+ ) {
$_SERVER['SCRIPT_FILENAME'] = $_SERVER['PATH_TRANSLATED'];
}
// Fix for Dreamhost and other PHP as CGI hosts.
- if ( isset( $_SERVER['SCRIPT_NAME'] ) && str_contains( $_SERVER['SCRIPT_NAME'], 'php.cgi' ) ) {
+ if ( isset( $_SERVER['SCRIPT_NAME'] ) && ( strpos( $_SERVER['SCRIPT_NAME'], 'php.cgi' ) !== false ) ) {
unset( $_SERVER['PATH_INFO'] );
}
@@ -877,7 +879,7 @@ function wp_get_mu_plugins() {
return $mu_plugins;
}
while ( ( $plugin = readdir( $dh ) ) !== false ) {
- if ( str_ends_with( $plugin, '.php' ) ) {
+ if ( '.php' === substr( $plugin, -4 ) ) {
$mu_plugins[] = WPMU_PLUGIN_DIR . '/' . $plugin;
}
}
@@ -919,7 +921,7 @@ function wp_get_active_and_valid_plugins() {
foreach ( $active_plugins as $plugin ) {
if ( ! validate_file( $plugin ) // $plugin must validate as file.
- && str_ends_with( $plugin, '.php' ) // $plugin must end with '.php'.
+ && '.php' === substr( $plugin, -4 ) // $plugin must end with '.php'.
&& file_exists( WP_PLUGIN_DIR . '/' . $plugin ) // $plugin must exist.
// Not already included as a network plugin.
&& ( ! $network_plugins || ! in_array( WP_PLUGIN_DIR . '/' . $plugin, $network_plugins, true ) )
@@ -1549,11 +1551,11 @@ function wp_convert_hr_to_bytes( $value ) {
$value = strtolower( trim( $value ) );
$bytes = (int) $value;
- if ( str_contains( $value, 'g' ) ) {
+ if ( false !== strpos( $value, 'g' ) ) {
$bytes *= GB_IN_BYTES;
- } elseif ( str_contains( $value, 'm' ) ) {
+ } elseif ( false !== strpos( $value, 'm' ) ) {
$bytes *= MB_IN_BYTES;
- } elseif ( str_contains( $value, 'k' ) ) {
+ } elseif ( false !== strpos( $value, 'k' ) ) {
$bytes *= KB_IN_BYTES;
}
@@ -1832,7 +1834,7 @@ function wp_is_xml_request() {
if ( isset( $_SERVER['HTTP_ACCEPT'] ) ) {
foreach ( $accepted as $type ) {
- if ( str_contains( $_SERVER['HTTP_ACCEPT'], $type ) ) {
+ if ( false !== strpos( $_SERVER['HTTP_ACCEPT'], $type ) ) {
return true;
}
}
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover.html b/tests/phpunit/data/blocks/fixtures/core__cover.html
index ae26d922c2..34e8b7ad5e 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover.html
+++ b/tests/phpunit/data/blocks/fixtures/core__cover.html
@@ -1,5 +1,5 @@
-
+
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover.json b/tests/phpunit/data/blocks/fixtures/core__cover.json
index dea09d92c1..6b3ec9c1c9 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover.json
+++ b/tests/phpunit/data/blocks/fixtures/core__cover.json
@@ -12,6 +12,6 @@
"backgroundType": "image"
},
"innerBlocks": [],
- "originalContent": "
"
+ "originalContent": "
"
}
]
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover.parsed.json b/tests/phpunit/data/blocks/fixtures/core__cover.parsed.json
index 14f37b6170..e4c901f253 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover.parsed.json
+++ b/tests/phpunit/data/blocks/fixtures/core__cover.parsed.json
@@ -6,9 +6,9 @@
"dimRatio": 40
},
"innerBlocks": [],
- "innerHTML": "\n
\n",
+ "innerHTML": "\n
\n",
"innerContent": [
- "\n
\n"
+ "\n
\n"
]
},
{
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover.server.html b/tests/phpunit/data/blocks/fixtures/core__cover.server.html
index 726c24a585..ba293cb7a9 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__cover.server.html
@@ -1,5 +1,5 @@
-
+
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.html b/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.html
index 2a3530954f..5d3456e7c9 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.html
+++ b/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.html
@@ -1,5 +1,5 @@
-
+
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.json b/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.json
index 08f0de4eb4..ac81685188 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.json
+++ b/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.json
@@ -13,6 +13,6 @@
"backgroundType": "video"
},
"innerBlocks": [],
- "originalContent": "
"
+ "originalContent": "
"
}
]
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.parsed.json b/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.parsed.json
index a2a3ccc94a..71700c25a9 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.parsed.json
+++ b/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.parsed.json
@@ -8,9 +8,9 @@
"backgroundType": "video"
},
"innerBlocks": [],
- "innerHTML": "\n
\n",
+ "innerHTML": "\n
\n",
"innerContent": [
- "\n
\n"
+ "\n
\n"
]
},
{
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.server.html b/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.server.html
index d8e1e40cac..aa2f0267ac 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__cover__video-overlay.server.html
@@ -1,5 +1,5 @@
-
+
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover__video.html b/tests/phpunit/data/blocks/fixtures/core__cover__video.html
index 0ab2fd73cc..5408bbe933 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover__video.html
+++ b/tests/phpunit/data/blocks/fixtures/core__cover__video.html
@@ -1,5 +1,5 @@
-
+
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover__video.json b/tests/phpunit/data/blocks/fixtures/core__cover__video.json
index 1fa4d25d66..673cd3b725 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover__video.json
+++ b/tests/phpunit/data/blocks/fixtures/core__cover__video.json
@@ -12,6 +12,6 @@
"backgroundType": "video"
},
"innerBlocks": [],
- "originalContent": "
"
+ "originalContent": "
"
}
]
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover__video.parsed.json b/tests/phpunit/data/blocks/fixtures/core__cover__video.parsed.json
index a864b5fea3..ad48e4fde4 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover__video.parsed.json
+++ b/tests/phpunit/data/blocks/fixtures/core__cover__video.parsed.json
@@ -7,9 +7,9 @@
"backgroundType": "video"
},
"innerBlocks": [],
- "innerHTML": "\n
\n",
+ "innerHTML": "\n
\n",
"innerContent": [
- "\n
\n"
+ "\n
\n"
]
},
{
diff --git a/tests/phpunit/data/blocks/fixtures/core__cover__video.server.html b/tests/phpunit/data/blocks/fixtures/core__cover__video.server.html
index 50a924c054..20afe15696 100644
--- a/tests/phpunit/data/blocks/fixtures/core__cover__video.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__cover__video.server.html
@@ -1,5 +1,5 @@
-
+
diff --git a/tests/phpunit/data/blocks/fixtures/core__gallery__deprecated-7.server.html b/tests/phpunit/data/blocks/fixtures/core__gallery__deprecated-7.server.html
index 69df4fd1bc..b522543d92 100644
--- a/tests/phpunit/data/blocks/fixtures/core__gallery__deprecated-7.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__gallery__deprecated-7.server.html
@@ -1,15 +1,15 @@
-
-
-
+
+
+
-
-
-
+
+
+
This gallery has a caption
diff --git a/tests/phpunit/includes/unregister-blocks-hooks.php b/tests/phpunit/includes/unregister-blocks-hooks.php
index 5edeba1445..164c9c98db 100644
--- a/tests/phpunit/includes/unregister-blocks-hooks.php
+++ b/tests/phpunit/includes/unregister-blocks-hooks.php
@@ -20,6 +20,7 @@ remove_action( 'init', 'register_block_core_comments_pagination_previous' );
remove_action( 'init', 'register_block_core_comments_title' );
remove_action( 'init', 'register_block_core_cover' );
remove_action( 'init', 'register_block_core_file' );
+remove_action( 'init', 'register_block_core_footnotes' );
remove_action( 'init', 'register_block_core_gallery' );
remove_action( 'init', 'register_block_core_heading' );
remove_action( 'init', 'register_block_core_home_link' );
@@ -31,6 +32,7 @@ remove_action( 'init', 'register_block_core_navigation' );
remove_action( 'init', 'register_block_core_navigation_link' );
remove_action( 'init', 'register_block_core_navigation_submenu' );
remove_action( 'init', 'register_block_core_page_list' );
+remove_action( 'init', 'register_block_core_page_list_item' );
remove_action( 'init', 'register_block_core_pattern' );
remove_action( 'init', 'register_block_core_post_author' );
remove_action( 'init', 'register_block_core_post_author_biography' );
diff --git a/tests/phpunit/tests/media.php b/tests/phpunit/tests/media.php
index d4ddad3e97..2fcbe2264f 100644
--- a/tests/phpunit/tests/media.php
+++ b/tests/phpunit/tests/media.php
@@ -4040,6 +4040,7 @@ EOF;
'post-thumbnail',
array(
'loading' => false,
+ 'style' => 'object-fit:cover;',
'fetchpriority' => 'high',
)
) . '';
diff --git a/tests/phpunit/tests/theme/wpThemeJson.php b/tests/phpunit/tests/theme/wpThemeJson.php
index 3bda349254..ae6ea02e9c 100644
--- a/tests/phpunit/tests/theme/wpThemeJson.php
+++ b/tests/phpunit/tests/theme/wpThemeJson.php
@@ -416,7 +416,7 @@ class Tests_Theme_wpThemeJson extends WP_UnitTestCase {
)
);
- $styles = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}.wp-block-group{border-radius: 10px;margin: 1em;padding: 24px;}.wp-block-image{margin-bottom: 30px;padding-top: 15px;}.wp-block-image img, .wp-block-image .wp-block-image__crop-area{border-top-left-radius: 10px;border-bottom-right-radius: 1em;}';
+ $styles = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}.wp-block-group{border-radius: 10px;margin: 1em;padding: 24px;}.wp-block-image{margin-bottom: 30px;padding-top: 15px;}.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder{border-top-left-radius: 10px;border-bottom-right-radius: 1em;}';
$this->assertSame( $styles, $theme_json->get_stylesheet() );
$this->assertSame( $styles, $theme_json->get_stylesheet( array( 'styles' ) ) );
}
@@ -637,7 +637,7 @@ class Tests_Theme_wpThemeJson extends WP_UnitTestCase {
);
$variables = "body{--wp--preset--color--grey: grey;--wp--preset--gradient--custom-gradient: linear-gradient(135deg,rgba(0,0,0) 0%,rgb(0,0,0) 100%);--wp--preset--duotone--custom-duotone: url('#wp-duotone-custom-duotone');--wp--preset--font-family--small: 14px;--wp--preset--font-family--big: 41px;}.wp-block-group{--wp--custom--base-font: 16;--wp--custom--line-height--small: 1.2;--wp--custom--line-height--medium: 1.4;--wp--custom--line-height--large: 1.8;}";
- $styles = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}body{color: var(--wp--preset--color--grey);}a:where(:not(.wp-element-button)){background-color: #333;color: #111;}.wp-element-button, .wp-block-button__link{box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.66);}.wp-block-group{background: var(--wp--preset--gradient--custom-gradient);border-radius: 10px;padding: 24px;}.wp-block-group a:where(:not(.wp-element-button)){color: #111;}.wp-block-heading{color: #123456;}.wp-block-heading a:where(:not(.wp-element-button)){background-color: #333;color: #111;font-size: 60px;}.wp-block-post-date{color: #123456;}.wp-block-post-date a:where(:not(.wp-element-button)){background-color: #777;color: #555;}.wp-block-post-excerpt{column-count: 2;}.wp-block-image{margin-bottom: 30px;}.wp-block-image img, .wp-block-image .components-placeholder{filter: var(--wp--preset--duotone--custom-duotone);}.wp-block-image img, .wp-block-image .wp-block-image__crop-area{border-top-left-radius: 10px;border-bottom-right-radius: 1em;}';
+ $styles = 'body { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}body{color: var(--wp--preset--color--grey);}a:where(:not(.wp-element-button)){background-color: #333;color: #111;}.wp-element-button, .wp-block-button__link{box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.66);}.wp-block-group{background: var(--wp--preset--gradient--custom-gradient);border-radius: 10px;padding: 24px;}.wp-block-group a:where(:not(.wp-element-button)){color: #111;}.wp-block-heading{color: #123456;}.wp-block-heading a:where(:not(.wp-element-button)){background-color: #333;color: #111;font-size: 60px;}.wp-block-post-date{color: #123456;}.wp-block-post-date a:where(:not(.wp-element-button)){background-color: #777;color: #555;}.wp-block-post-excerpt{column-count: 2;}.wp-block-image{margin-bottom: 30px;}.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder{border-top-left-radius: 10px;border-bottom-right-radius: 1em;}.wp-block-image img, .wp-block-image .components-placeholder{filter: var(--wp--preset--duotone--custom-duotone);}';
$presets = '.has-grey-color{color: var(--wp--preset--color--grey) !important;}.has-grey-background-color{background-color: var(--wp--preset--color--grey) !important;}.has-grey-border-color{border-color: var(--wp--preset--color--grey) !important;}.has-custom-gradient-gradient-background{background: var(--wp--preset--gradient--custom-gradient) !important;}.has-small-font-family{font-family: var(--wp--preset--font-family--small) !important;}.has-big-font-family{font-family: var(--wp--preset--font-family--big) !important;}';
$all = $variables . $styles . $presets;
$this->assertSame( $all, $theme_json->get_stylesheet() );