diff --git a/package-lock.json b/package-lock.json
index d271460d9649f..91a04b1108c50 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,38 +23,44 @@
}
},
"@babel/compat-data": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz",
- "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==",
+ "version": "7.20.14",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.14.tgz",
+ "integrity": "sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==",
"dev": true
},
"@babel/core": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz",
- "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==",
+ "version": "7.20.12",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz",
+ "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==",
"dev": true,
"requires": {
"@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.19.6",
- "@babel/helper-compilation-targets": "^7.19.3",
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helpers": "^7.19.4",
- "@babel/parser": "^7.19.6",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.6",
- "@babel/types": "^7.19.4",
+ "@babel/generator": "^7.20.7",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helpers": "^7.20.7",
+ "@babel/parser": "^7.20.7",
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.12",
+ "@babel/types": "^7.20.7",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.2.1",
+ "json5": "^2.2.2",
"semver": "^6.3.0"
},
"dependencies": {
"@babel/parser": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz",
- "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==",
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
+ "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
+ "dev": true
+ },
+ "json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true
},
"semver": {
@@ -85,12 +91,12 @@
}
},
"@babel/generator": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz",
- "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==",
+ "version": "7.20.14",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.14.tgz",
+ "integrity": "sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==",
"dev": true,
"requires": {
- "@babel/types": "^7.19.4",
+ "@babel/types": "^7.20.7",
"@jridgewell/gen-mapping": "^0.3.2",
"jsesc": "^2.5.1"
},
@@ -128,39 +134,55 @@
}
},
"@babel/helper-compilation-targets": {
- "version": "7.19.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz",
- "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz",
+ "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==",
"dev": true,
"requires": {
- "@babel/compat-data": "^7.19.3",
+ "@babel/compat-data": "^7.20.5",
"@babel/helper-validator-option": "^7.18.6",
"browserslist": "^4.21.3",
+ "lru-cache": "^5.1.1",
"semver": "^6.3.0"
},
"dependencies": {
"browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.21.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
}
},
+ "caniuse-lite": {
+ "version": "1.0.30001450",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz",
+ "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==",
+ "dev": true
+ },
"electron-to-chromium": {
"version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
"integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
"dev": true
},
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ },
"node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz",
+ "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==",
"dev": true
},
"semver": {
@@ -168,32 +190,39 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
+ },
+ "yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
}
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz",
- "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==",
+ "version": "7.20.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz",
+ "integrity": "sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.20.7",
"@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-replace-supers": "^7.18.9",
+ "@babel/helper-replace-supers": "^7.20.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
"@babel/helper-split-export-declaration": "^7.18.6"
}
},
"@babel/helper-create-regexp-features-plugin": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz",
- "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz",
+ "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
- "regexpu-core": "^5.1.0"
+ "regexpu-core": "^5.2.1"
}
},
"@babel/helper-define-polyfill-provider": {
@@ -253,12 +282,12 @@
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
- "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz",
+ "integrity": "sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==",
"dev": true,
"requires": {
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.20.7"
}
},
"@babel/helper-module-imports": {
@@ -270,19 +299,19 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz",
- "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz",
+ "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==",
"dev": true,
"requires": {
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-simple-access": "^7.19.4",
+ "@babel/helper-simple-access": "^7.20.2",
"@babel/helper-split-export-declaration": "^7.18.6",
"@babel/helper-validator-identifier": "^7.19.1",
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.6",
- "@babel/types": "^7.19.4"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.10",
+ "@babel/types": "^7.20.7"
}
},
"@babel/helper-optimise-call-expression": {
@@ -295,9 +324,9 @@
}
},
"@babel/helper-plugin-utils": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz",
- "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw=="
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
+ "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ=="
},
"@babel/helper-remap-async-to-generator": {
"version": "7.18.9",
@@ -312,34 +341,35 @@
}
},
"@babel/helper-replace-supers": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz",
- "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz",
+ "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==",
"dev": true,
"requires": {
"@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.20.7",
"@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/traverse": "^7.19.1",
- "@babel/types": "^7.19.0"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.7",
+ "@babel/types": "^7.20.7"
}
},
"@babel/helper-simple-access": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz",
- "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==",
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
+ "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
"dev": true,
"requires": {
- "@babel/types": "^7.19.4"
+ "@babel/types": "^7.20.2"
}
},
"@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
- "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz",
+ "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==",
"dev": true,
"requires": {
- "@babel/types": "^7.18.9"
+ "@babel/types": "^7.20.0"
}
},
"@babel/helper-split-export-declaration": {
@@ -368,26 +398,26 @@
"dev": true
},
"@babel/helper-wrap-function": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz",
- "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz",
+ "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==",
"dev": true,
"requires": {
"@babel/helper-function-name": "^7.19.0",
"@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.0",
- "@babel/types": "^7.19.0"
+ "@babel/traverse": "^7.20.5",
+ "@babel/types": "^7.20.5"
}
},
"@babel/helpers": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz",
- "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==",
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz",
+ "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==",
"dev": true,
"requires": {
- "@babel/template": "^7.18.10",
- "@babel/traverse": "^7.19.4",
- "@babel/types": "^7.19.4"
+ "@babel/template": "^7.20.7",
+ "@babel/traverse": "^7.20.13",
+ "@babel/types": "^7.20.7"
}
},
"@babel/highlight": {
@@ -428,24 +458,24 @@
}
},
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz",
+ "integrity": "sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
- "@babel/plugin-proposal-optional-chaining": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
+ "@babel/plugin-proposal-optional-chaining": "^7.20.7"
}
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz",
- "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz",
+ "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==",
"dev": true,
"requires": {
"@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-remap-async-to-generator": "^7.18.9",
"@babel/plugin-syntax-async-generators": "^7.8.4"
}
@@ -461,13 +491,13 @@
}
},
"@babel/plugin-proposal-class-static-block": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
- "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz",
+ "integrity": "sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
}
},
@@ -502,12 +532,12 @@
}
},
"@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
- "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz",
+ "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
}
},
@@ -532,16 +562,16 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz",
- "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz",
+ "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==",
"dev": true,
"requires": {
- "@babel/compat-data": "^7.19.4",
- "@babel/helper-compilation-targets": "^7.19.3",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/compat-data": "^7.20.5",
+ "@babel/helper-compilation-targets": "^7.20.7",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.18.8"
+ "@babel/plugin-transform-parameters": "^7.20.7"
}
},
"@babel/plugin-proposal-optional-catch-binding": {
@@ -555,13 +585,13 @@
}
},
"@babel/plugin-proposal-optional-chaining": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
- "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz",
+ "integrity": "sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
}
},
@@ -576,14 +606,14 @@
}
},
"@babel/plugin-proposal-private-property-in-object": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
- "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz",
+ "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-create-class-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.20.5",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
}
},
@@ -652,12 +682,12 @@
}
},
"@babel/plugin-syntax-import-assertions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
- "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz",
+ "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.19.0"
}
},
"@babel/plugin-syntax-import-meta": {
@@ -759,32 +789,32 @@
}
},
"@babel/plugin-syntax-typescript": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
- "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz",
+ "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.19.0"
}
},
"@babel/plugin-transform-arrow-functions": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
- "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz",
+ "integrity": "sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-async-to-generator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
- "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz",
+ "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6",
- "@babel/helper-remap-async-to-generator": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-remap-async-to-generator": "^7.18.9"
}
},
"@babel/plugin-transform-block-scoped-functions": {
@@ -797,47 +827,48 @@
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz",
- "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==",
+ "version": "7.20.14",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.14.tgz",
+ "integrity": "sha512-sMPepQtsOs5fM1bwNvuJJHvaCfOEQfmc01FGw0ELlTpTJj5Ql/zuNRRldYhAPys4ghXdBIQJbRVYi44/7QflQQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz",
- "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz",
+ "integrity": "sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
- "@babel/helper-compilation-targets": "^7.19.0",
+ "@babel/helper-compilation-targets": "^7.20.7",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
"@babel/helper-optimise-call-expression": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-replace-supers": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-replace-supers": "^7.20.7",
"@babel/helper-split-export-declaration": "^7.18.6",
"globals": "^11.1.0"
}
},
"@babel/plugin-transform-computed-properties": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
- "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz",
+ "integrity": "sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/template": "^7.20.7"
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz",
- "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz",
+ "integrity": "sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-dotall-regex": {
@@ -908,35 +939,35 @@
}
},
"@babel/plugin-transform-modules-amd": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz",
- "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz",
+ "integrity": "sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz",
- "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz",
+ "integrity": "sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-simple-access": "^7.19.4"
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-simple-access": "^7.20.2"
}
},
"@babel/plugin-transform-modules-systemjs": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz",
- "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==",
+ "version": "7.20.11",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz",
+ "integrity": "sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==",
"dev": true,
"requires": {
"@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-module-transforms": "^7.19.6",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-module-transforms": "^7.20.11",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-validator-identifier": "^7.19.1"
}
},
@@ -951,13 +982,13 @@
}
},
"@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz",
- "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz",
+ "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==",
"dev": true,
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.19.0",
- "@babel/helper-plugin-utils": "^7.19.0"
+ "@babel/helper-create-regexp-features-plugin": "^7.20.5",
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-new-target": {
@@ -980,12 +1011,12 @@
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.18.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
- "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz",
+ "integrity": "sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6"
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-property-literals": {
@@ -998,12 +1029,12 @@
}
},
"@babel/plugin-transform-react-constant-elements": {
- "version": "7.18.12",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz",
- "integrity": "sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw==",
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz",
+ "integrity": "sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.20.2"
}
},
"@babel/plugin-transform-react-display-name": {
@@ -1016,16 +1047,16 @@
}
},
"@babel/plugin-transform-react-jsx": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz",
- "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==",
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.13.tgz",
+ "integrity": "sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-module-imports": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/plugin-syntax-jsx": "^7.18.6",
- "@babel/types": "^7.19.0"
+ "@babel/types": "^7.20.7"
}
},
"@babel/plugin-transform-react-jsx-development": {
@@ -1048,13 +1079,13 @@
}
},
"@babel/plugin-transform-regenerator": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
- "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz",
+ "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.18.6",
- "regenerator-transform": "^0.15.0"
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "regenerator-transform": "^0.15.1"
}
},
"@babel/plugin-transform-reserved-words": {
@@ -1098,13 +1129,13 @@
}
},
"@babel/plugin-transform-spread": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz",
- "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz",
+ "integrity": "sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0"
}
},
"@babel/plugin-transform-sticky-regex": {
@@ -1135,14 +1166,14 @@
}
},
"@babel/plugin-transform-typescript": {
- "version": "7.19.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.19.3.tgz",
- "integrity": "sha512-z6fnuK9ve9u/0X0rRvI9MY0xg+DOUaABDYOe+/SQTxtlptaBB/V9JIUxJn6xp3lMBeb9qe8xSFmHU35oZDXD+w==",
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.13.tgz",
+ "integrity": "sha512-O7I/THxarGcDZxkgWKMUrk7NK1/WbHAg3Xx86gqS6x9MTrNL6AwIluuZ96ms4xeDe6AVx6rjHbWHP7x26EPQBA==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.19.0",
- "@babel/helper-plugin-utils": "^7.19.0",
- "@babel/plugin-syntax-typescript": "^7.18.6"
+ "@babel/helper-create-class-features-plugin": "^7.20.12",
+ "@babel/helper-plugin-utils": "^7.20.2",
+ "@babel/plugin-syntax-typescript": "^7.20.0"
}
},
"@babel/plugin-transform-unicode-escapes": {
@@ -1165,18 +1196,18 @@
}
},
"@babel/preset-env": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz",
- "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==",
+ "version": "7.20.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz",
+ "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==",
"dev": true,
"requires": {
- "@babel/compat-data": "^7.19.4",
- "@babel/helper-compilation-targets": "^7.19.3",
- "@babel/helper-plugin-utils": "^7.19.0",
+ "@babel/compat-data": "^7.20.1",
+ "@babel/helper-compilation-targets": "^7.20.0",
+ "@babel/helper-plugin-utils": "^7.20.2",
"@babel/helper-validator-option": "^7.18.6",
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
- "@babel/plugin-proposal-async-generator-functions": "^7.19.1",
+ "@babel/plugin-proposal-async-generator-functions": "^7.20.1",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-class-static-block": "^7.18.6",
"@babel/plugin-proposal-dynamic-import": "^7.18.6",
@@ -1185,7 +1216,7 @@
"@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-numeric-separator": "^7.18.6",
- "@babel/plugin-proposal-object-rest-spread": "^7.19.4",
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.2",
"@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
"@babel/plugin-proposal-private-methods": "^7.18.6",
@@ -1196,7 +1227,7 @@
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-import-assertions": "^7.18.6",
+ "@babel/plugin-syntax-import-assertions": "^7.20.0",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -1209,10 +1240,10 @@
"@babel/plugin-transform-arrow-functions": "^7.18.6",
"@babel/plugin-transform-async-to-generator": "^7.18.6",
"@babel/plugin-transform-block-scoped-functions": "^7.18.6",
- "@babel/plugin-transform-block-scoping": "^7.19.4",
- "@babel/plugin-transform-classes": "^7.19.0",
+ "@babel/plugin-transform-block-scoping": "^7.20.2",
+ "@babel/plugin-transform-classes": "^7.20.2",
"@babel/plugin-transform-computed-properties": "^7.18.9",
- "@babel/plugin-transform-destructuring": "^7.19.4",
+ "@babel/plugin-transform-destructuring": "^7.20.2",
"@babel/plugin-transform-dotall-regex": "^7.18.6",
"@babel/plugin-transform-duplicate-keys": "^7.18.9",
"@babel/plugin-transform-exponentiation-operator": "^7.18.6",
@@ -1220,14 +1251,14 @@
"@babel/plugin-transform-function-name": "^7.18.9",
"@babel/plugin-transform-literals": "^7.18.9",
"@babel/plugin-transform-member-expression-literals": "^7.18.6",
- "@babel/plugin-transform-modules-amd": "^7.18.6",
- "@babel/plugin-transform-modules-commonjs": "^7.18.6",
- "@babel/plugin-transform-modules-systemjs": "^7.19.0",
+ "@babel/plugin-transform-modules-amd": "^7.19.6",
+ "@babel/plugin-transform-modules-commonjs": "^7.19.6",
+ "@babel/plugin-transform-modules-systemjs": "^7.19.6",
"@babel/plugin-transform-modules-umd": "^7.18.6",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1",
"@babel/plugin-transform-new-target": "^7.18.6",
"@babel/plugin-transform-object-super": "^7.18.6",
- "@babel/plugin-transform-parameters": "^7.18.8",
+ "@babel/plugin-transform-parameters": "^7.20.1",
"@babel/plugin-transform-property-literals": "^7.18.6",
"@babel/plugin-transform-regenerator": "^7.18.6",
"@babel/plugin-transform-reserved-words": "^7.18.6",
@@ -1239,7 +1270,7 @@
"@babel/plugin-transform-unicode-escapes": "^7.18.10",
"@babel/plugin-transform-unicode-regex": "^7.18.6",
"@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.19.4",
+ "@babel/types": "^7.20.2",
"babel-plugin-polyfill-corejs2": "^0.3.3",
"babel-plugin-polyfill-corejs3": "^0.6.0",
"babel-plugin-polyfill-regenerator": "^0.4.1",
@@ -1294,80 +1325,69 @@
}
},
"@babel/runtime": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz",
- "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==",
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@babel/runtime-corejs3": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.6.tgz",
- "integrity": "sha512-oWNn1ZlGde7b4i/3tnixpH9qI0bOAACiUs+KEES4UUCnsPjVWFlWdLV/iwJuPC2qp3EowbAqsm+0XqNwnwYhxA==",
- "dev": true,
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz",
+ "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==",
"requires": {
- "core-js-pure": "^3.25.1",
- "regenerator-runtime": "^0.13.4"
+ "regenerator-runtime": "^0.13.11"
},
"dependencies": {
- "core-js-pure": {
- "version": "3.26.0",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz",
- "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==",
- "dev": true
+ "regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
}
}
},
"@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
+ "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7"
},
"dependencies": {
"@babel/parser": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz",
- "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==",
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
+ "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
"dev": true
}
}
},
"@babel/traverse": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz",
- "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==",
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz",
+ "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.19.6",
+ "@babel/generator": "^7.20.7",
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-function-name": "^7.19.0",
"@babel/helper-hoist-variables": "^7.18.6",
"@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.19.6",
- "@babel/types": "^7.19.4",
+ "@babel/parser": "^7.20.13",
+ "@babel/types": "^7.20.7",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
"dependencies": {
"@babel/parser": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz",
- "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==",
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
+ "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
"dev": true
}
}
},
"@babel/types": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz",
- "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==",
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz",
+ "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==",
"requires": {
"@babel/helper-string-parser": "^7.19.4",
"@babel/helper-validator-identifier": "^7.19.1",
@@ -1390,9 +1410,9 @@
}
},
"@csstools/selector-specificity": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz",
- "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.1.1.tgz",
+ "integrity": "sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==",
"dev": true
},
"@discoveryjs/json-ext": {
@@ -1535,26 +1555,26 @@
"integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg=="
},
"@es-joy/jsdoccomment": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz",
- "integrity": "sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==",
+ "version": "0.36.1",
+ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.36.1.tgz",
+ "integrity": "sha512-922xqFsTpHs6D0BUiG4toiyPOMc8/jafnWKxz1KWgS4XzKPy2qXf1Pe6UFuNSCQqt6tOuhAWXBNuuyUhJmw9Vg==",
"dev": true,
"requires": {
- "comment-parser": "1.3.0",
+ "comment-parser": "1.3.1",
"esquery": "^1.4.0",
- "jsdoc-type-pratt-parser": "~2.2.3"
+ "jsdoc-type-pratt-parser": "~3.1.0"
}
},
"@eslint/eslintrc": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
- "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
+ "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
"espree": "^9.4.0",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
@@ -1578,9 +1598,9 @@
}
},
"globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -1627,24 +1647,24 @@
"integrity": "sha512-TlQiXt/vS5ZwY0V3salvlyQzIzMGZEyw9inmJA25A8heL2kBVENbToiEc64R6ETNf5YHa2lwnc2I7iNHP9SqeQ=="
},
"@floating-ui/core": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.0.1.tgz",
- "integrity": "sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA=="
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.1.1.tgz",
+ "integrity": "sha512-PL7g3dhA4dHgZfujkuD8Q+tfJJynEtnNQSPzmucCnxMvkxf4cLBJw/ZYqZUn4HCh33U3WHrAfv2R2tbi9UCSmw=="
},
"@floating-ui/dom": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.0.4.tgz",
- "integrity": "sha512-maYJRv+sAXTy4K9mzdv0JPyNW5YPVHrqtY90tEdI6XNpuLOP26Ci2pfwPsKBA/Wh4Z3FX5sUrtUFTdMYj9v+ug==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.1.1.tgz",
+ "integrity": "sha512-TpIO93+DIujg3g7SykEAGZMDtbJRrmnYRCNYSjJlvIbGhBjRSNTLVbNeDQBrzy9qDgUbiWdc7KA0uZHZ2tJmiw==",
"requires": {
- "@floating-ui/core": "^1.0.1"
+ "@floating-ui/core": "^1.1.0"
}
},
"@floating-ui/react-dom": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-1.0.0.tgz",
- "integrity": "sha512-uiOalFKPG937UCLm42RxjESTWUVpbbatvlphQAU6bsv+ence6IoVG8JOUZcy8eW81NkU+Idiwvx10WFLmR4MIg==",
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-1.2.2.tgz",
+ "integrity": "sha512-DbmFBLwFrZhtXgCI2ra7wXYT8L2BN4/4AMQKyu05qzsVji51tXOfF36VE2gpMB6nhJGHa85PdEg75FB4+vnLFQ==",
"requires": {
- "@floating-ui/dom": "^1.0.0"
+ "@floating-ui/dom": "^1.1.1"
}
},
"@hapi/hoek": {
@@ -1663,14 +1683,25 @@
}
},
"@humanwhocodes/config-array": {
- "version": "0.11.6",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
- "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
"dev": true,
"requires": {
"@humanwhocodes/object-schema": "^1.2.1",
"debug": "^4.1.1",
- "minimatch": "^3.0.4"
+ "minimatch": "^3.0.5"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
}
},
"@humanwhocodes/module-importer": {
@@ -2434,59 +2465,59 @@
"dev": true
},
"@motionone/animation": {
- "version": "10.14.0",
- "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.14.0.tgz",
- "integrity": "sha512-h+1sdyBP8vbxEBW5gPFDnj+m2DCqdlAuf2g6Iafb1lcMnqjsRXWlPw1AXgvUMXmreyhqmPbJqoNfIKdytampRQ==",
+ "version": "10.15.1",
+ "resolved": "https://registry.npmjs.org/@motionone/animation/-/animation-10.15.1.tgz",
+ "integrity": "sha512-mZcJxLjHor+bhcPuIFErMDNyrdb2vJur8lSfMCsuCB4UyV8ILZLvK+t+pg56erv8ud9xQGK/1OGPt10agPrCyQ==",
"requires": {
- "@motionone/easing": "^10.14.0",
- "@motionone/types": "^10.14.0",
- "@motionone/utils": "^10.14.0",
+ "@motionone/easing": "^10.15.1",
+ "@motionone/types": "^10.15.1",
+ "@motionone/utils": "^10.15.1",
"tslib": "^2.3.1"
}
},
"@motionone/dom": {
- "version": "10.12.0",
- "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.12.0.tgz",
- "integrity": "sha512-UdPTtLMAktHiqV0atOczNYyDd/d8Cf5fFsd1tua03PqTwwCe/6lwhLSQ8a7TbnQ5SN0gm44N1slBfj+ORIhrqw==",
- "requires": {
- "@motionone/animation": "^10.12.0",
- "@motionone/generators": "^10.12.0",
- "@motionone/types": "^10.12.0",
- "@motionone/utils": "^10.12.0",
+ "version": "10.15.5",
+ "resolved": "https://registry.npmjs.org/@motionone/dom/-/dom-10.15.5.tgz",
+ "integrity": "sha512-Xc5avlgyh3xukU9tydh9+8mB8+2zAq+WlLsC3eEIp7Ax7DnXgY7Bj/iv0a4X2R9z9ZFZiaXK3BO0xMYHKbAAdA==",
+ "requires": {
+ "@motionone/animation": "^10.15.1",
+ "@motionone/generators": "^10.15.1",
+ "@motionone/types": "^10.15.1",
+ "@motionone/utils": "^10.15.1",
"hey-listen": "^1.0.8",
"tslib": "^2.3.1"
}
},
"@motionone/easing": {
- "version": "10.14.0",
- "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.14.0.tgz",
- "integrity": "sha512-2vUBdH9uWTlRbuErhcsMmt1jvMTTqvGmn9fHq8FleFDXBlHFs5jZzHJT9iw+4kR1h6a4SZQuCf72b9ji92qNYA==",
+ "version": "10.15.1",
+ "resolved": "https://registry.npmjs.org/@motionone/easing/-/easing-10.15.1.tgz",
+ "integrity": "sha512-6hIHBSV+ZVehf9dcKZLT7p5PEKHGhDwky2k8RKkmOvUoYP3S+dXsKupyZpqx5apjd9f+php4vXk4LuS+ADsrWw==",
"requires": {
- "@motionone/utils": "^10.14.0",
+ "@motionone/utils": "^10.15.1",
"tslib": "^2.3.1"
}
},
"@motionone/generators": {
- "version": "10.14.0",
- "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.14.0.tgz",
- "integrity": "sha512-6kRHezoFfIjFN7pPpaxmkdZXD36tQNcyJe3nwVqwJ+ZfC0e3rFmszR8kp9DEVFs9QL/akWjuGPSLBI1tvz+Vjg==",
+ "version": "10.15.1",
+ "resolved": "https://registry.npmjs.org/@motionone/generators/-/generators-10.15.1.tgz",
+ "integrity": "sha512-67HLsvHJbw6cIbLA/o+gsm7h+6D4Sn7AUrB/GPxvujse1cGZ38F5H7DzoH7PhX+sjvtDnt2IhFYF2Zp1QTMKWQ==",
"requires": {
- "@motionone/types": "^10.14.0",
- "@motionone/utils": "^10.14.0",
+ "@motionone/types": "^10.15.1",
+ "@motionone/utils": "^10.15.1",
"tslib": "^2.3.1"
}
},
"@motionone/types": {
- "version": "10.14.0",
- "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.14.0.tgz",
- "integrity": "sha512-3bNWyYBHtVd27KncnJLhksMFQ5o2MSdk1cA/IZqsHtA9DnRM1SYgN01CTcJ8Iw8pCXF5Ocp34tyAjY7WRpOJJQ=="
+ "version": "10.15.1",
+ "resolved": "https://registry.npmjs.org/@motionone/types/-/types-10.15.1.tgz",
+ "integrity": "sha512-iIUd/EgUsRZGrvW0jqdst8st7zKTzS9EsKkP+6c6n4MPZoQHwiHuVtTQLD6Kp0bsBLhNzKIBlHXponn/SDT4hA=="
},
"@motionone/utils": {
- "version": "10.14.0",
- "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.14.0.tgz",
- "integrity": "sha512-sLWBLPzRqkxmOTRzSaD3LFQXCPHvDzyHJ1a3VP9PRzBxyVd2pv51/gMOsdAcxQ9n+MIeGJnxzXBYplUHKj4jkw==",
+ "version": "10.15.1",
+ "resolved": "https://registry.npmjs.org/@motionone/utils/-/utils-10.15.1.tgz",
+ "integrity": "sha512-p0YncgU+iklvYr/Dq4NobTRdAPv9PveRDUXabPEeOjBLSO/1FNB2phNTZxOxpi1/GZwYpAoECEa0Wam+nsmhSw==",
"requires": {
- "@motionone/types": "^10.14.0",
+ "@motionone/types": "^10.15.1",
"hey-listen": "^1.0.8",
"tslib": "^2.3.1"
}
@@ -2616,53 +2647,53 @@
"integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw=="
},
"@react-spring/animated": {
- "version": "9.5.5",
- "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.5.5.tgz",
- "integrity": "sha512-glzViz7syQ3CE6BQOwAyr75cgh0qsihm5lkaf24I0DfU63cMm/3+br299UEYkuaHNmfDfM414uktiPlZCNJbQA==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.6.1.tgz",
+ "integrity": "sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ==",
"requires": {
- "@react-spring/shared": "~9.5.5",
- "@react-spring/types": "~9.5.5"
+ "@react-spring/shared": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
}
},
"@react-spring/core": {
- "version": "9.5.5",
- "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.5.5.tgz",
- "integrity": "sha512-shaJYb3iX18Au6gkk8ahaF0qx0LpS0Yd+ajb4asBaAQf6WPGuEdJsbsNSgei1/O13JyEATsJl20lkjeslJPMYA==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.6.1.tgz",
+ "integrity": "sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ==",
"requires": {
- "@react-spring/animated": "~9.5.5",
- "@react-spring/rafz": "~9.5.5",
- "@react-spring/shared": "~9.5.5",
- "@react-spring/types": "~9.5.5"
+ "@react-spring/animated": "~9.6.1",
+ "@react-spring/rafz": "~9.6.1",
+ "@react-spring/shared": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
}
},
"@react-spring/rafz": {
- "version": "9.5.5",
- "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.5.5.tgz",
- "integrity": "sha512-F/CLwB0d10jL6My5vgzRQxCNY2RNyDJZedRBK7FsngdCmzoq3V4OqqNc/9voJb9qRC2wd55oGXUeXv2eIaFmsw=="
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.6.1.tgz",
+ "integrity": "sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ=="
},
"@react-spring/shared": {
- "version": "9.5.5",
- "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.5.5.tgz",
- "integrity": "sha512-YwW70Pa/YXPOwTutExHZmMQSHcNC90kJOnNR4G4mCDNV99hE98jWkIPDOsgqbYx3amIglcFPiYKMaQuGdr8dyQ==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.6.1.tgz",
+ "integrity": "sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw==",
"requires": {
- "@react-spring/rafz": "~9.5.5",
- "@react-spring/types": "~9.5.5"
+ "@react-spring/rafz": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
}
},
"@react-spring/types": {
- "version": "9.5.5",
- "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.5.5.tgz",
- "integrity": "sha512-7I/qY8H7Enwasxr4jU6WmtNK+RZ4Z/XvSlDvjXFVe7ii1x0MoSlkw6pD7xuac8qrHQRm9BTcbZNyeeKApYsvCg=="
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.6.1.tgz",
+ "integrity": "sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q=="
},
"@react-spring/web": {
- "version": "9.5.5",
- "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.5.5.tgz",
- "integrity": "sha512-+moT8aDX/ho/XAhU+HRY9m0LVV9y9CK6NjSRaI+30Re150pB3iEip6QfnF4qnhSCQ5drpMF0XRXHgOTY/xbtFw==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.6.1.tgz",
+ "integrity": "sha512-X2zR6q2Z+FjsWfGAmAXlQaoUHbPmfuCaXpuM6TcwXPpLE1ZD4A1eys/wpXboFQmDkjnrlTmKvpVna1MjWpZ5Hw==",
"requires": {
- "@react-spring/animated": "~9.5.5",
- "@react-spring/core": "~9.5.5",
- "@react-spring/shared": "~9.5.5",
- "@react-spring/types": "~9.5.5"
+ "@react-spring/animated": "~9.6.1",
+ "@react-spring/core": "~9.6.1",
+ "@react-spring/shared": "~9.6.1",
+ "@react-spring/types": "~9.6.1"
}
},
"@sideway/formula": {
@@ -2720,9 +2751,9 @@
"dev": true
},
"@svgr/babel-plugin-add-jsx-attribute": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.0.tgz",
- "integrity": "sha512-Cp1JR1IPrQNvPRbkfcPmax52iunBC+eQDyBce8feOIIbVH6ZpVhErYoJtPWRBj2rKi4Wi9HvCm1+L1UD6QlBmg==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz",
+ "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==",
"dev": true
},
"@svgr/babel-plugin-remove-jsx-attribute": {
@@ -2738,60 +2769,60 @@
"dev": true
},
"@svgr/babel-plugin-replace-jsx-attribute-value": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.0.tgz",
- "integrity": "sha512-XWm64/rSPUCQ+MFyA9lhMO+w8bOZvkTvovRIU1lpIy63ysPaVAFtxjQiZj+S7QaLaLGUXkSkf8WZsaN+QPo/gA==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz",
+ "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==",
"dev": true
},
"@svgr/babel-plugin-svg-dynamic-title": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.0.tgz",
- "integrity": "sha512-JIF2D2ltiWFGlTw2fJ9jJg1fNT9rWjOD2Cf0/xzeW6Z2LIRQTHcRHxpZq359+SRWtEPsCXEWV2Xmd+DMBj6dBw==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz",
+ "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==",
"dev": true
},
"@svgr/babel-plugin-svg-em-dimensions": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.0.tgz",
- "integrity": "sha512-uuo0FfLP4Nu2zncOcoUFDzZdXWma2bxkTGk0etRThs4/PghvPIGaW8cPhCg6yJ8zpaauWcKV0wZtzKlJRCtVzg==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz",
+ "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==",
"dev": true
},
"@svgr/babel-plugin-transform-react-native-svg": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.0.tgz",
- "integrity": "sha512-VMRWyOmrV+DaEFPgP3hZMsFgs2g87ojs3txw0Rx8iz6Nf/E3UoHUwTqpkSCWd3Hsnc9gMOY9+wl6+/Ycleh1sw==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz",
+ "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==",
"dev": true
},
"@svgr/babel-plugin-transform-svg-component": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.0.tgz",
- "integrity": "sha512-b67Ul3SelaqvGEEG/1B3VJ03KUtGFgRQjRLCCjdttMQLcYa9l/izQFEclNFx53pNqhijUMNKHPhGMY/CWGVKig==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz",
+ "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==",
"dev": true
},
"@svgr/babel-preset": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.0.tgz",
- "integrity": "sha512-UWM98PKVuMqw2UZo8YO3erI6nF1n7/XBYTXBqR0QhZP7HTjYK6QxFNvPfIshddy1hBdzhVpkf148Vg8xiVOtyg==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz",
+ "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==",
"dev": true,
"requires": {
- "@svgr/babel-plugin-add-jsx-attribute": "^6.5.0",
- "@svgr/babel-plugin-remove-jsx-attribute": "^6.5.0",
- "@svgr/babel-plugin-remove-jsx-empty-expression": "^6.5.0",
- "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.0",
- "@svgr/babel-plugin-svg-dynamic-title": "^6.5.0",
- "@svgr/babel-plugin-svg-em-dimensions": "^6.5.0",
- "@svgr/babel-plugin-transform-react-native-svg": "^6.5.0",
- "@svgr/babel-plugin-transform-svg-component": "^6.5.0"
+ "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1",
+ "@svgr/babel-plugin-remove-jsx-attribute": "*",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "*",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1",
+ "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1",
+ "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1",
+ "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1",
+ "@svgr/babel-plugin-transform-svg-component": "^6.5.1"
}
},
"@svgr/core": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.0.tgz",
- "integrity": "sha512-jIbu36GMjfK8HCCQitkfVVeQ2vSXGfq0ef0GO9HUxZGjal6Kvpkk4PwpkFP+OyCzF+skQFT9aWrUqekT3pKF8w==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz",
+ "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==",
"dev": true,
"requires": {
- "@babel/core": "^7.18.5",
- "@svgr/babel-preset": "^6.5.0",
- "@svgr/plugin-jsx": "^6.5.0",
+ "@babel/core": "^7.19.6",
+ "@svgr/babel-preset": "^6.5.1",
+ "@svgr/plugin-jsx": "^6.5.1",
"camelcase": "^6.2.0",
"cosmiconfig": "^7.0.1"
},
@@ -2805,13 +2836,13 @@
}
},
"@svgr/hast-util-to-babel-ast": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.0.tgz",
- "integrity": "sha512-PPy94U/EiPQ2dY0b4jEqj4QOdDRq6DG7aTHjpGaL8HlKSHkpU1DpjfywCXTJqtOdCo2FywjWvg0U2FhqMeUJaA==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz",
+ "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==",
"dev": true,
"requires": {
- "@babel/types": "^7.18.4",
- "entities": "^4.3.0"
+ "@babel/types": "^7.20.0",
+ "entities": "^4.4.0"
},
"dependencies": {
"entities": {
@@ -2823,21 +2854,21 @@
}
},
"@svgr/plugin-jsx": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.0.tgz",
- "integrity": "sha512-1CHMqOBKoNk/ZPU+iGXKcQPC6q9zaD7UOI99J+BaGY5bdCztcf5bZyi0QZSDRJtCQpdofeVv7XfBYov2mtl0Pw==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz",
+ "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==",
"dev": true,
"requires": {
- "@babel/core": "^7.18.5",
- "@svgr/babel-preset": "^6.5.0",
- "@svgr/hast-util-to-babel-ast": "^6.5.0",
+ "@babel/core": "^7.19.6",
+ "@svgr/babel-preset": "^6.5.1",
+ "@svgr/hast-util-to-babel-ast": "^6.5.1",
"svg-parser": "^2.0.4"
}
},
"@svgr/plugin-svgo": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.0.tgz",
- "integrity": "sha512-8Zv1Yyv6I7HlIqrqGFM0sDKQrhjbfNZJawR8UjIaVWSb0tKZP1Ra6ymhqIFu6FT6kDRD0Ct5NlQZ10VUujSspw==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz",
+ "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==",
"dev": true,
"requires": {
"cosmiconfig": "^7.0.1",
@@ -2947,19 +2978,19 @@
}
},
"@svgr/webpack": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.0.tgz",
- "integrity": "sha512-rM/Z4pwMhqvAXEHoHIlE4SeTb0ToQNmJuBdiHwhP2ZtywyX6XqrgCv2WX7K/UCgNYJgYbekuylgyjnuLUHTcZQ==",
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz",
+ "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==",
"dev": true,
"requires": {
- "@babel/core": "^7.18.5",
- "@babel/plugin-transform-react-constant-elements": "^7.17.12",
- "@babel/preset-env": "^7.18.2",
- "@babel/preset-react": "^7.17.12",
- "@babel/preset-typescript": "^7.17.12",
- "@svgr/core": "^6.5.0",
- "@svgr/plugin-jsx": "^6.5.0",
- "@svgr/plugin-svgo": "^6.5.0"
+ "@babel/core": "^7.19.6",
+ "@babel/plugin-transform-react-constant-elements": "^7.18.12",
+ "@babel/preset-env": "^7.19.4",
+ "@babel/preset-react": "^7.18.6",
+ "@babel/preset-typescript": "^7.18.6",
+ "@svgr/core": "^6.5.1",
+ "@svgr/plugin-jsx": "^6.5.1",
+ "@svgr/plugin-svgo": "^6.5.1"
}
},
"@tannin/compile": {
@@ -3002,16 +3033,24 @@
"dev": true
},
"@types/babel__core": {
- "version": "7.1.19",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz",
- "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==",
+ "version": "7.20.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz",
+ "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==",
"dev": true,
"requires": {
- "@babel/parser": "^7.1.0",
- "@babel/types": "^7.0.0",
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
"@types/babel__generator": "*",
"@types/babel__template": "*",
"@types/babel__traverse": "*"
+ },
+ "dependencies": {
+ "@babel/parser": {
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
+ "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
+ "dev": true
+ }
}
},
"@types/babel__generator": {
@@ -3034,9 +3073,9 @@
}
},
"@types/babel__traverse": {
- "version": "7.18.2",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz",
- "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==",
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz",
+ "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==",
"dev": true,
"requires": {
"@babel/types": "^7.3.0"
@@ -3061,15 +3100,6 @@
"@types/node": "*"
}
},
- "@types/cheerio": {
- "version": "0.22.31",
- "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.31.tgz",
- "integrity": "sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==",
- "dev": true,
- "requires": {
- "@types/node": "*"
- }
- },
"@types/connect": {
"version": "3.4.35",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
@@ -3116,21 +3146,21 @@
"dev": true
},
"@types/express": {
- "version": "4.17.14",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz",
- "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==",
+ "version": "4.17.16",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.16.tgz",
+ "integrity": "sha512-LkKpqRZ7zqXJuvoELakaFYuETHjZkSol8EV6cNnyishutDBCCdv6+dsKPbKkCcIk57qRphOLY5sEgClw1bO3gA==",
"dev": true,
"requires": {
"@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.18",
+ "@types/express-serve-static-core": "^4.17.31",
"@types/qs": "*",
"@types/serve-static": "*"
}
},
"@types/express-serve-static-core": {
- "version": "4.17.31",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz",
- "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==",
+ "version": "4.17.33",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz",
+ "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -3149,9 +3179,9 @@
}
},
"@types/graceful-fs": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz",
- "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==",
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
+ "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==",
"dev": true,
"requires": {
"@types/node": "*"
@@ -3208,11 +3238,6 @@
"integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==",
"dev": true
},
- "@types/lodash": {
- "version": "4.14.186",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.186.tgz",
- "integrity": "sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw=="
- },
"@types/markdown-it": {
"version": "12.2.3",
"resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz",
@@ -3248,9 +3273,9 @@
"dev": true
},
"@types/mousetrap": {
- "version": "1.6.9",
- "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.9.tgz",
- "integrity": "sha512-HUAiN65VsRXyFCTicolwb5+I7FM6f72zjMWr+ajGk+YTvzBgXqa2A5U7d+rtsouAkunJ5U4Sb5lNJjo9w+nmXg=="
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/@types/mousetrap/-/mousetrap-1.6.11.tgz",
+ "integrity": "sha512-F0oAily9Q9QQpv9JKxKn0zMKfOo36KHCW7myYsmUyf2t0g+sBTbG3UleTPoguHdE1z3GLFr3p7/wiOio52QFjQ=="
},
"@types/node": {
"version": "14.14.20",
@@ -3270,9 +3295,9 @@
"integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
},
"@types/prettier": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz",
- "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==",
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz",
+ "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==",
"dev": true
},
"@types/prop-types": {
@@ -3299,9 +3324,9 @@
"dev": true
},
"@types/react": {
- "version": "17.0.51",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.51.tgz",
- "integrity": "sha512-YMddzAE+nSH04BiTJ5GydTxk0/3hckqyuOclg0s6zQYj/XzfRVNzHZAFwZb5SCSavkzTYUtcq/gwjLnvt2Y4cg==",
+ "version": "18.0.27",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.27.tgz",
+ "integrity": "sha512-3vtRKHgVxu3Jp9t718R9BuzoD4NcQ8YJ5XRzsSKxNDiDonD2MXIT1TmSkenxuCycZJoQT5d2vE8LwWJxBC1gmA==",
"requires": {
"@types/prop-types": "*",
"@types/scheduler": "*",
@@ -3309,11 +3334,11 @@
}
},
"@types/react-dom": {
- "version": "17.0.17",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.17.tgz",
- "integrity": "sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==",
+ "version": "18.0.10",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.10.tgz",
+ "integrity": "sha512-E42GW/JA4Qv15wQdqJq8DL4JhNpB3prJgjgapN3qJT9K2zO5IIAQh4VXvCEDupoqAwnz0cY4RlXeC/ajX5SFHg==",
"requires": {
- "@types/react": "^17"
+ "@types/react": "*"
}
},
"@types/retry": {
@@ -3328,9 +3353,9 @@
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
},
"@types/semver": {
- "version": "7.3.12",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz",
- "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==",
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
"dev": true
},
"@types/serve-index": {
@@ -3438,18 +3463,18 @@
}
},
"@types/ws": {
- "version": "8.5.3",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz",
- "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
+ "version": "8.5.4",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz",
+ "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/yargs": {
- "version": "16.0.4",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
- "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
+ "version": "16.0.5",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz",
+ "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==",
"dev": true,
"requires": {
"@types/yargs-parser": "*"
@@ -3472,16 +3497,18 @@
}
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.41.0.tgz",
- "integrity": "sha512-DXUS22Y57/LAFSg3x7Vi6RNAuLpTXwxB9S2nIA7msBb/Zt8p7XqMwdpdc1IU7CkOQUPgAqR5fWvxuKCbneKGmA==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz",
+ "integrity": "sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.41.0",
- "@typescript-eslint/type-utils": "5.41.0",
- "@typescript-eslint/utils": "5.41.0",
+ "@typescript-eslint/scope-manager": "5.50.0",
+ "@typescript-eslint/type-utils": "5.50.0",
+ "@typescript-eslint/utils": "5.50.0",
"debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
"regexpp": "^3.2.0",
"semver": "^7.3.7",
"tsutils": "^3.21.0"
@@ -3513,24 +3540,15 @@
}
}
},
- "@typescript-eslint/experimental-utils": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.41.0.tgz",
- "integrity": "sha512-/qxT2Kd2q/A22JVIllvws4rvc00/3AT4rAo/0YgEN28y+HPhbJbk6X4+MAHEoZzpNyAOugIT7D/OLnKBW8FfhA==",
- "dev": true,
- "requires": {
- "@typescript-eslint/utils": "5.41.0"
- }
- },
"@typescript-eslint/parser": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.41.0.tgz",
- "integrity": "sha512-HQVfix4+RL5YRWZboMD1pUfFN8MpRH4laziWkkAzyO1fvNOY/uinZcvo3QiFJVS/siNHupV8E5+xSwQZrl6PZA==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.50.0.tgz",
+ "integrity": "sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.41.0",
- "@typescript-eslint/types": "5.41.0",
- "@typescript-eslint/typescript-estree": "5.41.0",
+ "@typescript-eslint/scope-manager": "5.50.0",
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/typescript-estree": "5.50.0",
"debug": "^4.3.4"
},
"dependencies": {
@@ -3552,23 +3570,23 @@
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.41.0.tgz",
- "integrity": "sha512-xOxPJCnuktUkY2xoEZBKXO5DBCugFzjrVndKdUnyQr3+9aDWZReKq9MhaoVnbL+maVwWJu/N0SEtrtEUNb62QQ==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz",
+ "integrity": "sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.41.0",
- "@typescript-eslint/visitor-keys": "5.41.0"
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/visitor-keys": "5.50.0"
}
},
"@typescript-eslint/type-utils": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.41.0.tgz",
- "integrity": "sha512-L30HNvIG6A1Q0R58e4hu4h+fZqaO909UcnnPbwKiN6Rc3BUEx6ez2wgN7aC0cBfcAjZfwkzE+E2PQQ9nEuoqfA==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz",
+ "integrity": "sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ==",
"dev": true,
"requires": {
- "@typescript-eslint/typescript-estree": "5.41.0",
- "@typescript-eslint/utils": "5.41.0",
+ "@typescript-eslint/typescript-estree": "5.50.0",
+ "@typescript-eslint/utils": "5.50.0",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
},
@@ -3591,19 +3609,19 @@
}
},
"@typescript-eslint/types": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.41.0.tgz",
- "integrity": "sha512-5BejraMXMC+2UjefDvrH0Fo/eLwZRV6859SXRg+FgbhA0R0l6lDqDGAQYhKbXhPN2ofk2kY5sgGyLNL907UXpA==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.50.0.tgz",
+ "integrity": "sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.41.0.tgz",
- "integrity": "sha512-SlzFYRwFSvswzDSQ/zPkIWcHv8O5y42YUskko9c4ki+fV6HATsTODUPbRbcGDFYP86gaJL5xohUEytvyNNcXWg==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz",
+ "integrity": "sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.41.0",
- "@typescript-eslint/visitor-keys": "5.41.0",
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/visitor-keys": "5.50.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -3647,16 +3665,16 @@
}
},
"@typescript-eslint/utils": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.41.0.tgz",
- "integrity": "sha512-QlvfwaN9jaMga9EBazQ+5DDx/4sAdqDkcs05AsQHMaopluVCUyu1bTRUVKzXbgjDlrRAQrYVoi/sXJ9fmG+KLQ==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.50.0.tgz",
+ "integrity": "sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.9",
"@types/semver": "^7.3.12",
- "@typescript-eslint/scope-manager": "5.41.0",
- "@typescript-eslint/types": "5.41.0",
- "@typescript-eslint/typescript-estree": "5.41.0",
+ "@typescript-eslint/scope-manager": "5.50.0",
+ "@typescript-eslint/types": "5.50.0",
+ "@typescript-eslint/typescript-estree": "5.50.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0",
"semver": "^7.3.7"
@@ -3674,12 +3692,12 @@
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.41.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.41.0.tgz",
- "integrity": "sha512-vilqeHj267v8uzzakbm13HkPMl7cbYpKVjgFWZPIOHIJHZtinvypUhJ5xBXfWYg4eFKqztbMMpOgFpT9Gfx4fw==",
+ "version": "5.50.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz",
+ "integrity": "sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.41.0",
+ "@typescript-eslint/types": "5.50.0",
"eslint-visitor-keys": "^3.3.0"
},
"dependencies": {
@@ -3692,16 +3710,16 @@
}
},
"@use-gesture/core": {
- "version": "10.2.22",
- "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.2.22.tgz",
- "integrity": "sha512-Ek0JZFYfk+hicLmoG094gm3YOuDMBNckHb988e59YOZoAkETT8dQSzT+g3QkSHSiP1m5wFXAGPSgxvOuwvGKHQ=="
+ "version": "10.2.24",
+ "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.2.24.tgz",
+ "integrity": "sha512-ZL7F9mgOn3Qlnp6QLI9jaOfcvqrx6JPE/BkdVSd8imveaFTm/a3udoO6f5Us/1XtqnL4347PsIiK6AtCvMHk2Q=="
},
"@use-gesture/react": {
- "version": "10.2.22",
- "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.2.22.tgz",
- "integrity": "sha512-ECo7ig16SxBE06ENIURO1woKEB6TC8qY3a0rugJjQ2f1o0Tj28xS/eYNyJuqzQB5YT0q5IrF7ZFpbx1p/5ohYA==",
+ "version": "10.2.24",
+ "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.2.24.tgz",
+ "integrity": "sha512-rAZ8Nnpu1g4eFzqCPlaq+TppJpMy0dTpYOQx5KpfoBF4P3aWnCqwj7eKxcmdIb1NJKpIJj50DPugUH4mq5cpBg==",
"requires": {
- "@use-gesture/core": "10.2.22"
+ "@use-gesture/core": "10.2.24"
}
},
"@webassemblyjs/ast": {
@@ -3871,60 +3889,26 @@
"integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==",
"dev": true
},
- "@wojtekmaj/enzyme-adapter-react-17": {
- "version": "0.6.7",
- "resolved": "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.6.7.tgz",
- "integrity": "sha512-B+byiwi/T1bx5hcj9wc0fUL5Hlb5giSXJzcnEfJVl2j6dGV2NJfcxDBYX0WWwIxlzNiFz8kAvlkFWI2y/nscZQ==",
- "dev": true,
- "requires": {
- "@wojtekmaj/enzyme-adapter-utils": "^0.1.4",
- "enzyme-shallow-equal": "^1.0.0",
- "has": "^1.0.0",
- "prop-types": "^15.7.0",
- "react-is": "^17.0.0",
- "react-test-renderer": "^17.0.0"
- },
- "dependencies": {
- "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==",
- "dev": true
- }
- }
- },
- "@wojtekmaj/enzyme-adapter-utils": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-utils/-/enzyme-adapter-utils-0.1.4.tgz",
- "integrity": "sha512-ARGIQSIIv3oBia1m5Ihn1VU0FGmft6KPe39SBKTb8p7LSXO23YI4kNtc4M/cKoIY7P+IYdrZcgMObvedyjoSQA==",
- "dev": true,
- "requires": {
- "function.prototype.name": "^1.1.0",
- "has": "^1.0.0",
- "object.fromentries": "^2.0.0",
- "prop-types": "^15.7.0"
- }
- },
"@wordpress/a11y": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-3.17.1.tgz",
- "integrity": "sha512-VQx191AnuZ5QlO26oCULslykGfNIF5s9N5CXAW1I6KUqBxEOO964rUhumf8tWeB+5nrVgwBES6AkApdpfV00oQ==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-3.26.0.tgz",
+ "integrity": "sha512-IPHDWifS++iMgRM/2EEND3S0BQrSCm8AuWKCGNvfw97OBbKaGf2Z4E6/gLnGp9bILXeBJeTJMWhwJFL02qF0fg==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/dom-ready": "^3.17.1",
- "@wordpress/i18n": "^4.17.1"
+ "@wordpress/dom-ready": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0"
}
},
"@wordpress/annotations": {
- "version": "2.17.3",
- "resolved": "https://registry.npmjs.org/@wordpress/annotations/-/annotations-2.17.3.tgz",
- "integrity": "sha512-l/nVrNi78c6w7Hf+YWfLlIfS0WMSQtQGXgj1rp3ZJZp78cW2ofN7w5axSMD8iGkz660/J2GefZlhw/fDG6awkQ==",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/annotations/-/annotations-2.26.0.tgz",
+ "integrity": "sha512-Vry8wWuMzJRejpBhlCjzOlHttzsGGg3A8iW0fYAe9R9apx+FHtfJ3xk4JqH4CSmkbHT5nCShh6qrirpPVWkT6g==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/data": "^7.1.3",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/rich-text": "^5.15.3",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/rich-text": "^6.3.0",
"rememo": "^4.0.0",
"uuid": "^8.3.0"
},
@@ -3937,33 +3921,33 @@
}
},
"@wordpress/api-fetch": {
- "version": "6.14.1",
- "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.14.1.tgz",
- "integrity": "sha512-geEktCZzde3yXoX+TkSJGay1Rw0lz4HlPjsHoKMRZa9luxquksPFP/ASDF9HvWThxGOyv9tzZd7oEveJeTmssg==",
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.23.0.tgz",
+ "integrity": "sha512-97S92W62DUNu8M1pReAzlC2RQyYlFUwPwkZS0zEiOWOespe3paZRU0qYW2ko7+FWfGXf+wxK7OfDu01w2hgn3A==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/url": "^3.18.1"
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/url": "^3.27.0"
}
},
"@wordpress/autop": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-3.17.1.tgz",
- "integrity": "sha512-RGduB833OnnW17Wow8irTlHZK1Pq4ja9w4KMnGwyVhNsAcvIjGf3OSVm0+dUZKJvIpacrbcyVKQ9G3llXVe/Kg==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-3.26.0.tgz",
+ "integrity": "sha512-GahkYRq/Hs+nqHwduQex6itBBm46eLShmT+Gkf2SXiZvarSE+a0MccifB0zCaWKNIzxawa6HkbgvuYk2QlT2Fg==",
"requires": {
"@babel/runtime": "^7.16.0"
}
},
"@wordpress/babel-plugin-import-jsx-pragma": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.3.0.tgz",
- "integrity": "sha512-7AnWnpItOqH5YEcFA3RgxeOlb96R8KDWDPAZjZ6TpsdOVjFynT8H3Buc4v127BHmxuxKGyd2vxPIQIzC9dLzOw==",
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/babel-plugin-import-jsx-pragma/-/babel-plugin-import-jsx-pragma-4.9.0.tgz",
+ "integrity": "sha512-ejG0lyO8UmMsCydNLfHM2mX6s1IoCtIJ0mHoQ/AKtzetr9PbJRIdQgpIA876zXW46wd0WJE3V+kjEZPDzeEvDA==",
"dev": true
},
"@wordpress/babel-preset-default": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.1.1.tgz",
- "integrity": "sha512-+7lSYvodz+oJFCuEswhCui8yg4ekH0pZ5aSDerTKaRD7LKvbjeqQv/UbDFVsZI42BfNIEQ9hhDl8TMyrhjiyIA==",
+ "version": "7.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.10.0.tgz",
+ "integrity": "sha512-4psTNav+VcxZAkWnHfq6ePFSDDGOvmc2p0KjHygi03NCZgWBy3cnlRr/Vy736ZQ7CM98YLsYYKBG/3sWdk3n2A==",
"dev": true,
"requires": {
"@babel/core": "^7.16.0",
@@ -3972,26 +3956,32 @@
"@babel/preset-env": "^7.16.0",
"@babel/preset-typescript": "^7.16.0",
"@babel/runtime": "^7.16.0",
- "@wordpress/babel-plugin-import-jsx-pragma": "^4.0.1",
- "@wordpress/browserslist-config": "^5.0.1",
- "@wordpress/element": "^4.15.1",
- "@wordpress/warning": "^2.17.1",
+ "@wordpress/babel-plugin-import-jsx-pragma": "^4.9.0",
+ "@wordpress/browserslist-config": "^5.9.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/warning": "^2.26.0",
"browserslist": "^4.17.6",
"core-js": "^3.19.1"
},
"dependencies": {
"browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.21.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
}
},
+ "caniuse-lite": {
+ "version": "1.0.30001450",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz",
+ "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==",
+ "dev": true
+ },
"electron-to-chromium": {
"version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
@@ -3999,92 +3989,95 @@
"dev": true
},
"node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz",
+ "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==",
"dev": true
}
}
},
"@wordpress/base-styles": {
- "version": "4.11.0",
- "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.11.0.tgz",
- "integrity": "sha512-KGHGtOP8q4u3DhlDsw4mMxlcnqxFPMsPa2GrbFBFgFEMeC/v9XMJAAY97V93D5Tbz1JaWBXjQHI+FwPFuyvCHQ==",
+ "version": "4.17.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/base-styles/-/base-styles-4.17.0.tgz",
+ "integrity": "sha512-QDdW5PzPNzSOAudlkeMIuwlGxmQSmnJAulD11f4d/OPwfU+KMk3hYr6QS3nzFghlT6IDwcwwlNE6BgoN772G4A==",
"dev": true
},
"@wordpress/blob": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-3.17.1.tgz",
- "integrity": "sha512-rvGG93lTeWHxbhFpKDqRtLcZCC+ZsjtpaDHdOhBdehA+eCvFTcflkU8dZOtAdZJNQZKKJZWy63caD05OUw+Y1Q==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-3.26.0.tgz",
+ "integrity": "sha512-zxsxvFXmPUtZeJutmeqtK3P5wZ2h+owmgS1dSDQzAoJeYUypZhe9zYhNPiQ9xB1JffxPWhegJ04OS3eqIYlZxA==",
"requires": {
"@babel/runtime": "^7.16.0"
}
},
"@wordpress/block-directory": {
- "version": "3.15.12",
- "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-3.15.12.tgz",
- "integrity": "sha512-pcrjkDFRehae4Q9ZwYa7dXHwSaGgJl5iDHDavNIEdNeH3xFZi3KzWvumwSWtUWqM19W8EiekTR0T2qQytnKKvw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-4.3.0.tgz",
+ "integrity": "sha512-x6/jqrd81r2HmxgpNtyftbSF7hvl3g/wyYEAhPBaXEXEkN15rZmjB0IXpVznc8Abpdw5noypjOr5bVINfITC+A==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/block-editor": "^10.0.10",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/core-data": "^5.0.4",
- "@wordpress/data": "^7.1.3",
- "@wordpress/edit-post": "^6.14.12",
- "@wordpress/editor": "^12.16.10",
- "@wordpress/element": "^4.15.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/html-entities": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/notices": "^3.17.3",
- "@wordpress/plugins": "^4.15.2",
- "@wordpress/url": "^3.18.1",
- "change-case": "^4.1.2",
- "lodash": "^4.17.21"
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/block-editor": "^11.3.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/core-data": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/edit-post": "^7.3.0",
+ "@wordpress/editor": "^13.3.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/html-entities": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/notices": "^3.26.0",
+ "@wordpress/plugins": "^5.3.0",
+ "@wordpress/url": "^3.27.0",
+ "change-case": "^4.1.2"
}
},
"@wordpress/block-editor": {
- "version": "10.0.10",
- "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-10.0.10.tgz",
- "integrity": "sha512-U1X+wmpAQcJ1Bc7Lq/EghOQERhdgGIw7SfDLbjNg28/H06a4lg8ntYb9gTuney7dRTz90iAPeqggZpTPN20p1A==",
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-11.3.0.tgz",
+ "integrity": "sha512-kavB0v7rM3BvwEzVdrjVeTArPo5EdKx5HA4l+uM6xVTNAGolGV9mhnMULTzqV1MwRssHKfPuHtKb2sTc1gt3Jw==",
"requires": {
"@babel/runtime": "^7.16.0",
"@react-spring/web": "^9.4.5",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/blob": "^3.17.1",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/data": "^7.1.3",
- "@wordpress/date": "^4.17.1",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/dom": "^3.17.2",
- "@wordpress/element": "^4.15.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/html-entities": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/is-shallow-equal": "^4.17.1",
- "@wordpress/keyboard-shortcuts": "^3.15.3",
- "@wordpress/keycodes": "^3.17.1",
- "@wordpress/notices": "^3.17.3",
- "@wordpress/rich-text": "^5.15.3",
- "@wordpress/shortcode": "^3.17.1",
- "@wordpress/style-engine": "^1.0.3",
- "@wordpress/token-list": "^2.17.1",
- "@wordpress/url": "^3.18.1",
- "@wordpress/warning": "^2.17.1",
- "@wordpress/wordcount": "^3.17.1",
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/blob": "^3.26.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/date": "^4.26.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/dom": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/escape-html": "^2.26.0",
+ "@wordpress/experiments": "^0.8.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/html-entities": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/is-shallow-equal": "^4.26.0",
+ "@wordpress/keyboard-shortcuts": "^4.3.0",
+ "@wordpress/keycodes": "^3.26.0",
+ "@wordpress/notices": "^3.26.0",
+ "@wordpress/rich-text": "^6.3.0",
+ "@wordpress/shortcode": "^3.26.0",
+ "@wordpress/style-engine": "^1.9.0",
+ "@wordpress/token-list": "^2.26.0",
+ "@wordpress/url": "^3.27.0",
+ "@wordpress/warning": "^2.26.0",
+ "@wordpress/wordcount": "^3.26.0",
+ "change-case": "^4.1.2",
"classnames": "^2.3.1",
"colord": "^2.7.0",
"diff": "^4.0.2",
"dom-scroll-into-view": "^1.2.1",
+ "fast-deep-equal": "^3.1.3",
"inherits": "^2.0.3",
"lodash": "^4.17.21",
"react-autosize-textarea": "^7.1.0",
@@ -4095,41 +4088,45 @@
}
},
"@wordpress/block-library": {
- "version": "7.14.12",
- "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-7.14.12.tgz",
- "integrity": "sha512-iw3ndfgsbMTf7RMhXumH3Fsj40va73u/EdiE9E9I+EXO72YU/deEMt0BImkfZrnp4AF21ji4zFItLUBt+b/GMQ==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-8.3.0.tgz",
+ "integrity": "sha512-K8np/gFfcikEuwC6bMDlvh0O7Eq8/7/a+uX6eNTry9QuoLhWzNPI0d9oNOgwKDBJmTtKmf5K4LRjuBIozTHs8g==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/autop": "^3.17.1",
- "@wordpress/blob": "^3.17.1",
- "@wordpress/block-editor": "^10.0.10",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/core-data": "^5.0.4",
- "@wordpress/data": "^7.1.3",
- "@wordpress/date": "^4.17.1",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/dom": "^3.17.2",
- "@wordpress/element": "^4.15.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/html-entities": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/keycodes": "^3.17.1",
- "@wordpress/notices": "^3.17.3",
- "@wordpress/primitives": "^3.15.1",
- "@wordpress/reusable-blocks": "^3.15.10",
- "@wordpress/rich-text": "^5.15.3",
- "@wordpress/server-side-render": "^3.15.7",
- "@wordpress/url": "^3.18.1",
- "@wordpress/viewport": "^4.15.3",
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/autop": "^3.26.0",
+ "@wordpress/blob": "^3.26.0",
+ "@wordpress/block-editor": "^11.3.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/core-data": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/date": "^4.26.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/dom": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/escape-html": "^2.26.0",
+ "@wordpress/experiments": "^0.8.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/html-entities": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/keycodes": "^3.26.0",
+ "@wordpress/notices": "^3.26.0",
+ "@wordpress/primitives": "^3.24.0",
+ "@wordpress/reusable-blocks": "^4.3.0",
+ "@wordpress/rich-text": "^6.3.0",
+ "@wordpress/server-side-render": "^4.3.0",
+ "@wordpress/url": "^3.27.0",
+ "@wordpress/viewport": "^5.3.0",
"change-case": "^4.1.2",
"classnames": "^2.3.1",
"colord": "^2.7.0",
- "fast-average-color": "^4.3.0",
+ "escape-html": "^1.0.3",
+ "fast-average-color": "^9.1.1",
+ "fast-deep-equal": "^3.1.3",
"lodash": "^4.17.21",
"memize": "^1.1.0",
"micromodal": "^0.4.10",
@@ -4137,33 +4134,35 @@
}
},
"@wordpress/block-serialization-default-parser": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.17.1.tgz",
- "integrity": "sha512-BmR8HUowTMXHiyCtNIr1VZ2emzFvk8A7DtnGTuvMOy2EQ+9oHfqJbVb9Lv1vSAoaa77GtoPNoGaUqE3yfp4C4w==",
+ "version": "4.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.26.0.tgz",
+ "integrity": "sha512-kCND8ER9VVC7iOZFx2fQXeLn0lWCom5hkcJQ9Td44LUG52rXg0xKFN1HAQwlPNY1T206FBLdtjl1HklQZFWxSw==",
"requires": {
"@babel/runtime": "^7.16.0"
}
},
"@wordpress/blocks": {
- "version": "11.16.4",
- "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-11.16.4.tgz",
- "integrity": "sha512-Pmcy8qldy1T8+QGQ8m5jRERITVVGEBpEeNycj7pJJm5+KuPKl3eqtuSCsCXdYwUdfYeOputNBYiwha/hp+Va/A==",
+ "version": "12.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-12.3.0.tgz",
+ "integrity": "sha512-dIs4Cmn48AuWFZxRgR+Jxvsdi1+l/1GVYEX/gtkVXGbNholuY4E3Hvo5kN6wlgG6V/K98zcpnsj2NfYv7MS88g==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/autop": "^3.17.1",
- "@wordpress/blob": "^3.17.1",
- "@wordpress/block-serialization-default-parser": "^4.17.1",
- "@wordpress/data": "^7.1.3",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/dom": "^3.17.2",
- "@wordpress/element": "^4.15.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/html-entities": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/is-shallow-equal": "^4.17.1",
- "@wordpress/shortcode": "^3.17.1",
+ "@wordpress/autop": "^3.26.0",
+ "@wordpress/blob": "^3.26.0",
+ "@wordpress/block-serialization-default-parser": "^4.26.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/dom": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/html-entities": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/is-shallow-equal": "^4.26.0",
+ "@wordpress/shortcode": "^3.26.0",
"change-case": "^4.1.2",
"colord": "^2.7.0",
+ "fast-deep-equal": "^3.1.3",
"hpq": "^1.3.0",
"is-plain-object": "^5.0.0",
"lodash": "^4.17.21",
@@ -4188,15 +4187,15 @@
}
},
"@wordpress/browserslist-config": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.3.0.tgz",
- "integrity": "sha512-FIhYWu36TrZ49W+knaRwhw3Q+cxaTDEzSaiE83qMDeAPJytT/UaedoJULt5MfxUtfaKLmUa8bPjSFORxoxwbvQ==",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/browserslist-config/-/browserslist-config-5.9.0.tgz",
+ "integrity": "sha512-VC1QK741SRfrfsq2SdWHlkuDo7ZSXD7LFbK0dU6lOnuUt3f01HTU05NfcrC6uWCaoMP87MPDCQVaWTygNSFirQ==",
"dev": true
},
"@wordpress/components": {
- "version": "21.0.7",
- "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-21.0.7.tgz",
- "integrity": "sha512-SRiOrKZMwi546qS8K6CctHwVqRkdEGZRXBG67U4xQjtMkGy+4mrbXvs4LTpF/2FwYzk+kQN5X185XsjXliwxEA==",
+ "version": "23.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-23.3.0.tgz",
+ "integrity": "sha512-qRl5fCkyPQ+odHiskWROdlj/EYv6XUZ9pB+wcg9JY96Rk0oQvDwPnObYxZwMdmYOCUiFiXOzowT3ZAKSjjJZ3g==",
"requires": {
"@babel/runtime": "^7.16.0",
"@emotion/cache": "^11.7.1",
@@ -4207,28 +4206,30 @@
"@emotion/utils": "^1.0.0",
"@floating-ui/react-dom": "^1.0.0",
"@use-gesture/react": "^10.2.6",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/date": "^4.17.1",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/dom": "^3.17.2",
- "@wordpress/element": "^4.15.1",
- "@wordpress/escape-html": "^2.17.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/is-shallow-equal": "^4.17.1",
- "@wordpress/keycodes": "^3.17.1",
- "@wordpress/primitives": "^3.15.1",
- "@wordpress/rich-text": "^5.15.3",
- "@wordpress/warning": "^2.17.1",
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/date": "^4.26.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/dom": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/escape-html": "^2.26.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/html-entities": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/is-shallow-equal": "^4.26.0",
+ "@wordpress/keycodes": "^3.26.0",
+ "@wordpress/primitives": "^3.24.0",
+ "@wordpress/rich-text": "^6.3.0",
+ "@wordpress/warning": "^2.26.0",
"change-case": "^4.1.2",
"classnames": "^2.3.1",
"colord": "^2.7.0",
"date-fns": "^2.28.0",
"dom-scroll-into-view": "^1.2.1",
"downshift": "^6.0.15",
- "framer-motion": "^6.2.8",
+ "fast-deep-equal": "^3.1.3",
+ "framer-motion": "^7.6.1",
"gradient-parser": "^0.1.5",
"highlight-words-core": "^1.2.2",
"lodash": "^4.17.21",
@@ -4238,7 +4239,8 @@
"reakit": "^1.3.8",
"remove-accents": "^0.4.2",
"use-lilius": "^2.0.1",
- "uuid": "^8.3.0"
+ "uuid": "^8.3.0",
+ "valtio": "^1.7.0"
},
"dependencies": {
"uuid": {
@@ -4249,43 +4251,43 @@
}
},
"@wordpress/compose": {
- "version": "5.15.2",
- "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-5.15.2.tgz",
- "integrity": "sha512-q1qcCqQHjKRrfuTta4gekZlR1DareAx0+mi82Pl1sxkccQU741GgKmC2aJeyZAHbK0Rb/LzSop2fwJaG4rqNlQ==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/compose/-/compose-6.3.0.tgz",
+ "integrity": "sha512-VenvmENQGbuKyer+oy4Ij/qzhZfvdzyW8WCfn1cjcNYvU7WuoHhwvNxZ4Cvtwo0WiTyeV1+bgMUwkAjXtpqkdw==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@types/lodash": "^4.14.172",
"@types/mousetrap": "^1.6.8",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/dom": "^3.17.2",
- "@wordpress/element": "^4.15.1",
- "@wordpress/is-shallow-equal": "^4.17.1",
- "@wordpress/keycodes": "^3.17.1",
- "@wordpress/priority-queue": "^2.17.2",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/dom": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/is-shallow-equal": "^4.26.0",
+ "@wordpress/keycodes": "^3.26.0",
+ "@wordpress/priority-queue": "^2.26.0",
"change-case": "^4.1.2",
"clipboard": "^2.0.8",
- "lodash": "^4.17.21",
"mousetrap": "^1.6.5",
"use-memo-one": "^1.1.1"
}
},
"@wordpress/core-data": {
- "version": "5.0.4",
- "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-5.0.4.tgz",
- "integrity": "sha512-/exKM6CM9iIkNY8KdpBcBx+bAj5lgnCNZ4HEPvHlavtSeFbWo+6DLZdp6p2j7eGgvQKz9ok1z5Z+WJn2yV41vw==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-6.3.0.tgz",
+ "integrity": "sha512-j8O533AQu/DELIlVrulT46NI5DjaQONnbJGlfTO5n60XDUB2C6rMKlqTFKMY4gBr4iuuImRYFnpYuZWq0CvI0w==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/data": "^7.1.3",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/element": "^4.15.1",
- "@wordpress/html-entities": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/is-shallow-equal": "^4.17.1",
- "@wordpress/url": "^3.18.1",
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/html-entities": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/is-shallow-equal": "^4.26.0",
+ "@wordpress/url": "^3.27.0",
"change-case": "^4.1.2",
"equivalent-key-map": "^0.2.2",
+ "fast-deep-equal": "^3.1.3",
"lodash": "^4.17.21",
"memize": "^1.1.0",
"rememo": "^4.0.0",
@@ -4300,46 +4302,48 @@
}
},
"@wordpress/customize-widgets": {
- "version": "3.14.12",
- "resolved": "https://registry.npmjs.org/@wordpress/customize-widgets/-/customize-widgets-3.14.12.tgz",
- "integrity": "sha512-s5zZzkg5gZnunwS1ZOHXrCnxIUl1CpYdiEX5vVYZT5UpbvLtk5HiOAsoXtAZoIJfIKKPjNPugFTHSi8VL3vWZw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/customize-widgets/-/customize-widgets-4.3.0.tgz",
+ "integrity": "sha512-54WSSZ5eAVbV3qSvt+eSdAW+3tcL6Wl/J/WL9bsUcPK5gxuLq9eJ9pkSNlC1+PMYa/HAQnwwhpgiovicWlj/jg==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/block-editor": "^10.0.10",
- "@wordpress/block-library": "^7.14.12",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/core-data": "^5.0.4",
- "@wordpress/data": "^7.1.3",
- "@wordpress/dom": "^3.17.2",
- "@wordpress/element": "^4.15.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/interface": "^4.16.7",
- "@wordpress/is-shallow-equal": "^4.17.1",
- "@wordpress/keyboard-shortcuts": "^3.15.3",
- "@wordpress/keycodes": "^3.17.1",
- "@wordpress/media-utils": "^4.8.1",
- "@wordpress/preferences": "^2.9.7",
- "@wordpress/widgets": "^2.15.10",
+ "@wordpress/block-editor": "^11.3.0",
+ "@wordpress/block-library": "^8.3.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/core-data": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/dom": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/experiments": "^0.8.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/interface": "^5.3.0",
+ "@wordpress/is-shallow-equal": "^4.26.0",
+ "@wordpress/keyboard-shortcuts": "^4.3.0",
+ "@wordpress/keycodes": "^3.26.0",
+ "@wordpress/media-utils": "^4.17.0",
+ "@wordpress/preferences": "^3.3.0",
+ "@wordpress/widgets": "^3.3.0",
"classnames": "^2.3.1",
- "lodash": "^4.17.21"
+ "fast-deep-equal": "^3.1.3"
}
},
"@wordpress/data": {
- "version": "7.1.3",
- "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-7.1.3.tgz",
- "integrity": "sha512-8xD8LT65vMXbYKg+e+o1I0XTBFb+MxwlaCbgTDkLDv1P3wWq5C4sn9Lxns8DyQI3gyi1dDI9323F1sIB8eZKrg==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/data/-/data-8.3.0.tgz",
+ "integrity": "sha512-cKpZXI3jJW4iuH3pCJYzwAMAVwRrk9iSK4rQz5H0sGWAzedd0+n6yUVTWUVhoihpCdfgqVkVRoCOQ9Diek0hBA==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/element": "^4.15.1",
- "@wordpress/is-shallow-equal": "^4.17.1",
- "@wordpress/priority-queue": "^2.17.2",
- "@wordpress/redux-routine": "^4.17.1",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/experiments": "^0.8.0",
+ "@wordpress/is-shallow-equal": "^4.26.0",
+ "@wordpress/priority-queue": "^2.26.0",
+ "@wordpress/redux-routine": "^4.26.0",
"equivalent-key-map": "^0.2.2",
"is-plain-object": "^5.0.0",
"is-promise": "^4.0.0",
@@ -4357,81 +4361,73 @@
}
},
"@wordpress/data-controls": {
- "version": "2.17.3",
- "resolved": "https://registry.npmjs.org/@wordpress/data-controls/-/data-controls-2.17.3.tgz",
- "integrity": "sha512-AkcEsEUNrVuPWoG9d1uxiQcmKGOLyROvHeAWJoGdlgLMEZVU1u7iLeMMG6HmIa2XDNAWZlAtPOuF+MRPcEoucg==",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/data-controls/-/data-controls-2.26.0.tgz",
+ "integrity": "sha512-Hb2FfS5Tqxt2i2Gu+SAVAt5MbBHehS5VNBxvp6yg5Fevkt+0fXBtpTNI8IF0rQOK9S82NjT2B2RXmaFNA+yhng==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/data": "^7.1.3",
- "@wordpress/deprecated": "^3.17.1"
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/deprecated": "^3.26.0"
}
},
"@wordpress/date": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-4.17.1.tgz",
- "integrity": "sha512-HvQ2em66WXuawFZKHkmv1SLTOQnPfTZalpXKXkS3b9hB2i7RYKRH/QiTOMFxQ/Iv5QxTm7Cl0uNWp3JKt5Bgfw==",
+ "version": "4.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-4.26.0.tgz",
+ "integrity": "sha512-49czY1/R2s0d2bJTaYftAxkcjgg49XNZEg5Rs91AT0qoio56hAdkuIElJLVVjzPLxXA975WnvYp2mnaBHN75mw==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/deprecated": "^3.17.1",
+ "@wordpress/deprecated": "^3.26.0",
"moment": "^2.22.1",
"moment-timezone": "^0.5.31"
}
},
"@wordpress/dependency-extraction-webpack-plugin": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.0.2.tgz",
- "integrity": "sha512-pbB7Za3rljnCMDnu9HYGeyX/OQfgKnCyD3bIHZAD1GgtiuJOOeW91rXDa1uA+/HWMqDzf8xGqYiS84otszsksg==",
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dependency-extraction-webpack-plugin/-/dependency-extraction-webpack-plugin-4.9.0.tgz",
+ "integrity": "sha512-p8pN330wQ6WEZhkt3Jva/fVc/79J4LpZi8TpH0X+770YKrhI429YZIenFriQiM72iaWK3Q+gaYziM4bndP+s8w==",
"dev": true,
"requires": {
- "json2php": "^0.0.4",
+ "json2php": "^0.0.5",
"webpack-sources": "^3.2.2"
- },
- "dependencies": {
- "json2php": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/json2php/-/json2php-0.0.4.tgz",
- "integrity": "sha512-hFzejhs28f70sGnutcsRS459MnAsjRVI85RgPAL1KQIZEpjiDitc27CZv4IgOtaR86vrqOVlu9vJNew2XyTH4g==",
- "dev": true
- }
}
},
"@wordpress/deprecated": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-3.17.1.tgz",
- "integrity": "sha512-871rBeb0yW9H7YeM18wnPIe2kJSv8ym4eaM/g0v91SAZsKO4Lskea8WMeadya38J4Nejnre0ssPEBTQuDCI4Cw==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/deprecated/-/deprecated-3.26.0.tgz",
+ "integrity": "sha512-njxd5FkFG12QF0ekcEl96jlgcxQ38Z9l41BxHGAoT27ibO8LDOr08dEKjO8l+QXaKRiFlDLfg4iSVEuMQms1Gw==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.17.1"
+ "@wordpress/hooks": "^3.26.0"
}
},
"@wordpress/dom": {
- "version": "3.17.2",
- "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-3.17.2.tgz",
- "integrity": "sha512-8wsfW+QEEX/p/SwQgBmKvGJtCGexxi0mqNrriN4h6b649vzdj7U6axkMEq+ugYFvEgeH90qQ5YPvQ70vblmYnQ==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dom/-/dom-3.26.0.tgz",
+ "integrity": "sha512-Y404VmJFYeauZbOd+3Dz6WDgyRnYe8E6kfwhOyUijSg6CvEvwOqBeURJJVH9FTqVa/b027lrz3SdR1EXtM8Jpw==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/deprecated": "^3.17.1"
+ "@wordpress/deprecated": "^3.26.0"
}
},
"@wordpress/dom-ready": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-3.17.1.tgz",
- "integrity": "sha512-tXoLSAsaJMMWr8vvVXBHw62bvRV2+tOlqNRXWHvkyVZmSFwKn+b2o1hs+XfDjZ2R1izt3Zc972lWvVC9UbGiuw==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-3.26.0.tgz",
+ "integrity": "sha512-ku51n9qjSjT33wi1NB0KRVZBa9KHpN9VrC4mMgEBsjtJGJeEMeaH2SJq556TcQPjEPl6OGGGmmA0qSCuRxNKoA==",
"requires": {
"@babel/runtime": "^7.16.0"
}
},
"@wordpress/e2e-test-utils": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils/-/e2e-test-utils-8.1.1.tgz",
- "integrity": "sha512-OcSoKJH9ELd1CQYoFU/Ov3MgOvsrwyHazwPI9le2W5fcVEVpkFpFwLF8DVTOnhMdre0Z4pDhCie6otxgQiEeHA==",
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils/-/e2e-test-utils-9.3.0.tgz",
+ "integrity": "sha512-K2xqgqznU17mH/EJmoPRnoQazrjxbbzQtq/Lqs4fN5rDMzOFLjIQDkGHUTK5n0OyMuwfBM4/FgaX1W4u0qf0Mw==",
"dev": true,
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/keycodes": "^3.17.1",
- "@wordpress/url": "^3.18.1",
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/keycodes": "^3.26.0",
+ "@wordpress/url": "^3.27.0",
"change-case": "^4.1.2",
"form-data": "^4.0.0",
"node-fetch": "^2.6.0"
@@ -4451,36 +4447,38 @@
}
},
"@wordpress/edit-post": {
- "version": "6.14.12",
- "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-6.14.12.tgz",
- "integrity": "sha512-8m2TTf0nJTodmhX9Fv32HtP72r8vqfyoBVYVgfYIpOubquMESZpQnbrwmMksthE9wKrcKm/B3/J3SdxX03Cw6Q==",
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-7.3.0.tgz",
+ "integrity": "sha512-pvV/gfXMwcEWE2ilaL7nTCLws3SNMuCHRPC+EbV6ERsqswl8hhVsMcD5nV0vg5VZiqsG+wvjqGYqJKHHN/dPoA==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/block-editor": "^10.0.10",
- "@wordpress/block-library": "^7.14.12",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/core-data": "^5.0.4",
- "@wordpress/data": "^7.1.3",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/editor": "^12.16.10",
- "@wordpress/element": "^4.15.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/interface": "^4.16.7",
- "@wordpress/keyboard-shortcuts": "^3.15.3",
- "@wordpress/keycodes": "^3.17.1",
- "@wordpress/media-utils": "^4.8.1",
- "@wordpress/notices": "^3.17.3",
- "@wordpress/plugins": "^4.15.2",
- "@wordpress/preferences": "^2.9.7",
- "@wordpress/url": "^3.18.1",
- "@wordpress/viewport": "^4.15.3",
- "@wordpress/warning": "^2.17.1",
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/block-editor": "^11.3.0",
+ "@wordpress/block-library": "^8.3.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/core-data": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/editor": "^13.3.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/experiments": "^0.8.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/interface": "^5.3.0",
+ "@wordpress/keyboard-shortcuts": "^4.3.0",
+ "@wordpress/keycodes": "^3.26.0",
+ "@wordpress/media-utils": "^4.17.0",
+ "@wordpress/notices": "^3.26.0",
+ "@wordpress/plugins": "^5.3.0",
+ "@wordpress/preferences": "^3.3.0",
+ "@wordpress/url": "^3.27.0",
+ "@wordpress/viewport": "^5.3.0",
+ "@wordpress/warning": "^2.26.0",
+ "@wordpress/widgets": "^3.3.0",
"classnames": "^2.3.1",
"lodash": "^4.17.21",
"memize": "^1.1.0",
@@ -4488,112 +4486,122 @@
}
},
"@wordpress/edit-site": {
- "version": "4.14.14",
- "resolved": "https://registry.npmjs.org/@wordpress/edit-site/-/edit-site-4.14.14.tgz",
- "integrity": "sha512-gmkteOtJcxBdC6sAaRUQiJCFaLBKydsagYtSEQQ5EX6BDRnphns8Euurm8/UVqMSZetMFYxwXd1o7PdwIt3WeQ==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/edit-site/-/edit-site-5.3.0.tgz",
+ "integrity": "sha512-otpNM+JQDEYlWcfkbzX/XgdrH9kOZva0Gbqws2zlBKSklVgJNZWJVLmn6IHOu5cEzBrlWwC+cJE4bE6ukW+7tg==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/block-editor": "^10.0.10",
- "@wordpress/block-library": "^7.14.12",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/core-data": "^5.0.4",
- "@wordpress/data": "^7.1.3",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/editor": "^12.16.10",
- "@wordpress/element": "^4.15.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/html-entities": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/interface": "^4.16.7",
- "@wordpress/keyboard-shortcuts": "^3.15.3",
- "@wordpress/keycodes": "^3.17.1",
- "@wordpress/media-utils": "^4.8.1",
- "@wordpress/notices": "^3.17.3",
- "@wordpress/plugins": "^4.15.2",
- "@wordpress/preferences": "^2.9.7",
- "@wordpress/reusable-blocks": "^3.15.10",
- "@wordpress/style-engine": "^1.0.3",
- "@wordpress/url": "^3.18.1",
- "@wordpress/viewport": "^4.15.3",
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/block-editor": "^11.3.0",
+ "@wordpress/block-library": "^8.3.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/core-data": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/editor": "^13.3.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/experiments": "^0.8.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/html-entities": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/interface": "^5.3.0",
+ "@wordpress/keyboard-shortcuts": "^4.3.0",
+ "@wordpress/keycodes": "^3.26.0",
+ "@wordpress/media-utils": "^4.17.0",
+ "@wordpress/notices": "^3.26.0",
+ "@wordpress/plugins": "^5.3.0",
+ "@wordpress/preferences": "^3.3.0",
+ "@wordpress/reusable-blocks": "^4.3.0",
+ "@wordpress/style-engine": "^1.9.0",
+ "@wordpress/url": "^3.27.0",
+ "@wordpress/viewport": "^5.3.0",
+ "@wordpress/widgets": "^3.3.0",
"classnames": "^2.3.1",
+ "colord": "^2.9.2",
"downloadjs": "^1.4.7",
+ "fast-deep-equal": "^3.1.3",
"history": "^5.1.0",
"lodash": "^4.17.21",
+ "memize": "^1.1.0",
"react-autosize-textarea": "^7.1.0",
"rememo": "^4.0.0"
}
},
"@wordpress/edit-widgets": {
- "version": "4.14.12",
- "resolved": "https://registry.npmjs.org/@wordpress/edit-widgets/-/edit-widgets-4.14.12.tgz",
- "integrity": "sha512-a0+2oyG9qgFMk9Omhz7x2A1SKmUg7yanM3MBBljtTfhl5Ipt6uqal/lGiIaiGeAamTKh45g6j7mpGmwx2mTSFQ==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/edit-widgets/-/edit-widgets-5.3.0.tgz",
+ "integrity": "sha512-FmGvZHLP6GNAMYG7FuL/smt3OhuZfsU87+hQzQ4xPa8dVcBTwD/xCBuGrbRk6LpDQXCFkpUMjWWrms5qtSmBlg==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/block-editor": "^10.0.10",
- "@wordpress/block-library": "^7.14.12",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/core-data": "^5.0.4",
- "@wordpress/data": "^7.1.3",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/dom": "^3.17.2",
- "@wordpress/element": "^4.15.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/interface": "^4.16.7",
- "@wordpress/keyboard-shortcuts": "^3.15.3",
- "@wordpress/keycodes": "^3.17.1",
- "@wordpress/media-utils": "^4.8.1",
- "@wordpress/notices": "^3.17.3",
- "@wordpress/plugins": "^4.15.2",
- "@wordpress/preferences": "^2.9.7",
- "@wordpress/reusable-blocks": "^3.15.10",
- "@wordpress/url": "^3.18.1",
- "@wordpress/widgets": "^2.15.10",
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/block-editor": "^11.3.0",
+ "@wordpress/block-library": "^8.3.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/core-data": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/dom": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/experiments": "^0.8.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/interface": "^5.3.0",
+ "@wordpress/keyboard-shortcuts": "^4.3.0",
+ "@wordpress/keycodes": "^3.26.0",
+ "@wordpress/media-utils": "^4.17.0",
+ "@wordpress/notices": "^3.26.0",
+ "@wordpress/plugins": "^5.3.0",
+ "@wordpress/preferences": "^3.3.0",
+ "@wordpress/reusable-blocks": "^4.3.0",
+ "@wordpress/url": "^3.27.0",
+ "@wordpress/widgets": "^3.3.0",
"classnames": "^2.3.1"
}
},
"@wordpress/editor": {
- "version": "12.16.10",
- "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-12.16.10.tgz",
- "integrity": "sha512-qRC4TR+sPOAXV0zlx1XST9VsLwAOOWnXBYeFHbveU5sGZVY4/iCiEAHJ1ukLp3dbKtsLKG4tbsukl07kXc7zBQ==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-13.3.0.tgz",
+ "integrity": "sha512-mvMd0PQMs9e71IFaHQp+WFtPQJOGZEhdg2nhwQdxAuXO5K4VsIgbwBiSvtelbIpVnxAa8Bj+63Wp2dzOYTi3+A==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/blob": "^3.17.1",
- "@wordpress/block-editor": "^10.0.10",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/core-data": "^5.0.4",
- "@wordpress/data": "^7.1.3",
- "@wordpress/date": "^4.17.1",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/element": "^4.15.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/html-entities": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/keyboard-shortcuts": "^3.15.3",
- "@wordpress/keycodes": "^3.17.1",
- "@wordpress/media-utils": "^4.8.1",
- "@wordpress/notices": "^3.17.3",
- "@wordpress/preferences": "^2.9.7",
- "@wordpress/reusable-blocks": "^3.15.10",
- "@wordpress/rich-text": "^5.15.3",
- "@wordpress/server-side-render": "^3.15.7",
- "@wordpress/url": "^3.18.1",
- "@wordpress/wordcount": "^3.17.1",
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/blob": "^3.26.0",
+ "@wordpress/block-editor": "^11.3.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/core-data": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/date": "^4.26.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/dom": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/experiments": "^0.8.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/html-entities": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/keyboard-shortcuts": "^4.3.0",
+ "@wordpress/keycodes": "^3.26.0",
+ "@wordpress/media-utils": "^4.17.0",
+ "@wordpress/notices": "^3.26.0",
+ "@wordpress/preferences": "^3.3.0",
+ "@wordpress/reusable-blocks": "^4.3.0",
+ "@wordpress/rich-text": "^6.3.0",
+ "@wordpress/server-side-render": "^4.3.0",
+ "@wordpress/url": "^3.27.0",
+ "@wordpress/wordcount": "^3.26.0",
"classnames": "^2.3.1",
+ "date-fns": "^2.28.0",
+ "escape-html": "^1.0.3",
"lodash": "^4.17.21",
"memize": "^1.1.0",
"react-autosize-textarea": "^7.1.0",
@@ -4602,51 +4610,76 @@
}
},
"@wordpress/element": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-4.15.1.tgz",
- "integrity": "sha512-Ut6zOMIbP99lWe7YIT/+Nhhu/P17uSBqau7AFK/oarrHicjlFmew5uc4olY5abdd3OtEpenGMq14vhuru47qGA==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-5.3.0.tgz",
+ "integrity": "sha512-sgBrPm9suYx9sAtMLnfqgJem54Vew+BvVRpQoKQjpoXAKklGKSr52xOERek2TZQuZl/hMCCdvScrLIIW96UNAw==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@types/react": "^17.0.37",
- "@types/react-dom": "^17.0.11",
- "@wordpress/escape-html": "^2.17.1",
+ "@types/react": "^18.0.21",
+ "@types/react-dom": "^18.0.6",
+ "@wordpress/escape-html": "^2.26.0",
"change-case": "^4.1.2",
"is-plain-object": "^5.0.0",
- "react": "^17.0.2",
- "react-dom": "^17.0.2"
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
},
"dependencies": {
"is-plain-object": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q=="
+ },
+ "react": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
+ "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
+ "requires": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "react-dom": {
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
+ "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.0"
+ }
+ },
+ "scheduler": {
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+ "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
+ "requires": {
+ "loose-envify": "^1.1.0"
+ }
}
}
},
"@wordpress/escape-html": {
- "version": "2.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.17.1.tgz",
- "integrity": "sha512-4Ymjqi5tdOyqoKw9rhqgHIdEd8W1hfFvk3Ws0LD40vup849iSxs59vnWGLJyH2WjF7ojGdX5H6RwGk81gFMN8w==",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.26.0.tgz",
+ "integrity": "sha512-uWumpNH4hnmeepTw9K3gC5LmoZECom5L1P6HuZXYXyld8eU5L9p/JdvAPOwLmjffHyJO3hiB2JqYd+nKElbtrw==",
"requires": {
"@babel/runtime": "^7.16.0"
}
},
"@wordpress/eslint-plugin": {
- "version": "13.4.0",
- "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-13.4.0.tgz",
- "integrity": "sha512-318QjzGildIdHJVAT26CFkYzoXW8w3RUTNzDJrJ+Hx9EHCg2TNOrUwW4rLwp9h32Gsw/QerhF9wzE/pueoYdYw==",
+ "version": "13.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/eslint-plugin/-/eslint-plugin-13.10.0.tgz",
+ "integrity": "sha512-FW3JryRMeUpdhbBi6n4bKPHoYUqwSZI/7jjmvObiUlr8uJfXRFRXfgYOCP8BiVjMyGDBpiMs95Fyf1QbQ79Img==",
"dev": true,
"requires": {
"@babel/eslint-parser": "^7.16.0",
"@typescript-eslint/eslint-plugin": "^5.3.0",
"@typescript-eslint/parser": "^5.3.0",
- "@wordpress/babel-preset-default": "^7.4.0",
- "@wordpress/prettier-config": "^2.3.0",
+ "@wordpress/babel-preset-default": "^7.10.0",
+ "@wordpress/prettier-config": "^2.9.0",
"cosmiconfig": "^7.0.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.25.2",
- "eslint-plugin-jest": "^25.2.3",
- "eslint-plugin-jsdoc": "^37.0.3",
+ "eslint-plugin-jest": "^27.2.1",
+ "eslint-plugin-jsdoc": "^39.6.9",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-prettier": "^3.3.0",
"eslint-plugin-react": "^7.27.0",
@@ -4655,140 +4688,67 @@
"requireindex": "^1.2.0"
},
"dependencies": {
- "@wordpress/babel-preset-default": {
- "version": "7.4.0",
- "resolved": "https://registry.npmjs.org/@wordpress/babel-preset-default/-/babel-preset-default-7.4.0.tgz",
- "integrity": "sha512-7drcVBIajDE8s3At7yUr9UdHROYkfPYgR4OaG+EugDn9MzuDIEsGalnazDYwvjerLAwsf8S/S8o34bi6IrthYQ==",
- "dev": true,
- "requires": {
- "@babel/core": "^7.16.0",
- "@babel/plugin-transform-react-jsx": "^7.16.0",
- "@babel/plugin-transform-runtime": "^7.16.0",
- "@babel/preset-env": "^7.16.0",
- "@babel/preset-typescript": "^7.16.0",
- "@babel/runtime": "^7.16.0",
- "@wordpress/babel-plugin-import-jsx-pragma": "^4.3.0",
- "@wordpress/browserslist-config": "^5.3.0",
- "@wordpress/element": "^4.18.0",
- "@wordpress/warning": "^2.20.0",
- "browserslist": "^4.17.6",
- "core-js": "^3.19.1"
- }
- },
- "@wordpress/element": {
- "version": "4.18.0",
- "resolved": "https://registry.npmjs.org/@wordpress/element/-/element-4.18.0.tgz",
- "integrity": "sha512-+3gA4RTD/EDj1h2y/qikh+h0uCUxhShfM7QoDngKOBNSTZHqc0W2p6IMEe+AMdrmu8tyZboTJW/eONjUHE4n7g==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.16.0",
- "@types/react": "^17.0.37",
- "@types/react-dom": "^17.0.11",
- "@wordpress/escape-html": "^2.20.0",
- "change-case": "^4.1.2",
- "is-plain-object": "^5.0.0",
- "react": "^17.0.2",
- "react-dom": "^17.0.2"
- }
- },
- "@wordpress/escape-html": {
- "version": "2.20.0",
- "resolved": "https://registry.npmjs.org/@wordpress/escape-html/-/escape-html-2.20.0.tgz",
- "integrity": "sha512-bhHkFQrEkuJjhSB6OlQq/Kq+43k8E6JwUw/pCDAjJX2uU/DDG3tW3eftYn2ae7W23bPrNEs1/qULWzbaziPQnw==",
+ "globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
"dev": true,
"requires": {
- "@babel/runtime": "^7.16.0"
+ "type-fest": "^0.20.2"
}
- },
- "@wordpress/warning": {
- "version": "2.20.0",
- "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.20.0.tgz",
- "integrity": "sha512-swTE3rUbk00rddyrQo2sA6yojbzNYUXTntAHbfoF68AC53i7cFunB3Bcod+paDPGR0gq1mr3rfatrWHze8qz3Q==",
- "dev": true
- },
- "browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
- "dev": true,
- "requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
- }
- },
- "electron-to-chromium": {
- "version": "1.4.284",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
- "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==",
- "dev": true
- },
- "globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
- "dev": true,
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "is-plain-object": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
- "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
- "dev": true
- },
- "node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
- "dev": true
}
}
},
+ "@wordpress/experiments": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/experiments/-/experiments-0.8.0.tgz",
+ "integrity": "sha512-3IPbENoxHWjIe/fVSsbB6jh5kC94pqwe3sZsX+iLVV/ritGr0XVoML0pZLrM+8m+U4roTyGiD23Xq6mmBK7ykg==",
+ "requires": {
+ "@babel/runtime": "^7.16.0"
+ }
+ },
"@wordpress/format-library": {
- "version": "3.15.10",
- "resolved": "https://registry.npmjs.org/@wordpress/format-library/-/format-library-3.15.10.tgz",
- "integrity": "sha512-145Hdgxx1YuR2Vj78dX4VoUbZ0pvhzwgCYgtFSoy4D7wB5BjZUwWpCO3HLUdCNfq0Yq6/4TlsiCiurgVsfkRpQ==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/format-library/-/format-library-4.3.0.tgz",
+ "integrity": "sha512-bBKuIOrRV6bGL9I6eI9we4PzGrqKY204UME4k/5qlXDC2z9nevtxXHcfJBN+6sMlWFdbulC4nfpfbAH44/6hOQ==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/block-editor": "^10.0.10",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/data": "^7.1.3",
- "@wordpress/element": "^4.15.1",
- "@wordpress/html-entities": "^3.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/rich-text": "^5.15.3",
- "@wordpress/url": "^3.18.1"
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/block-editor": "^11.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/html-entities": "^3.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/rich-text": "^6.3.0",
+ "@wordpress/url": "^3.27.0"
}
},
"@wordpress/hooks": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.17.1.tgz",
- "integrity": "sha512-t079aqzZ4nJmUdnYfLpahlZsmrxd3MVV+UvQqwxppqxayqXkZP1F+e/KmehRCsD28IbP7R3LAfg+AGJ+SNhZQg==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/hooks/-/hooks-3.26.0.tgz",
+ "integrity": "sha512-NYFnKttKLdkr7OZMqqRgsuQy1LMHjK7tkrGO9NWgrGkvwsaWEIn0hI65za9/TJnUccEBMwl9knsiGA4Fwe7dAA==",
"requires": {
"@babel/runtime": "^7.16.0"
}
},
"@wordpress/html-entities": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.17.1.tgz",
- "integrity": "sha512-iatXmkCs6C2N4DCFY08SCUqlGVRLxw1ejQ0CvIQ3aJV1LR5w4oYVHWm3+ac4wzUIK5bBucfCLWrTCmw/hDz3Uw==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.26.0.tgz",
+ "integrity": "sha512-F4C/tpVWx4I+ShYVinOPJxL7zGjUdT2D6WOT1hTDlvGi5M5wYtgQICs/9KcUf5uMThfu5Oz6Qzu/mqrlvLilQQ==",
"requires": {
"@babel/runtime": "^7.16.0"
}
},
"@wordpress/i18n": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.17.1.tgz",
- "integrity": "sha512-LGtAEH0Z46eleGrj2juUTxU5nVFTkesQlJhWggcIMP8zgR9oAVwYNqxrGXCNCkw9QM9RyJdiAgRs1HJmoq/UUA==",
+ "version": "4.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/i18n/-/i18n-4.26.0.tgz",
+ "integrity": "sha512-W94aIByO+3YraI7fJbk+3STnz3e0hhrtBPPjKK1XvT4+3RZiKPaVN2Y8mvCCknbaAILCT+CixUBJOgq6m6bwjQ==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/hooks": "^3.17.1",
+ "@wordpress/hooks": "^3.26.0",
"gettext-parser": "^1.3.1",
"memize": "^1.1.0",
"sprintf-js": "^1.1.1",
@@ -4796,47 +4756,47 @@
}
},
"@wordpress/icons": {
- "version": "9.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.8.1.tgz",
- "integrity": "sha512-T0+i4fDqX97/V1bXzffhm3OuzzD8l+6+6/XHibSTUNB96yulKxy7WUVzPv1zsrIvEOyWGFp1jQMbx8ylNAhm1g==",
+ "version": "9.17.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.17.0.tgz",
+ "integrity": "sha512-bz906ftwaUgFFZB7/yrLswl43y4C14eEDhPamJ+3o45VwSr0yeKPFVNF1uOx/uNrRjihZnAyQaqs12/C7L27NQ==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/element": "^4.15.1",
- "@wordpress/primitives": "^3.15.1"
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/primitives": "^3.24.0"
}
},
"@wordpress/interface": {
- "version": "4.16.7",
- "resolved": "https://registry.npmjs.org/@wordpress/interface/-/interface-4.16.7.tgz",
- "integrity": "sha512-VGnAAzJXL21Auasixqz2JfO4Mne/kSly3gLrMGG9KO6AUScBjHgii9YB4Arsz9oMaqom+KboO4jp/VLCL1+SoA==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/interface/-/interface-5.3.0.tgz",
+ "integrity": "sha512-7WGXp1/a4YPKVYXTByOZ1GSqQMfftogIcw4Gb6wUsMItQcj1HCQHPbGxl7q0YAZZLEy5IzOpDKHks6KxPBypYg==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/data": "^7.1.3",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/element": "^4.15.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/plugins": "^4.15.2",
- "@wordpress/preferences": "^2.9.7",
- "@wordpress/viewport": "^4.15.3",
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/plugins": "^5.3.0",
+ "@wordpress/preferences": "^3.3.0",
+ "@wordpress/viewport": "^5.3.0",
"classnames": "^2.3.1"
}
},
"@wordpress/is-shallow-equal": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-4.17.1.tgz",
- "integrity": "sha512-KapoKQCp60Eaa/P9oaAXW9H6ml4Sys1i7ydnpSgWh1PFDXy95Omj7CoYn3ZwuujT+Vv8QzCarW+dOOjdm/oz3w==",
+ "version": "4.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/is-shallow-equal/-/is-shallow-equal-4.26.0.tgz",
+ "integrity": "sha512-NuCcnQs+UbMi8ZHLYHDeH+pC56CFrDfc1oD7y4J02RMcBZ+zwP1zg8XWDFC37r+KJM4Xy7lHThZq0nCIAKpjiw==",
"requires": {
"@babel/runtime": "^7.16.0"
}
},
"@wordpress/jest-console": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-6.3.0.tgz",
- "integrity": "sha512-WnpXPqRNTo7OBnUEvC7mJufEZUNZXlScnRx3MHFOErzhCzed03t+x2hQHamhYpUrE2hZLwfKugN9WYDzh2mTtA==",
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-console/-/jest-console-6.9.0.tgz",
+ "integrity": "sha512-ppIbCF9WTF7Pg6zhAlUI1fa3kQFqv4ME9jhJrRMMHL3fkqKMSsR9RdP0auxPWd0/BvA98zS3KgaR7Zpq8CWgPQ==",
"dev": true,
"requires": {
"@babel/runtime": "^7.16.0",
@@ -4844,130 +4804,127 @@
}
},
"@wordpress/jest-preset-default": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-9.1.0.tgz",
- "integrity": "sha512-K8QwvAgpD8oW10ERejKyqxXCE43+QF3LmUlpDHBhRaMZsZGmcLAZBa1cOm7rcfeQ4jkg9uYv30Qp/NI30I3C5A==",
+ "version": "10.7.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/jest-preset-default/-/jest-preset-default-10.7.0.tgz",
+ "integrity": "sha512-rMf+HS75o06+teQTBkEH4R7RobaIwG4HoVvLnfuSan0EnkyqcXadQ1tyFNKPT8rA6nB/wJn649dibE1+UMSUpw==",
"dev": true,
"requires": {
- "@wojtekmaj/enzyme-adapter-react-17": "^0.6.1",
- "@wordpress/jest-console": "^6.1.0",
- "babel-jest": "^27.4.5",
- "enzyme": "^3.11.0",
- "enzyme-to-json": "^3.4.4"
+ "@wordpress/jest-console": "^6.9.0",
+ "babel-jest": "^27.4.5"
}
},
"@wordpress/keyboard-shortcuts": {
- "version": "3.15.3",
- "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-3.15.3.tgz",
- "integrity": "sha512-dZ0VkwXk5BWf2J01dW+UruXiDimd8j1eR+BcApz8O9q1DVEnwdv66c9aw3RAcbeCm1vRQra6STYOPZOyYz6gLw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-4.3.0.tgz",
+ "integrity": "sha512-8CCqWF43uW06xHXLG8FquassPKdOUw0NJC1GOOghMb7xgqe0SXeltfXHr7saTciVyyFCy6WYO4GYxbLWglTcOQ==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/data": "^7.1.3",
- "@wordpress/element": "^4.15.1",
- "@wordpress/keycodes": "^3.17.1",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/keycodes": "^3.26.0",
"rememo": "^4.0.0"
}
},
"@wordpress/keycodes": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.17.1.tgz",
- "integrity": "sha512-9N/AYmqt5WWVouYAFaw8cbmxmOOTJSph/lW+8/t3PABOzbNLE5B/cXACIhrvvwMhzt3TS371/NxF8sTPWKRJqw==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/keycodes/-/keycodes-3.26.0.tgz",
+ "integrity": "sha512-W0ljzR6dl6ugp94xN+QlzKe4l3WrzWW6TeiQN/1XAVUmQTsBhNTsudK0u8sDXwXvT79HLuSg2zIJsHwI2z1r/w==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/i18n": "^4.17.1",
+ "@wordpress/i18n": "^4.26.0",
"change-case": "^4.1.2",
"lodash": "^4.17.21"
}
},
"@wordpress/list-reusable-blocks": {
- "version": "3.15.7",
- "resolved": "https://registry.npmjs.org/@wordpress/list-reusable-blocks/-/list-reusable-blocks-3.15.7.tgz",
- "integrity": "sha512-YxNGwMVyVL9tdzPVTlkvyPym2uwsCKZzDZyw8efOAkHcA07+b4KctTSsWYHH53czkJegHaAt6zX2VPbrRAHeCg==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/list-reusable-blocks/-/list-reusable-blocks-4.3.0.tgz",
+ "integrity": "sha512-uGOExFW3llOPrud0IJcFRNnzdXZyg+kpEb/vq0xdb0TONcLxx5hfYVgxQqeFFnSkpuM1/CMIq+3YHV5ksDhIJw==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/element": "^4.15.1",
- "@wordpress/i18n": "^4.17.1",
- "lodash": "^4.17.21"
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/i18n": "^4.26.0",
+ "change-case": "^4.1.2"
}
},
"@wordpress/media-utils": {
- "version": "4.8.1",
- "resolved": "https://registry.npmjs.org/@wordpress/media-utils/-/media-utils-4.8.1.tgz",
- "integrity": "sha512-jdXASGLQoKCDBCoz8yksXcXrDnRTLD/ADKsylK+oIuz4iw/UBwh+WDAiAtUYVfE4CF4IOY0JC5E/c/7ybwD0JA==",
+ "version": "4.17.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/media-utils/-/media-utils-4.17.0.tgz",
+ "integrity": "sha512-N3stwXuvAGtmDcZWM6zzFa77L1rk5N8idUAaCbU74/TYRVpVl9OhjWY/KdEK7XWIE8zTy5bmEY7y733PcmbmPg==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/blob": "^3.17.1",
- "@wordpress/element": "^4.15.1",
- "@wordpress/i18n": "^4.17.1"
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/blob": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/i18n": "^4.26.0"
}
},
"@wordpress/notices": {
- "version": "3.17.3",
- "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-3.17.3.tgz",
- "integrity": "sha512-W3LS+F4XFwHUXR9TqctpW+zJYDRrpCLbVai2NI+HneAkFZEOb+khMzJcGJmCiZJGh5EhY5jfgUgWL3AcAbrtGA==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-3.26.0.tgz",
+ "integrity": "sha512-wf5VLyCp5YJGlSJ9tXRf6Xly0oTwthtO6PNUBbfwV4cPhM670CG/HCExhDDr+Llmnlrffd1Aih3St8PYjXsATQ==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/data": "^7.1.3"
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/data": "^8.3.0"
}
},
"@wordpress/npm-package-json-lint-config": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.5.0.tgz",
- "integrity": "sha512-UdPtZmvBKI6ygsLsGMxDJjt9H2S2M//rHSSHPMpy5nmLGft890c0+cQwoIPhJpGis3pC5r1Bh8zCrzVZqoBHVQ==",
+ "version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/npm-package-json-lint-config/-/npm-package-json-lint-config-4.11.0.tgz",
+ "integrity": "sha512-xqc/RH/djM3qNB0OEip8Jj81AsKKf4fQGoKkE6XVeTcpBwbNRyswj5uBHCmgBbN/OjEoXBxDokchg8P1IGHLpQ==",
"dev": true
},
"@wordpress/nux": {
- "version": "5.15.7",
- "resolved": "https://registry.npmjs.org/@wordpress/nux/-/nux-5.15.7.tgz",
- "integrity": "sha512-8slrY+EfeR/qvVtV3X43tyk9sXi+RtCUQNNn6EQRNWFAgi2TLQZR9QOI0fNbqUHW7By39Jf3tGPZZLzBLeHbaw==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/nux/-/nux-6.0.0.tgz",
+ "integrity": "sha512-9zv7SpCnsoSWw3Gh7Am4TqlSRrA38MSZG8kkPa1RqfuTeonMS3ptIGFMu9I/gA4//+cNxYRW6NeWosZlhlDVlQ==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/data": "^7.1.3",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/element": "^4.15.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
+ "@wordpress/components": "^23.0.0",
+ "@wordpress/compose": "^6.0.0",
+ "@wordpress/data": "^8.0.0",
+ "@wordpress/deprecated": "^3.23.0",
+ "@wordpress/element": "^5.0.0",
+ "@wordpress/i18n": "^4.23.0",
+ "@wordpress/icons": "^9.14.0",
"rememo": "^4.0.0"
}
},
"@wordpress/plugins": {
- "version": "4.15.2",
- "resolved": "https://registry.npmjs.org/@wordpress/plugins/-/plugins-4.15.2.tgz",
- "integrity": "sha512-OUtfStK+WeV14wYByJQCtVnO7Vvcf3Cym45mavCLLk47nHo/bpvoUR+S77QN6t6CZUYdNMNP+5LIi/eKFxUUqg==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/plugins/-/plugins-5.3.0.tgz",
+ "integrity": "sha512-BZIMDcWBIZJzFxPjxsWA2WmYT3GLj4m7lSotNEkcnvQxOjpH34kSky035M5Bz/ChL+GdDiVIuUmno4e5tlCudw==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/element": "^4.15.1",
- "@wordpress/hooks": "^3.17.1",
- "@wordpress/icons": "^9.8.1",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/hooks": "^3.26.0",
+ "@wordpress/icons": "^9.17.0",
"memize": "^1.1.0"
}
},
"@wordpress/postcss-plugins-preset": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.4.0.tgz",
- "integrity": "sha512-KAy+HqPbl/yHGsvWgzfRPonQM7hJ1Zy6ABuwFAk/gqTy2v28InBhyZLSVJAjxMgh0Cxfyfgn+XYIHwlzMTvTXg==",
+ "version": "4.10.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/postcss-plugins-preset/-/postcss-plugins-preset-4.10.0.tgz",
+ "integrity": "sha512-hurPICllpkAPlXbRkye7vsj4W+4LdhJhNoloSzgE9c7gWXmrlBFqk71G+6JrODmj2M9SIxBfth7Myn7VUfr2kQ==",
"dev": true,
"requires": {
- "@wordpress/base-styles": "^4.11.0",
+ "@wordpress/base-styles": "^4.17.0",
"autoprefixer": "^10.2.5"
},
"dependencies": {
"autoprefixer": {
- "version": "10.4.12",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.12.tgz",
- "integrity": "sha512-WrCGV9/b97Pa+jtwf5UGaRjgQIg7OK3D06GnoYoZNcG1Xb8Gt3EfuKjlhh9i/VtT16g6PYjZ69jdJ2g8FxSC4Q==",
+ "version": "10.4.13",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
+ "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==",
"dev": true,
"requires": {
"browserslist": "^4.21.4",
- "caniuse-lite": "^1.0.30001407",
+ "caniuse-lite": "^1.0.30001426",
"fraction.js": "^4.2.0",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
@@ -4975,17 +4932,23 @@
}
},
"browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.21.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
}
},
+ "caniuse-lite": {
+ "version": "1.0.30001450",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz",
+ "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==",
+ "dev": true
+ },
"electron-to-chromium": {
"version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
@@ -4993,9 +4956,9 @@
"dev": true
},
"node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz",
+ "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==",
"dev": true
},
"postcss-value-parser": {
@@ -5007,57 +4970,57 @@
}
},
"@wordpress/preferences": {
- "version": "2.9.7",
- "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-2.9.7.tgz",
- "integrity": "sha512-DEcX6IjYbFO7/DU2LjNYM7Q51EOX0pKWrFkyqQhEht8dIxUrSiVSkNk/5Y1Pum/j5Dhjq85f4wKOPcrI/PNLog==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-3.3.0.tgz",
+ "integrity": "sha512-+Y6Xv6AvqW9ipbG+05Yg9BDh4Kd8Q8PiUZwRnBJ0ZdM8ZI61o6cF7XNcBCb8A2ciEK8UgljvnypYSSWkeKA42g==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/components": "^21.0.7",
- "@wordpress/data": "^7.1.3",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
"classnames": "^2.3.1"
}
},
"@wordpress/preferences-persistence": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/@wordpress/preferences-persistence/-/preferences-persistence-1.9.1.tgz",
- "integrity": "sha512-zOwT+9cOCeHt2Qa7I1yQBfV5duj1dC93BCmuuYDMGHkAqCZdy1IJaX64ZRIoEfl7cq/rtMM/UFWeXg4KIARluw==",
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/preferences-persistence/-/preferences-persistence-1.18.0.tgz",
+ "integrity": "sha512-DskPA5yIGa6zJZvOE2scoZixf1Dz+oNUXXOfs51PTH/a0t1xt7hMvEWyql5H2TDeMeK/N2ckvid6m0oTsIO9+w==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.14.1"
+ "@wordpress/api-fetch": "^6.23.0"
}
},
"@wordpress/prettier-config": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-2.3.0.tgz",
- "integrity": "sha512-eqeiUvwogvtVTFZ+H0ZRY2EZNBXiyw3XbqGbi4Om15yAaMrnlm8NfUow2yHepYKkW/wWVr1tqBFQN7gZBPtYCQ==",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/prettier-config/-/prettier-config-2.9.0.tgz",
+ "integrity": "sha512-Y6Huuwr0XzVAREsALqQ+Il2SI5da0uTiysNd6Rq4hFPvjolsiFKCZYdniow6VpTXm5iVMGdKQIOoC3awSyTAXA==",
"dev": true
},
"@wordpress/primitives": {
- "version": "3.15.1",
- "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.15.1.tgz",
- "integrity": "sha512-vt4SzpLv9u/LaOXV1j5x1KIbiOdCNB2C9ChbeyMsay89EhJ/qPVfahOwToOiVFyGPKn/uWAg05pwpsHoy8UVIQ==",
+ "version": "3.24.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.24.0.tgz",
+ "integrity": "sha512-VX5iS6VKdMRC+mkd5EOjeq3wfWITPRnTWzTHGH9ozYWHNukE9+yOkeLlmTpW1yTy/IZxSFDGg+vAMDe85lf9oA==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/element": "^4.15.1",
+ "@wordpress/element": "^5.3.0",
"classnames": "^2.3.1"
}
},
"@wordpress/priority-queue": {
- "version": "2.17.2",
- "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-2.17.2.tgz",
- "integrity": "sha512-MiaTOc5f74Zhrbdjs6qsxWt+ganrN1rcGQoVTfr0zDn28KBOOcF240p2P8QtpQB+h8dMbhkybJgXjoH7+5v5gg==",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/priority-queue/-/priority-queue-2.26.0.tgz",
+ "integrity": "sha512-05/HC5hya6qKKxiydA7F/Gac97J5GzRCYU7tvCMtFKR0mY6ZQzxagq5i4az5W3mGTuB2X6PTXR5HhQ1c4fxnTQ==",
"requires": {
"@babel/runtime": "^7.16.0",
"requestidlecallback": "^0.3.0"
}
},
"@wordpress/redux-routine": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-4.17.1.tgz",
- "integrity": "sha512-wcDOtxncxZp7KzQ83Qf22bhEuS8TKgdGrKli18QXg+ekQAgWUzptUCuhBdGa70XXtDFBJ/ul+th/kR0O939O9Q==",
+ "version": "4.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/redux-routine/-/redux-routine-4.26.0.tgz",
+ "integrity": "sha512-CzkyU8+SD7ZrMcQGYyfVfuAJzK69td6YMx9yOYrHh/Ow2mImls2FdcNmQNGMBEAc8qXd9Ub+FyUMAui8IbFI4g==",
"requires": {
"@babel/runtime": "^7.16.0",
"is-plain-object": "^5.0.0",
@@ -5073,59 +5036,58 @@
}
},
"@wordpress/reusable-blocks": {
- "version": "3.15.10",
- "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-3.15.10.tgz",
- "integrity": "sha512-biMo8OBPre9dLQMFZAbJmutyb7QXtYjjiUxy664gNS3uykUEOo0l90tMxbQHIi79hgZsP5towFqdvTYaZ4I2LA==",
- "requires": {
- "@wordpress/block-editor": "^10.0.10",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/core-data": "^5.0.4",
- "@wordpress/data": "^7.1.3",
- "@wordpress/element": "^4.15.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/notices": "^3.17.3",
- "@wordpress/url": "^3.18.1"
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-4.3.0.tgz",
+ "integrity": "sha512-eSbk9tgwsyStn/R8CX6ppFizCyM3sevdRcYa0qJIPn1f+iBuvSG52iMbEX9J6LxFwTMJcZctMEmy+gHhLBUGGw==",
+ "requires": {
+ "@wordpress/block-editor": "^11.3.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/core-data": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/notices": "^3.26.0",
+ "@wordpress/url": "^3.27.0"
}
},
"@wordpress/rich-text": {
- "version": "5.15.3",
- "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-5.15.3.tgz",
- "integrity": "sha512-ZXXmluAPzUSPOEpK86Yovx+mp3io8U/wBVBM+zJ7pU2bg0Gr2ziag48F24yHVZ+X+eQIJnjAyDX8ybjL5391ug==",
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-6.3.0.tgz",
+ "integrity": "sha512-lS/EVrke8AZEqvv+pWbZTEQaR+tAXUALO0vZfxpvv4XUopMa2bFVO6+ECwJ4gEy7iD7wRH1o5evvF0oPlsgHlg==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/a11y": "^3.17.1",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/data": "^7.1.3",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/element": "^4.15.1",
- "@wordpress/escape-html": "^2.17.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/keycodes": "^3.17.1",
- "lodash": "^4.17.21",
+ "@wordpress/a11y": "^3.26.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/escape-html": "^2.26.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/keycodes": "^3.26.0",
"memize": "^1.1.0",
"rememo": "^4.0.0"
}
},
"@wordpress/scripts": {
- "version": "24.1.2",
- "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-24.1.2.tgz",
- "integrity": "sha512-+rKzwGerbZIYT1h155oRiR9RRKYFs56tQyKrQGdVhIyLO/r2OLavsbTZHeuMUviic073KJMuTGhiwUSuYzdpUg==",
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-25.3.0.tgz",
+ "integrity": "sha512-D6T+qI4UZRqfSxZK50ijxLFXMZm64INdkB8PZNfwN6lW5Tf/FWoA1sWxHWL7V5E6k08u5luSceibcNHeHIfRzA==",
"dev": true,
"requires": {
"@babel/core": "^7.16.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.2",
"@svgr/webpack": "^6.2.1",
- "@wordpress/babel-preset-default": "^7.1.1",
- "@wordpress/browserslist-config": "^5.0.1",
- "@wordpress/dependency-extraction-webpack-plugin": "^4.0.2",
- "@wordpress/eslint-plugin": "^13.1.1",
- "@wordpress/jest-preset-default": "^9.0.1",
- "@wordpress/npm-package-json-lint-config": "^4.2.1",
- "@wordpress/postcss-plugins-preset": "^4.1.1",
- "@wordpress/prettier-config": "^2.0.1",
- "@wordpress/stylelint-config": "^21.0.1",
+ "@wordpress/babel-preset-default": "^7.10.0",
+ "@wordpress/browserslist-config": "^5.9.0",
+ "@wordpress/dependency-extraction-webpack-plugin": "^4.9.0",
+ "@wordpress/eslint-plugin": "^13.10.0",
+ "@wordpress/jest-preset-default": "^10.7.0",
+ "@wordpress/npm-package-json-lint-config": "^4.11.0",
+ "@wordpress/postcss-plugins-preset": "^4.10.0",
+ "@wordpress/prettier-config": "^2.9.0",
+ "@wordpress/stylelint-config": "^21.9.0",
"adm-zip": "^0.5.9",
"babel-jest": "^27.4.5",
"babel-loader": "^8.2.3",
@@ -5172,9 +5134,9 @@
},
"dependencies": {
"ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -5208,17 +5170,23 @@
"dev": true
},
"browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.21.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
}
},
+ "caniuse-lite": {
+ "version": "1.0.30001450",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz",
+ "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==",
+ "dev": true
+ },
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -5300,36 +5268,36 @@
"dev": true
},
"cssnano": {
- "version": "5.1.13",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz",
- "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==",
+ "version": "5.1.14",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz",
+ "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==",
"dev": true,
"requires": {
- "cssnano-preset-default": "^5.2.12",
+ "cssnano-preset-default": "^5.2.13",
"lilconfig": "^2.0.3",
"yaml": "^1.10.2"
}
},
"cssnano-preset-default": {
- "version": "5.2.12",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz",
- "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==",
+ "version": "5.2.13",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz",
+ "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==",
"dev": true,
"requires": {
- "css-declaration-sorter": "^6.3.0",
+ "css-declaration-sorter": "^6.3.1",
"cssnano-utils": "^3.1.0",
"postcss-calc": "^8.2.3",
"postcss-colormin": "^5.3.0",
- "postcss-convert-values": "^5.1.2",
+ "postcss-convert-values": "^5.1.3",
"postcss-discard-comments": "^5.1.2",
"postcss-discard-duplicates": "^5.1.0",
"postcss-discard-empty": "^5.1.1",
"postcss-discard-overridden": "^5.1.0",
- "postcss-merge-longhand": "^5.1.6",
- "postcss-merge-rules": "^5.1.2",
+ "postcss-merge-longhand": "^5.1.7",
+ "postcss-merge-rules": "^5.1.3",
"postcss-minify-font-values": "^5.1.0",
"postcss-minify-gradients": "^5.1.1",
- "postcss-minify-params": "^5.1.3",
+ "postcss-minify-params": "^5.1.4",
"postcss-minify-selectors": "^5.2.1",
"postcss-normalize-charset": "^5.1.0",
"postcss-normalize-display-values": "^5.1.0",
@@ -5337,11 +5305,11 @@
"postcss-normalize-repeat-style": "^5.1.1",
"postcss-normalize-string": "^5.1.0",
"postcss-normalize-timing-functions": "^5.1.0",
- "postcss-normalize-unicode": "^5.1.0",
+ "postcss-normalize-unicode": "^5.1.1",
"postcss-normalize-url": "^5.1.0",
"postcss-normalize-whitespace": "^5.1.1",
"postcss-ordered-values": "^5.1.3",
- "postcss-reduce-initial": "^5.1.0",
+ "postcss-reduce-initial": "^5.1.1",
"postcss-reduce-transforms": "^5.1.0",
"postcss-svgo": "^5.1.0",
"postcss-unique-selectors": "^5.1.1"
@@ -5462,9 +5430,9 @@
"dev": true
},
"node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz",
+ "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==",
"dev": true
},
"nth-check": {
@@ -5492,9 +5460,9 @@
"dev": true
},
"postcss": {
- "version": "8.4.18",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz",
- "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==",
+ "version": "8.4.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
+ "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
"dev": true,
"requires": {
"nanoid": "^3.3.4",
@@ -5525,12 +5493,12 @@
}
},
"postcss-convert-values": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz",
- "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
+ "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
"dev": true,
"requires": {
- "browserslist": "^4.20.3",
+ "browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
}
},
@@ -5559,22 +5527,22 @@
"dev": true
},
"postcss-merge-longhand": {
- "version": "5.1.6",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz",
- "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==",
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
+ "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
"dev": true,
"requires": {
"postcss-value-parser": "^4.2.0",
- "stylehacks": "^5.1.0"
+ "stylehacks": "^5.1.1"
}
},
"postcss-merge-rules": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz",
- "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz",
+ "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"caniuse-api": "^3.0.0",
"cssnano-utils": "^3.1.0",
"postcss-selector-parser": "^6.0.5"
@@ -5601,12 +5569,12 @@
}
},
"postcss-minify-params": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz",
- "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
+ "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"cssnano-utils": "^3.1.0",
"postcss-value-parser": "^4.2.0"
}
@@ -5672,12 +5640,12 @@
}
},
"postcss-normalize-unicode": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz",
- "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
+ "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"postcss-value-parser": "^4.2.0"
}
},
@@ -5711,12 +5679,12 @@
}
},
"postcss-reduce-initial": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz",
- "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz",
+ "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"caniuse-api": "^3.0.0"
}
},
@@ -5730,9 +5698,9 @@
}
},
"postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
+ "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
@@ -5817,12 +5785,12 @@
}
},
"stylehacks": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz",
- "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
+ "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
"dev": true,
"requires": {
- "browserslist": "^4.16.6",
+ "browserslist": "^4.21.4",
"postcss-selector-parser": "^6.0.4"
}
},
@@ -5859,45 +5827,45 @@
}
},
"@wordpress/server-side-render": {
- "version": "3.15.7",
- "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-3.15.7.tgz",
- "integrity": "sha512-oeSg1tK+0f3sc9gOzAQzHX1y7akbv1OVPJvJx7RrBy4N4iCXVGJUIqv6XancMshIj+5lQKFobItfYhETGY2GuA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-4.3.0.tgz",
+ "integrity": "sha512-YsFSQio6zHRPi4AOEa6HFNjwy5T8ijsiR+COAdlrKjf7k4WtD1jNi7x7mVX/YY+hfIaEPZ8nCVtRQFHIQXWdng==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/data": "^7.1.3",
- "@wordpress/deprecated": "^3.17.1",
- "@wordpress/element": "^4.15.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/url": "^3.18.1",
- "lodash": "^4.17.21"
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/deprecated": "^3.26.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/url": "^3.27.0",
+ "fast-deep-equal": "^3.1.3"
}
},
"@wordpress/shortcode": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-3.17.1.tgz",
- "integrity": "sha512-DLM35NtGcAOCltpOf5Uz7s7NRgwOkVwWPLUWDvUS1iFL2S9R3EOc7c7yYZr18yV6C2qB+QAuq+NKvESw6aoTsQ==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-3.26.0.tgz",
+ "integrity": "sha512-8V7v6d1hqZCkdB0qVxhSqwUYYI0RSP3M7EDqGqiWs/Hu53VIMHGOf/nT9KTRRhx+1iAC4ohpUUtFWaop3dhE3Q==",
"requires": {
"@babel/runtime": "^7.16.0",
"memize": "^1.1.0"
}
},
"@wordpress/style-engine": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-1.0.3.tgz",
- "integrity": "sha512-///EPfjHCv5PDQ6cu6H/XtLK4vi3mZ9lWojVU2wAluS2NrrOHpmL8kkBLwcuJHuJpKjgCkRMrtQwW8uqCrXAsw==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-1.9.0.tgz",
+ "integrity": "sha512-U/dGGZsQ613n7Rq18o3DvJau8AYvAHCa2qghOd0FBCDzO+kKkUMsIxUuCRCJktmRG/dpoLPAi7gbFqsqfxeGSg==",
"requires": {
"@babel/runtime": "^7.16.0",
"lodash": "^4.17.21"
}
},
"@wordpress/stylelint-config": {
- "version": "21.3.0",
- "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.3.0.tgz",
- "integrity": "sha512-bjb7jMafEiPdZ5deq1QdGnxvOLDiRcHqCMDPG6kRflb9TYQ1H1yDBC5r4nUm60wTN/xy/du80zCdNuDe2N2Nrg==",
+ "version": "21.9.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/stylelint-config/-/stylelint-config-21.9.0.tgz",
+ "integrity": "sha512-o5TMSX4ww3glf8A6byHnfwodMVB95dH0KoQ4nm5T9KMtsBYNd87HdM9WkVGVsFGb7oZlpL1ydREmlhsQh8sKYw==",
"dev": true,
"requires": {
"stylelint-config-recommended": "^6.0.0",
@@ -5905,63 +5873,61 @@
}
},
"@wordpress/token-list": {
- "version": "2.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-2.17.1.tgz",
- "integrity": "sha512-7Xe2ecMZmULP/uZILUXcC+LzIdcmsEb24pU8QzegvgyMzTjs4h+DOJkQBtNP8Hyau+/9CNNG8jTGP+AT/cyRIA==",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-2.26.0.tgz",
+ "integrity": "sha512-QRKvswtbMk+QN7oxbCzrrFQ7IpM/Rsi8QjdSdpORIwYbWMO00UPfBm2qDKSwIw9YK3Ucmq164YFm2Xeg0AO+oQ==",
"requires": {
"@babel/runtime": "^7.16.0"
}
},
"@wordpress/url": {
- "version": "3.18.1",
- "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.18.1.tgz",
- "integrity": "sha512-kzfoVfDQsFuswvnnYOjsYG3J9VNFH7Nx8Q+/evvsO7N+QN02v2vpHHg582VjAbHJa7VfHrIw+GjLsr8YL6sa2A==",
+ "version": "3.27.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.27.0.tgz",
+ "integrity": "sha512-iHFpDeI+m6SUpmy/zVnRIdIYCQIkfUPevJ9WupnUB34eopeT4ugpbYRUhopNIZShM9HXjaSeViFbRMIqA3PwDg==",
"requires": {
"@babel/runtime": "^7.16.0",
"remove-accents": "^0.4.2"
}
},
"@wordpress/viewport": {
- "version": "4.15.3",
- "resolved": "https://registry.npmjs.org/@wordpress/viewport/-/viewport-4.15.3.tgz",
- "integrity": "sha512-7+V5kiuZ7SmkT7RcGgxZEigN4HIEvQ7lnPYPonGrwurOaXL7NPGCIrYiS5QLgFwqm/uao9RGXhTE3fyZKEDV1A==",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/viewport/-/viewport-5.3.0.tgz",
+ "integrity": "sha512-4zhib0jimNF38rBIgSaNz5zcbkCbjrtXQXC2GvN4QmuhLMA4JzKi7jt/6aJ4Cy1NJXqUUQe42tL0bfi1iguIAw==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/data": "^7.1.3",
- "lodash": "^4.17.21"
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/data": "^8.3.0"
}
},
"@wordpress/warning": {
- "version": "2.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.17.1.tgz",
- "integrity": "sha512-Ursa3UgwUoatO5XNkPw3a+JM5t/7r0x+fMAYCC4IlBjnC4iWK4H3pPqC0NwkScUOtRKI9K6FBuEB86rlCid4yw=="
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.26.0.tgz",
+ "integrity": "sha512-nGupksgetlQAzF2E0rAHH17v+uKDarBGto9UduUIsiivYqJdJ/x2f3HopxPrGRDqEjOkPXoywQb9haNMU2zVmg=="
},
"@wordpress/widgets": {
- "version": "2.15.10",
- "resolved": "https://registry.npmjs.org/@wordpress/widgets/-/widgets-2.15.10.tgz",
- "integrity": "sha512-2RSFIBje0D2sbPBmIjzCS9j5lHWWetvcZmozRCXIMrZqB713vdqxZxLwXWUvKt43Sgu9pWYioQ+Zs/FIt6MUhA==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/widgets/-/widgets-3.3.0.tgz",
+ "integrity": "sha512-frnLnCzyQ7GyAQgqoOapt11YnHS4K0YMdW9VwwEJOTjcTb93pPUClenF24CIqUwv+1ahww197nDiUXnegrq5Bw==",
"requires": {
"@babel/runtime": "^7.16.0",
- "@wordpress/api-fetch": "^6.14.1",
- "@wordpress/block-editor": "^10.0.10",
- "@wordpress/blocks": "^11.16.4",
- "@wordpress/components": "^21.0.7",
- "@wordpress/compose": "^5.15.2",
- "@wordpress/core-data": "^5.0.4",
- "@wordpress/data": "^7.1.3",
- "@wordpress/element": "^4.15.1",
- "@wordpress/i18n": "^4.17.1",
- "@wordpress/icons": "^9.8.1",
- "@wordpress/notices": "^3.17.3",
- "classnames": "^2.3.1",
- "lodash": "^4.17.21"
+ "@wordpress/api-fetch": "^6.23.0",
+ "@wordpress/block-editor": "^11.3.0",
+ "@wordpress/blocks": "^12.3.0",
+ "@wordpress/components": "^23.3.0",
+ "@wordpress/compose": "^6.3.0",
+ "@wordpress/core-data": "^6.3.0",
+ "@wordpress/data": "^8.3.0",
+ "@wordpress/element": "^5.3.0",
+ "@wordpress/i18n": "^4.26.0",
+ "@wordpress/icons": "^9.17.0",
+ "@wordpress/notices": "^3.26.0",
+ "classnames": "^2.3.1"
}
},
"@wordpress/wordcount": {
- "version": "3.17.1",
- "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.17.1.tgz",
- "integrity": "sha512-gbXwOWkaqb2trkmAgqMpPLqDwP4BVVvjlLFC05+zTSM0EiLEEZDvbxhHFOxeQd98May2KO26iRr/xDbqXa2QxQ==",
+ "version": "3.26.0",
+ "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.26.0.tgz",
+ "integrity": "sha512-s1+yc0bv0Qral9n8e/QInchiKpS9TrAUKxDtXXOm6xFeVtaUhovJNXzuzRmb5ndzWOGK0zKX53ywkdGPhr0yEA==",
"requires": {
"@babel/runtime": "^7.16.0"
}
@@ -6060,9 +6026,9 @@
"dev": true
},
"adm-zip": {
- "version": "0.5.9",
- "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz",
- "integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==",
+ "version": "0.5.10",
+ "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz",
+ "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==",
"dev": true
},
"agent-base": {
@@ -6223,13 +6189,12 @@
}
},
"aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
+ "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
"dev": true,
"requires": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
+ "deep-equal": "^2.0.5"
}
},
"arr-diff": {
@@ -6270,15 +6235,15 @@
"dev": true
},
"array-includes": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
- "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
+ "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5",
- "get-intrinsic": "^1.1.1",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
"is-string": "^1.0.7"
},
"dependencies": {
@@ -6303,41 +6268,50 @@
}
},
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "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"
}
},
"get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -6374,9 +6348,9 @@
}
},
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -6392,25 +6366,25 @@
}
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
+ "es-abstract": "^1.20.4"
}
}
}
@@ -6442,17 +6416,16 @@
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
"dev": true
},
- "array.prototype.filter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.1.tgz",
- "integrity": "sha512-Dk3Ty7N42Odk7PjU/Ci3zT4pLj20YvuVnneG/58ICM6bt4Ij5kZaJTVQ9TSaWaIECX2sFyz4KItkVZqHNnciqw==",
+ "array.prototype.flat": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
+ "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.0",
- "es-array-method-boxes-properly": "^1.0.0",
- "is-string": "^1.0.7"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0"
},
"dependencies": {
"call-bind": {
@@ -6465,42 +6438,61 @@
"get-intrinsic": "^1.0.2"
}
},
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "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.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -6539,9 +6531,9 @@
}
},
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -6554,77 +6546,41 @@
"define-properties": "^1.1.4",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
}
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
}
}
},
- "array.prototype.flat": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
- "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
+ "array.prototype.flatmap": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz",
+ "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.2",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
"es-shim-unscopables": "^1.0.0"
},
"dependencies": {
@@ -6638,42 +6594,61 @@
"get-intrinsic": "^1.0.2"
}
},
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "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.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -6712,9 +6687,9 @@
}
},
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -6727,78 +6702,43 @@
"define-properties": "^1.1.4",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
}
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
}
}
},
- "array.prototype.flatmap": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz",
- "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==",
+ "array.prototype.tosorted": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz",
+ "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.2",
- "es-shim-unscopables": "^1.0.0"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "es-shim-unscopables": "^1.0.0",
+ "get-intrinsic": "^1.1.3"
},
"dependencies": {
"call-bind": {
@@ -6811,49 +6751,66 @@
"get-intrinsic": "^1.0.2"
}
},
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
- },
- "dependencies": {
- "get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- }
- }
+ "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"
+ }
+ },
+ "get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
}
},
"has-symbols": {
@@ -6885,9 +6842,9 @@
}
},
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -6900,64 +6857,28 @@
"define-properties": "^1.1.4",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
}
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
}
}
@@ -7056,6 +6977,12 @@
"resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz",
"integrity": "sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ=="
},
+ "available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "dev": true
+ },
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
@@ -7069,16 +6996,19 @@
"dev": true
},
"axe-core": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.0.tgz",
- "integrity": "sha512-4+rr8eQ7+XXS5nZrKcMO/AikHL0hVqy+lHWAnE3xdHl+aguag8SOQ6eEqLexwLNWgXIMfunGuD3ON1/6Kyet0A==",
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.3.tgz",
+ "integrity": "sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==",
"dev": true
},
"axobject-query": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
- "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
- "dev": true
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz",
+ "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==",
+ "dev": true,
+ "requires": {
+ "deep-equal": "^2.0.5"
+ }
},
"babel-jest": {
"version": "27.5.1",
@@ -7154,9 +7084,9 @@
}
},
"babel-loader": {
- "version": "8.2.5",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz",
- "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz",
+ "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==",
"dev": true,
"requires": {
"find-cache-dir": "^3.3.1",
@@ -7795,9 +7725,9 @@
"integrity": "sha512-Yi1Xaml0EvNA0OYWxXiYNqY24AfWkbA6w5vxE7GWxtKfzIbZM+Qw+aSmkgsbWzbHiy/RCSkUZBplVxTA+E4jJg=="
},
"bonjour-service": {
- "version": "1.0.14",
- "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz",
- "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz",
+ "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==",
"dev": true,
"requires": {
"array-flatten": "^2.1.2",
@@ -8275,153 +8205,6 @@
}
}
},
- "cheerio": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
- "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
- "dev": true,
- "requires": {
- "cheerio-select": "^2.1.0",
- "dom-serializer": "^2.0.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1",
- "htmlparser2": "^8.0.1",
- "parse5": "^7.0.0",
- "parse5-htmlparser2-tree-adapter": "^7.0.0"
- },
- "dependencies": {
- "dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- }
- },
- "domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true
- },
- "domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.3.0"
- }
- },
- "domutils": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz",
- "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
- "dev": true,
- "requires": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.1"
- }
- },
- "entities": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
- "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
- "dev": true
- }
- }
- },
- "cheerio-select": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
- "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
- "dev": true,
- "requires": {
- "boolbase": "^1.0.0",
- "css-select": "^5.1.0",
- "css-what": "^6.1.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1"
- },
- "dependencies": {
- "css-select": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
- "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
- "dev": true,
- "requires": {
- "boolbase": "^1.0.0",
- "css-what": "^6.1.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "nth-check": "^2.0.1"
- }
- },
- "css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "dev": true
- },
- "dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- }
- },
- "domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true
- },
- "domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.3.0"
- }
- },
- "domutils": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz",
- "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
- "dev": true,
- "requires": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.1"
- }
- },
- "entities": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
- "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
- "dev": true
- },
- "nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dev": true,
- "requires": {
- "boolbase": "^1.0.0"
- }
- }
- }
- },
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -8496,9 +8279,9 @@
"dev": true
},
"ci-info": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz",
- "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==",
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz",
+ "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==",
"dev": true
},
"cjs-module-lexer": {
@@ -8748,9 +8531,9 @@
"dev": true
},
"comment-parser": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz",
- "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz",
+ "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==",
"dev": true
},
"common-path-prefix": {
@@ -8819,9 +8602,9 @@
}
},
"compute-scroll-into-view": {
- "version": "1.0.17",
- "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz",
- "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg=="
+ "version": "1.0.20",
+ "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
+ "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg=="
},
"computed-style": {
"version": "0.1.4",
@@ -8888,9 +8671,9 @@
}
},
"content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
"dev": true
},
"continuable-cache": {
@@ -9015,32 +8798,38 @@
}
},
"core-js": {
- "version": "3.26.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz",
- "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==",
+ "version": "3.27.2",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.27.2.tgz",
+ "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==",
"dev": true
},
"core-js-compat": {
- "version": "3.26.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz",
- "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==",
+ "version": "3.27.2",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.27.2.tgz",
+ "integrity": "sha512-welaYuF7ZtbYKGrIy7y3eb40d37rG1FvzEOfe7hSLd2iD6duMDqUhRfSvCGyC46HhR6Y8JXXdZ2lnRUMkPBpvg==",
"dev": true,
"requires": {
"browserslist": "^4.21.4"
},
"dependencies": {
"browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
+ "version": "4.21.5",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
+ "caniuse-lite": "^1.0.30001449",
+ "electron-to-chromium": "^1.4.284",
+ "node-releases": "^2.0.8",
+ "update-browserslist-db": "^1.0.10"
}
},
+ "caniuse-lite": {
+ "version": "1.0.30001450",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001450.tgz",
+ "integrity": "sha512-qMBmvmQmFXaSxexkjjfMvD5rnDL0+m+dUMZKoDYsGG8iZN29RuYh9eRoMvKsT6uMAWlyUUGDEQGJJYjzCIO9ew==",
+ "dev": true
+ },
"electron-to-chromium": {
"version": "1.4.284",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz",
@@ -9048,9 +8837,9 @@
"dev": true
},
"node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
+ "version": "2.0.9",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.9.tgz",
+ "integrity": "sha512-2xfmOrRkGogbTK9R6Leda0DGiXeY3p2NJpy4+gNCffdUvV6mdEJnaDEic1i3Ec2djAo8jWYoJMR5PB0MSMpxUA==",
"dev": true
}
}
@@ -9072,9 +8861,9 @@
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cosmiconfig": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
- "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
"requires": {
"@types/parse-json": "^4.0.0",
"import-fresh": "^3.2.1",
@@ -9162,25 +8951,25 @@
"dev": true
},
"css-loader": {
- "version": "6.7.1",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz",
- "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==",
+ "version": "6.7.3",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz",
+ "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==",
"dev": true,
"requires": {
"icss-utils": "^5.1.0",
- "postcss": "^8.4.7",
+ "postcss": "^8.4.19",
"postcss-modules-extract-imports": "^3.0.0",
"postcss-modules-local-by-default": "^4.0.0",
"postcss-modules-scope": "^3.0.0",
"postcss-modules-values": "^4.0.0",
"postcss-value-parser": "^4.2.0",
- "semver": "^7.3.5"
+ "semver": "^7.3.8"
},
"dependencies": {
"postcss": {
- "version": "8.4.18",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz",
- "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==",
+ "version": "8.4.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
+ "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
"dev": true,
"requires": {
"nanoid": "^3.3.4",
@@ -9543,9 +9332,9 @@
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
"decamelize-keys": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
- "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz",
+ "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==",
"dev": true,
"requires": {
"decamelize": "^1.1.0",
@@ -9553,9 +9342,9 @@
}
},
"decimal.js": {
- "version": "10.4.2",
- "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz",
- "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==",
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
"dev": true
},
"decode-uri-component": {
@@ -9757,6 +9546,107 @@
"integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
"dev": true
},
+ "deep-equal": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.0.tgz",
+ "integrity": "sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-get-iterator": "^1.1.2",
+ "get-intrinsic": "^1.1.3",
+ "is-arguments": "^1.1.1",
+ "is-array-buffer": "^3.0.1",
+ "is-date-object": "^1.0.5",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "isarray": "^2.0.5",
+ "object-is": "^1.1.5",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.4.3",
+ "side-channel": "^1.0.4",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.9"
+ },
+ "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.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "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-date-object": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "dev": true,
+ "requires": {
+ "has-tostringtag": "^1.0.0"
+ }
+ },
+ "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"
+ }
+ },
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "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"
+ }
+ }
+ }
+ },
"deep-extend": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
@@ -9779,9 +9669,9 @@
"dev": true
},
"deepmerge": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
- "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.0.tgz",
+ "integrity": "sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==",
"dev": true
},
"default-gateway": {
@@ -10037,12 +9927,6 @@
"path-type": "^4.0.0"
}
},
- "discontinuous-range": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz",
- "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==",
- "dev": true
- },
"dns-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
@@ -10349,57 +10233,6 @@
"integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==",
"dev": true
},
- "enzyme": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz",
- "integrity": "sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==",
- "dev": true,
- "requires": {
- "array.prototype.flat": "^1.2.3",
- "cheerio": "^1.0.0-rc.3",
- "enzyme-shallow-equal": "^1.0.1",
- "function.prototype.name": "^1.1.2",
- "has": "^1.0.3",
- "html-element-map": "^1.2.0",
- "is-boolean-object": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-number-object": "^1.0.4",
- "is-regex": "^1.0.5",
- "is-string": "^1.0.5",
- "is-subset": "^0.1.1",
- "lodash.escape": "^4.0.1",
- "lodash.isequal": "^4.5.0",
- "object-inspect": "^1.7.0",
- "object-is": "^1.0.2",
- "object.assign": "^4.1.0",
- "object.entries": "^1.1.1",
- "object.values": "^1.1.1",
- "raf": "^3.4.1",
- "rst-selector-parser": "^2.2.3",
- "string.prototype.trim": "^1.2.1"
- }
- },
- "enzyme-shallow-equal": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz",
- "integrity": "sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==",
- "dev": true,
- "requires": {
- "has": "^1.0.3",
- "object-is": "^1.1.2"
- }
- },
- "enzyme-to-json": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/enzyme-to-json/-/enzyme-to-json-3.6.2.tgz",
- "integrity": "sha512-Ynm6Z6R6iwQ0g2g1YToz6DWhxVnt8Dy1ijR2zynRKxTyBGA8rCDXU3rs2Qc4OKvUvc2Qoe1bcFK6bnPs20TrTg==",
- "dev": true,
- "requires": {
- "@types/cheerio": "^0.22.22",
- "lodash": "^4.17.21",
- "react-is": "^16.12.0"
- }
- },
"equivalent-key-map": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/equivalent-key-map/-/equivalent-key-map-0.2.2.tgz",
@@ -10450,11 +10283,57 @@
"string.prototype.trimstart": "^1.0.1"
}
},
- "es-array-method-boxes-properly": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
- "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
- "dev": true
+ "es-get-iterator": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
+ "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "is-arguments": "^1.1.1",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.7",
+ "isarray": "^2.0.5",
+ "stop-iteration-iterator": "^1.0.0"
+ },
+ "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"
+ }
+ },
+ "get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "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
+ },
+ "isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true
+ }
+ }
},
"es-module-lexer": {
"version": "0.9.3",
@@ -10462,6 +10341,36 @@
"integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
"dev": true
},
+ "es-set-tostringtag": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz",
+ "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3",
+ "has": "^1.0.3",
+ "has-tostringtag": "^1.0.0"
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "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
+ }
+ }
+ },
"es-shim-unscopables": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
@@ -10491,8 +10400,7 @@
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dev": true
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"escape-string-regexp": {
"version": "1.0.5",
@@ -10567,13 +10475,13 @@
}
},
"eslint": {
- "version": "8.26.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz",
- "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==",
+ "version": "8.33.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz",
+ "integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==",
"dev": true,
"requires": {
- "@eslint/eslintrc": "^1.3.3",
- "@humanwhocodes/config-array": "^0.11.6",
+ "@eslint/eslintrc": "^1.4.1",
+ "@humanwhocodes/config-array": "^0.11.8",
"@humanwhocodes/module-importer": "^1.0.1",
"@nodelib/fs.walk": "^1.2.8",
"ajv": "^6.10.0",
@@ -10592,7 +10500,7 @@
"file-entry-cache": "^6.0.1",
"find-up": "^5.0.0",
"glob-parent": "^6.0.2",
- "globals": "^13.15.0",
+ "globals": "^13.19.0",
"grapheme-splitter": "^1.0.4",
"ignore": "^5.2.0",
"import-fresh": "^3.0.0",
@@ -10747,9 +10655,9 @@
}
},
"globals": {
- "version": "13.17.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
- "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -10866,19 +10774,20 @@
}
},
"eslint-config-prettier": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
- "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz",
+ "integrity": "sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==",
"dev": true
},
"eslint-import-resolver-node": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
- "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz",
+ "integrity": "sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==",
"dev": true,
"requires": {
"debug": "^3.2.7",
- "resolve": "^1.20.0"
+ "is-core-module": "^2.11.0",
+ "resolve": "^1.22.1"
},
"dependencies": {
"debug": {
@@ -10933,23 +10842,25 @@
}
},
"eslint-plugin-import": {
- "version": "2.26.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
- "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
+ "version": "2.27.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz",
+ "integrity": "sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==",
"dev": true,
"requires": {
- "array-includes": "^3.1.4",
- "array.prototype.flat": "^1.2.5",
- "debug": "^2.6.9",
+ "array-includes": "^3.1.6",
+ "array.prototype.flat": "^1.3.1",
+ "array.prototype.flatmap": "^1.3.1",
+ "debug": "^3.2.7",
"doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.7.3",
+ "eslint-import-resolver-node": "^0.3.7",
+ "eslint-module-utils": "^2.7.4",
"has": "^1.0.3",
- "is-core-module": "^2.8.1",
+ "is-core-module": "^2.11.0",
"is-glob": "^4.0.3",
"minimatch": "^3.1.2",
- "object.values": "^1.1.5",
- "resolve": "^1.22.0",
+ "object.values": "^1.1.6",
+ "resolve": "^1.22.1",
+ "semver": "^6.3.0",
"tsconfig-paths": "^3.14.1"
},
"dependencies": {
@@ -10964,50 +10875,69 @@
}
},
"debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"requires": {
- "ms": "2.0.0"
+ "ms": "^2.1.1"
+ }
+ },
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
}
},
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "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.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -11072,16 +11002,10 @@
"brace-expansion": "^1.1.7"
}
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
- },
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -11094,29 +11018,17 @@
"define-properties": "^1.1.4",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
}
},
"object.values": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
- "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
}
},
"resolve": {
@@ -11130,76 +11042,57 @@
"supports-preserve-symlinks-flag": "^1.0.0"
}
},
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ },
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
}
}
},
"eslint-plugin-jest": {
- "version": "25.7.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz",
- "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==",
+ "version": "27.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.1.tgz",
+ "integrity": "sha512-l067Uxx7ZT8cO9NJuf+eJHvt6bqJyz2Z29wykyEdz/OtmcELQl2MQGQLX8J94O1cSJWAwUSEvCjwjA7KEK3Hmg==",
"dev": true,
"requires": {
- "@typescript-eslint/experimental-utils": "^5.0.0"
+ "@typescript-eslint/utils": "^5.10.0"
}
},
"eslint-plugin-jsdoc": {
- "version": "37.9.7",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz",
- "integrity": "sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==",
+ "version": "39.7.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.7.5.tgz",
+ "integrity": "sha512-6L90P0AnZcE4ra7nocolp9vTjgVr2wEZ7jPnEA/X30XAoQPk+wvnaq61n164Tf7Fg4QPpJtRSCPpApOsfWDdNA==",
"dev": true,
"requires": {
- "@es-joy/jsdoccomment": "~0.20.1",
- "comment-parser": "1.3.0",
- "debug": "^4.3.3",
+ "@es-joy/jsdoccomment": "~0.36.1",
+ "comment-parser": "1.3.1",
+ "debug": "^4.3.4",
"escape-string-regexp": "^4.0.0",
"esquery": "^1.4.0",
- "regextras": "^0.8.0",
- "semver": "^7.3.5",
+ "semver": "^7.3.8",
"spdx-expression-parse": "^3.0.1"
},
"dependencies": {
@@ -11236,23 +11129,26 @@
}
},
"eslint-plugin-jsx-a11y": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz",
- "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==",
+ "version": "6.7.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz",
+ "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==",
"dev": true,
"requires": {
- "@babel/runtime": "^7.18.9",
- "aria-query": "^4.2.2",
- "array-includes": "^3.1.5",
+ "@babel/runtime": "^7.20.7",
+ "aria-query": "^5.1.3",
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
"ast-types-flow": "^0.0.7",
- "axe-core": "^4.4.3",
- "axobject-query": "^2.2.0",
+ "axe-core": "^4.6.2",
+ "axobject-query": "^3.1.1",
"damerau-levenshtein": "^1.0.8",
"emoji-regex": "^9.2.2",
"has": "^1.0.3",
- "jsx-ast-utils": "^3.3.2",
- "language-tags": "^1.0.5",
+ "jsx-ast-utils": "^3.3.3",
+ "language-tags": "=1.0.5",
"minimatch": "^3.1.2",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
"semver": "^6.3.0"
},
"dependencies": {
@@ -11289,25 +11185,26 @@
}
},
"eslint-plugin-react": {
- "version": "7.31.10",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz",
- "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==",
+ "version": "7.32.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz",
+ "integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==",
"dev": true,
"requires": {
- "array-includes": "^3.1.5",
- "array.prototype.flatmap": "^1.3.0",
+ "array-includes": "^3.1.6",
+ "array.prototype.flatmap": "^1.3.1",
+ "array.prototype.tosorted": "^1.1.1",
"doctrine": "^2.1.0",
"estraverse": "^5.3.0",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
- "object.entries": "^1.1.5",
- "object.fromentries": "^2.0.5",
- "object.hasown": "^1.1.1",
- "object.values": "^1.1.5",
+ "object.entries": "^1.1.6",
+ "object.fromentries": "^2.0.6",
+ "object.hasown": "^1.1.2",
+ "object.values": "^1.1.6",
"prop-types": "^15.8.1",
- "resolve": "^2.0.0-next.3",
+ "resolve": "^2.0.0-next.4",
"semver": "^6.3.0",
- "string.prototype.matchall": "^4.0.7"
+ "string.prototype.matchall": "^4.0.8"
},
"dependencies": {
"call-bind": {
@@ -11320,42 +11217,61 @@
"get-intrinsic": "^1.0.2"
}
},
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "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.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -11418,9 +11334,9 @@
}
},
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -11433,29 +11349,17 @@
"define-properties": "^1.1.4",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
}
},
"object.values": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
- "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
+ "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
}
},
"resolve": {
@@ -11476,49 +11380,25 @@
"dev": true
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
}
}
@@ -11555,9 +11435,9 @@
"dev": true
},
"espree": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
- "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
+ "version": "9.4.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
+ "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
"dev": true,
"requires": {
"acorn": "^8.8.0",
@@ -11566,9 +11446,9 @@
},
"dependencies": {
"acorn": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
- "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
"dev": true
},
"eslint-visitor-keys": {
@@ -12108,15 +11988,14 @@
"dev": true
},
"fast-average-color": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/fast-average-color/-/fast-average-color-4.3.0.tgz",
- "integrity": "sha512-k8FXd6+JeXoItmdNqB3hMwFgArryjdYBLuzEM8fRY/oztd/051yhSHU6GUrMOfIQU9dDHyFDcIAkGrQKlYtpDA=="
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/fast-average-color/-/fast-average-color-9.3.0.tgz",
+ "integrity": "sha512-FlPROSqDMOnoBgkFhWMHJODPvpS0Od0WDpedcKq4U/t0JVapGAkblNwxOr75qT+ZNd0dQM4qlgqrtnXbCJ8cNg=="
},
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "dev": true
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"fast-diff": {
"version": "1.2.0",
@@ -12588,6 +12467,15 @@
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
"dev": true
},
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dev": true,
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -12650,17 +12538,14 @@
}
},
"framer-motion": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-6.5.1.tgz",
- "integrity": "sha512-o1BGqqposwi7cgDrtg0dNONhkmPsUFDaLcKXigzuTFC5x58mE8iyTazxSudFzmT6MEyJKfjjU8ItoMe3W+3fiw==",
+ "version": "7.10.3",
+ "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-7.10.3.tgz",
+ "integrity": "sha512-k2ccYeZNSpPg//HTaqrU+4pRq9f9ZpaaN7rr0+Rx5zA4wZLbk547wtDzge2db1sB+1mnJ6r59P4xb+aEIi/W+w==",
"requires": {
"@emotion/is-prop-valid": "^0.8.2",
- "@motionone/dom": "10.12.0",
- "framesync": "6.0.1",
+ "@motionone/dom": "^10.15.3",
"hey-listen": "^1.0.8",
- "popmotion": "11.0.3",
- "style-value-types": "5.0.0",
- "tslib": "^2.1.0"
+ "tslib": "2.4.0"
},
"dependencies": {
"@emotion/is-prop-valid": {
@@ -12677,17 +12562,14 @@
"resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz",
"integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==",
"optional": true
+ },
+ "tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
}
}
},
- "framesync": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/framesync/-/framesync-6.0.1.tgz",
- "integrity": "sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==",
- "requires": {
- "tslib": "^2.1.0"
- }
- },
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@@ -12790,41 +12672,50 @@
}
},
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "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.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -12863,9 +12754,9 @@
}
},
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -12893,14 +12784,14 @@
}
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
+ "es-abstract": "^1.20.4"
},
"dependencies": {
"define-properties": {
@@ -12916,14 +12807,14 @@
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
+ "es-abstract": "^1.20.4"
},
"dependencies": {
"define-properties": {
@@ -13035,9 +12926,9 @@
}
},
"get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -13178,6 +13069,15 @@
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true
},
+ "globalthis": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz",
+ "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3"
+ }
+ },
"globalyzer": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
@@ -13243,6 +13143,34 @@
"delegate": "^3.1.2"
}
},
+ "gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "requires": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "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
+ }
+ }
+ },
"got": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz",
@@ -14298,9 +14226,9 @@
},
"dependencies": {
"get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -14316,6 +14244,12 @@
}
}
},
+ "has-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
+ "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
+ "dev": true
+ },
"has-symbol-support-x": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
@@ -14484,28 +14418,6 @@
"integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=",
"dev": true
},
- "html-element-map": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz",
- "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==",
- "dev": true,
- "requires": {
- "array.prototype.filter": "^1.0.0",
- "call-bind": "^1.0.2"
- },
- "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"
- }
- }
- }
- },
"html-encoding-sniffer": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz",
@@ -14533,63 +14445,6 @@
"integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
"dev": true
},
- "htmlparser2": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz",
- "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "entities": "^4.3.0"
- },
- "dependencies": {
- "dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- }
- },
- "domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true
- },
- "domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.3.0"
- }
- },
- "domutils": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz",
- "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==",
- "dev": true,
- "requires": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.1"
- }
- },
- "entities": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
- "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
- "dev": true
- }
- }
- },
"http-cache-semantics": {
"version": "3.8.1",
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
@@ -15132,20 +14987,20 @@
"dev": true
},
"internal-slot": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
- "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
+ "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
"dev": true,
"requires": {
- "get-intrinsic": "^1.1.0",
+ "get-intrinsic": "^1.1.3",
"has": "^1.0.3",
"side-channel": "^1.0.4"
},
"dependencies": {
"get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -15185,9 +15040,9 @@
"dev": true
},
"irregular-plurals": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.3.0.tgz",
- "integrity": "sha512-MVBLKUTangM3EfRPFROhmWQQKRDsrgI83J8GS3jXy+OwYqiR2/aoWndYQ5416jLE3uaGgLH7ncme3X9y09gZ3g==",
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/irregular-plurals/-/irregular-plurals-3.4.0.tgz",
+ "integrity": "sha512-YXxECO/W6N9aMBVKMKKZ8TXESgq7EFrp3emCGGUcrYY1cgJIeZjoB75MTu8qi+NAKntS9NwPU8VdcQ3r6E6aWQ==",
"dev": true
},
"is-absolute": {
@@ -15215,6 +15070,68 @@
"kind-of": "^3.0.2"
}
},
+ "is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "is-array-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.1.tgz",
+ "integrity": "sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "is-typed-array": "^1.1.10"
+ },
+ "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"
+ }
+ },
+ "get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "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-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -15396,6 +15313,12 @@
"dev": true,
"optional": true
},
+ "is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "dev": true
+ },
"is-natural-number": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz",
@@ -15528,6 +15451,12 @@
"dev": true,
"optional": true
},
+ "is-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "dev": true
+ },
"is-shared-array-buffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
@@ -15565,12 +15494,6 @@
"has-tostringtag": "^1.0.0"
}
},
- "is-subset": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz",
- "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==",
- "dev": true
- },
"is-svg": {
"version": "4.3.1",
"resolved": "https://registry.npmjs.org/is-svg/-/is-svg-4.3.1.tgz",
@@ -15590,6 +15513,31 @@
"has-symbols": "^1.0.1"
}
},
+ "is-typed-array": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
+ "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0"
+ },
+ "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"
+ }
+ }
+ }
+ },
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
@@ -15618,13 +15566,41 @@
"dev": true,
"optional": true
},
- "is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "is-weakmap": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "dev": true
+ },
+ "is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2"
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "is-weakset": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
+ "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
"dev": true,
"requires": {
- "call-bind": "^1.0.2"
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
},
"dependencies": {
"call-bind": {
@@ -15636,6 +15612,23 @@
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
}
+ },
+ "get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "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
}
}
},
@@ -15697,9 +15690,9 @@
},
"dependencies": {
"@babel/parser": {
- "version": "7.19.6",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz",
- "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==",
+ "version": "7.20.13",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz",
+ "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==",
"dev": true
},
"semver": {
@@ -16253,16 +16246,16 @@
}
},
"jest-dev-server": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-6.1.1.tgz",
- "integrity": "sha512-z5LnaGDvlIkdMv/rppSO4+rq+GyQKf1xI9oiBxf9/2EBeN2hxRaWiMvaLNDnHPZj2PAhBXsycrKslDDoZO2Xtw==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-6.2.0.tgz",
+ "integrity": "sha512-ZWh8CuvxwjhYfvw4tGeftziqIvw/26R6AG3OTgNTQeXul8aZz48RQjDpnlDwnWX53jxJJl9fcigqIdSU5lYZuw==",
"dev": true,
"requires": {
"chalk": "^4.1.2",
"cwd": "^0.10.0",
"find-process": "^1.4.7",
"prompts": "^2.4.2",
- "spawnd": "^6.0.2",
+ "spawnd": "^6.2.0",
"tree-kill": "^1.2.2",
"wait-on": "^6.0.1"
},
@@ -16908,9 +16901,9 @@
}
},
"jest-pnp-resolver": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
- "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==",
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
"dev": true
},
"jest-regex-util": {
@@ -17660,9 +17653,9 @@
}
},
"js-sdsl": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
- "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
+ "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": {
@@ -17785,9 +17778,9 @@
}
},
"jsdoc-type-pratt-parser": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz",
- "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz",
+ "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==",
"dev": true
},
"jsdom": {
@@ -17836,12 +17829,6 @@
"mime-types": "^2.1.12"
}
},
- "parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "dev": true
- },
"tr46": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
@@ -18134,15 +18121,15 @@
"dev": true
},
"klona": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz",
- "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz",
+ "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==",
"dev": true
},
"known-css-properties": {
- "version": "0.25.0",
- "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz",
- "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==",
+ "version": "0.26.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.26.0.tgz",
+ "integrity": "sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==",
"dev": true
},
"language-subtag-registry": {
@@ -18427,30 +18414,12 @@
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
"dev": true
},
- "lodash.escape": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz",
- "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==",
- "dev": true
- },
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
- "dev": true
- },
"lodash.get": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
"integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
"dev": true
},
- "lodash.isequal": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
- "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
- "dev": true
- },
"lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
@@ -19014,9 +18983,9 @@
"dev": true
},
"memfs": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz",
- "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==",
+ "version": "3.4.13",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz",
+ "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==",
"dev": true,
"requires": {
"fs-monkey": "^1.0.3"
@@ -19155,18 +19124,18 @@
"dev": true
},
"mini-css-extract-plugin": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz",
- "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==",
+ "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==",
"dev": true,
"requires": {
"schema-utils": "^4.0.0"
},
"dependencies": {
"ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -19312,19 +19281,13 @@
"integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
},
"moment-timezone": {
- "version": "0.5.38",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.38.tgz",
- "integrity": "sha512-nMIrzGah4+oYZPflDvLZUgoVUO4fvAqHstvG3xAUnMolWncuAiLDWNnJZj6EwJGMGfb1ZcuTFE6GI3hNOVWI/Q==",
+ "version": "0.5.40",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.40.tgz",
+ "integrity": "sha512-tWfmNkRYmBkPJz5mr9GVDn9vRlVZOTe6yqY92rFxiOdWXbjaR0+9LwQnZGGuNR63X456NqmEkbskte8tWL5ePg==",
"requires": {
"moment": ">= 2.9.0"
}
},
- "moo": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz",
- "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==",
- "dev": true
- },
"mousetrap": {
"version": "1.6.5",
"resolved": "https://registry.npmjs.org/mousetrap/-/mousetrap-1.6.5.tgz",
@@ -19397,17 +19360,11 @@
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
- "nearley": {
- "version": "2.20.1",
- "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz",
- "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==",
- "dev": true,
- "requires": {
- "commander": "^2.19.0",
- "moo": "^0.5.0",
- "railroad-diagrams": "^1.0.0",
- "randexp": "0.4.6"
- }
+ "natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true
},
"negotiator": {
"version": "0.6.3",
@@ -20013,14 +19970,14 @@
}
},
"object.entries": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
- "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
+ "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
},
"dependencies": {
"call-bind": {
@@ -20033,42 +19990,61 @@
"get-intrinsic": "^1.0.2"
}
},
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "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.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -20107,9 +20083,9 @@
}
},
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -20122,77 +20098,41 @@
"define-properties": "^1.1.4",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
}
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
}
}
},
"object.fromentries": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz",
- "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz",
+ "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4"
},
"dependencies": {
"call-bind": {
@@ -20205,42 +20145,61 @@
"get-intrinsic": "^1.0.2"
}
},
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dev": true,
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "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.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -20279,9 +20238,9 @@
}
},
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -20294,64 +20253,28 @@
"define-properties": "^1.1.4",
"has-symbols": "^1.0.3",
"object-keys": "^1.1.1"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
}
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
+ "es-abstract": "^1.20.4"
}
}
}
@@ -20390,13 +20313,13 @@
}
},
"object.hasown": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz",
- "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz",
+ "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==",
"dev": true,
"requires": {
"define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
+ "es-abstract": "^1.20.4"
},
"dependencies": {
"call-bind": {
@@ -20420,41 +20343,50 @@
}
},
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
+ "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"
}
},
"get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -20491,9 +20423,9 @@
}
},
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -20509,25 +20441,25 @@
}
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
+ "es-abstract": "^1.20.4"
}
}
}
@@ -20889,48 +20821,10 @@
"dev": true
},
"parse5": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz",
- "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==",
- "dev": true,
- "requires": {
- "entities": "^4.4.0"
- },
- "dependencies": {
- "entities": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz",
- "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==",
- "dev": true
- }
- }
- },
- "parse5-htmlparser2-tree-adapter": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
- "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
- "dev": true,
- "requires": {
- "domhandler": "^5.0.2",
- "parse5": "^7.0.0"
- },
- "dependencies": {
- "domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true
- },
- "domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "dev": true,
- "requires": {
- "domelementtype": "^2.3.0"
- }
- }
- }
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true
},
"parseurl": {
"version": "1.3.3",
@@ -21173,17 +21067,6 @@
}
}
},
- "popmotion": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/popmotion/-/popmotion-11.0.3.tgz",
- "integrity": "sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==",
- "requires": {
- "framesync": "6.0.1",
- "hey-listen": "^1.0.8",
- "style-value-types": "5.0.0",
- "tslib": "^2.1.0"
- }
- },
"portfinder": {
"version": "1.0.28",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
@@ -21640,9 +21523,9 @@
"dev": true
},
"postcss-scss": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.5.tgz",
- "integrity": "sha512-F7xpB6TrXyqUh3GKdyB4Gkp3QL3DDW1+uI+gxx/oJnUt/qXI4trj5OGlp9rOKdoABGULuqtqeG+3HEVQk4DjmA==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.6.tgz",
+ "integrity": "sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==",
"dev": true
},
"postcss-selector-parser": {
@@ -21811,6 +21694,11 @@
}
}
},
+ "proxy-compare": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.4.0.tgz",
+ "integrity": "sha512-FD8KmQUQD6Mfpd0hywCOzcon/dbkFP8XBd9F1ycbKtvVsfv6TsFUKJ2eC0Iz2y+KzlkdT1Z8SY6ZSgm07zOyqg=="
+ },
"proxy-from-env": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
@@ -21987,31 +21875,6 @@
}
}
},
- "raf": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
- "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==",
- "dev": true,
- "requires": {
- "performance-now": "^2.1.0"
- }
- },
- "railroad-diagrams": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz",
- "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==",
- "dev": true
- },
- "randexp": {
- "version": "0.4.6",
- "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz",
- "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==",
- "dev": true,
- "requires": {
- "discontinuous-range": "1.0.0",
- "ret": "~0.1.10"
- }
- },
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -22062,12 +21925,11 @@
"integrity": "sha512-l+MBlKZffv/SicxDySKEEh42hR6m5bAHfNu3Tvxks2c4Ah+ldnWjfnVRwxo/nxF27SsUsxDS0raAzFuJNKABXA=="
},
"react": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
- "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz",
+ "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==",
"requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "loose-envify": "^1.1.0"
}
},
"react-autosize-textarea": {
@@ -22086,19 +21948,18 @@
"integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw=="
},
"react-dom": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
- "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz",
+ "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==",
"requires": {
"loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "scheduler": "^0.20.2"
+ "scheduler": "^0.23.0"
}
},
"react-easy-crop": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-4.6.2.tgz",
- "integrity": "sha512-qTGU3TWPwdAdNJsbM0OLbDx+Vjes9vWOnm1AUBiVp4GOzZacBQbUzVE9jYprFoWRrJZSn3GEwnxk0YhLAvdiYQ==",
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-4.6.3.tgz",
+ "integrity": "sha512-xeP5Cq56xDK2QkGs6RIrVXQs7cDan9B16yUt/3XqFN7siSjLgXkDfKNri8eC8CFSd3AFs0NX6IpIeIPBf4PCBA==",
"requires": {
"normalize-wheel": "^1.0.1",
"tslib": "2.0.1"
@@ -22122,36 +21983,6 @@
"integrity": "sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==",
"dev": true
},
- "react-shallow-renderer": {
- "version": "16.15.0",
- "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz",
- "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==",
- "dev": true,
- "requires": {
- "object-assign": "^4.1.1",
- "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "react-test-renderer": {
- "version": "17.0.2",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz",
- "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==",
- "dev": true,
- "requires": {
- "object-assign": "^4.1.1",
- "react-is": "^17.0.2",
- "react-shallow-renderer": "^16.13.1",
- "scheduler": "^0.20.2"
- },
- "dependencies": {
- "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==",
- "dev": true
- }
- }
- },
"read-pkg": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -22321,9 +22152,9 @@
}
},
"redux": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz",
- "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz",
+ "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
"requires": {
"@babel/runtime": "^7.9.2"
}
@@ -22349,9 +22180,9 @@
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"regenerator-transform": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
- "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz",
+ "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==",
"dev": true,
"requires": {
"@babel/runtime": "^7.8.4"
@@ -22397,9 +22228,9 @@
"dev": true
},
"regexpu-core": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz",
- "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==",
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz",
+ "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==",
"dev": true,
"requires": {
"regenerate": "^1.4.2",
@@ -22407,15 +22238,9 @@
"regjsgen": "^0.7.1",
"regjsparser": "^0.9.1",
"unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.0.0"
+ "unicode-match-property-value-ecmascript": "^2.1.0"
}
},
- "regextras": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.8.0.tgz",
- "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==",
- "dev": true
- },
"regjsgen": {
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz",
@@ -22445,9 +22270,9 @@
"integrity": "sha512-NVfSP9NstE3QPNs/TnegQY0vnJnstKQSpcrsI2kBTB3dB2PkdfKdTa+abbjMIDqpc63fE5LfjLgfMst0ULMFxQ=="
},
"remove-accents": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.3.tgz",
- "integrity": "sha512-bwzzFccF6RgWWt+KrcEpCDMw9uCwz5GCdyo+r4p2hu6PhqtlEMOXEO0uPAw6XmVYAnODxHaqLanhUY1lqmsNFw=="
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.4.4.tgz",
+ "integrity": "sha512-EpFcOa/ISetVHEXqu+VwI96KZBmq+a8LJnGkaeFw45epGlxIZz5dhEEnNZMsQXgORu3qaMoLX4qJCzOik6ytAg=="
},
"repeat-element": {
"version": "1.1.3",
@@ -22628,9 +22453,9 @@
"dev": true
},
"resolve.exports": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz",
- "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz",
+ "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==",
"dev": true
},
"responselike": {
@@ -22709,16 +22534,6 @@
"glob": "^7.1.3"
}
},
- "rst-selector-parser": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz",
- "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==",
- "dev": true,
- "requires": {
- "lodash.flattendeep": "^4.4.0",
- "nearley": "^2.7.10"
- }
- },
"rtlcss": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-2.6.2.tgz",
@@ -22864,9 +22679,9 @@
}
},
"get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
"dev": true,
"requires": {
"function-bind": "^1.1.1",
@@ -23019,12 +22834,11 @@
}
},
"scheduler": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
- "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "version": "0.23.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz",
+ "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==",
"requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
+ "loose-envify": "^1.1.0"
}
},
"schema-utils": {
@@ -23735,13 +23549,13 @@
"dev": true
},
"spawnd": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-6.0.2.tgz",
- "integrity": "sha512-+YJtx0dvy2wt304MrHD//tASc84zinBUYU1jacPBzrjhZUd7RsDo25krxr4HUHAQzEQFuMAs4/p+yLYU5ciZ1w==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-6.2.0.tgz",
+ "integrity": "sha512-qX/I4lQy4KgVEcNle0kuc4FxFWHISzBhZW1YemPfwmrmQjyZmfTK/OhBKkhrD2ooAaFZEm1maEBLE6/6enwt+g==",
"dev": true,
"requires": {
"exit": "^0.1.2",
- "signal-exit": "^3.0.6",
+ "signal-exit": "^3.0.7",
"tree-kill": "^1.2.2"
},
"dependencies": {
@@ -23928,9 +23742,9 @@
"dev": true
},
"stack-utils": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
- "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
"dev": true,
"requires": {
"escape-string-regexp": "^2.0.0"
@@ -23977,6 +23791,15 @@
"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",
@@ -24041,190 +23864,20 @@
}
},
"string.prototype.matchall": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz",
- "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz",
+ "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
- "get-intrinsic": "^1.1.1",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.20.4",
+ "get-intrinsic": "^1.1.3",
"has-symbols": "^1.0.3",
"internal-slot": "^1.0.3",
- "regexp.prototype.flags": "^1.4.1",
+ "regexp.prototype.flags": "^1.4.3",
"side-channel": "^1.0.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"
- }
- },
- "es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "function.prototype.name": "^1.1.5",
- "get-intrinsic": "^1.1.3",
- "get-symbol-description": "^1.0.0",
- "has": "^1.0.3",
- "has-property-descriptors": "^1.0.0",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.3",
- "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-weakref": "^1.0.2",
- "object-inspect": "^1.12.2",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.4.3",
- "safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
- }
- },
- "get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "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.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
- "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"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
- }
- },
- "string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
- }
- },
- "string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
- },
- "dependencies": {
- "define-properties": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
- "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
- "dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- }
- }
- }
- }
- },
- "string.prototype.trim": {
- "version": "1.2.6",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz",
- "integrity": "sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "es-abstract": "^1.19.5"
- },
"dependencies": {
"call-bind": {
"version": "1.0.2",
@@ -24247,48 +23900,55 @@
}
},
"es-abstract": {
- "version": "1.20.4",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
- "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
+ "version": "1.21.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.1.tgz",
+ "integrity": "sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==",
"dev": true,
"requires": {
+ "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-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.3",
+ "internal-slot": "^1.0.4",
+ "is-array-buffer": "^3.0.1",
"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.2",
"object-keys": "^1.1.1",
"object.assign": "^4.1.4",
"regexp.prototype.flags": "^1.4.3",
"safe-regex-test": "^1.0.0",
- "string.prototype.trimend": "^1.0.5",
- "string.prototype.trimstart": "^1.0.5",
- "unbox-primitive": "^1.0.2"
- },
- "dependencies": {
- "get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- }
- }
+ "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"
+ }
+ },
+ "get-intrinsic": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz",
+ "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
}
},
"has-symbols": {
@@ -24320,9 +23980,9 @@
}
},
"object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "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": {
@@ -24338,25 +23998,25 @@
}
},
"string.prototype.trimend": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
- "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
+ "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.19.5"
+ "es-abstract": "^1.20.4"
}
},
"string.prototype.trimstart": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
- "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
+ "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.19.5"
+ "es-abstract": "^1.20.4"
}
}
}
@@ -24480,15 +24140,6 @@
"integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==",
"dev": true
},
- "style-value-types": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/style-value-types/-/style-value-types-5.0.0.tgz",
- "integrity": "sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==",
- "requires": {
- "hey-listen": "^1.0.8",
- "tslib": "^2.1.0"
- }
- },
"stylehacks": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
@@ -24514,15 +24165,15 @@
}
},
"stylelint": {
- "version": "14.14.0",
- "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.14.0.tgz",
- "integrity": "sha512-yUI+4xXfPHVnueYddSQ/e1GuEA/2wVhWQbGj16AmWLtQJtn28lVxfS4b0CsWyVRPgd3Auzi0NXOthIEUhtQmmA==",
+ "version": "14.16.1",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.16.1.tgz",
+ "integrity": "sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==",
"dev": true,
"requires": {
"@csstools/selector-specificity": "^2.0.2",
"balanced-match": "^2.0.0",
"colord": "^2.9.3",
- "cosmiconfig": "^7.0.1",
+ "cosmiconfig": "^7.1.0",
"css-functions-list": "^3.1.0",
"debug": "^4.3.4",
"fast-glob": "^3.2.12",
@@ -24532,21 +24183,21 @@
"globby": "^11.1.0",
"globjoin": "^0.1.4",
"html-tags": "^3.2.0",
- "ignore": "^5.2.0",
+ "ignore": "^5.2.1",
"import-lazy": "^4.0.0",
"imurmurhash": "^0.1.4",
"is-plain-object": "^5.0.0",
- "known-css-properties": "^0.25.0",
+ "known-css-properties": "^0.26.0",
"mathml-tag-names": "^2.1.3",
"meow": "^9.0.0",
"micromatch": "^4.0.5",
"normalize-path": "^3.0.0",
"picocolors": "^1.0.0",
- "postcss": "^8.4.17",
+ "postcss": "^8.4.19",
"postcss-media-query-parser": "^0.2.3",
"postcss-resolve-nested-selector": "^0.1.1",
"postcss-safe-parser": "^6.0.0",
- "postcss-selector-parser": "^6.0.10",
+ "postcss-selector-parser": "^6.0.11",
"postcss-value-parser": "^4.2.0",
"resolve-from": "^5.0.0",
"string-width": "^4.2.3",
@@ -24554,7 +24205,7 @@
"style-search": "^0.1.0",
"supports-hyperlinks": "^2.3.0",
"svg-tags": "^1.0.0",
- "table": "^6.8.0",
+ "table": "^6.8.1",
"v8-compile-cache": "^2.3.0",
"write-file-atomic": "^4.0.2"
},
@@ -24667,6 +24318,12 @@
"lru-cache": "^6.0.0"
}
},
+ "ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true
+ },
"indent-string": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
@@ -24791,9 +24448,9 @@
"dev": true
},
"postcss": {
- "version": "8.4.18",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz",
- "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==",
+ "version": "8.4.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
+ "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
"dev": true,
"requires": {
"nanoid": "^3.3.4",
@@ -24802,9 +24459,9 @@
}
},
"postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
+ "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
@@ -24966,9 +24623,9 @@
},
"dependencies": {
"postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz",
+ "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==",
"dev": true,
"requires": {
"cssesc": "^3.0.0",
@@ -25082,9 +24739,9 @@
"dev": true
},
"table": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
- "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
+ "version": "6.8.1",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
+ "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==",
"dev": true,
"requires": {
"ajv": "^8.0.1",
@@ -25095,9 +24752,9 @@
},
"dependencies": {
"ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -25290,9 +24947,9 @@
"dev": true
},
"throat": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz",
- "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==",
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz",
+ "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==",
"dev": true
},
"through": {
@@ -25501,9 +25158,9 @@
},
"dependencies": {
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
@@ -25600,6 +25257,29 @@
"mime-types": "~2.1.24"
}
},
+ "typed-array-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
+ "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
+ "dev": true,
+ "requires": {
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "is-typed-array": "^1.1.9"
+ },
+ "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"
+ }
+ }
+ }
+ },
"typedarray-to-buffer": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
@@ -25699,9 +25379,9 @@
}
},
"unicode-match-property-value-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
- "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==",
"dev": true
},
"unicode-property-aliases-ecmascript": {
@@ -25895,6 +25575,11 @@
"resolved": "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz",
"integrity": "sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ=="
},
+ "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",
+ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA=="
+ },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -25968,6 +25653,15 @@
"spdx-expression-parse": "^3.0.0"
}
},
+ "valtio": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.9.0.tgz",
+ "integrity": "sha512-mQLFsAlKbYascZygFQh6lXuDjU5WHLoeZ8He4HqMnWfasM96V6rDbeFkw1XeG54xycmDonr/Jb4xgviHtuySrA==",
+ "requires": {
+ "proxy-compare": "2.4.0",
+ "use-sync-external-store": "1.2.0"
+ }
+ },
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -26170,9 +25864,9 @@
}
},
"webpack-bundle-analyzer": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.6.1.tgz",
- "integrity": "sha512-oKz9Oz9j3rUciLNfpGFjOb49/jEpXNmWdVH8Ls//zNcnLlQdTGXQQMsBbb/gR7Zl8WNLxVCq+0Hqbx3zv6twBw==",
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz",
+ "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==",
"dev": true,
"requires": {
"acorn": "^8.0.4",
@@ -26323,9 +26017,9 @@
},
"dependencies": {
"ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -26416,9 +26110,9 @@
},
"dependencies": {
"ajv": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
- "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
+ "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -26470,9 +26164,9 @@
}
},
"ws": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz",
- "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz",
+ "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==",
"dev": true
}
}
@@ -26613,11 +26307,49 @@
"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=="
},
+ "which-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
+ "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "dev": true,
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.10"
+ },
+ "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"
+ }
+ }
+ }
+ },
"wicg-inert": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/wicg-inert/-/wicg-inert-3.1.2.tgz",
diff --git a/package.json b/package.json
index c459eca491322..7448b1c237ec3 100644
--- a/package.json
+++ b/package.json
@@ -25,10 +25,10 @@
],
"devDependencies": {
"@pmmmwh/react-refresh-webpack-plugin": "0.5.5",
- "@wordpress/babel-preset-default": "7.1.1",
- "@wordpress/dependency-extraction-webpack-plugin": "4.0.2",
- "@wordpress/e2e-test-utils": "8.1.1",
- "@wordpress/scripts": "24.1.2",
+ "@wordpress/babel-preset-default": "7.10.0",
+ "@wordpress/dependency-extraction-webpack-plugin": "4.9.0",
+ "@wordpress/e2e-test-utils": "9.3.0",
+ "@wordpress/scripts": "25.3.0",
"autoprefixer": "^9.8.8",
"chalk": "5.1.0",
"check-node-version": "4.2.1",
@@ -76,62 +76,63 @@
"webpack-livereload-plugin": "3.0.2"
},
"dependencies": {
- "@wordpress/a11y": "3.17.1",
- "@wordpress/annotations": "2.17.3",
- "@wordpress/api-fetch": "6.14.1",
- "@wordpress/autop": "3.17.1",
- "@wordpress/blob": "3.17.1",
- "@wordpress/block-directory": "3.15.12",
- "@wordpress/block-editor": "10.0.10",
- "@wordpress/block-library": "7.14.12",
- "@wordpress/block-serialization-default-parser": "4.17.1",
- "@wordpress/blocks": "11.16.4",
- "@wordpress/components": "21.0.7",
- "@wordpress/compose": "5.15.2",
- "@wordpress/core-data": "5.0.4",
- "@wordpress/customize-widgets": "3.14.12",
- "@wordpress/data": "7.1.3",
- "@wordpress/data-controls": "2.17.3",
- "@wordpress/date": "4.17.1",
- "@wordpress/deprecated": "3.17.1",
- "@wordpress/dom": "3.17.2",
- "@wordpress/dom-ready": "3.17.1",
- "@wordpress/edit-post": "6.14.12",
- "@wordpress/edit-site": "4.14.14",
- "@wordpress/edit-widgets": "4.14.12",
- "@wordpress/editor": "12.16.10",
- "@wordpress/element": "4.15.1",
- "@wordpress/escape-html": "2.17.1",
- "@wordpress/format-library": "3.15.10",
- "@wordpress/hooks": "3.17.1",
- "@wordpress/html-entities": "3.17.1",
- "@wordpress/i18n": "4.17.1",
- "@wordpress/icons": "9.8.1",
- "@wordpress/interface": "4.16.7",
- "@wordpress/is-shallow-equal": "4.17.1",
- "@wordpress/keyboard-shortcuts": "3.15.3",
- "@wordpress/keycodes": "3.17.1",
- "@wordpress/list-reusable-blocks": "3.15.7",
- "@wordpress/media-utils": "4.8.1",
- "@wordpress/notices": "3.17.3",
- "@wordpress/nux": "5.15.7",
- "@wordpress/plugins": "4.15.2",
- "@wordpress/preferences": "2.9.7",
- "@wordpress/preferences-persistence": "1.9.1",
- "@wordpress/primitives": "3.15.1",
- "@wordpress/priority-queue": "2.17.2",
- "@wordpress/redux-routine": "4.17.1",
- "@wordpress/reusable-blocks": "3.15.10",
- "@wordpress/rich-text": "5.15.3",
- "@wordpress/server-side-render": "3.15.7",
- "@wordpress/shortcode": "3.17.1",
- "@wordpress/style-engine": "1.0.3",
- "@wordpress/token-list": "2.17.1",
- "@wordpress/url": "3.18.1",
- "@wordpress/viewport": "4.15.3",
- "@wordpress/warning": "2.17.1",
- "@wordpress/widgets": "2.15.10",
- "@wordpress/wordcount": "3.17.1",
+ "@wordpress/a11y": "3.26.0",
+ "@wordpress/annotations": "2.26.0",
+ "@wordpress/api-fetch": "6.23.0",
+ "@wordpress/autop": "3.26.0",
+ "@wordpress/blob": "3.26.0",
+ "@wordpress/block-directory": "4.3.0",
+ "@wordpress/block-editor": "11.3.0",
+ "@wordpress/block-library": "8.3.0",
+ "@wordpress/block-serialization-default-parser": "4.26.0",
+ "@wordpress/blocks": "12.3.0",
+ "@wordpress/components": "23.3.0",
+ "@wordpress/compose": "6.3.0",
+ "@wordpress/core-data": "6.3.0",
+ "@wordpress/customize-widgets": "4.3.0",
+ "@wordpress/data": "8.3.0",
+ "@wordpress/data-controls": "2.26.0",
+ "@wordpress/date": "4.26.0",
+ "@wordpress/deprecated": "3.26.0",
+ "@wordpress/dom": "3.26.0",
+ "@wordpress/dom-ready": "3.26.0",
+ "@wordpress/edit-post": "7.3.0",
+ "@wordpress/edit-site": "5.3.0",
+ "@wordpress/edit-widgets": "5.3.0",
+ "@wordpress/editor": "13.3.0",
+ "@wordpress/element": "5.3.0",
+ "@wordpress/escape-html": "2.26.0",
+ "@wordpress/experiments": "0.8.0",
+ "@wordpress/format-library": "4.3.0",
+ "@wordpress/hooks": "3.26.0",
+ "@wordpress/html-entities": "3.26.0",
+ "@wordpress/i18n": "4.26.0",
+ "@wordpress/icons": "9.17.0",
+ "@wordpress/interface": "5.3.0",
+ "@wordpress/is-shallow-equal": "4.26.0",
+ "@wordpress/keyboard-shortcuts": "4.3.0",
+ "@wordpress/keycodes": "3.26.0",
+ "@wordpress/list-reusable-blocks": "4.3.0",
+ "@wordpress/media-utils": "4.17.0",
+ "@wordpress/notices": "3.26.0",
+ "@wordpress/nux": "6.0.0",
+ "@wordpress/plugins": "5.3.0",
+ "@wordpress/preferences": "3.3.0",
+ "@wordpress/preferences-persistence": "1.18.0",
+ "@wordpress/primitives": "3.24.0",
+ "@wordpress/priority-queue": "2.26.0",
+ "@wordpress/redux-routine": "4.26.0",
+ "@wordpress/reusable-blocks": "4.3.0",
+ "@wordpress/rich-text": "6.3.0",
+ "@wordpress/server-side-render": "4.3.0",
+ "@wordpress/shortcode": "3.26.0",
+ "@wordpress/style-engine": "1.9.0",
+ "@wordpress/token-list": "2.26.0",
+ "@wordpress/url": "3.27.0",
+ "@wordpress/viewport": "5.3.0",
+ "@wordpress/warning": "2.26.0",
+ "@wordpress/widgets": "3.3.0",
+ "@wordpress/wordcount": "3.26.0",
"backbone": "1.4.1",
"clipboard": "2.0.11",
"core-js-url-browser": "3.6.4",
@@ -149,8 +150,8 @@
"moment": "2.29.4",
"objectFitPolyfill": "2.3.5",
"polyfill-library": "4.4.0",
- "react": "17.0.2",
- "react-dom": "17.0.2",
+ "react": "18.2.0",
+ "react-dom": "18.2.0",
"regenerator-runtime": "0.13.9",
"twemoji": "14.0.2",
"underscore": "1.13.6",
diff --git a/src/wp-includes/assets/script-loader-packages.min.php b/src/wp-includes/assets/script-loader-packages.min.php
index d66e0fd1d34bb..2316e62e3754a 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' => 'a078f260190acf405764'), 'block-directory.min.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-api-fetch', 'wp-block-editor', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-core-data', 'wp-data', 'wp-edit-post', 'wp-editor', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => '000a47d4ebe2ceac3593'), '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-primitives', 'wp-rich-text', 'wp-shortcode', 'wp-style-engine', 'wp-token-list', 'wp-url', 'wp-warning', 'wp-wordcount'), 'version' => '0c7c9b9a74ceb717d6eb'), '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-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport'), 'version' => '8adfaccd027d4d509d5e'), 'block-serialization-default-parser.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'eb2cdc8cd7a7975d49d9'), 'blocks.min.js' => array('dependencies' => array('lodash', 'wp-autop', 'wp-blob', 'wp-block-serialization-default-parser', 'wp-data', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-shortcode'), 'version' => '69022aed79bfd45b3b1d'), '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-i18n', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-warning'), 'version' => '4b876f1ff2e5c93b8fb1'), 'compose.min.js' => array('dependencies' => array('lodash', 'react', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-is-shallow-equal', 'wp-keycodes', 'wp-polyfill', 'wp-priority-queue'), 'version' => '37228270687b2a94e518'), 'core-data.min.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-url'), 'version' => 'd8d458b31912f858bcdf'), 'customize-widgets.min.js' => array('dependencies' => array('lodash', '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-widgets'), 'version' => '1fddf6d27e5c3aeddd54'), 'data.min.js' => array('dependencies' => array('lodash', 'react', 'wp-compose', 'wp-deprecated', 'wp-element', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-redux-routine'), 'version' => 'd8cf5b24f99c64ae47d6'), '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' => 'ce7daf24092d87ff18be'), 'deprecated.min.js' => array('dependencies' => array('wp-hooks', 'wp-polyfill'), 'version' => '6c963cb9494ba26b77eb'), 'dom.min.js' => array('dependencies' => array('wp-deprecated', 'wp-polyfill'), 'version' => '133a042fbbef48f38107'), '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-url', 'wp-viewport', 'wp-warning'), 'version' => '2baffbeec6cbe5171dee'), '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-reusable-blocks', 'wp-style-engine', 'wp-url', 'wp-viewport'), 'version' => '3ab3e2570a5c4c270c72'), '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-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-widgets'), 'version' => 'f920c6385e705b28f823'), '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-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-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-wordcount'), 'version' => 'c9102d37531f38da0681'), 'element.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '47162ff4492c7ec4956b'), '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' => '57876a359eac66da202b'), '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('lodash', 'wp-i18n', 'wp-polyfill'), 'version' => '6e0aadc0106bd8aadc89'), 'list-reusable-blocks.min.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'f97bc9cc3a1cd21b8c8e'), 'media-utils.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-blob', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '17f6455b0630582352a4'), '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' => '5e6c91c252c0e040f379'), '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' => 'ae0bece54c0487c976b1'), 'priority-queue.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '99e325da95c5a35c7dc2'), 'redux-routine.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'c9ea6c0df793258797e6'), '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' => '3fb4b31e589a583a362e'), 'rich-text.min.js' => array('dependencies' => array('lodash', 'wp-a11y', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-escape-html', 'wp-i18n', 'wp-keycodes', 'wp-polyfill'), 'version' => 'c704284bebe26cf1dd51'), 'server-side-render.min.js' => array('dependencies' => array('lodash', 'wp-api-fetch', 'wp-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-deprecated', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-url'), 'version' => 'ba8027ee85d65ae23ec7'), 'shortcode.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '7539044b04e6bca57f2e'), 'style-engine.min.js' => array('dependencies' => array('lodash', 'wp-polyfill'), 'version' => '10341d6e6decffab850e'), 'token-list.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'f2cf0bb3ae80de227e43'), 'url.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'bb0ef862199bcae73aa7'), 'viewport.min.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-data', 'wp-element', 'wp-polyfill'), 'version' => 'a9868d184d07e4c94fe4'), 'warning.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '4acee5fc2fd9a24cefc2'), 'widgets.min.js' => array('dependencies' => array('lodash', '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' => 'ec7c547bc8a579c6061e'), 'wordcount.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'feb9569307aec24292f2'));
+ 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-blocks', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-deprecated', 'wp-dom', 'wp-element', 'wp-escape-html', 'wp-experiments', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-rich-text', 'wp-shortcode', 'wp-style-engine', 'wp-token-list', 'wp-url', 'wp-warning', 'wp-wordcount'), 'version' => '03ae878385e0d4aa4931'), '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-experiments', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keycodes', 'wp-notices', 'wp-polyfill', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-viewport'), 'version' => '1e5e1e18192e56765ef3'), '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-rich-text', 'wp-warning'), 'version' => '459960afd883bbb31505'), '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' => '0d0320f45a7c34b53f34'), '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-experiments', 'wp-hooks', 'wp-i18n', 'wp-is-shallow-equal', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-widgets'), 'version' => '2e9918bbd2bb965a1c5b'), 'data.min.js' => array('dependencies' => array('lodash', 'wp-compose', 'wp-deprecated', 'wp-element', 'wp-experiments', 'wp-is-shallow-equal', 'wp-polyfill', 'wp-priority-queue', 'wp-redux-routine'), 'version' => '44ce08e2e8d1d36191c0'), '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-experiments', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-url', 'wp-viewport', 'wp-warning', 'wp-widgets'), 'version' => 'e768cb09e794bfc3f817'), '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-experiments', '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-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-widgets'), 'version' => '02d640124ef54bf6b05a'), '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-experiments', 'wp-hooks', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-plugins', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-reusable-blocks', 'wp-url', 'wp-viewport', 'wp-widgets'), 'version' => '171584eed72658ba7e62'), '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-experiments', 'wp-hooks', 'wp-html-entities', 'wp-i18n', 'wp-keyboard-shortcuts', 'wp-keycodes', 'wp-media-utils', 'wp-notices', 'wp-polyfill', 'wp-preferences', 'wp-primitives', 'wp-reusable-blocks', 'wp-rich-text', 'wp-server-side-render', 'wp-url', 'wp-wordcount'), 'version' => 'e40dc59ec48f54636dd6'), 'element.min.js' => array('dependencies' => array('react', 'react-dom', 'wp-escape-html', 'wp-polyfill'), 'version' => '846e425acb550abbc270'), 'escape-html.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '03e27a7b6ae14f7afaa6'), 'experiments.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => '7a09a31152667ba2d915'), '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('lodash', 'wp-i18n', 'wp-polyfill'), 'version' => 'b755dcd6aeedb0b754e0'), 'list-reusable-blocks.min.js' => array('dependencies' => array('wp-api-fetch', 'wp-components', 'wp-compose', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'cd5fa2e68a534174e31f'), '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'), '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' => '29557b2dbbe17d0d4317'), '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' => '943ce7f84e164b9462c1'), 'wordcount.min.js' => array('dependencies' => array('wp-polyfill'), 'version' => 'feb9569307aec24292f2'));
diff --git a/src/wp-includes/block-editor.php b/src/wp-includes/block-editor.php
index 4227c674c02ff..39debd983b90a 100644
--- a/src/wp-includes/block-editor.php
+++ b/src/wp-includes/block-editor.php
@@ -318,8 +318,6 @@ function _wp_get_iframed_editor_assets() {
$script_handles = array();
$style_handles = array(
- 'wp-block-editor',
- 'wp-block-library',
'wp-edit-blocks',
);
diff --git a/src/wp-includes/block-supports/layout.php b/src/wp-includes/block-supports/layout.php
index 93c7364a323b6..0db060dc4c2ca 100644
--- a/src/wp-includes/block-supports/layout.php
+++ b/src/wp-includes/block-supports/layout.php
@@ -298,6 +298,25 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
return '';
}
+/**
+ * Gets classname from last tag in a string of HTML.
+ *
+ * @since 6.2.0
+ *
+ * @param string $html markup to be processed.
+ * @return string String of inner wrapper classnames.
+ */
+function wp_get_classnames_from_last_tag( $html ) {
+ $tags = new WP_HTML_Tag_Processor( $html );
+ $last_classnames = '';
+
+ while ( $tags->next_tag() ) {
+ $last_classnames = $tags->get_attribute( 'class' );
+ }
+
+ return (string) $last_classnames;
+}
+
/**
* Renders the layout config to the block wrapper.
*
@@ -309,13 +328,60 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
* @return string Filtered block content.
*/
function wp_render_layout_support_flag( $block_content, $block ) {
- $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] );
- $support_layout = block_has_support( $block_type, array( '__experimentalLayout' ), false );
+ $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] );
+ $support_layout = block_has_support( $block_type, array( '__experimentalLayout' ), false );
+ $has_child_layout = isset( $block['attrs']['style']['layout']['selfStretch'] );
- if ( ! $support_layout ) {
+ if ( ! $support_layout
+ && ! $has_child_layout ) {
return $block_content;
}
+ $outer_class_names = array();
+
+ if ( $has_child_layout && ( 'fixed' === $block['attrs']['style']['layout']['selfStretch'] || 'fill' === $block['attrs']['style']['layout']['selfStretch'] ) ) {
+
+ $container_content_class = wp_unique_id( 'wp-container-content-' );
+
+ $child_layout_styles = array();
+
+ if ( 'fixed' === $block['attrs']['style']['layout']['selfStretch'] && isset( $block['attrs']['style']['layout']['flexSize'] ) ) {
+ $child_layout_styles[] = array(
+ 'selector' => ".$container_content_class",
+ 'declarations' => array(
+ 'flex-basis' => $block['attrs']['style']['layout']['flexSize'],
+ 'box-sizing' => 'border-box',
+ ),
+ );
+ } elseif ( 'fill' === $block['attrs']['style']['layout']['selfStretch'] ) {
+ $child_layout_styles[] = array(
+ 'selector' => ".$container_content_class",
+ 'declarations' => array(
+ 'flex-grow' => '1',
+ ),
+ );
+ }
+
+ wp_style_engine_get_stylesheet_from_css_rules(
+ $child_layout_styles,
+ array(
+ 'context' => 'block-supports',
+ 'prettify' => false,
+ )
+ );
+
+ $outer_class_names[] = $container_content_class;
+
+ }
+
+ // Return early if only child layout exists.
+ if ( ! $support_layout && ! empty( $outer_class_names ) ) {
+ $content = new WP_HTML_Tag_Processor( $block_content );
+ $content->next_tag();
+ $content->add_class( implode( ' ', $outer_class_names ) );
+ return (string) $content;
+ }
+
$block_gap = wp_get_global_settings( array( 'spacing', 'blockGap' ) );
$global_layout_settings = wp_get_global_settings( array( 'layout' ) );
$has_block_gap_support = isset( $block_gap ) ? null !== $block_gap : false;
@@ -330,7 +396,6 @@ function wp_render_layout_support_flag( $block_content, $block ) {
$class_names = array();
$layout_definitions = _wp_array_get( $global_layout_settings, array( 'definitions' ), array() );
- $block_classname = wp_get_block_default_classname( $block['blockName'] );
$container_class = wp_unique_id( 'wp-container-' );
$layout_classname = '';
@@ -406,7 +471,7 @@ function wp_render_layout_support_flag( $block_content, $block ) {
$should_skip_gap_serialization = wp_should_skip_block_supports_serialization( $block_type, 'spacing', 'blockGap' );
$style = wp_get_layout_style(
- ".$block_classname.$container_class",
+ ".$container_class.$container_class",
$used_layout,
$has_block_gap_support,
$gap_value,
@@ -421,6 +486,40 @@ function wp_render_layout_support_flag( $block_content, $block ) {
}
}
+ $content_with_outer_classnames = '';
+
+ if ( ! empty( $outer_class_names ) ) {
+ $content_with_outer_classnames = new WP_HTML_Tag_Processor( $block_content );
+ $content_with_outer_classnames->next_tag();
+ foreach ( $outer_class_names as $outer_class_name ) {
+ $content_with_outer_classnames->add_class( $outer_class_name );
+ }
+
+ $content_with_outer_classnames = (string) $content_with_outer_classnames;
+ }
+
+ /**
+ * The first chunk of innerContent contains the block markup up until the inner blocks start.
+ * We want to target the opening tag of the inner blocks wrapper, which is the last tag in that chunk.
+ */
+ $inner_content_classnames = isset( $block['innerContent'][0] ) && 'string' === gettype( $block['innerContent'][0] ) ? wp_get_classnames_from_last_tag( $block['innerContent'][0] ) : '';
+
+ $content = $content_with_outer_classnames ? new WP_HTML_Tag_Processor( $content_with_outer_classnames ) : new WP_HTML_Tag_Processor( $block_content );
+
+ if ( $inner_content_classnames ) {
+ $content->next_tag( array( 'class_name' => $inner_content_classnames ) );
+ foreach ( $class_names as $class_name ) {
+ $content->add_class( $class_name );
+ }
+ } else {
+ $content->next_tag();
+ foreach ( $class_names as $class_name ) {
+ $content->add_class( $class_name );
+ }
+ }
+
+ return (string) $content;
+
/*
* This assumes the hook only applies to blocks with a single wrapper.
* A limitation of this hook is that nested inner blocks wrappers are not yet supported.
@@ -432,7 +531,7 @@ function wp_render_layout_support_flag( $block_content, $block ) {
1
);
- return $content;
+ return (string) $content;
}
// Register the block support.
diff --git a/src/wp-includes/blocks/archives.php b/src/wp-includes/blocks/archives.php
index afbf400fedba8..695affde760a8 100644
--- a/src/wp-includes/blocks/archives.php
+++ b/src/wp-includes/blocks/archives.php
@@ -17,11 +17,12 @@
function render_block_core_archives( $attributes ) {
$show_post_count = ! empty( $attributes['showPostCounts'] );
$type = isset( $attributes['type'] ) ? $attributes['type'] : 'monthly';
- $class = '';
+
+ $class = 'wp-block-archives-list';
if ( ! empty( $attributes['displayAsDropdown'] ) ) {
- $class .= ' wp-block-archives-dropdown';
+ $class = 'wp-block-archives-dropdown';
$dropdown_id = wp_unique_id( 'wp-block-archives-' );
$title = __( 'Archives' );
@@ -40,9 +41,7 @@ function render_block_core_archives( $attributes ) {
$archives = wp_get_archives( $dropdown_args );
- $classnames = esc_attr( $class );
-
- $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classnames ) );
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $class ) );
switch ( $dropdown_args['type'] ) {
case 'yearly':
@@ -75,8 +74,6 @@ function render_block_core_archives( $attributes ) {
);
}
- $class .= ' wp-block-archives-list';
-
/** This filter is documented in wp-includes/widgets/class-wp-widget-archives.php */
$archives_args = apply_filters(
'widget_archives_args',
diff --git a/src/wp-includes/blocks/archives/block.json b/src/wp-includes/blocks/archives/block.json
index 3e589af452fa9..edc6895e14b06 100644
--- a/src/wp-includes/blocks/archives/block.json
+++ b/src/wp-includes/blocks/archives/block.json
@@ -26,6 +26,7 @@
},
"supports": {
"align": true,
+ "anchor": true,
"html": false,
"spacing": {
"margin": true,
diff --git a/src/wp-includes/blocks/avatar.php b/src/wp-includes/blocks/avatar.php
index f6e3f6a7eeaf2..25f3ad88dcbab 100644
--- a/src/wp-includes/blocks/avatar.php
+++ b/src/wp-includes/blocks/avatar.php
@@ -100,7 +100,7 @@ function render_block_core_avatar( $attributes, $content, $block ) {
$label = 'aria-label="' . sprintf( esc_attr__( '(%s author archive, opens in a new tab)' ), $author_name ) . '"';
}
// translators: %1$s: Author archive link. %2$s: Link target. %3$s Aria label. %4$s Avatar image.
- $avatar_block = sprintf( '%4$s ', get_author_posts_url( $author_id ), esc_attr( $attributes['linkTarget'] ), $label, $avatar_block );
+ $avatar_block = sprintf( '%4$s ', esc_url( get_author_posts_url( $author_id ) ), esc_attr( $attributes['linkTarget'] ), $label, $avatar_block );
}
return sprintf( '
%2s
', $wrapper_attributes, $avatar_block );
}
diff --git a/src/wp-includes/blocks/avatar/block.json b/src/wp-includes/blocks/avatar/block.json
index bceef63ad6fb9..3fbb6dd9221ae 100644
--- a/src/wp-includes/blocks/avatar/block.json
+++ b/src/wp-includes/blocks/avatar/block.json
@@ -4,7 +4,7 @@
"name": "core/avatar",
"title": "Avatar",
"category": "theme",
- "description": "Add a user's avatar.",
+ "description": "Add a user’s avatar.",
"textdomain": "default",
"attributes": {
"userId": {
@@ -25,6 +25,7 @@
},
"usesContext": [ "postType", "postId", "commentId" ],
"supports": {
+ "anchor": true,
"html": false,
"align": true,
"alignWide": false,
diff --git a/src/wp-includes/blocks/block.php b/src/wp-includes/blocks/block.php
index 2cfd672aa3ada..d51b35d68b23d 100644
--- a/src/wp-includes/blocks/block.php
+++ b/src/wp-includes/blocks/block.php
@@ -27,8 +27,7 @@ function render_block_core_block( $attributes ) {
if ( isset( $seen_refs[ $attributes['ref'] ] ) ) {
// WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent
// is set in `wp_debug_mode()`.
- $is_debug = defined( 'WP_DEBUG' ) && WP_DEBUG &&
- defined( 'WP_DEBUG_DISPLAY' ) && WP_DEBUG_DISPLAY;
+ $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY;
return $is_debug ?
// translators: Visible only in the front end, this warning takes the place of a faulty block.
diff --git a/src/wp-includes/blocks/block/block.json b/src/wp-includes/blocks/block/block.json
index 8d850ef1c30ba..f472fd0f4760a 100644
--- a/src/wp-includes/blocks/block/block.json
+++ b/src/wp-includes/blocks/block/block.json
@@ -15,6 +15,5 @@
"customClassName": false,
"html": false,
"inserter": false
- },
- "editorStyle": "wp-block-editor"
+ }
}
diff --git a/src/wp-includes/blocks/blocks-json.php b/src/wp-includes/blocks/blocks-json.php
index 4f9b68e444f71..55cea3a5281d9 100644
--- a/src/wp-includes/blocks/blocks-json.php
+++ b/src/wp-includes/blocks/blocks-json.php
@@ -1 +1 @@
- 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), 'editorStyle' => 'wp-block-editor'), '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('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' => true, '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, '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, '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('reusable' => false, 'html' => false, 'align' => 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'), 'html' => false, '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))), '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, '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))), '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'), 'caption' => array('type' => 'string', 'source' => 'html', 'selector' => 'figcaption'), 'type' => array('type' => 'string'), 'providerNameSlug' => array('type' => 'string'), 'allowResponsive' => array('type' => 'boolean', 'default' => true), 'responsive' => array('type' => 'boolean', 'default' => false), 'previewable' => array('type' => 'boolean', 'default' => true)), '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)), '__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)), '__experimentalLayout' => 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' => 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, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array('fontSize' => true, 'fontAppearance' => true, 'textTransform' => true)), '__experimentalSelector' => 'h1,h2,h3,h4,h5,h6', '__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' => 'html')), '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), '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, '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')), '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)), '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, '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(), 'usesContext' => array('textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'style', 'openSubmenusOnClick'), 'supports' => array('reusable' => false, 'html' => 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')), '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-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)), '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, '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)), '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)))), '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), '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)), '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, 'color' => array('gradients' => true, 'link' => true, '__experimentalDefaultControls' => array('background' => true, 'text' => true)), '__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')), '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'), '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')), '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'))))), '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'))))), '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')))))), '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)), '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' => 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, 'anchor' => 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('anchor' => true, '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, 'anchor' => 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, 'anchor' => 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('anchor' => true, '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('anchor' => 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('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('anchor' => 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)))), '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('anchor' => true, '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('anchor' => true, '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, 'anchor' => 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'), 'anchor' => 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-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('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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, 'anchor' => 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, 'anchor' => 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('anchor' => true, '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'), 'anchor' => true, '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('anchor' => true, '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('anchor' => 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)), '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('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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('anchor' => 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)))), '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('anchor' => 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-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'), 'anchor' => true, '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('anchor' => true, '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, 'anchor' => 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('anchor' => 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))), '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'), 'anchor' => 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, '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'), 'anchor' => true, '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('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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, 'anchor' => 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'), 'anchor' => true, '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, 'anchor' => true, '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')), 'supports' => array('anchor' => true, '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('anchor' => true, '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('anchor' => true, '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, 'anchor' => true, '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('anchor' => true, '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('anchor' => true, '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
diff --git a/src/wp-includes/blocks/button/block.json b/src/wp-includes/blocks/button/block.json
index 6076db9b8feec..cc9921953abf6 100644
--- a/src/wp-includes/blocks/button/block.json
+++ b/src/wp-includes/blocks/button/block.json
@@ -9,6 +9,9 @@
"keywords": [ "link" ],
"textdomain": "default",
"attributes": {
+ "textAlign": {
+ "type": "string"
+ },
"url": {
"type": "string",
"source": "attribute",
@@ -56,7 +59,7 @@
},
"supports": {
"anchor": true,
- "align": true,
+ "align": false,
"alignWide": false,
"color": {
"__experimentalSkipSerialization": true,
@@ -80,6 +83,7 @@
}
},
"reusable": false,
+ "shadow": true,
"spacing": {
"__experimentalSkipSerialization": true,
"padding": [ "horizontal", "vertical" ],
diff --git a/src/wp-includes/blocks/calendar.php b/src/wp-includes/blocks/calendar.php
index 8f6226e943480..de82ba22f7a99 100644
--- a/src/wp-includes/blocks/calendar.php
+++ b/src/wp-includes/blocks/calendar.php
@@ -40,11 +40,34 @@ function render_block_core_calendar( $attributes ) {
}
}
+ $color_block_styles = array();
+
+ // Text color.
+ $preset_text_color = array_key_exists( 'textColor', $attributes ) ? "var:preset|color|{$attributes['textColor']}" : null;
+ $custom_text_color = _wp_array_get( $attributes, array( 'style', 'color', 'text' ), null );
+ $color_block_styles['text'] = $preset_text_color ? $preset_text_color : $custom_text_color;
+
+ // Background Color.
+ $preset_background_color = array_key_exists( 'backgroundColor', $attributes ) ? "var:preset|color|{$attributes['backgroundColor']}" : null;
+ $custom_background_color = _wp_array_get( $attributes, array( 'style', 'color', 'background' ), null );
+ $color_block_styles['background'] = $preset_background_color ? $preset_background_color : $custom_background_color;
+
+ // Generate color styles and classes.
+ $styles = gutenberg_style_engine_get_styles( array( 'color' => $color_block_styles ), array( 'convert_vars_to_classnames' => true ) );
+ $inline_styles = empty( $styles['css'] ) ? '' : sprintf( ' style="%s"', esc_attr( $styles['css'] ) );
+ $classnames = empty( $styles['classnames'] ) ? '' : ' ' . esc_attr( $styles['classnames'] );
+ if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
+ $classnames .= ' has-link-color';
+ }
+ // Apply color classes and styles to the calendar.
+ $calendar = str_replace( '%2$s',
$wrapper_attributes,
- get_calendar( true, false )
+ $calendar
);
// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
diff --git a/src/wp-includes/blocks/calendar/block.json b/src/wp-includes/blocks/calendar/block.json
index fad97e0a9efc7..c772cf58411f0 100644
--- a/src/wp-includes/blocks/calendar/block.json
+++ b/src/wp-includes/blocks/calendar/block.json
@@ -17,6 +17,16 @@
},
"supports": {
"align": true,
+ "anchor": true,
+ "color": {
+ "link": true,
+ "__experimentalSkipSerialization": [ "text", "background" ],
+ "__experimentalDefaultControls": {
+ "background": true,
+ "text": true
+ },
+ "__experimentalSelector": "table, th"
+ },
"typography": {
"fontSize": true,
"lineHeight": true,
diff --git a/src/wp-includes/blocks/categories.php b/src/wp-includes/blocks/categories.php
index 027688152fe7f..7e3979b7aefe2 100644
--- a/src/wp-includes/blocks/categories.php
+++ b/src/wp-includes/blocks/categories.php
@@ -14,7 +14,7 @@
*/
function render_block_core_categories( $attributes ) {
static $block_id = 0;
- $block_id++;
+ ++$block_id;
$args = array(
'echo' => false,
diff --git a/src/wp-includes/blocks/categories/block.json b/src/wp-includes/blocks/categories/block.json
index adf28dc42b4f0..a90a527e35c45 100644
--- a/src/wp-includes/blocks/categories/block.json
+++ b/src/wp-includes/blocks/categories/block.json
@@ -30,6 +30,7 @@
},
"supports": {
"align": true,
+ "anchor": true,
"html": false,
"spacing": {
"margin": true,
diff --git a/src/wp-includes/blocks/comment-author-name.php b/src/wp-includes/blocks/comment-author-name.php
index 04d8e60c65e8c..d3cd68c0dfbfc 100644
--- a/src/wp-includes/blocks/comment-author-name.php
+++ b/src/wp-includes/blocks/comment-author-name.php
@@ -25,12 +25,15 @@ function render_block_core_comment_author_name( $attributes, $content, $block )
return '';
}
- $classes = '';
+ $classes = array();
if ( isset( $attributes['textAlign'] ) ) {
- $classes .= 'has-text-align-' . $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' => $classes ) );
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
$comment_author = get_comment_author( $comment );
$link = get_comment_author_url( $comment );
diff --git a/src/wp-includes/blocks/comment-author-name/block.json b/src/wp-includes/blocks/comment-author-name/block.json
index 59300c317a679..cfa036fa80e2d 100644
--- a/src/wp-includes/blocks/comment-author-name/block.json
+++ b/src/wp-includes/blocks/comment-author-name/block.json
@@ -22,6 +22,7 @@
},
"usesContext": [ "commentId" ],
"supports": {
+ "anchor": true,
"html": false,
"spacing": {
"margin": true,
diff --git a/src/wp-includes/blocks/comment-content.php b/src/wp-includes/blocks/comment-content.php
index 90ba060b44dfa..50bca402acf03 100644
--- a/src/wp-includes/blocks/comment-content.php
+++ b/src/wp-includes/blocks/comment-content.php
@@ -49,12 +49,15 @@ function render_block_core_comment_content( $attributes, $content, $block ) {
}
}
- $classes = '';
+ $classes = array();
if ( isset( $attributes['textAlign'] ) ) {
- $classes .= 'has-text-align-' . $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' => $classes ) );
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
return sprintf(
'%2$s%3$s
',
diff --git a/src/wp-includes/blocks/comment-content/block.json b/src/wp-includes/blocks/comment-content/block.json
index 0c28c25f330ca..69917ccce6aea 100644
--- a/src/wp-includes/blocks/comment-content/block.json
+++ b/src/wp-includes/blocks/comment-content/block.json
@@ -14,6 +14,7 @@
}
},
"supports": {
+ "anchor": true,
"color": {
"gradients": true,
"link": true,
diff --git a/src/wp-includes/blocks/comment-date.php b/src/wp-includes/blocks/comment-date.php
index 9bff9f2f6cbbf..0f9c18bf2c006 100644
--- a/src/wp-includes/blocks/comment-date.php
+++ b/src/wp-includes/blocks/comment-date.php
@@ -23,7 +23,7 @@ function render_block_core_comment_date( $attributes, $content, $block ) {
return '';
}
- $classes = '';
+ $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : '';
$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) );
$formatted_date = get_comment_date(
diff --git a/src/wp-includes/blocks/comment-date/block.json b/src/wp-includes/blocks/comment-date/block.json
index e90cb0b0d8c4d..ea1e263338139 100644
--- a/src/wp-includes/blocks/comment-date/block.json
+++ b/src/wp-includes/blocks/comment-date/block.json
@@ -18,6 +18,7 @@
},
"usesContext": [ "commentId" ],
"supports": {
+ "anchor": true,
"html": false,
"color": {
"gradients": true,
diff --git a/src/wp-includes/blocks/comment-edit-link.php b/src/wp-includes/blocks/comment-edit-link.php
index 39727ea5aed10..ce7ad9bf207d4 100644
--- a/src/wp-includes/blocks/comment-edit-link.php
+++ b/src/wp-includes/blocks/comment-edit-link.php
@@ -27,12 +27,15 @@ function render_block_core_comment_edit_link( $attributes, $content, $block ) {
$link_atts .= sprintf( 'target="%s"', esc_attr( $attributes['linkTarget'] ) );
}
- $classes = '';
+ $classes = array();
if ( isset( $attributes['textAlign'] ) ) {
- $classes .= 'has-text-align-' . $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' => $classes ) );
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
return sprintf(
'',
diff --git a/src/wp-includes/blocks/comment-edit-link/block.json b/src/wp-includes/blocks/comment-edit-link/block.json
index 14795c83e1c53..e695ddc3801f7 100644
--- a/src/wp-includes/blocks/comment-edit-link/block.json
+++ b/src/wp-includes/blocks/comment-edit-link/block.json
@@ -18,6 +18,7 @@
}
},
"supports": {
+ "anchor": true,
"html": false,
"color": {
"link": true,
diff --git a/src/wp-includes/blocks/comment-reply-link.php b/src/wp-includes/blocks/comment-reply-link.php
index 169b62ac24bdf..3f7b6e48b617c 100644
--- a/src/wp-includes/blocks/comment-reply-link.php
+++ b/src/wp-includes/blocks/comment-reply-link.php
@@ -34,7 +34,7 @@ function render_block_core_comment_reply_link( $attributes, $content, $block ) {
// Compute comment's depth iterating over its ancestors.
while ( ! empty( $parent_id ) ) {
- $depth++;
+ ++$depth;
$parent_id = get_comment( $parent_id )->comment_parent;
}
@@ -51,12 +51,15 @@ function render_block_core_comment_reply_link( $attributes, $content, $block ) {
return;
}
- $classes = '';
+ $classes = array();
if ( isset( $attributes['textAlign'] ) ) {
- $classes .= 'has-text-align-' . $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' => $classes ) );
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
return sprintf(
'%2$s
',
diff --git a/src/wp-includes/blocks/comment-reply-link/block.json b/src/wp-includes/blocks/comment-reply-link/block.json
index 9d4a1d8668acc..7ed60f34f581f 100644
--- a/src/wp-includes/blocks/comment-reply-link/block.json
+++ b/src/wp-includes/blocks/comment-reply-link/block.json
@@ -14,6 +14,7 @@
}
},
"supports": {
+ "anchor": true,
"color": {
"gradients": true,
"link": true,
diff --git a/src/wp-includes/blocks/comment-template.php b/src/wp-includes/blocks/comment-template.php
index 770959854b58a..08620a3ea695f 100644
--- a/src/wp-includes/blocks/comment-template.php
+++ b/src/wp-includes/blocks/comment-template.php
@@ -50,13 +50,13 @@ function block_core_comment_template_render_comments( $comments, $block ) {
// comments.
if ( ! empty( $children ) && ! empty( $thread_comments ) ) {
if ( $comment_depth < $thread_comments_depth ) {
- $comment_depth += 1;
+ ++$comment_depth;
$inner_content = block_core_comment_template_render_comments(
$children,
$block
);
$block_content .= sprintf( '%1$s ', $inner_content );
- $comment_depth -= 1;
+ --$comment_depth;
} else {
$inner_content = block_core_comment_template_render_comments(
$children,
@@ -70,7 +70,6 @@ function block_core_comment_template_render_comments( $comments, $block ) {
}
return $content;
-
}
/**
diff --git a/src/wp-includes/blocks/comment-template/block.json b/src/wp-includes/blocks/comment-template/block.json
index 1a8dd4da1ada3..9d0eb98684f14 100644
--- a/src/wp-includes/blocks/comment-template/block.json
+++ b/src/wp-includes/blocks/comment-template/block.json
@@ -9,9 +9,14 @@
"textdomain": "default",
"usesContext": [ "postId" ],
"supports": {
- "reusable": false,
- "html": false,
"align": true,
+ "anchor": true,
+ "html": false,
+ "reusable": false,
+ "spacing": {
+ "margin": true,
+ "padding": true
+ },
"typography": {
"fontSize": true,
"lineHeight": true,
diff --git a/src/wp-includes/blocks/comments-pagination-next/block.json b/src/wp-includes/blocks/comments-pagination-next/block.json
index 48da9495bff62..f0cee1a1cdbe6 100644
--- a/src/wp-includes/blocks/comments-pagination-next/block.json
+++ b/src/wp-includes/blocks/comments-pagination-next/block.json
@@ -14,6 +14,7 @@
},
"usesContext": [ "postId", "comments/paginationArrow" ],
"supports": {
+ "anchor": true,
"reusable": false,
"html": false,
"color": {
diff --git a/src/wp-includes/blocks/comments-pagination-numbers/block.json b/src/wp-includes/blocks/comments-pagination-numbers/block.json
index 97a0649a7a4c1..0ab4f965ff1cd 100644
--- a/src/wp-includes/blocks/comments-pagination-numbers/block.json
+++ b/src/wp-includes/blocks/comments-pagination-numbers/block.json
@@ -9,8 +9,16 @@
"textdomain": "default",
"usesContext": [ "postId" ],
"supports": {
+ "anchor": true,
"reusable": false,
"html": false,
+ "color": {
+ "gradients": true,
+ "text": false,
+ "__experimentalDefaultControls": {
+ "background": true
+ }
+ },
"typography": {
"fontSize": true,
"lineHeight": true,
diff --git a/src/wp-includes/blocks/comments-pagination-previous/block.json b/src/wp-includes/blocks/comments-pagination-previous/block.json
index a48782af29760..211e1a33305a0 100644
--- a/src/wp-includes/blocks/comments-pagination-previous/block.json
+++ b/src/wp-includes/blocks/comments-pagination-previous/block.json
@@ -14,6 +14,7 @@
},
"usesContext": [ "postId", "comments/paginationArrow" ],
"supports": {
+ "anchor": true,
"reusable": false,
"html": false,
"color": {
diff --git a/src/wp-includes/blocks/comments-pagination.php b/src/wp-includes/blocks/comments-pagination.php
index 5c041c237c64f..2f9cef27f78cf 100644
--- a/src/wp-includes/blocks/comments-pagination.php
+++ b/src/wp-includes/blocks/comments-pagination.php
@@ -22,9 +22,12 @@ function render_block_core_comments_pagination( $attributes, $content ) {
return;
}
+ $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : '';
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) );
+
return sprintf(
'%2$s
',
- get_block_wrapper_attributes(),
+ $wrapper_attributes,
$content
);
}
diff --git a/src/wp-includes/blocks/comments-pagination/block.json b/src/wp-includes/blocks/comments-pagination/block.json
index ffa2828912f26..d7c8be4b8eaa2 100644
--- a/src/wp-includes/blocks/comments-pagination/block.json
+++ b/src/wp-includes/blocks/comments-pagination/block.json
@@ -17,6 +17,7 @@
"comments/paginationArrow": "paginationArrow"
},
"supports": {
+ "anchor": true,
"align": true,
"reusable": false,
"html": false,
diff --git a/src/wp-includes/blocks/comments.php b/src/wp-includes/blocks/comments.php
index 69044c081c74e..a5e51cfbf4e79 100644
--- a/src/wp-includes/blocks/comments.php
+++ b/src/wp-includes/blocks/comments.php
@@ -202,7 +202,6 @@ function register_legacy_post_comments_block() {
'wp-block-buttons',
'wp-block-button',
),
- 'editorStyle' => 'wp-block-post-comments-editor',
'render_callback' => 'render_block_core_comments',
'skip_inner_blocks' => true,
);
diff --git a/src/wp-includes/blocks/comments/block.json b/src/wp-includes/blocks/comments/block.json
index 59d315b5fcb83..19490f6e99eb4 100644
--- a/src/wp-includes/blocks/comments/block.json
+++ b/src/wp-includes/blocks/comments/block.json
@@ -18,6 +18,7 @@
},
"supports": {
"align": [ "wide", "full" ],
+ "anchor": true,
"html": false,
"color": {
"gradients": true,
@@ -28,6 +29,10 @@
"link": true
}
},
+ "spacing": {
+ "margin": true,
+ "padding": true
+ },
"typography": {
"fontSize": true,
"lineHeight": true,
diff --git a/src/wp-includes/blocks/cover.php b/src/wp-includes/blocks/cover.php
index 4168d267671f7..e5a497fd76889 100644
--- a/src/wp-includes/blocks/cover.php
+++ b/src/wp-includes/blocks/cover.php
@@ -25,7 +25,7 @@ function render_block_core_cover( $attributes, $content ) {
);
if ( isset( $attributes['focalPoint'] ) ) {
- $object_position = round( $attributes['focalPoint']['x'] * 100 ) . '%' . ' ' . round( $attributes['focalPoint']['y'] * 100 ) . '%';
+ $object_position = round( $attributes['focalPoint']['x'] * 100 ) . '% ' . round( $attributes['focalPoint']['y'] * 100 ) . '%';
$attr['data-object-position'] = $object_position;
$attr['style'] = 'object-position: ' . $object_position;
}
diff --git a/src/wp-includes/blocks/cover/block.json b/src/wp-includes/blocks/cover/block.json
index 1982ecc44853e..3bcc779a0f127 100644
--- a/src/wp-includes/blocks/cover/block.json
+++ b/src/wp-includes/blocks/cover/block.json
@@ -74,6 +74,10 @@
"templateLock": {
"type": [ "string", "boolean" ],
"enum": [ "all", "insert", "contentOnly", false ]
+ },
+ "tagName": {
+ "type": "string",
+ "default": "div"
}
},
"usesContext": [ "postId", "postType" ],
diff --git a/src/wp-includes/blocks/embed/block.json b/src/wp-includes/blocks/embed/block.json
index 7257b54cf20fa..e36768cd72780 100644
--- a/src/wp-includes/blocks/embed/block.json
+++ b/src/wp-includes/blocks/embed/block.json
@@ -8,18 +8,22 @@
"textdomain": "default",
"attributes": {
"url": {
- "type": "string"
+ "type": "string",
+ "__experimentalRole": "content"
},
"caption": {
"type": "string",
"source": "html",
- "selector": "figcaption"
+ "selector": "figcaption",
+ "__experimentalRole": "content"
},
"type": {
- "type": "string"
+ "type": "string",
+ "__experimentalRole": "content"
},
"providerNameSlug": {
- "type": "string"
+ "type": "string",
+ "__experimentalRole": "content"
},
"allowResponsive": {
"type": "boolean",
@@ -27,11 +31,13 @@
},
"responsive": {
"type": "boolean",
- "default": false
+ "default": false,
+ "__experimentalRole": "content"
},
"previewable": {
"type": "boolean",
- "default": true
+ "default": true,
+ "__experimentalRole": "content"
}
},
"supports": {
diff --git a/src/wp-includes/blocks/gallery.php b/src/wp-includes/blocks/gallery.php
index 7bc5e2821b796..ff1fb8ef42d89 100644
--- a/src/wp-includes/blocks/gallery.php
+++ b/src/wp-includes/blocks/gallery.php
@@ -76,13 +76,10 @@ function block_core_gallery_render( $attributes, $content ) {
}
}
- $class = wp_unique_id( 'wp-block-gallery-' );
- $content = preg_replace(
- '/' . preg_quote( 'class="', '/' ) . '/',
- 'class="' . $class . ' ',
- $content,
- 1
- );
+ $unique_gallery_classname = wp_unique_id( 'wp-block-gallery-' );
+ $processed_content = new WP_HTML_Tag_Processor( $content );
+ $processed_content->next_tag();
+ $processed_content->add_class( $unique_gallery_classname );
// --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default
// gap on the gallery.
@@ -102,10 +99,22 @@ function block_core_gallery_render( $attributes, $content ) {
}
// Set the CSS variable to the column value, and the `gap` property to the combined gap value.
- $style = '.wp-block-gallery.' . $class . '{ --wp--style--unstable-gallery-gap: ' . $gap_column . '; gap: ' . $gap_value . '}';
+ $gallery_styles = array();
+ $gallery_styles[] = array(
+ 'selector' => ".wp-block-gallery.{$unique_gallery_classname}",
+ 'declarations' => array(
+ '--wp--style--unstable-gallery-gap' => $gap_column,
+ 'gap' => $gap_value,
+ ),
+ );
- wp_enqueue_block_support_styles( $style, 11 );
- return $content;
+ gutenberg_style_engine_get_stylesheet_from_css_rules(
+ $gallery_styles,
+ array(
+ 'context' => 'block-supports',
+ )
+ );
+ return (string) $processed_content;
}
/**
* Registers the `core/gallery` block on server.
diff --git a/src/wp-includes/blocks/group/block.json b/src/wp-includes/blocks/group/block.json
index 968f00cb1c5cb..2b227a15847a2 100644
--- a/src/wp-includes/blocks/group/block.json
+++ b/src/wp-includes/blocks/group/block.json
@@ -41,6 +41,9 @@
"blockGap": true
}
},
+ "dimensions": {
+ "minHeight": true
+ },
"__experimentalBorder": {
"color": true,
"radius": true,
@@ -53,6 +56,9 @@
"width": true
}
},
+ "position": {
+ "sticky": true
+ },
"typography": {
"fontSize": true,
"lineHeight": true,
@@ -66,7 +72,9 @@
"fontSize": true
}
},
- "__experimentalLayout": true
+ "__experimentalLayout": {
+ "allowSizingOnChildren": true
+ }
},
"editorStyle": "wp-block-group-editor",
"style": "wp-block-group"
diff --git a/src/wp-includes/blocks/heading.php b/src/wp-includes/blocks/heading.php
new file mode 100644
index 0000000000000..5a7e8dbaab43c
--- /dev/null
+++ b/src/wp-includes/blocks/heading.php
@@ -0,0 +1,52 @@
+Hello World
+ *
+ * Would be transformed to:
+ * Hello World
+ *
+ * @param array $attributes Attributes of the block being rendered.
+ * @param string $content Content of the block being rendered.
+ *
+ * @return string The content of the block being rendered.
+ */
+function block_core_heading_render( $attributes, $content ) {
+ if ( ! $content ) {
+ return $content;
+ }
+
+ $p = new WP_HTML_Tag_Processor( $content );
+
+ $header_tags = array( 'H1', 'H2', 'H3', 'H4', 'H5', 'H6' );
+ while ( $p->next_tag() ) {
+ if ( in_array( $p->get_tag(), $header_tags, true ) ) {
+ $p->add_class( 'wp-block-heading' );
+ break;
+ }
+ }
+
+ return $p->get_updated_html();
+}
+
+/**
+ * Registers the `core/heading` block on server.
+ */
+function register_block_core_heading() {
+ register_block_type_from_metadata(
+ __DIR__ . '/heading',
+ array(
+ 'render_callback' => 'block_core_heading_render',
+ )
+ );
+}
+
+add_action( 'init', 'register_block_core_heading' );
diff --git a/src/wp-includes/blocks/heading/block.json b/src/wp-includes/blocks/heading/block.json
index 89c1514808911..f9d701eace964 100644
--- a/src/wp-includes/blocks/heading/block.json
+++ b/src/wp-includes/blocks/heading/block.json
@@ -29,7 +29,7 @@
"supports": {
"align": [ "wide", "full" ],
"anchor": true,
- "className": false,
+ "className": true,
"color": {
"gradients": true,
"link": true,
@@ -57,7 +57,6 @@
"textTransform": true
}
},
- "__experimentalSelector": "h1,h2,h3,h4,h5,h6",
"__unstablePasteTextInline": true,
"__experimentalSlashInserter": true
},
diff --git a/src/wp-includes/blocks/home-link.php b/src/wp-includes/blocks/home-link.php
index 5bf7aeda5505d..33f41057c936b 100644
--- a/src/wp-includes/blocks/home-link.php
+++ b/src/wp-includes/blocks/home-link.php
@@ -128,7 +128,7 @@ function render_block_core_home_link( $attributes, $content, $block ) {
$aria_current = is_home() || ( is_front_page() && 'page' === get_option( 'show_on_front' ) ) ? ' aria-current="page"' : '';
return sprintf(
- '%4$s ',
+ '%4$s ',
block_core_home_link_build_li_wrapper_attributes( $block->context ),
esc_url( home_url() ),
$aria_current,
diff --git a/src/wp-includes/blocks/home-link/block.json b/src/wp-includes/blocks/home-link/block.json
index 567bdf8c27ba7..df964ad76bc68 100644
--- a/src/wp-includes/blocks/home-link/block.json
+++ b/src/wp-includes/blocks/home-link/block.json
@@ -22,6 +22,7 @@
"style"
],
"supports": {
+ "anchor": true,
"reusable": false,
"html": false,
"typography": {
diff --git a/src/wp-includes/blocks/html/block.json b/src/wp-includes/blocks/html/block.json
index e72a674373e14..c1e1e94b87496 100644
--- a/src/wp-includes/blocks/html/block.json
+++ b/src/wp-includes/blocks/html/block.json
@@ -10,7 +10,7 @@
"attributes": {
"content": {
"type": "string",
- "source": "html"
+ "source": "raw"
}
},
"supports": {
diff --git a/src/wp-includes/blocks/latest-comments/block.json b/src/wp-includes/blocks/latest-comments/block.json
index 4f8b0fbf54284..b7ba5c71a6832 100644
--- a/src/wp-includes/blocks/latest-comments/block.json
+++ b/src/wp-includes/blocks/latest-comments/block.json
@@ -29,7 +29,12 @@
},
"supports": {
"align": true,
- "html": false
+ "anchor": true,
+ "html": false,
+ "spacing": {
+ "margin": true,
+ "padding": true
+ }
},
"editorStyle": "wp-block-latest-comments-editor",
"style": "wp-block-latest-comments"
diff --git a/src/wp-includes/blocks/latest-posts.php b/src/wp-includes/blocks/latest-posts.php
index cbeafb6677a13..d3945ee2c9ee2 100644
--- a/src/wp-includes/blocks/latest-posts.php
+++ b/src/wp-includes/blocks/latest-posts.php
@@ -55,7 +55,7 @@ function render_block_core_latest_posts( $attributes ) {
$args['author'] = $attributes['selectedAuthor'];
}
- $query = new WP_Query;
+ $query = new WP_Query();
$recent_posts = $query->query( $args );
if ( isset( $attributes['displayFeaturedImage'] ) && $attributes['displayFeaturedImage'] ) {
@@ -173,25 +173,24 @@ function render_block_core_latest_posts( $attributes ) {
remove_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 );
- $class = 'wp-block-latest-posts__list';
-
+ $classes = array( 'wp-block-latest-posts__list' );
if ( isset( $attributes['postLayout'] ) && 'grid' === $attributes['postLayout'] ) {
- $class .= ' is-grid';
+ $classes[] = 'is-grid';
}
-
if ( isset( $attributes['columns'] ) && 'grid' === $attributes['postLayout'] ) {
- $class .= ' columns-' . $attributes['columns'];
+ $classes[] = 'columns-' . $attributes['columns'];
}
-
if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) {
- $class .= ' has-dates';
+ $classes[] = 'has-dates';
}
-
if ( isset( $attributes['displayAuthor'] ) && $attributes['displayAuthor'] ) {
- $class .= ' has-author';
+ $classes[] = 'has-author';
+ }
+ if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
+ $classes[] = 'has-link-color';
}
- $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $class ) );
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
return sprintf(
'',
diff --git a/src/wp-includes/blocks/latest-posts/block.json b/src/wp-includes/blocks/latest-posts/block.json
index b423b09d900cb..9b451f5875c73 100644
--- a/src/wp-includes/blocks/latest-posts/block.json
+++ b/src/wp-includes/blocks/latest-posts/block.json
@@ -84,7 +84,21 @@
},
"supports": {
"align": true,
+ "anchor": true,
"html": false,
+ "color": {
+ "gradients": true,
+ "link": true,
+ "__experimentalDefaultControls": {
+ "background": true,
+ "text": true,
+ "link": true
+ }
+ },
+ "spacing": {
+ "margin": true,
+ "padding": true
+ },
"typography": {
"fontSize": true,
"lineHeight": true,
diff --git a/src/wp-includes/blocks/list-item/block.json b/src/wp-includes/blocks/list-item/block.json
index 674cf381aa99c..745d6e30b4dd6 100644
--- a/src/wp-includes/blocks/list-item/block.json
+++ b/src/wp-includes/blocks/list-item/block.json
@@ -21,6 +21,19 @@
},
"supports": {
"className": false,
- "__experimentalSelector": "li"
+ "__experimentalSelector": "li",
+ "typography": {
+ "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/loginout/block.json b/src/wp-includes/blocks/loginout/block.json
index 3db9d0040ce5f..aea0bb9e68840 100644
--- a/src/wp-includes/blocks/loginout/block.json
+++ b/src/wp-includes/blocks/loginout/block.json
@@ -18,6 +18,7 @@
}
},
"supports": {
+ "anchor": true,
"className": true,
"typography": {
"fontSize": false
diff --git a/src/wp-includes/blocks/navigation-link.php b/src/wp-includes/blocks/navigation-link.php
index f32437b41a3f8..4b0dace04c1b8 100644
--- a/src/wp-includes/blocks/navigation-link.php
+++ b/src/wp-includes/blocks/navigation-link.php
@@ -120,6 +120,33 @@ function block_core_navigation_link_render_submenu_icon() {
return ' ';
}
+/**
+ * Decodes a url if it's encoded, returning the same url if not.
+ *
+ * @param string $url The url to decode.
+ *
+ * @return string $url Returns the decoded url.
+ */
+function block_core_navigation_link_maybe_urldecode( $url ) {
+ $is_url_encoded = false;
+ $query = parse_url( $url, PHP_URL_QUERY );
+ $query_params = wp_parse_args( $query );
+
+ foreach ( $query_params as $query_param ) {
+ if ( rawurldecode( $query_param ) !== $query_param ) {
+ $is_url_encoded = true;
+ break;
+ }
+ }
+
+ if ( $is_url_encoded ) {
+ return rawurldecode( $url );
+ }
+
+ return $url;
+}
+
+
/**
* Renders the `core/navigation-link` block.
*
@@ -171,7 +198,7 @@ function render_block_core_navigation_link( $attributes, $content, $block ) {
// Start appending HTML attributes to anchor tag.
if ( isset( $attributes['url'] ) ) {
- $html .= ' href="' . esc_url( $attributes['url'] ) . '"';
+ $html .= ' href="' . esc_url( block_core_navigation_link_maybe_urldecode( $attributes['url'] ) ) . '"';
}
if ( $is_active ) {
@@ -344,3 +371,35 @@ function register_block_core_navigation_link() {
);
}
add_action( 'init', 'register_block_core_navigation_link' );
+
+/**
+ * Enables animation of the block inspector for the Navigation Link block.
+ *
+ * See:
+ * - https://github.com/WordPress/gutenberg/pull/46342
+ * - https://github.com/WordPress/gutenberg/issues/45884
+ *
+ * @param array $settings Default editor settings.
+ * @return array Filtered editor settings.
+ */
+function gutenberg_enable_animation_for_navigation_link_inspector( $settings ) {
+ $current_animation_settings = _wp_array_get(
+ $settings,
+ array( '__experimentalBlockInspectorAnimation' ),
+ array()
+ );
+
+ $settings['__experimentalBlockInspectorAnimation'] = array_merge(
+ $current_animation_settings,
+ array(
+ 'core/navigation-link' =>
+ array(
+ 'enterDirection' => 'rightToLeft',
+ ),
+ )
+ );
+
+ return $settings;
+}
+
+add_filter( 'block_editor_settings_all', 'gutenberg_enable_animation_for_navigation_link_inspector' );
diff --git a/src/wp-includes/blocks/navigation-submenu.php b/src/wp-includes/blocks/navigation-submenu.php
index 0ad7ba1d658f4..84bc859a62525 100644
--- a/src/wp-includes/blocks/navigation-submenu.php
+++ b/src/wp-includes/blocks/navigation-submenu.php
@@ -155,7 +155,7 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
$css_classes = trim( implode( ' ', $classes ) );
$has_submenu = count( $block->inner_blocks ) > 0;
- $is_active = ! empty( $attributes['id'] ) && ( get_the_ID() === (int) $attributes['id'] );
+ $is_active = ! empty( $attributes['id'] ) && ( get_queried_object_id() === (int) $attributes['id'] );
$show_submenu_indicators = isset( $block->context['showSubmenuIcon'] ) && $block->context['showSubmenuIcon'];
$open_on_click = isset( $block->context['openSubmenusOnClick'] ) && $block->context['openSubmenusOnClick'];
@@ -255,6 +255,14 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) {
$inner_blocks_html .= $inner_block->render();
}
+ if ( strpos( $inner_blocks_html, 'current-menu-item' ) ) {
+ $tag_processor = new WP_HTML_Tag_Processor( $html );
+ while ( $tag_processor->next_tag( array( 'class_name' => 'wp-block-navigation-item__content' ) ) ) {
+ $tag_processor->add_class( 'current-menu-ancestor' );
+ }
+ $html = $tag_processor->get_updated_html();
+ }
+
$html .= sprintf(
'',
$inner_blocks_html
@@ -281,3 +289,35 @@ function register_block_core_navigation_submenu() {
);
}
add_action( 'init', 'register_block_core_navigation_submenu' );
+
+/**
+ * Enables animation of the block inspector for the Navigation Submenu block.
+ *
+ * See:
+ * - https://github.com/WordPress/gutenberg/pull/46342
+ * - https://github.com/WordPress/gutenberg/issues/45884
+ *
+ * @param array $settings Default editor settings.
+ * @return array Filtered editor settings.
+ */
+function gutenberg_enable_animation_for_navigation_submenu_inspector( $settings ) {
+ $current_animation_settings = _wp_array_get(
+ $settings,
+ array( '__experimentalBlockInspectorAnimation' ),
+ array()
+ );
+
+ $settings['__experimentalBlockInspectorAnimation'] = array_merge(
+ $current_animation_settings,
+ array(
+ 'core/navigation-submenu' =>
+ array(
+ 'enterDirection' => 'rightToLeft',
+ ),
+ )
+ );
+
+ return $settings;
+}
+
+add_filter( 'block_editor_settings_all', 'gutenberg_enable_animation_for_navigation_submenu_inspector' );
diff --git a/src/wp-includes/blocks/navigation.php b/src/wp-includes/blocks/navigation.php
index c3f6317eb2955..8c5aa720b488b 100644
--- a/src/wp-includes/blocks/navigation.php
+++ b/src/wp-includes/blocks/navigation.php
@@ -248,6 +248,121 @@ 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.
@@ -255,7 +370,8 @@ function block_core_navigation_render_submenu_icon() {
* @return WP_Post|null the first non-empty Navigation or null.
*/
function block_core_navigation_get_most_recently_published_navigation() {
- // We default to the most recently created menu.
+
+ // Default to the most recently created menu.
$parsed_args = array(
'post_type' => 'wp_navigation',
'no_found_rows' => true,
@@ -294,6 +410,25 @@ function( $block ) {
return array_values( $filtered );
}
+/**
+ * Returns true if the navigation block contains a nested navigation block.
+ *
+ * @param WP_Block_List $inner_blocks Inner block instance to be normalized.
+ * @return bool true if the navigation block contains a nested navigation block.
+ */
+function block_core_navigation_block_contains_core_navigation( $inner_blocks ) {
+ foreach ( $inner_blocks as $block ) {
+ if ( 'core/navigation' === $block->name ) {
+ return true;
+ }
+ if ( $block->inner_blocks && block_core_navigation_block_contains_core_navigation( $block->inner_blocks ) ) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
/**
* Retrieves the appropriate fallback to be used on the front of the
* site when there is no menu assigned to the Nav block.
@@ -319,9 +454,16 @@ function block_core_navigation_get_fallback_blocks() {
$navigation_post = block_core_navigation_get_most_recently_published_navigation();
- // Prefer using the first non-empty Navigation as fallback if available.
+ // 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();
+ }
+
+ // Use the first non-empty Navigation as fallback if available.
if ( $navigation_post ) {
- $maybe_fallback = block_core_navigation_filter_out_empty_blocks( parse_blocks( $navigation_post->post_content ) );
+ $parsed_blocks = parse_blocks( $navigation_post->post_content );
+ $maybe_fallback = block_core_navigation_filter_out_empty_blocks( $parsed_blocks );
// Normalizing blocks may result in an empty array of blocks if they were all `null` blocks.
// In this case default to the (Page List) fallback.
@@ -501,6 +643,10 @@ function render_block_core_navigation( $attributes, $content, $block ) {
$inner_blocks = new WP_Block_List( $fallback_blocks, $attributes );
}
+ if ( block_core_navigation_block_contains_core_navigation( $inner_blocks ) ) {
+ return '';
+ }
+
/**
* Filter navigation block $inner_blocks.
* Allows modification of a navigation block menu items.
@@ -551,22 +697,41 @@ function render_block_core_navigation( $attributes, $content, $block ) {
_prime_post_caches( $post_ids, false, false );
}
+ $list_item_nav_blocks = array(
+ 'core/navigation-link',
+ 'core/home-link',
+ 'core/site-title',
+ 'core/site-logo',
+ 'core/navigation-submenu',
+ );
+
+ $needs_list_item_wrapper = array(
+ 'core/site-title',
+ 'core/site-logo',
+ );
+
$inner_blocks_html = '';
$is_list_open = false;
foreach ( $inner_blocks as $inner_block ) {
- if ( ( 'core/navigation-link' === $inner_block->name || 'core/home-link' === $inner_block->name || 'core/site-title' === $inner_block->name || 'core/site-logo' === $inner_block->name || 'core/navigation-submenu' === $inner_block->name ) && ! $is_list_open ) {
+ $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 .= '';
}
- if ( 'core/navigation-link' !== $inner_block->name && 'core/home-link' !== $inner_block->name && 'core/site-title' !== $inner_block->name && 'core/site-logo' !== $inner_block->name && 'core/navigation-submenu' !== $inner_block->name && $is_list_open ) {
+
+ if ( ! $is_list_item && $is_list_open ) {
$is_list_open = false;
$inner_blocks_html .= ' ';
}
+
$inner_block_content = $inner_block->render();
- if ( 'core/site-title' === $inner_block->name || ( 'core/site-logo' === $inner_block->name && $inner_block_content ) ) {
- $inner_blocks_html .= '' . $inner_block_content . ' ';
- } else {
- $inner_blocks_html .= $inner_block_content;
+ if ( ! empty( $inner_block_content ) ) {
+ if ( in_array( $inner_block->name, $needs_list_item_wrapper, true ) ) {
+ $inner_blocks_html .= '' . $inner_block_content . ' ';
+ } else {
+ $inner_blocks_html .= $inner_block_content;
+ }
}
}
@@ -709,3 +874,35 @@ function block_core_navigation_typographic_presets_backcompatibility( $parsed_bl
}
add_filter( 'render_block_data', 'block_core_navigation_typographic_presets_backcompatibility' );
+
+/**
+ * Enables animation of the block inspector for the Navigation block.
+ *
+ * See:
+ * - https://github.com/WordPress/gutenberg/pull/46342
+ * - https://github.com/WordPress/gutenberg/issues/45884
+ *
+ * @param array $settings Default editor settings.
+ * @return array Filtered editor settings.
+ */
+function gutenberg_enable_animation_for_navigation_inspector( $settings ) {
+ $current_animation_settings = _wp_array_get(
+ $settings,
+ array( '__experimentalBlockInspectorAnimation' ),
+ array()
+ );
+
+ $settings['__experimentalBlockInspectorAnimation'] = array_merge(
+ $current_animation_settings,
+ array(
+ 'core/navigation' =>
+ array(
+ 'enterDirection' => 'leftToRight',
+ ),
+ )
+ );
+
+ return $settings;
+}
+
+add_filter( 'block_editor_settings_all', 'gutenberg_enable_animation_for_navigation_inspector' );
diff --git a/src/wp-includes/blocks/navigation/block.json b/src/wp-includes/blocks/navigation/block.json
index 5e856a30ceaba..16b0e57505c69 100644
--- a/src/wp-includes/blocks/navigation/block.json
+++ b/src/wp-includes/blocks/navigation/block.json
@@ -67,6 +67,10 @@
"maxNestingLevel": {
"type": "number",
"default": 5
+ },
+ "templateLock": {
+ "type": [ "string", "boolean" ],
+ "enum": [ "all", "insert", "contentOnly", false ]
}
},
"providesContext": {
@@ -88,6 +92,7 @@
},
"supports": {
"align": [ "wide", "full" ],
+ "anchor": true,
"html": false,
"inserter": true,
"typography": {
@@ -115,6 +120,7 @@
"allowSwitching": false,
"allowInheriting": false,
"allowVerticalAlignment": false,
+ "allowSizingOnChildren": true,
"default": {
"type": "flex"
}
diff --git a/src/wp-includes/blocks/navigation/view-modal.asset.php b/src/wp-includes/blocks/navigation/view-modal.asset.php
index a4d19fb3ca75c..35bf91ef33bec 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' => '6d574d0390bc333487cb');
+ array(), 'version' => 'd09326a9acd3f6992aae');
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 97565b80d692d..c6b1fdefa293a 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' => '45f05135277abf0b0408');
+ array(), 'version' => 'f51363b18f0497ec84da');
diff --git a/src/wp-includes/blocks/page-list-item/block.json b/src/wp-includes/blocks/page-list-item/block.json
new file mode 100644
index 0000000000000..04e7f7f574dd2
--- /dev/null
+++ b/src/wp-includes/blocks/page-list-item/block.json
@@ -0,0 +1,52 @@
+{
+ "$schema": "https://schemas.wp.org/trunk/block.json",
+ "apiVersion": 2,
+ "name": "core/page-list-item",
+ "title": "Page List Item",
+ "category": "widgets",
+ "parent": [ "core/page-list" ],
+ "description": "Displays a page inside a list of all pages.",
+ "keywords": [ "page", "menu", "navigation" ],
+ "textdomain": "default",
+ "attributes": {
+ "id": {
+ "type": "number"
+ },
+ "label": {
+ "type": "string"
+ },
+ "title": {
+ "type": "string"
+ },
+ "link": {
+ "type": "string"
+ },
+ "hasChildren": {
+ "type": "boolean"
+ }
+ },
+ "usesContext": [
+ "textColor",
+ "customTextColor",
+ "backgroundColor",
+ "customBackgroundColor",
+ "overlayTextColor",
+ "customOverlayTextColor",
+ "overlayBackgroundColor",
+ "customOverlayBackgroundColor",
+ "fontSize",
+ "customFontSize",
+ "showSubmenuIcon",
+ "style",
+ "openSubmenusOnClick"
+ ],
+ "supports": {
+ "reusable": false,
+ "html": false,
+ "lock": false,
+ "inserter": false,
+ "__experimentalToolbar": false
+ },
+ "editorStyle": "wp-block-page-list-editor",
+ "style": "wp-block-page-list"
+}
diff --git a/src/wp-includes/blocks/page-list.php b/src/wp-includes/blocks/page-list.php
index 5ef169fe13a87..efc73ad3a0a48 100644
--- a/src/wp-includes/blocks/page-list.php
+++ b/src/wp-includes/blocks/page-list.php
@@ -139,13 +139,14 @@ function block_core_page_list_build_css_font_sizes( $context ) {
* @param boolean $show_submenu_icons Whether to show submenu indicator icons.
* @param boolean $is_navigation_child If block is a child of Navigation block.
* @param array $nested_pages The array of nested pages.
+ * @param boolean $is_nested Whether the submenu is nested or not.
* @param array $active_page_ancestor_ids An array of ancestor ids for active page.
* @param array $colors Color information for overlay styles.
* @param integer $depth The nesting depth.
*
* @return string List markup.
*/
-function block_core_page_list_render_nested_page_list( $open_submenus_on_click, $show_submenu_icons, $is_navigation_child, $nested_pages, $active_page_ancestor_ids = array(), $colors = array(), $depth = 0 ) {
+function block_core_page_list_render_nested_page_list( $open_submenus_on_click, $show_submenu_icons, $is_navigation_child, $nested_pages, $is_nested, $active_page_ancestor_ids = array(), $colors = array(), $depth = 0 ) {
if ( empty( $nested_pages ) ) {
return;
}
@@ -173,7 +174,7 @@ function block_core_page_list_render_nested_page_list( $open_submenus_on_click,
$navigation_child_content_class = $is_navigation_child ? ' wp-block-navigation-item__content' : '';
// If this is the first level of submenus, include the overlay colors.
- if ( 1 === $depth && isset( $colors['overlay_css_classes'], $colors['overlay_inline_styles'] ) ) {
+ if ( ( ( 0 < $depth && ! $is_nested ) || $is_nested ) && isset( $colors['overlay_css_classes'], $colors['overlay_inline_styles'] ) ) {
$css_class .= ' ' . trim( implode( ' ', $colors['overlay_css_classes'] ) );
if ( '' !== $colors['overlay_inline_styles'] ) {
$style_attribute = sprintf( ' style="%s"', esc_attr( $colors['overlay_inline_styles'] ) );
@@ -196,7 +197,7 @@ function block_core_page_list_render_nested_page_list( $open_submenus_on_click,
if ( isset( $page['children'] ) && $is_navigation_child && $open_submenus_on_click ) {
$markup .= '' . '';
+ '';
} else {
$markup .= '' . $title . ' ';
}
@@ -207,12 +208,9 @@ function block_core_page_list_render_nested_page_list( $open_submenus_on_click,
$markup .= ' ';
$markup .= '';
}
- $markup .= '';
+ $markup .= '';
}
$markup .= '';
}
@@ -250,7 +248,10 @@ function block_core_page_list_nest_pages( $current_level, $children ) {
*/
function render_block_core_page_list( $attributes, $content, $block ) {
static $block_id = 0;
- $block_id++;
+ ++$block_id;
+
+ $parent_page_id = $attributes['parentPageID'];
+ $is_nested = $attributes['isNested'];
$all_pages = get_pages(
array(
@@ -271,7 +272,7 @@ function render_block_core_page_list( $attributes, $content, $block ) {
$active_page_ancestor_ids = array();
foreach ( (array) $all_pages as $page ) {
- $is_active = ! empty( $page->ID ) && ( get_the_ID() === $page->ID );
+ $is_active = ! empty( $page->ID ) && ( get_queried_object_id() === $page->ID );
if ( $is_active ) {
$active_page_ancestor_ids = get_post_ancestors( $page->ID );
@@ -306,15 +307,27 @@ function render_block_core_page_list( $attributes, $content, $block ) {
$nested_pages = block_core_page_list_nest_pages( $top_level_pages, $pages_with_children );
+ if ( 0 !== $parent_page_id ) {
+ // If the parent page has no child pages, there is nothing to show.
+ if ( ! array_key_exists( $parent_page_id, $pages_with_children ) ) {
+ return;
+ }
+
+ $nested_pages = block_core_page_list_nest_pages(
+ $pages_with_children[ $parent_page_id ],
+ $pages_with_children
+ );
+ }
+
$is_navigation_child = array_key_exists( 'showSubmenuIcon', $block->context );
$open_submenus_on_click = array_key_exists( 'openSubmenusOnClick', $block->context ) ? $block->context['openSubmenusOnClick'] : false;
$show_submenu_icons = array_key_exists( 'showSubmenuIcon', $block->context ) ? $block->context['showSubmenuIcon'] : false;
- $wrapper_markup = '';
+ $wrapper_markup = $is_nested ? '%2$s' : '';
- $items_markup = block_core_page_list_render_nested_page_list( $open_submenus_on_click, $show_submenu_icons, $is_navigation_child, $nested_pages, $active_page_ancestor_ids, $colors );
+ $items_markup = block_core_page_list_render_nested_page_list( $open_submenus_on_click, $show_submenu_icons, $is_navigation_child, $nested_pages, $is_nested, $active_page_ancestor_ids, $colors );
$wrapper_attributes = get_block_wrapper_attributes(
array(
diff --git a/src/wp-includes/blocks/page-list/block.json b/src/wp-includes/blocks/page-list/block.json
index 3068a1fb8bc00..0fa309431202a 100644
--- a/src/wp-includes/blocks/page-list/block.json
+++ b/src/wp-includes/blocks/page-list/block.json
@@ -7,7 +7,16 @@
"description": "Display a list of all pages.",
"keywords": [ "menu", "navigation" ],
"textdomain": "default",
- "attributes": {},
+ "attributes": {
+ "parentPageID": {
+ "type": "integer",
+ "default": 0
+ },
+ "isNested": {
+ "type": "boolean",
+ "default": false
+ }
+ },
"usesContext": [
"textColor",
"customTextColor",
@@ -24,8 +33,22 @@
"openSubmenusOnClick"
],
"supports": {
+ "anchor": true,
"reusable": false,
- "html": false
+ "html": false,
+ "typography": {
+ "fontSize": true,
+ "lineHeight": true,
+ "__experimentalFontFamily": true,
+ "__experimentalFontWeight": true,
+ "__experimentalFontStyle": true,
+ "__experimentalTextTransform": true,
+ "__experimentalTextDecoration": true,
+ "__experimentalLetterSpacing": true,
+ "__experimentalDefaultControls": {
+ "fontSize": true
+ }
+ }
},
"editorStyle": "wp-block-page-list-editor",
"style": "wp-block-page-list"
diff --git a/src/wp-includes/blocks/post-author-biography/block.json b/src/wp-includes/blocks/post-author-biography/block.json
index 434b6b0965880..a2e5f327acfeb 100644
--- a/src/wp-includes/blocks/post-author-biography/block.json
+++ b/src/wp-includes/blocks/post-author-biography/block.json
@@ -13,6 +13,7 @@
},
"usesContext": [ "postType", "postId" ],
"supports": {
+ "anchor": true,
"spacing": {
"margin": true,
"padding": true
diff --git a/src/wp-includes/blocks/post-author-name.php b/src/wp-includes/blocks/post-author-name.php
new file mode 100644
index 0000000000000..c5c6d142e06dd
--- /dev/null
+++ b/src/wp-includes/blocks/post-author-name.php
@@ -0,0 +1,54 @@
+context['postId'] ) ) {
+ return '';
+ }
+
+ $author_id = get_post_field( 'post_author', $block->context['postId'] );
+ if ( empty( $author_id ) ) {
+ return '';
+ }
+
+ $author_name = get_the_author_meta( 'display_name', $author_id );
+ if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) {
+ $author_name = sprintf( '%3$s ', get_author_posts_url( $author_id ), esc_attr( $attributes['linkTarget'] ), $author_name );
+ }
+
+ $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 ) ) );
+
+ return sprintf( '%2$s
', $wrapper_attributes, $author_name );
+}
+
+/**
+ * Registers the `core/post-author-name` block on the server.
+ */
+function register_block_core_post_author_name() {
+ register_block_type_from_metadata(
+ __DIR__ . '/post-author-name',
+ array(
+ 'render_callback' => 'render_block_core_post_author_name',
+ )
+ );
+}
+add_action( 'init', 'register_block_core_post_author_name' );
diff --git a/src/wp-includes/blocks/post-author-name/block.json b/src/wp-includes/blocks/post-author-name/block.json
new file mode 100644
index 0000000000000..2340636e0c63a
--- /dev/null
+++ b/src/wp-includes/blocks/post-author-name/block.json
@@ -0,0 +1,53 @@
+{
+ "$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": {
+ "textAlign": {
+ "type": "string"
+ },
+ "isLink": {
+ "type": "boolean",
+ "default": false
+ },
+ "linkTarget": {
+ "type": "string",
+ "default": "_self"
+ }
+ },
+ "usesContext": [ "postType", "postId" ],
+ "supports": {
+ "anchor": true,
+ "html": false,
+ "spacing": {
+ "margin": true,
+ "padding": true
+ },
+ "color": {
+ "gradients": true,
+ "link": true,
+ "__experimentalDefaultControls": {
+ "background": true,
+ "text": true,
+ "link": true
+ }
+ },
+ "typography": {
+ "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/post-author.php b/src/wp-includes/blocks/post-author.php
index 325aa43607d22..7e6a9e6a0bd85 100644
--- a/src/wp-includes/blocks/post-author.php
+++ b/src/wp-includes/blocks/post-author.php
@@ -29,11 +29,23 @@ function render_block_core_post_author( $attributes, $content, $block ) {
$attributes['avatarSize']
) : null;
+ $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 );
+ }
+
$byline = ! empty( $attributes['byline'] ) ? $attributes['byline'] : false;
- $classes = array_merge(
- isset( $attributes['itemsJustification'] ) ? array( 'items-justified-' . $attributes['itemsJustification'] ) : array(),
- isset( $attributes['textAlign'] ) ? array( 'has-text-align-' . $attributes['textAlign'] ) : array()
- );
+ $classes = array();
+ if ( isset( $attributes['itemsJustification'] ) ) {
+ $classes[] = 'items-justified-' . $attributes['itemsJustification'];
+ }
+ 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 ) ) );
@@ -41,7 +53,7 @@ function render_block_core_post_author( $attributes, $content, $block ) {
( ! empty( $attributes['showAvatar'] ) ? '' . $avatar . '
' : '' ) .
'' .
( ! empty( $byline ) ? '
' . wp_kses_post( $byline ) . '
' : '' ) .
- '
' . get_the_author_meta( 'display_name', $author_id ) . '
' .
+ '
' . $author_name . '
' .
( ! empty( $attributes['showBio'] ) ? '
' . get_the_author_meta( 'user_description', $author_id ) . '
' : '' ) .
'
' .
'';
diff --git a/src/wp-includes/blocks/post-author/block.json b/src/wp-includes/blocks/post-author/block.json
index 232e20dbd0a8d..bb9f69ade07e6 100644
--- a/src/wp-includes/blocks/post-author/block.json
+++ b/src/wp-includes/blocks/post-author/block.json
@@ -23,10 +23,19 @@
},
"byline": {
"type": "string"
+ },
+ "isLink": {
+ "type": "boolean",
+ "default": false
+ },
+ "linkTarget": {
+ "type": "string",
+ "default": "_self"
}
},
"usesContext": [ "postType", "postId", "queryId" ],
"supports": {
+ "anchor": true,
"html": false,
"spacing": {
"margin": true,
diff --git a/src/wp-includes/blocks/post-comments-form.php b/src/wp-includes/blocks/post-comments-form.php
index 53a6f8b5242a9..644b02ae0f149 100644
--- a/src/wp-includes/blocks/post-comments-form.php
+++ b/src/wp-includes/blocks/post-comments-form.php
@@ -22,12 +22,14 @@ function render_block_core_post_comments_form( $attributes, $content, $block ) {
return;
}
- $classes = 'comment-respond'; // See comment further below.
+ $classes = array( 'comment-respond' ); // See comment further below.
if ( isset( $attributes['textAlign'] ) ) {
- $classes .= ' has-text-align-' . $attributes['textAlign'];
+ $classes[] = 'has-text-align-' . $attributes['textAlign'];
}
-
- $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) );
+ if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
+ $classes[] = 'has-link-color';
+ }
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
add_filter( 'comment_form_defaults', 'post_comments_form_block_form_defaults' );
diff --git a/src/wp-includes/blocks/post-comments-form/block.json b/src/wp-includes/blocks/post-comments-form/block.json
index 47cc0a443baee..793d14d74ba7b 100644
--- a/src/wp-includes/blocks/post-comments-form/block.json
+++ b/src/wp-includes/blocks/post-comments-form/block.json
@@ -13,6 +13,7 @@
},
"usesContext": [ "postId", "postType" ],
"supports": {
+ "anchor": true,
"html": false,
"color": {
"gradients": true,
@@ -22,6 +23,10 @@
"text": true
}
},
+ "spacing": {
+ "margin": true,
+ "padding": true
+ },
"typography": {
"fontSize": true,
"lineHeight": true,
diff --git a/src/wp-includes/blocks/post-content.php b/src/wp-includes/blocks/post-content.php
index 228a0d52f4069..2be1ef77b3b85 100644
--- a/src/wp-includes/blocks/post-content.php
+++ b/src/wp-includes/blocks/post-content.php
@@ -25,8 +25,7 @@ function render_block_core_post_content( $attributes, $content, $block ) {
if ( isset( $seen_ids[ $post_id ] ) ) {
// WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent
// is set in `wp_debug_mode()`.
- $is_debug = defined( 'WP_DEBUG' ) && WP_DEBUG &&
- defined( 'WP_DEBUG_DISPLAY' ) && WP_DEBUG_DISPLAY;
+ $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY;
return $is_debug ?
// translators: Visible only in the front end, this warning takes the place of a faulty block.
diff --git a/src/wp-includes/blocks/post-content/block.json b/src/wp-includes/blocks/post-content/block.json
index c330f624ee142..56834a980baed 100644
--- a/src/wp-includes/blocks/post-content/block.json
+++ b/src/wp-includes/blocks/post-content/block.json
@@ -8,9 +8,13 @@
"textdomain": "default",
"usesContext": [ "postId", "postType", "queryId" ],
"supports": {
+ "anchor": true,
"align": [ "wide", "full" ],
"html": false,
"__experimentalLayout": true,
+ "dimensions": {
+ "minHeight": true
+ },
"typography": {
"fontSize": true,
"lineHeight": true,
diff --git a/src/wp-includes/blocks/post-date.php b/src/wp-includes/blocks/post-date.php
index fc1537d156689..5c20ee30c2b39 100644
--- a/src/wp-includes/blocks/post-date.php
+++ b/src/wp-includes/blocks/post-date.php
@@ -18,9 +18,16 @@ function render_block_core_post_date( $attributes, $content, $block ) {
return '';
}
- $post_ID = $block->context['postId'];
- $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}";
- $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) );
+ $post_ID = $block->context['postId'];
+
+ $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 ( isset( $attributes['displayType'] ) && 'modified' === $attributes['displayType'] ) {
$formatted_date = get_the_modified_date( empty( $attributes['format'] ) ? '' : $attributes['format'], $post_ID );
diff --git a/src/wp-includes/blocks/post-date/block.json b/src/wp-includes/blocks/post-date/block.json
index b469dbe87d7e0..41c45a4a57e26 100644
--- a/src/wp-includes/blocks/post-date/block.json
+++ b/src/wp-includes/blocks/post-date/block.json
@@ -24,6 +24,7 @@
},
"usesContext": [ "postId", "postType", "queryId" ],
"supports": {
+ "anchor": true,
"html": false,
"color": {
"gradients": true,
diff --git a/src/wp-includes/blocks/post-excerpt.php b/src/wp-includes/blocks/post-excerpt.php
index 79cc959cd86d7..1380918fe1058 100644
--- a/src/wp-includes/blocks/post-excerpt.php
+++ b/src/wp-includes/blocks/post-excerpt.php
@@ -38,11 +38,14 @@ function render_block_core_post_excerpt( $attributes, $content, $block ) {
* result in showing only one `read more` link at a time.
*/
add_filter( 'excerpt_more', $filter_excerpt_more );
- $classes = '';
+ $classes = array();
if ( isset( $attributes['textAlign'] ) ) {
- $classes .= "has-text-align-{$attributes['textAlign']}";
+ $classes[] = 'has-text-align-' . $attributes['textAlign'];
}
- $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) );
+ if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
+ $classes[] = 'has-link-color';
+ }
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
$content = '' . $excerpt;
$show_more_on_new_line = ! isset( $attributes['showMoreOnNewLine'] ) || $attributes['showMoreOnNewLine'];
diff --git a/src/wp-includes/blocks/post-excerpt/block.json b/src/wp-includes/blocks/post-excerpt/block.json
index 03107ff900e06..223b4c68bde0e 100644
--- a/src/wp-includes/blocks/post-excerpt/block.json
+++ b/src/wp-includes/blocks/post-excerpt/block.json
@@ -20,6 +20,7 @@
},
"usesContext": [ "postId", "postType", "queryId" ],
"supports": {
+ "anchor": true,
"html": false,
"color": {
"gradients": true,
diff --git a/src/wp-includes/blocks/post-featured-image.php b/src/wp-includes/blocks/post-featured-image.php
index 068b7eeac6899..8da66accd3032 100644
--- a/src/wp-includes/blocks/post-featured-image.php
+++ b/src/wp-includes/blocks/post-featured-image.php
@@ -27,12 +27,19 @@ function render_block_core_post_featured_image( $attributes, $content, $block )
$is_link = isset( $attributes['isLink'] ) && $attributes['isLink'];
$size_slug = isset( $attributes['sizeSlug'] ) ? $attributes['sizeSlug'] : 'post-thumbnail';
- $post_title = trim( strip_tags( get_the_title( $post_ID ) ) );
$attr = get_block_core_post_featured_image_border_attributes( $attributes );
$overlay_markup = get_block_core_post_featured_image_overlay_element_markup( $attributes );
if ( $is_link ) {
- $attr['alt'] = $post_title;
+ if ( get_the_title( $post_ID ) ) {
+ $attr['alt'] = trim( strip_tags( get_the_title( $post_ID ) ) );
+ } else {
+ $attr['alt'] = sprintf(
+ // translators: %d is the post ID.
+ __( 'Untitled post %d' ),
+ $post_ID
+ );
+ }
}
if ( ! empty( $attributes['height'] ) ) {
@@ -50,11 +57,13 @@ function render_block_core_post_featured_image( $attributes, $content, $block )
if ( $is_link ) {
$link_target = $attributes['linkTarget'];
$rel = ! empty( $attributes['rel'] ) ? 'rel="' . esc_attr( $attributes['rel'] ) . '"' : '';
+ $height = ! empty( $attributes['height'] ) ? 'style="' . esc_attr( safecss_filter_attr( 'height:' . $attributes['height'] ) ) . '"' : '';
$featured_image = sprintf(
- '%4$s%5$s ',
+ '%5$s%6$s ',
get_the_permalink( $post_ID ),
esc_attr( $link_target ),
$rel,
+ $height,
$featured_image,
$overlay_markup
);
@@ -62,10 +71,13 @@ function render_block_core_post_featured_image( $attributes, $content, $block )
$featured_image = $featured_image . $overlay_markup;
}
- $wrapper_attributes = empty( $attributes['width'] )
- ? get_block_wrapper_attributes()
- : get_block_wrapper_attributes( array( 'style' => "width:{$attributes['width']};" ) );
-
+ $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 ) {
+ $wrapper_attributes = get_block_wrapper_attributes();
+ } else {
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'style' => $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 40f51cffa06e7..e6c8c3bfbbd3f 100644
--- a/src/wp-includes/blocks/post-featured-image/block.json
+++ b/src/wp-includes/blocks/post-featured-image/block.json
@@ -53,6 +53,7 @@
"usesContext": [ "postId", "postType", "queryId" ],
"supports": {
"align": [ "left", "right", "center", "wide", "full" ],
+ "anchor": true,
"color": {
"__experimentalDuotone": "img, .wp-block-post-featured-image__placeholder, .components-placeholder__illustration, .components-placeholder::before",
"text": false,
diff --git a/src/wp-includes/blocks/post-navigation-link.php b/src/wp-includes/blocks/post-navigation-link.php
index b0677e4b3ebf3..cb1fe568bdf0e 100644
--- a/src/wp-includes/blocks/post-navigation-link.php
+++ b/src/wp-includes/blocks/post-navigation-link.php
@@ -34,6 +34,18 @@ function render_block_core_post_navigation_link( $attributes, $content ) {
$link = 'next' === $navigation_type ? _x( 'Next', 'label for next post link' ) : _x( 'Previous', 'label for previous post link' );
$label = '';
+ $arrow_map = array(
+ 'none' => '',
+ 'arrow' => array(
+ 'next' => '→',
+ 'previous' => '←',
+ ),
+ 'chevron' => array(
+ 'next' => '»',
+ 'previous' => '«',
+ ),
+ );
+
// If a custom label is provided, make this a link.
// `$label` is used to prepend the provided label, if we want to show the page title as well.
if ( isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ) {
@@ -71,6 +83,17 @@ function render_block_core_post_navigation_link( $attributes, $content ) {
}
}
+ // Display arrows.
+ if ( isset( $attributes['arrow'] ) && ! empty( $attributes['arrow'] ) && 'none' !== $attributes['arrow'] ) {
+ $arrow = $arrow_map[ $attributes['arrow'] ][ $navigation_type ];
+
+ if ( 'next' === $navigation_type ) {
+ $format = '%link ' . $arrow . ' ';
+ } else {
+ $format = '' . $arrow . ' %link';
+ }
+ }
+
// The dynamic portion of the function name, `$navigation_type`,
// refers to the type of adjacency, 'next' or 'previous'.
$get_link_function = "get_{$navigation_type}_post_link";
diff --git a/src/wp-includes/blocks/post-navigation-link/block.json b/src/wp-includes/blocks/post-navigation-link/block.json
index c7e53bdce0af3..2bdfa654798ee 100644
--- a/src/wp-includes/blocks/post-navigation-link/block.json
+++ b/src/wp-includes/blocks/post-navigation-link/block.json
@@ -24,9 +24,14 @@
"linkLabel": {
"type": "boolean",
"default": false
+ },
+ "arrow": {
+ "type": "string",
+ "default": "none"
}
},
"supports": {
+ "anchor": true,
"reusable": false,
"html": false,
"color": {
@@ -45,5 +50,6 @@
"fontSize": true
}
}
- }
+ },
+ "style": "wp-block-post-navigation-link"
}
diff --git a/src/wp-includes/blocks/post-template.php b/src/wp-includes/blocks/post-template.php
index c12a0e68b8e24..3a3c207cf92ee 100644
--- a/src/wp-includes/blocks/post-template.php
+++ b/src/wp-includes/blocks/post-template.php
@@ -68,8 +68,11 @@ function render_block_core_post_template( $attributes, $content, $block ) {
$classnames = "is-flex-container columns-{$block->context['displayLayout']['columns']}";
}
}
+ if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
+ $classnames .= ' has-link-color';
+ }
- $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classnames ) );
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => trim( $classnames ) ) );
$content = '';
while ( $query->have_posts() ) {
diff --git a/src/wp-includes/blocks/post-template/block.json b/src/wp-includes/blocks/post-template/block.json
index 380b6d55f71fa..c0fc0d6ff8e7e 100644
--- a/src/wp-includes/blocks/post-template/block.json
+++ b/src/wp-includes/blocks/post-template/block.json
@@ -19,9 +19,18 @@
"reusable": false,
"html": false,
"align": true,
+ "anchor": true,
"__experimentalLayout": {
"allowEditing": false
},
+ "color": {
+ "gradients": true,
+ "link": true,
+ "__experimentalDefaultControls": {
+ "background": true,
+ "text": true
+ }
+ },
"typography": {
"fontSize": true,
"lineHeight": true,
diff --git a/src/wp-includes/blocks/post-terms.php b/src/wp-includes/blocks/post-terms.php
index f98baba65ec63..5511dd2f8e885 100644
--- a/src/wp-includes/blocks/post-terms.php
+++ b/src/wp-includes/blocks/post-terms.php
@@ -27,14 +27,17 @@ function render_block_core_post_terms( $attributes, $content, $block ) {
return '';
}
- $classes = 'taxonomy-' . $attributes['term'];
+ $classes = array( 'taxonomy-' . $attributes['term'] );
if ( isset( $attributes['textAlign'] ) ) {
- $classes .= ' has-text-align-' . $attributes['textAlign'];
+ $classes[] = 'has-text-align-' . $attributes['textAlign'];
+ }
+ if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
+ $classes[] = 'has-link-color';
}
$separator = empty( $attributes['separator'] ) ? ' ' : $attributes['separator'];
- $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) );
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) );
$prefix = "
";
if ( isset( $attributes['prefix'] ) && $attributes['prefix'] ) {
diff --git a/src/wp-includes/blocks/post-terms/block.json b/src/wp-includes/blocks/post-terms/block.json
index 26f3915d5b0e0..1633c7c01b82c 100644
--- a/src/wp-includes/blocks/post-terms/block.json
+++ b/src/wp-includes/blocks/post-terms/block.json
@@ -28,6 +28,7 @@
},
"usesContext": [ "postId", "postType" ],
"supports": {
+ "anchor": true,
"html": false,
"color": {
"gradients": true,
@@ -38,6 +39,10 @@
"link": true
}
},
+ "spacing": {
+ "margin": true,
+ "padding": true
+ },
"typography": {
"fontSize": true,
"lineHeight": true,
diff --git a/src/wp-includes/blocks/post-title.php b/src/wp-includes/blocks/post-title.php
index 125a2d81ddcbe..1f03b12fc2b46 100644
--- a/src/wp-includes/blocks/post-title.php
+++ b/src/wp-includes/blocks/post-title.php
@@ -26,9 +26,7 @@ function render_block_core_post_title( $attributes, $content, $block ) {
return '';
}
- $tag_name = 'h2';
- $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}";
-
+ $tag_name = 'h2';
if ( isset( $attributes['level'] ) ) {
$tag_name = 0 === $attributes['level'] ? 'p' : 'h' . $attributes['level'];
}
@@ -37,7 +35,15 @@ function render_block_core_post_title( $attributes, $content, $block ) {
$rel = ! empty( $attributes['rel'] ) ? 'rel="' . esc_attr( $attributes['rel'] ) . '"' : '';
$title = sprintf( '
%4$s ', get_the_permalink( $post_ID ), esc_attr( $attributes['linkTarget'] ), $rel, $title );
}
- $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) );
+
+ $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 ) ) );
return sprintf(
'<%1$s %2$s>%3$s%1$s>',
diff --git a/src/wp-includes/blocks/post-title/block.json b/src/wp-includes/blocks/post-title/block.json
index 015896ff1bad0..4a56a6f37b779 100644
--- a/src/wp-includes/blocks/post-title/block.json
+++ b/src/wp-includes/blocks/post-title/block.json
@@ -31,6 +31,7 @@
},
"supports": {
"align": [ "wide", "full" ],
+ "anchor": true,
"html": false,
"color": {
"gradients": true,
diff --git a/src/wp-includes/blocks/query-no-results.php b/src/wp-includes/blocks/query-no-results.php
index 6d4dad48f49e0..4342ba57cccbd 100644
--- a/src/wp-includes/blocks/query-no-results.php
+++ b/src/wp-includes/blocks/query-no-results.php
@@ -40,9 +40,11 @@ function render_block_core_query_no_results( $attributes, $content, $block ) {
wp_reset_postdata();
}
+ $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : '';
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) );
return sprintf(
'
%2$s
',
- get_block_wrapper_attributes(),
+ $wrapper_attributes,
$content
);
}
diff --git a/src/wp-includes/blocks/query-no-results/block.json b/src/wp-includes/blocks/query-no-results/block.json
index f042223f36aec..789dcc8e66f60 100644
--- a/src/wp-includes/blocks/query-no-results/block.json
+++ b/src/wp-includes/blocks/query-no-results/block.json
@@ -9,6 +9,7 @@
"textdomain": "default",
"usesContext": [ "queryId", "query" ],
"supports": {
+ "anchor": true,
"align": true,
"reusable": false,
"html": false,
diff --git a/src/wp-includes/blocks/query-pagination-next/block.json b/src/wp-includes/blocks/query-pagination-next/block.json
index ad87d05b5ed99..d4861519f149e 100644
--- a/src/wp-includes/blocks/query-pagination-next/block.json
+++ b/src/wp-includes/blocks/query-pagination-next/block.json
@@ -14,6 +14,7 @@
},
"usesContext": [ "queryId", "query", "paginationArrow" ],
"supports": {
+ "anchor": true,
"reusable": false,
"html": false,
"color": {
diff --git a/src/wp-includes/blocks/query-pagination-numbers/block.json b/src/wp-includes/blocks/query-pagination-numbers/block.json
index fd28596581961..a05faff5f1b52 100644
--- a/src/wp-includes/blocks/query-pagination-numbers/block.json
+++ b/src/wp-includes/blocks/query-pagination-numbers/block.json
@@ -9,6 +9,7 @@
"textdomain": "default",
"usesContext": [ "queryId", "query" ],
"supports": {
+ "anchor": true,
"reusable": false,
"html": false,
"color": {
diff --git a/src/wp-includes/blocks/query-pagination-previous/block.json b/src/wp-includes/blocks/query-pagination-previous/block.json
index 484cefe6bbd82..823808b0fb054 100644
--- a/src/wp-includes/blocks/query-pagination-previous/block.json
+++ b/src/wp-includes/blocks/query-pagination-previous/block.json
@@ -14,6 +14,7 @@
},
"usesContext": [ "queryId", "query", "paginationArrow" ],
"supports": {
+ "anchor": true,
"reusable": false,
"html": false,
"color": {
diff --git a/src/wp-includes/blocks/query-pagination.php b/src/wp-includes/blocks/query-pagination.php
index eaa784be08e7d..9b7289ec22e0f 100644
--- a/src/wp-includes/blocks/query-pagination.php
+++ b/src/wp-includes/blocks/query-pagination.php
@@ -18,9 +18,11 @@ function render_block_core_query_pagination( $attributes, $content ) {
return '';
}
+ $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : '';
$wrapper_attributes = get_block_wrapper_attributes(
array(
'aria-label' => __( 'Pagination' ),
+ 'class' => $classes,
)
);
diff --git a/src/wp-includes/blocks/query-pagination/block.json b/src/wp-includes/blocks/query-pagination/block.json
index f75f4077d4e13..fa980575ec969 100644
--- a/src/wp-includes/blocks/query-pagination/block.json
+++ b/src/wp-includes/blocks/query-pagination/block.json
@@ -18,6 +18,7 @@
"paginationArrow": "paginationArrow"
},
"supports": {
+ "anchor": true,
"align": true,
"reusable": false,
"html": false,
diff --git a/src/wp-includes/blocks/query-title/block.json b/src/wp-includes/blocks/query-title/block.json
index 33df75866bce0..029762c321e39 100644
--- a/src/wp-includes/blocks/query-title/block.json
+++ b/src/wp-includes/blocks/query-title/block.json
@@ -27,6 +27,7 @@
}
},
"supports": {
+ "anchor": true,
"align": [ "wide", "full" ],
"html": false,
"color": {
diff --git a/src/wp-includes/blocks/query/block.json b/src/wp-includes/blocks/query/block.json
index cd09e22ee57f7..bcff0e3ac63b1 100644
--- a/src/wp-includes/blocks/query/block.json
+++ b/src/wp-includes/blocks/query/block.json
@@ -49,15 +49,8 @@
},
"supports": {
"align": [ "wide", "full" ],
+ "anchor": true,
"html": false,
- "color": {
- "gradients": true,
- "link": true,
- "__experimentalDefaultControls": {
- "background": true,
- "text": true
- }
- },
"__experimentalLayout": true
},
"editorStyle": "wp-block-query-editor"
diff --git a/src/wp-includes/blocks/read-more.php b/src/wp-includes/blocks/read-more.php
index 93013b2517d14..7bfd22e6d4c4d 100644
--- a/src/wp-includes/blocks/read-more.php
+++ b/src/wp-includes/blocks/read-more.php
@@ -19,15 +19,22 @@ function render_block_core_read_more( $attributes, $content, $block ) {
}
$post_ID = $block->context['postId'];
+ $post_title = get_the_title( $post_ID );
+ $screen_reader_text = sprintf(
+ /* translators: %s is either the post title or post ID to describe the link for screen readers. */
+ __( ': %s' ),
+ '' !== $post_title ? $post_title : __( 'untitled post ' ) . $post_ID
+ );
$justify_class_name = empty( $attributes['justifyContent'] ) ? '' : "is-justified-{$attributes['justifyContent']}";
$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $justify_class_name ) );
$more_text = ! empty( $attributes['content'] ) ? wp_kses_post( $attributes['content'] ) : __( 'Read more' );
return sprintf(
- '
%4s ',
+ '
%4s%5s ',
$wrapper_attributes,
get_the_permalink( $post_ID ),
esc_attr( $attributes['linkTarget'] ),
- $more_text
+ $more_text,
+ $screen_reader_text
);
}
diff --git a/src/wp-includes/blocks/read-more/block.json b/src/wp-includes/blocks/read-more/block.json
index 61b0452c7c80e..ed2b23c3b7f0f 100644
--- a/src/wp-includes/blocks/read-more/block.json
+++ b/src/wp-includes/blocks/read-more/block.json
@@ -17,6 +17,7 @@
},
"usesContext": [ "postId" ],
"supports": {
+ "anchor": true,
"html": false,
"color": {
"gradients": true,
diff --git a/src/wp-includes/blocks/require-dynamic-blocks.php b/src/wp-includes/blocks/require-dynamic-blocks.php
index 4841d214c84ce..1f9bf0a16c802 100644
--- a/src/wp-includes/blocks/require-dynamic-blocks.php
+++ b/src/wp-includes/blocks/require-dynamic-blocks.php
@@ -22,6 +22,7 @@
require_once ABSPATH . WPINC . '/blocks/cover.php';
require_once ABSPATH . WPINC . '/blocks/file.php';
require_once ABSPATH . WPINC . '/blocks/gallery.php';
+require_once ABSPATH . WPINC . '/blocks/heading.php';
require_once ABSPATH . WPINC . '/blocks/home-link.php';
require_once ABSPATH . WPINC . '/blocks/image.php';
require_once ABSPATH . WPINC . '/blocks/latest-comments.php';
@@ -34,6 +35,7 @@
require_once ABSPATH . WPINC . '/blocks/pattern.php';
require_once ABSPATH . WPINC . '/blocks/post-author.php';
require_once ABSPATH . WPINC . '/blocks/post-author-biography.php';
+require_once ABSPATH . WPINC . '/blocks/post-author-name.php';
require_once ABSPATH . WPINC . '/blocks/post-comments-form.php';
require_once ABSPATH . WPINC . '/blocks/post-content.php';
require_once ABSPATH . WPINC . '/blocks/post-date.php';
diff --git a/src/wp-includes/blocks/require-static-blocks.php b/src/wp-includes/blocks/require-static-blocks.php
index 9a1884e9cf09b..44009bef5fff0 100644
--- a/src/wp-includes/blocks/require-static-blocks.php
+++ b/src/wp-includes/blocks/require-static-blocks.php
@@ -12,7 +12,6 @@
'embed',
'freeform',
'group',
- 'heading',
'html',
'list',
'list-item',
@@ -20,6 +19,7 @@
'missing',
'more',
'nextpage',
+ 'page-list-item',
'paragraph',
'preformatted',
'pullquote',
diff --git a/src/wp-includes/blocks/rss.php b/src/wp-includes/blocks/rss.php
index e32155195af1d..91cdab3f589e0 100644
--- a/src/wp-includes/blocks/rss.php
+++ b/src/wp-includes/blocks/rss.php
@@ -48,7 +48,7 @@ function render_block_core_rss( $attributes ) {
if ( $date ) {
$date = sprintf(
' ',
- esc_attr( date_i18n( get_option( 'c' ), $date ) ),
+ esc_attr( date_i18n( 'c', $date ) ),
esc_attr( date_i18n( get_option( 'date_format' ), $date ) )
);
}
diff --git a/src/wp-includes/blocks/rss/block.json b/src/wp-includes/blocks/rss/block.json
index 8a351d877a751..2e3fd4b2d385e 100644
--- a/src/wp-includes/blocks/rss/block.json
+++ b/src/wp-includes/blocks/rss/block.json
@@ -43,6 +43,7 @@
},
"supports": {
"align": true,
+ "anchor": true,
"html": false
},
"editorStyle": "wp-block-rss-editor",
diff --git a/src/wp-includes/blocks/search.php b/src/wp-includes/blocks/search.php
index 26b6a7585ccc7..c7461a86795b5 100644
--- a/src/wp-includes/blocks/search.php
+++ b/src/wp-includes/blocks/search.php
@@ -66,14 +66,14 @@ function render_block_core_search( $attributes ) {
if ( $show_input ) {
$input_classes = array( 'wp-block-search__input' );
- if ( $is_button_inside ) {
+ if ( ! $is_button_inside && ! empty( $border_color_classes ) ) {
$input_classes[] = $border_color_classes;
}
if ( ! empty( $typography_classes ) ) {
$input_classes[] = $typography_classes;
}
$input_markup = sprintf(
- '
',
+ '
',
$input_id,
esc_attr( implode( ' ', $input_classes ) ),
get_search_query(),
diff --git a/src/wp-includes/blocks/search/block.json b/src/wp-includes/blocks/search/block.json
index fbd0fa874c408..387295ebb36de 100644
--- a/src/wp-includes/blocks/search/block.json
+++ b/src/wp-includes/blocks/search/block.json
@@ -46,6 +46,7 @@
},
"supports": {
"align": [ "left", "center", "right" ],
+ "anchor": true,
"color": {
"gradients": true,
"__experimentalSkipSerialization": true,
diff --git a/src/wp-includes/blocks/site-logo/block.json b/src/wp-includes/blocks/site-logo/block.json
index f7efcb72159ff..f5eab1de304bc 100644
--- a/src/wp-includes/blocks/site-logo/block.json
+++ b/src/wp-includes/blocks/site-logo/block.json
@@ -31,6 +31,7 @@
},
"supports": {
"html": false,
+ "anchor": true,
"align": true,
"alignWide": false,
"color": {
diff --git a/src/wp-includes/blocks/site-tagline/block.json b/src/wp-includes/blocks/site-tagline/block.json
index 7a69e6b1e22a9..c7da7ebf3fdde 100644
--- a/src/wp-includes/blocks/site-tagline/block.json
+++ b/src/wp-includes/blocks/site-tagline/block.json
@@ -4,7 +4,7 @@
"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.",
+ "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": [ "description" ],
"textdomain": "default",
"attributes": {
@@ -13,6 +13,7 @@
}
},
"supports": {
+ "anchor": true,
"align": [ "wide", "full" ],
"html": false,
"color": {
diff --git a/src/wp-includes/blocks/site-title.php b/src/wp-includes/blocks/site-title.php
index 3c3e4d8669238..255615b3a4e45 100644
--- a/src/wp-includes/blocks/site-title.php
+++ b/src/wp-includes/blocks/site-title.php
@@ -18,8 +18,11 @@ function render_block_core_site_title( $attributes ) {
return;
}
- $tag_name = 'h1';
- $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}";
+ $tag_name = 'h1';
+ $classes = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}";
+ if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) {
+ $classes .= ' has-link-color';
+ }
if ( isset( $attributes['level'] ) ) {
$tag_name = 0 === $attributes['level'] ? 'p' : 'h' . (int) $attributes['level'];
@@ -37,7 +40,7 @@ function render_block_core_site_title( $attributes ) {
esc_html( $site_title )
);
}
- $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) );
+ $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => trim( $classes ) ) );
return sprintf(
'<%1$s %2$s>%3$s%1$s>',
diff --git a/src/wp-includes/blocks/site-title/block.json b/src/wp-includes/blocks/site-title/block.json
index 717db27747d7f..b69acda934fda 100644
--- a/src/wp-includes/blocks/site-title/block.json
+++ b/src/wp-includes/blocks/site-title/block.json
@@ -27,6 +27,7 @@
"viewportWidth": 500
},
"supports": {
+ "anchor": true,
"align": [ "wide", "full" ],
"html": false,
"color": {
@@ -60,5 +61,6 @@
}
}
},
- "editorStyle": "wp-block-site-title-editor"
+ "editorStyle": "wp-block-site-title-editor",
+ "style": "wp-block-site-title"
}
diff --git a/src/wp-includes/blocks/social-link.php b/src/wp-includes/blocks/social-link.php
index 3aabd2a9a8430..7e669bf56d6da 100644
--- a/src/wp-includes/blocks/social-link.php
+++ b/src/wp-includes/blocks/social-link.php
@@ -20,6 +20,7 @@ function render_block_core_social_link( $attributes, $content, $block ) {
$service = ( isset( $attributes['service'] ) ) ? $attributes['service'] : 'Icon';
$url = ( isset( $attributes['url'] ) ) ? $attributes['url'] : false;
$label = ( isset( $attributes['label'] ) ) ? $attributes['label'] : block_core_social_link_get_name( $service );
+ $rel = ( isset( $attributes['rel'] ) ) ? $attributes['rel'] : '';
$show_labels = array_key_exists( 'showLabels', $block->context ) ? $block->context['showLabels'] : false;
// Don't render a link if there is no URL set.
@@ -43,11 +44,6 @@ function render_block_core_social_link( $attributes, $content, $block ) {
$url = 'https://' . $url;
}
- $rel_target_attributes = '';
- if ( $open_in_new_tab ) {
- $rel_target_attributes = 'rel="noopener nofollow" target="_blank"';
- }
-
$icon = block_core_social_link_get_icon( $service );
$wrapper_attributes = get_block_wrapper_attributes(
array(
@@ -57,13 +53,21 @@ function render_block_core_social_link( $attributes, $content, $block ) {
);
$link = '
';
- $link .= '';
+ $link .= ' ';
$link .= $icon;
$link .= '';
$link .= esc_html( $label );
$link .= ' ';
- return $link;
+ $w = new WP_HTML_Tag_Processor( $link );
+ $w->next_tag( 'a' );
+ if ( $open_in_new_tab ) {
+ $w->set_attribute( 'rel', esc_attr( $rel ) . ' noopener nofollow' );
+ $w->set_attribute( 'target', '_blank' );
+ } elseif ( '' !== $rel ) {
+ $w->set_attribute( 'rel', esc_attr( $rel ) );
+ }
+ return $w;
}
/**
diff --git a/src/wp-includes/blocks/social-link/block.json b/src/wp-includes/blocks/social-link/block.json
index 90a3f270d738d..e81894591b4b3 100644
--- a/src/wp-includes/blocks/social-link/block.json
+++ b/src/wp-includes/blocks/social-link/block.json
@@ -16,6 +16,9 @@
},
"label": {
"type": "string"
+ },
+ "rel": {
+ "type": "string"
}
},
"usesContext": [
@@ -25,6 +28,7 @@
"iconBackgroundColorValue"
],
"supports": {
+ "anchor": true,
"reusable": false,
"html": false
},
diff --git a/src/wp-includes/blocks/table/block.json b/src/wp-includes/blocks/table/block.json
index 3de088e0879b7..adac1e9c2130e 100644
--- a/src/wp-includes/blocks/table/block.json
+++ b/src/wp-includes/blocks/table/block.json
@@ -47,6 +47,16 @@
"type": "string",
"source": "attribute",
"attribute": "data-align"
+ },
+ "colspan": {
+ "type": "string",
+ "source": "attribute",
+ "attribute": "colspan"
+ },
+ "rowspan": {
+ "type": "string",
+ "source": "attribute",
+ "attribute": "rowspan"
}
}
}
@@ -82,6 +92,16 @@
"type": "string",
"source": "attribute",
"attribute": "data-align"
+ },
+ "colspan": {
+ "type": "string",
+ "source": "attribute",
+ "attribute": "colspan"
+ },
+ "rowspan": {
+ "type": "string",
+ "source": "attribute",
+ "attribute": "rowspan"
}
}
}
@@ -117,6 +137,16 @@
"type": "string",
"source": "attribute",
"attribute": "data-align"
+ },
+ "colspan": {
+ "type": "string",
+ "source": "attribute",
+ "attribute": "colspan"
+ },
+ "rowspan": {
+ "type": "string",
+ "source": "attribute",
+ "attribute": "rowspan"
}
}
}
diff --git a/src/wp-includes/blocks/tag-cloud.php b/src/wp-includes/blocks/tag-cloud.php
index a7d121f7ca632..7ff5f78400db6 100644
--- a/src/wp-includes/blocks/tag-cloud.php
+++ b/src/wp-includes/blocks/tag-cloud.php
@@ -28,14 +28,7 @@ function render_block_core_tag_cloud( $attributes ) {
$tag_cloud = wp_tag_cloud( $args );
if ( ! $tag_cloud ) {
- $labels = get_taxonomy_labels( get_taxonomy( $attributes['taxonomy'] ) );
- $tag_cloud = esc_html(
- sprintf(
- /* translators: %s: taxonomy name */
- __( 'Your site doesn’t have any %s, so there’s nothing to display here at the moment.' ),
- strtolower( $labels->name )
- )
- );
+ $tag_cloud = __( 'There’s no content to show here yet.' );
}
$wrapper_attributes = get_block_wrapper_attributes();
diff --git a/src/wp-includes/blocks/tag-cloud/block.json b/src/wp-includes/blocks/tag-cloud/block.json
index 69e14223f70fb..ec1e333512719 100644
--- a/src/wp-includes/blocks/tag-cloud/block.json
+++ b/src/wp-includes/blocks/tag-cloud/block.json
@@ -36,10 +36,19 @@
],
"supports": {
"html": false,
+ "anchor": true,
"align": true,
"spacing": {
"margin": true,
"padding": true
+ },
+ "typography": {
+ "lineHeight": true,
+ "__experimentalFontFamily": true,
+ "__experimentalFontWeight": true,
+ "__experimentalFontStyle": true,
+ "__experimentalTextTransform": true,
+ "__experimentalLetterSpacing": true
}
},
"editorStyle": "wp-block-tag-cloud-editor"
diff --git a/src/wp-includes/blocks/template-part.php b/src/wp-includes/blocks/template-part.php
index bef49341d7bb5..7c4cb693fde54 100644
--- a/src/wp-includes/blocks/template-part.php
+++ b/src/wp-includes/blocks/template-part.php
@@ -105,8 +105,7 @@ function render_block_core_template_part( $attributes ) {
// WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent
// is set in `wp_debug_mode()`.
- $is_debug = defined( 'WP_DEBUG' ) && WP_DEBUG &&
- defined( 'WP_DEBUG_DISPLAY' ) && WP_DEBUG_DISPLAY;
+ $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY;
if ( is_null( $content ) && $is_debug ) {
if ( ! isset( $attributes['slug'] ) ) {
@@ -127,6 +126,21 @@ function render_block_core_template_part( $attributes ) {
'';
}
+ // Look up area definition.
+ $area_definition = null;
+ $defined_areas = get_allowed_block_template_part_areas();
+ foreach ( $defined_areas as $defined_area ) {
+ if ( $defined_area['area'] === $area ) {
+ $area_definition = $defined_area;
+ break;
+ }
+ }
+
+ // If $area is not allowed, set it back to the uncategorized default.
+ if ( ! $area_definition ) {
+ $area = WP_TEMPLATE_PART_AREA_UNCATEGORIZED;
+ }
+
// Run through the actions that are typically taken on the_content.
$seen_ids[ $template_part_id ] = true;
$content = do_blocks( $content );
@@ -134,7 +148,7 @@ function render_block_core_template_part( $attributes ) {
$content = wptexturize( $content );
$content = convert_smilies( $content );
$content = shortcode_unautop( $content );
- $content = wp_filter_content_tags( $content );
+ $content = wp_filter_content_tags( $content, "template_part_{$area}" );
$content = do_shortcode( $content );
// Handle embeds for block template parts.
@@ -142,12 +156,9 @@ function render_block_core_template_part( $attributes ) {
$content = $wp_embed->autoembed( $content );
if ( empty( $attributes['tagName'] ) ) {
- $defined_areas = get_allowed_block_template_part_areas();
- $area_tag = 'div';
- foreach ( $defined_areas as $defined_area ) {
- if ( $defined_area['area'] === $area && isset( $defined_area['area_tag'] ) ) {
- $area_tag = $defined_area['area_tag'];
- }
+ $area_tag = 'div';
+ if ( $area_definition && isset( $area_definition['area_tag'] ) ) {
+ $area_tag = $area_definition['area_tag'];
}
$html_tag = $area_tag;
} else {
diff --git a/src/wp-includes/blocks/template-part/block.json b/src/wp-includes/blocks/template-part/block.json
index 3801eee941bc9..282ac2ca22127 100644
--- a/src/wp-includes/blocks/template-part/block.json
+++ b/src/wp-includes/blocks/template-part/block.json
@@ -21,6 +21,7 @@
}
},
"supports": {
+ "anchor": true,
"align": true,
"html": false,
"reusable": false
diff --git a/src/wp-includes/blocks/term-description.php b/src/wp-includes/blocks/term-description.php
index 4f1cd7e518d11..011ec28f2e5e6 100644
--- a/src/wp-includes/blocks/term-description.php
+++ b/src/wp-includes/blocks/term-description.php
@@ -23,10 +23,14 @@ function render_block_core_term_description( $attributes ) {
return '';
}
- $extra_attributes = ( isset( $attributes['textAlign'] ) )
- ? array( 'class' => 'has-text-align-' . $attributes['textAlign'] )
- : array();
- $wrapper_attributes = get_block_wrapper_attributes( $extra_attributes );
+ $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 ) ) );
return '
' . $term_description . '
';
}
diff --git a/src/wp-includes/blocks/term-description/block.json b/src/wp-includes/blocks/term-description/block.json
index 66eb9348a4709..5e945b2d0f637 100644
--- a/src/wp-includes/blocks/term-description/block.json
+++ b/src/wp-includes/blocks/term-description/block.json
@@ -12,6 +12,7 @@
}
},
"supports": {
+ "anchor": true,
"align": [ "wide", "full" ],
"html": false,
"color": {
diff --git a/src/wp-includes/class-wp-block-parser.php b/src/wp-includes/class-wp-block-parser.php
index 95add35cbfb6f..50337b588a37b 100644
--- a/src/wp-includes/class-wp-block-parser.php
+++ b/src/wp-includes/class-wp-block-parser.php
@@ -80,7 +80,7 @@ class WP_Block_Parser_Block {
* @param string $innerHTML Resultant HTML from inside block comment delimiters after removing inner blocks.
* @param array $innerContent List of string fragments and null markers where inner blocks were found.
*/
- function __construct( $name, $attrs, $innerBlocks, $innerHTML, $innerContent ) {
+ public function __construct( $name, $attrs, $innerBlocks, $innerHTML, $innerContent ) {
$this->blockName = $name;
$this->attrs = $attrs;
$this->innerBlocks = $innerBlocks;
@@ -152,7 +152,7 @@ class WP_Block_Parser_Frame {
* @param int $prev_offset Byte offset into document for after parse token ends.
* @param int $leading_html_start Byte offset into document where leading HTML before token starts.
*/
- function __construct( $block, $token_start, $token_length, $prev_offset = null, $leading_html_start = null ) {
+ public function __construct( $block, $token_start, $token_length, $prev_offset = null, $leading_html_start = null ) {
$this->block = $block;
$this->token_start = $token_start;
$this->token_length = $token_length;
@@ -224,16 +224,16 @@ class WP_Block_Parser {
* @param string $document Input document being parsed.
* @return array[]
*/
- function parse( $document ) {
+ public function parse( $document ) {
$this->document = $document;
$this->offset = 0;
$this->output = array();
$this->stack = array();
$this->empty_attrs = json_decode( '{}', true );
- do {
- // twiddle our thumbs.
- } while ( $this->proceed() );
+ while ( $this->proceed() ) {
+ continue;
+ }
return $this->output;
}
@@ -252,7 +252,7 @@ function parse( $document ) {
* @since 5.0.0
* @return bool
*/
- function proceed() {
+ public function proceed() {
$next_token = $this->next_token();
list( $token_type, $block_name, $attrs, $start_offset, $token_length ) = $next_token;
$stack_depth = count( $this->stack );
@@ -398,7 +398,7 @@ function proceed() {
* @since 4.6.1 fixed a bug in attribute parsing which caused catastrophic backtracking on invalid block comments
* @return array
*/
- function next_token() {
+ public function next_token() {
$matches = null;
/*
@@ -473,7 +473,7 @@ function next_token() {
* @param string $innerHTML HTML content of block.
* @return WP_Block_Parser_Block freeform block object.
*/
- function freeform( $innerHTML ) {
+ public function freeform( $innerHTML ) {
return new WP_Block_Parser_Block( null, $this->empty_attrs, array(), $innerHTML, array( $innerHTML ) );
}
@@ -485,7 +485,7 @@ function freeform( $innerHTML ) {
* @since 5.0.0
* @param null $length how many bytes of document text to output.
*/
- function add_freeform( $length = null ) {
+ public function add_freeform( $length = null ) {
$length = $length ? $length : strlen( $this->document ) - $this->offset;
if ( 0 === $length ) {
@@ -506,7 +506,7 @@ function add_freeform( $length = null ) {
* @param int $token_length Byte length of entire block from start of opening token to end of closing token.
* @param int|null $last_offset Last byte offset into document if continuing form earlier output.
*/
- function add_inner_block( WP_Block_Parser_Block $block, $token_start, $token_length, $last_offset = null ) {
+ public function add_inner_block( WP_Block_Parser_Block $block, $token_start, $token_length, $last_offset = null ) {
$parent = $this->stack[ count( $this->stack ) - 1 ];
$parent->block->innerBlocks[] = (array) $block;
$html = substr( $this->document, $parent->prev_offset, $token_start - $parent->prev_offset );
@@ -527,7 +527,7 @@ function add_inner_block( WP_Block_Parser_Block $block, $token_start, $token_len
* @since 5.0.0
* @param int|null $end_offset byte offset into document for where we should stop sending text output as HTML.
*/
- function add_block_from_stack( $end_offset = null ) {
+ public function add_block_from_stack( $end_offset = null ) {
$stack_top = array_pop( $this->stack );
$prev_offset = $stack_top->prev_offset;
diff --git a/src/wp-includes/html-api/class-wp-html-attribute-token.php b/src/wp-includes/html-api/class-wp-html-attribute-token.php
new file mode 100644
index 0000000000000..2c52164a979f0
--- /dev/null
+++ b/src/wp-includes/html-api/class-wp-html-attribute-token.php
@@ -0,0 +1,89 @@
+name = $name;
+ $this->value_starts_at = $value_start;
+ $this->value_length = $value_length;
+ $this->start = $start;
+ $this->end = $end;
+ $this->is_true = $is_true;
+ }
+}
diff --git a/src/wp-includes/html-api/class-wp-html-span.php b/src/wp-includes/html-api/class-wp-html-span.php
new file mode 100644
index 0000000000000..d92778cd3a222
--- /dev/null
+++ b/src/wp-includes/html-api/class-wp-html-span.php
@@ -0,0 +1,52 @@
+start = $start;
+ $this->end = $end;
+ }
+}
diff --git a/src/wp-includes/html-api/class-wp-html-tag-processor.php b/src/wp-includes/html-api/class-wp-html-tag-processor.php
new file mode 100644
index 0000000000000..ac004b524ca5d
--- /dev/null
+++ b/src/wp-includes/html-api/class-wp-html-tag-processor.php
@@ -0,0 +1,2170 @@
+ "c" not " c"
+ * @TODO: Skip over `/` in attributes area, split attribute names by `/`
+ * @TODO: Decode HTML references/entities in class names when matching.
+ * E.g. match having class `1<"2` needs to recognize `class="1<"2"`.
+ * @TODO: Decode character references in `get_attribute()`
+ * @TODO: Properly escape attribute value in `set_attribute()`
+ * @TODO: Add slow mode to escape character entities in CSS class names?
+ * (This requires a custom decoder since `html_entity_decode()`
+ * doesn't handle attribute character reference decoding rules.
+ *
+ * @package WordPress
+ * @subpackage HTML-API
+ * @since 6.2.0
+ */
+
+/**
+ * Processes an input HTML document by applying a specified set
+ * of patches to that input. Tokenizes HTML but does not fully
+ * parse the input document.
+ *
+ * ## Usage
+ *
+ * Use of this class requires three steps:
+ *
+ * 1. Create a new class instance with your input HTML document.
+ * 2. Find the tag(s) you are looking for.
+ * 3. Request changes to the attributes in those tag(s).
+ *
+ * Example:
+ * ```php
+ * $tags = new WP_HTML_Tag_Processor( $html );
+ * if ( $tags->next_tag( [ 'tag_name' => 'option' ] ) ) {
+ * $tags->set_attribute( 'selected', true );
+ * }
+ * ```
+ *
+ * ### Finding tags
+ *
+ * The `next_tag()` function moves the internal cursor through
+ * your input HTML document until it finds a tag meeting any of
+ * the supplied restrictions in the optional query argument. If
+ * no argument is provided then it will find the next HTML tag,
+ * regardless of what kind it is.
+ *
+ * If you want to _find whatever the next tag is_:
+ * ```php
+ * $tags->next_tag();
+ * ```
+ *
+ * | Goal | Query |
+ * |-----------------------------------------------------------|----------------------------------------------------------------------------|
+ * | Find any tag. | `$tags->next_tag();` |
+ * | Find next image tag. | `$tags->next_tag( [ 'tag_name' => 'img' ] );` |
+ * | Find next tag containing the `fullwidth` CSS class. | `$tags->next_tag( [ 'class_name' => 'fullwidth' ] );` |
+ * | Find next image tag containing the `fullwidth` CSS class. | `$tags->next_tag( [ 'tag_name' => 'img', 'class_name' => 'fullwidth' ] );` |
+ *
+ * If a tag was found meeting your criteria then `next_tag()`
+ * will return `true` and you can proceed to modify it. If it
+ * returns `false`, however, it failed to find the tag and
+ * moved the cursor to the end of the file.
+ *
+ * Once the cursor reaches the end of the file the processor
+ * is done and if you want to reach an earlier tag you will
+ * need to recreate the processor and start over, as it's
+ * unable to back up or move in reverse.
+ *
+ * See the section on bookmarks for an exception to this
+ * no-backing-up rule.
+ *
+ * #### Custom queries
+ *
+ * Sometimes it's necessary to further inspect an HTML tag than
+ * the query syntax here permits. In these cases one may further
+ * inspect the search results using the read-only functions
+ * provided by the processor or external state or variables.
+ *
+ * Example:
+ * ```php
+ * // Paint up to the first five DIV or SPAN tags marked with the "jazzy" style.
+ * $remaining_count = 5;
+ * while ( $remaining_count > 0 && $tags->next_tag() ) {
+ * if (
+ * ( 'DIV' === $tags->get_tag() || 'SPAN' === $tags->get_tag() ) &&
+ * 'jazzy' === $tags->get_attribute( 'data-style' )
+ * ) {
+ * $tags->add_class( 'theme-style-everest-jazz' );
+ * $remaining_count--;
+ * }
+ * }
+ * ```
+ *
+ * `get_attribute()` will return `null` if the attribute wasn't present
+ * on the tag when it was called. It may return `""` (the empty string)
+ * in cases where the attribute was present but its value was empty.
+ * For boolean attributes, those whose name is present but no value is
+ * given, it will return `true` (the only way to set `false` for an
+ * attribute is to remove it).
+ *
+ * ### Modifying HTML attributes for a found tag
+ *
+ * Once you've found the start of an opening tag you can modify
+ * any number of the attributes on that tag. You can set a new
+ * value for an attribute, remove the entire attribute, or do
+ * nothing and move on to the next opening tag.
+ *
+ * Example:
+ * ```php
+ * if ( $tags->next_tag( [ 'class' => 'wp-group-block' ] ) ) {
+ * $tags->set_attribute( 'title', 'This groups the contained content.' );
+ * $tags->remove_attribute( 'data-test-id' );
+ * }
+ * ```
+ *
+ * If `set_attribute()` is called for an existing attribute it will
+ * overwrite the existing value. Similarly, calling `remove_attribute()`
+ * for a non-existing attribute has no effect on the document. Both
+ * of these methods are safe to call without knowing if a given attribute
+ * exists beforehand.
+ *
+ * ### Modifying CSS classes for a found tag
+ *
+ * The tag processor treats the `class` attribute as a special case.
+ * Because it's a common operation to add or remove CSS classes, this
+ * interface adds helper methods to make that easier.
+ *
+ * As with attribute values, adding or removing CSS classes is a safe
+ * operation that doesn't require checking if the attribute or class
+ * exists before making changes. If removing the only class then the
+ * entire `class` attribute will be removed.
+ *
+ * Example:
+ * ```php
+ * // from `
Yippee! `
+ * // to `
Yippee! `
+ * $tags->add_class( 'is-active' );
+ *
+ * // from `
Yippee! `
+ * // to `
Yippee! `
+ * $tags->add_class( 'is-active' );
+ *
+ * // from `
Yippee! `
+ * // to `
Yippee! `
+ * $tags->add_class( 'is-active' );
+ *
+ * // from `
`
+ * // to `
+ * $tags->remove_class( 'rugby' );
+ *
+ * // from `
`
+ * // to `
+ * $tags->remove_class( 'rugby' );
+ *
+ * // from `
`
+ * // to `
+ * $tags->remove_class( 'rugby' );
+ * ```
+ *
+ * When class changes are enqueued but a direct change to `class` is made via
+ * `set_attribute` then the changes to `set_attribute` (or `remove_attribute`)
+ * will take precedence over those made through `add_class` and `remove_class`.
+ *
+ * ### Bookmarks
+ *
+ * While scanning through the input HTMl document it's possible to set
+ * a named bookmark when a particular tag is found. Later on, after
+ * continuing to scan other tags, it's possible to `seek` to one of
+ * the set bookmarks and then proceed again from that point forward.
+ *
+ * Because bookmarks create processing overhead one should avoid
+ * creating too many of them. As a rule, create only bookmarks
+ * of known string literal names; avoid creating "mark_{$index}"
+ * and so on. It's fine from a performance standpoint to create a
+ * bookmark and update it frequently, such as within a loop.
+ *
+ * ```php
+ * $total_todos = 0;
+ * while ( $p->next_tag( [ 'tag_name' => 'UL', 'class_name' => 'todo' ] ) ) {
+ * $p->set_bookmark( 'list-start' );
+ * while ( $p->next_tag( [ 'tag_closers' => 'visit' ] ) ) {
+ * if ( 'UL' === $p->get_tag() && $p->is_tag_closer() ) {
+ * $p->set_bookmark( 'list-end' );
+ * $p->seek( 'list-start' );
+ * $p->set_attribute( 'data-contained-todos', (string) $total_todos );
+ * $total_todos = 0;
+ * $p->seek( 'list-end' );
+ * break;
+ * }
+ *
+ * if ( 'LI' === $p->get_tag() && ! $p->is_tag_closer() ) {
+ * $total_todos++;
+ * }
+ * }
+ * }
+ * ```
+ *
+ * ## Design limitations
+ *
+ * @TODO: Expand this section
+ *
+ * - No nesting: cannot match open and close tag.
+ * - Class names are not decoded if they contain character references.
+ *
+ * @since 6.2.0
+ */
+class WP_HTML_Tag_Processor {
+ /**
+ * The maximum number of bookmarks allowed to exist at
+ * any given time.
+ *
+ * @see set_bookmark()
+ * @since 6.2.0
+ * @var int
+ */
+ const MAX_BOOKMARKS = 10;
+
+ /**
+ * Maximum number of times seek() can be called.
+ * Prevents accidental infinite loops.
+ *
+ * @see seek()
+ * @since 6.2.0
+ * @var int
+ */
+ const MAX_SEEK_OPS = 1000;
+
+ /**
+ * The HTML document to parse.
+ *
+ * @since 6.2.0
+ * @var string
+ */
+ private $html;
+
+ /**
+ * The last query passed to next_tag().
+ *
+ * @since 6.2.0
+ * @var array|null
+ */
+ private $last_query;
+
+ /**
+ * The tag name this processor currently scans for.
+ *
+ * @since 6.2.0
+ * @var string|null
+ */
+ private $sought_tag_name;
+
+ /**
+ * The CSS class name this processor currently scans for.
+ *
+ * @since 6.2.0
+ * @var string|null
+ */
+ private $sought_class_name;
+
+ /**
+ * The match offset this processor currently scans for.
+ *
+ * @since 6.2.0
+ * @var int|null
+ */
+ private $sought_match_offset;
+
+ /**
+ * Whether to visit tag closers, e.g.
, when walking an input document.
+ *
+ * @since 6.2.0
+ * @var bool
+ */
+ private $stop_on_tag_closers;
+
+ /**
+ * The updated HTML document.
+ *
+ * @since 6.2.0
+ * @var string
+ */
+ private $updated_html = '';
+
+ /**
+ * How many bytes from the original HTML document were already read.
+ *
+ * @since 6.2.0
+ * @var int
+ */
+ private $parsed_bytes = 0;
+
+ /**
+ * How many bytes from the original HTML document were already treated
+ * with the requested replacements.
+ *
+ * @since 6.2.0
+ * @var int
+ */
+ private $updated_bytes = 0;
+
+ /**
+ * Byte offset in input document where current tag name starts.
+ *
+ * Example:
+ * ```
+ * ...
+ * 01234
+ * - tag name starts at 1
+ * ```
+ *
+ * @since 6.2.0
+ * @var int|null
+ */
+ private $tag_name_starts_at;
+
+ /**
+ * Byte length of current tag name.
+ *
+ * Example:
+ * ```
+ *
...
+ * 01234
+ * --- tag name length is 3
+ * ```
+ *
+ * @since 6.2.0
+ * @var int|null
+ */
+ private $tag_name_length;
+
+ /**
+ * Byte offset in input document where current tag token ends.
+ *
+ * Example:
+ * ```
+ *
...
+ * 0 1 |
+ * 01234567890123456
+ * --- tag name ends at 14
+ * ```
+ *
+ * @since 6.2.0
+ * @var int|null
+ */
+ private $tag_ends_at;
+
+ /**
+ * Whether the current tag is an opening tag, e.g.
, or a closing tag, e.g.
.
+ *
+ * @var bool
+ */
+ private $is_closing_tag;
+
+ /**
+ * Lazily-built index of attributes found within an HTML tag, keyed by the attribute name.
+ *
+ * Example:
+ * ```php
+ * // supposing the parser is working through this content
+ * // and stops after recognizing the `id` attribute
+ * //
+ * // ^ parsing will continue from this point
+ * $this->attributes = [
+ * 'id' => new WP_HTML_Attribute_Match( 'id', null, 6, 17 )
+ * ];
+ *
+ * // when picking up parsing again, or when asking to find the
+ * // `class` attribute we will continue and add to this array
+ * $this->attributes = [
+ * 'id' => new WP_HTML_Attribute_Match( 'id', null, 6, 17 ),
+ * 'class' => new WP_HTML_Attribute_Match( 'class', 'outline', 18, 32 )
+ * ];
+ *
+ * // Note that only the `class` attribute value is stored in the index.
+ * // That's because it is the only value used by this class at the moment.
+ * ```
+ *
+ * @since 6.2.0
+ * @var WP_HTML_Attribute_Token[]
+ */
+ private $attributes = array();
+
+ /**
+ * Which class names to add or remove from a tag.
+ *
+ * These are tracked separately from attribute updates because they are
+ * semantically distinct, whereas this interface exists for the common
+ * case of adding and removing class names while other attributes are
+ * generally modified as with DOM `setAttribute` calls.
+ *
+ * When modifying an HTML document these will eventually be collapsed
+ * into a single `set_attribute( 'class', $changes )` call.
+ *
+ * Example:
+ * ```php
+ * // Add the `wp-block-group` class, remove the `wp-group` class.
+ * $classname_updates = [
+ * // Indexed by a comparable class name
+ * 'wp-block-group' => WP_HTML_Tag_Processor::ADD_CLASS,
+ * 'wp-group' => WP_HTML_Tag_Processor::REMOVE_CLASS
+ * ];
+ * ```
+ *
+ * @since 6.2.0
+ * @var bool[]
+ */
+ private $classname_updates = array();
+
+ /**
+ * Tracks a semantic location in the original HTML which
+ * shifts with updates as they are applied to the document.
+ *
+ * @since 6.2.0
+ * @var WP_HTML_Span[]
+ */
+ private $bookmarks = array();
+
+ const ADD_CLASS = true;
+ const REMOVE_CLASS = false;
+ const SKIP_CLASS = null;
+
+ /**
+ * Lexical replacements to apply to input HTML document.
+ *
+ * "Lexical" in this class refers to the part of this class which
+ * operates on pure text _as text_ and not as HTML. There's a line
+ * between the public interface, with HTML-semantic methods like
+ * `set_attribute` and `add_class`, and an internal state that tracks
+ * text offsets in the input document.
+ *
+ * When higher-level HTML methods are called, those have to transform their
+ * operations (such as setting an attribute's value) into text diffing
+ * operations (such as replacing the sub-string from indices A to B with
+ * some given new string). These text-diffing operations are the lexical
+ * updates.
+ *
+ * As new higher-level methods are added they need to collapse their
+ * operations into these lower-level lexical updates since that's the
+ * Tag Processor's internal language of change. Any code which creates
+ * these lexical updates must ensure that they do not cross HTML syntax
+ * boundaries, however, so these should never be exposed outside of this
+ * class or any classes which intentionally expand its functionality.
+ *
+ * These are enqueued while editing the document instead of being immediately
+ * applied to avoid processing overhead, string allocations, and string
+ * copies when applying many updates to a single document.
+ *
+ * Example:
+ * ```php
+ * // Replace an attribute stored with a new value, indices
+ * // sourced from the lazily-parsed HTML recognizer.
+ * $start = $attributes['src']->start;
+ * $end = $attributes['src']->end;
+ * $modifications[] = new WP_HTML_Text_Replacement( $start, $end, $new_value );
+ *
+ * // Correspondingly, something like this will appear in this array.
+ * $lexical_updates = [
+ * WP_HTML_Text_Replacement( 14, 28, 'https://my-site.my-domain/wp-content/uploads/2014/08/kittens.jpg' )
+ * ];
+ * ```
+ *
+ * @since 6.2.0
+ * @var WP_HTML_Text_Replacement[]
+ */
+ private $lexical_updates = array();
+
+ /**
+ * Tracks and limits `seek()` calls to prevent accidental infinite loops.
+ *
+ * @see seek
+ * @since 6.2.0
+ * @var int
+ */
+ private $seek_count = 0;
+
+ /**
+ * Constructor.
+ *
+ * @since 6.2.0
+ *
+ * @param string $html HTML to process.
+ */
+ public function __construct( $html ) {
+ $this->html = $html;
+ }
+
+ /**
+ * Finds the next tag matching the $query.
+ *
+ * @since 6.2.0
+ *
+ * @param array|string|null $query {
+ * Optional. Which tag name to find, having which class, etc. Default is to find any tag.
+ *
+ * @type string|null $tag_name Which tag to find, or `null` for "any tag."
+ * @type int|null $match_offset Find the Nth tag matching all search criteria.
+ * 0 for "first" tag, 2 for "third," etc.
+ * Defaults to first tag.
+ * @type string|null $class_name Tag must contain this whole class name to match.
+ * @type string|null $tag_closers "visit" or "skip": whether to stop on tag closers, e.g.
.
+ * }
+ * @return boolean Whether a tag was matched.
+ */
+ public function next_tag( $query = null ) {
+ $this->parse_query( $query );
+ $already_found = 0;
+
+ do {
+ if ( $this->parsed_bytes >= strlen( $this->html ) ) {
+ return false;
+ }
+
+ // Find the next tag if it exists.
+ if ( false === $this->parse_next_tag() ) {
+ $this->parsed_bytes = strlen( $this->html );
+
+ return false;
+ }
+
+ // Parse all of its attributes.
+ while ( $this->parse_next_attribute() ) {
+ continue;
+ }
+
+ // Ensure that the tag closes before the end of the document.
+ $tag_ends_at = strpos( $this->html, '>', $this->parsed_bytes );
+ if ( false === $tag_ends_at ) {
+ return false;
+ }
+ $this->tag_ends_at = $tag_ends_at;
+ $this->parsed_bytes = $tag_ends_at;
+
+ // Finally, check if the parsed tag and its attributes match the search query.
+ if ( $this->matches() ) {
+ ++$already_found;
+ }
+
+ /*
+ * For non-DATA sections which might contain text that looks like HTML tags but
+ * isn't, scan with the appropriate alternative mode. Looking at the first letter
+ * of the tag name as a pre-check avoids a string allocation when it's not needed.
+ *
+ * @TODO: Add unit test case and fix (if necessary) for RCDATA tag closer coming before RCDATA tag opener.
+ */
+ $t = $this->html[ $this->tag_name_starts_at ];
+ if ( ! $this->is_closing_tag && ( 's' === $t || 'S' === $t || 't' === $t || 'T' === $t ) ) {
+ $tag_name = $this->get_tag();
+
+ if ( 'SCRIPT' === $tag_name && ! $this->skip_script_data() ) {
+ $this->parsed_bytes = strlen( $this->html );
+ return false;
+ } elseif (
+ ( 'TEXTAREA' === $tag_name || 'TITLE' === $tag_name ) &&
+ ! $this->skip_rcdata( $tag_name )
+ ) {
+ $this->parsed_bytes = strlen( $this->html );
+ return false;
+ }
+ }
+ } while ( $already_found < $this->sought_match_offset );
+
+ return true;
+ }
+
+
+ /**
+ * Sets a bookmark in the HTML document.
+ *
+ * Bookmarks represent specific places or tokens in the HTML
+ * document, such as a tag opener or closer. When applying
+ * edits to a document, such as setting an attribute, the
+ * text offsets of that token may shift; the bookmark is
+ * kept updated with those shifts and remains stable unless
+ * the entire span of text in which the token sits is removed.
+ *
+ * Release bookmarks when they are no longer needed.
+ *
+ * Example:
+ * ```
+ *
Surprising fact you may not know!
+ * ^ ^
+ * \-|-- this `H2` opener bookmark tracks the token
+ *
+ *
Surprising fact you may no…
+ * ^ ^
+ * \-|-- it shifts with edits
+ * ```
+ *
+ * Bookmarks provide the ability to seek to a previously-scanned
+ * place in the HTML document. This avoids the need to re-scan
+ * the entire document.
+ *
+ * Example:
+ * ```
+ *
+ * ^^^^
+ * want to note this last item
+ *
+ * $p = new WP_HTML_Tag_Processor( $html );
+ * $in_list = false;
+ * while ( $p->next_tag( [ 'tag_closers' => $in_list ? 'visit' : 'skip' ] ) ) {
+ * if ( 'UL' === $p->get_tag() ) {
+ * if ( $p->is_tag_closer() ) {
+ * $in_list = false;
+ * $p->set_bookmark( 'resume' );
+ * if ( $p->seek( 'last-li' ) ) {
+ * $p->add_class( 'last-li' );
+ * }
+ * $p->seek( 'resume' );
+ * $p->release_bookmark( 'last-li' );
+ * $p->release_bookmark( 'resume' );
+ * } else {
+ * $in_list = true;
+ * }
+ * }
+ *
+ * if ( 'LI' === $p->get_tag() ) {
+ * $p->set_bookmark( 'last-li' );
+ * }
+ * }
+ * ```
+ *
+ * Bookmarks intentionally hide the internal string offsets
+ * to which they refer. They are maintained internally as
+ * updates are applied to the HTML document and therefore
+ * retain their "position" - the location to which they
+ * originally pointed. The inability to use bookmarks with
+ * functions like `substr` is therefore intentional to guard
+ * against accidentally breaking the HTML.
+ *
+ * Because bookmarks allocate memory and require processing
+ * for every applied update, they are limited and require
+ * a name. They should not be created with programmatically-made
+ * names, such as "li_{$index}" with some loop. As a general
+ * rule they should only be created with string-literal names
+ * like "start-of-section" or "last-paragraph".
+ *
+ * Bookmarks are a powerful tool to enable complicated behavior.
+ * Consider double-checking that you need this tool if you are
+ * reaching for it, as inappropriate use could lead to broken
+ * HTML structure or unwanted processing overhead.
+ *
+ * @since 6.2.0
+ *
+ * @param string $name Identifies this particular bookmark.
+ * @return bool
+ */
+ public function set_bookmark( $name ) {
+ if ( null === $this->tag_name_starts_at ) {
+ return false;
+ }
+
+ if ( ! array_key_exists( $name, $this->bookmarks ) && count( $this->bookmarks ) >= self::MAX_BOOKMARKS ) {
+ if ( WP_DEBUG ) {
+ trigger_error( "Too many bookmarks: cannot create '{$name}'", E_USER_WARNING );
+ }
+ return false;
+ }
+
+ $this->bookmarks[ $name ] = new WP_HTML_Span(
+ $this->tag_name_starts_at - 1,
+ $this->tag_ends_at
+ );
+
+ return true;
+ }
+
+
+ /**
+ * Removes a bookmark that is no longer needed.
+ *
+ * Releasing a bookmark frees up the small
+ * performance overhead it requires.
+ *
+ * @param string $name Name of the bookmark to remove.
+ * @return bool
+ */
+ public function release_bookmark( $name ) {
+ if ( ! array_key_exists( $name, $this->bookmarks ) ) {
+ return false;
+ }
+
+ unset( $this->bookmarks[ $name ] );
+
+ return true;
+ }
+
+
+ /**
+ * Skips the contents of the title and textarea tags until an appropriate
+ * tag closer is found.
+ *
+ * @see https://html.spec.whatwg.org/multipage/parsing.html#rcdata-state
+ * @since 6.2.0
+ *
+ * @param string $tag_name – the lowercase tag name which will close the RCDATA region.
+ * @return bool Whether an end to the RCDATA region was found before the end of the document.
+ */
+ private function skip_rcdata( $tag_name ) {
+ $html = $this->html;
+ $doc_length = strlen( $html );
+ $tag_length = strlen( $tag_name );
+
+ $at = $this->parsed_bytes;
+
+ while ( false !== $at && $at < $doc_length ) {
+ $at = strpos( $this->html, '', $at );
+
+ // If there is no possible tag closer then fail.
+ if ( false === $at || ( $at + $tag_length ) >= $doc_length ) {
+ $this->parsed_bytes = $doc_length;
+ return false;
+ }
+
+ $at += 2;
+
+ /*
+ * Find a case-insensitive match to the tag name.
+ *
+ * Because tag names are limited to US-ASCII there is no
+ * need to perform any kind of Unicode normalization when
+ * comparing; any character which could be impacted by such
+ * normalization could not be part of a tag name.
+ */
+ for ( $i = 0; $i < $tag_length; $i++ ) {
+ $tag_char = $tag_name[ $i ];
+ $html_char = $html[ $at + $i ];
+
+ if ( $html_char !== $tag_char && strtoupper( $html_char ) !== $tag_char ) {
+ $at += $i;
+ continue 2;
+ }
+ }
+
+ $at += $tag_length;
+ $this->parsed_bytes = $at;
+
+ /*
+ * Ensure that the tag name terminates to avoid matching on
+ * substrings of a longer tag name. For example, the sequence
+ * "' !== $c ) {
+ continue;
+ }
+
+ while ( $this->parse_next_attribute() ) {
+ continue;
+ }
+ $at = $this->parsed_bytes;
+ if ( $at >= strlen( $this->html ) ) {
+ return false;
+ }
+
+ if ( '>' === $html[ $at ] || '/' === $html[ $at ] ) {
+ ++$this->parsed_bytes;
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Skips the contents of tags; unless one of these appears next,
+ * proceed scanning to the next potential token in the text.
+ */
+ if ( ! (
+ $at + 6 < $doc_length &&
+ ( 's' === $html[ $at ] || 'S' === $html[ $at ] ) &&
+ ( 'c' === $html[ $at + 1 ] || 'C' === $html[ $at + 1 ] ) &&
+ ( 'r' === $html[ $at + 2 ] || 'R' === $html[ $at + 2 ] ) &&
+ ( 'i' === $html[ $at + 3 ] || 'I' === $html[ $at + 3 ] ) &&
+ ( 'p' === $html[ $at + 4 ] || 'P' === $html[ $at + 4 ] ) &&
+ ( 't' === $html[ $at + 5 ] || 'T' === $html[ $at + 5 ] )
+ ) ) {
+ ++$at;
+ continue;
+ }
+
+ /*
+ * Ensure that the script tag terminates to avoid matching on
+ * substrings of a non-match. For example, the sequence
+ * "= $doc_length ) {
+ continue;
+ }
+ $at += 6;
+ $c = $html[ $at ];
+ if ( ' ' !== $c && "\t" !== $c && "\r" !== $c && "\n" !== $c && '/' !== $c && '>' !== $c ) {
+ ++$at;
+ continue;
+ }
+
+ if ( 'escaped' === $state && ! $is_closing ) {
+ $state = 'double-escaped';
+ continue;
+ }
+
+ if ( 'double-escaped' === $state && $is_closing ) {
+ $state = 'escaped';
+ continue;
+ }
+
+ if ( $is_closing ) {
+ $this->parsed_bytes = $at;
+ if ( $this->parsed_bytes >= $doc_length ) {
+ return false;
+ }
+
+ while ( $this->parse_next_attribute() ) {
+ continue;
+ }
+
+ if ( '>' === $html[ $this->parsed_bytes ] ) {
+ ++$this->parsed_bytes;
+ return true;
+ }
+ }
+
+ ++$at;
+ }
+
+ return false;
+ }
+
+ /**
+ * Parses the next tag.
+ *
+ * @since 6.2.0
+ *
+ * @return bool Whether a tag was found before the end of the document.
+ */
+ private function parse_next_tag() {
+ $this->after_tag();
+
+ $html = $this->html;
+ $doc_length = strlen( $html );
+ $at = $this->parsed_bytes;
+
+ while ( false !== $at && $at < $doc_length ) {
+ $at = strpos( $html, '<', $at );
+ if ( false === $at ) {
+ return false;
+ }
+
+ if ( '/' === $this->html[ $at + 1 ] ) {
+ $this->is_closing_tag = true;
+ $at++;
+ } else {
+ $this->is_closing_tag = false;
+ }
+
+ /*
+ * HTML tag names must start with [a-zA-Z] otherwise they are not tags.
+ * For example, "<3" is rendered as text, not a tag opener. If at least
+ * one letter follows the "<" then _it is_ a tag, but if the following
+ * character is anything else it _is not a tag_.
+ *
+ * It's not uncommon to find non-tags starting with `<` in an HTML
+ * document, so it's good for performance to make this pre-check before
+ * continuing to attempt to parse a tag name.
+ *
+ * Reference:
+ * * https://html.spec.whatwg.org/multipage/parsing.html#data-state
+ * * https://html.spec.whatwg.org/multipage/parsing.html#tag-open-state
+ */
+ $tag_name_prefix_length = strspn( $html, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', $at + 1 );
+ if ( $tag_name_prefix_length > 0 ) {
+ ++$at;
+ $this->tag_name_length = $tag_name_prefix_length + strcspn( $html, " \t\f\r\n/>", $at + $tag_name_prefix_length );
+ $this->tag_name_starts_at = $at;
+ $this->parsed_bytes = $at + $this->tag_name_length;
+ return true;
+ }
+
+ /*
+ * Abort if no tag is found before the end of
+ * the document. There is nothing left to parse.
+ */
+ if ( $at + 1 >= strlen( $html ) ) {
+ return false;
+ }
+
+ /*
+ *
+ * https://html.spec.whatwg.org/multipage/parsing.html#tag-open-state
+ */
+ if (
+ strlen( $html ) > $at + 3 &&
+ '-' === $html[ $at + 2 ] &&
+ '-' === $html[ $at + 3 ]
+ ) {
+ $closer_at = strpos( $html, '-->', $at + 4 );
+ if ( false === $closer_at ) {
+ return false;
+ }
+
+ $at = $closer_at + 3;
+ continue;
+ }
+
+ /*
+ *
+ * The CDATA is case-sensitive.
+ * https://html.spec.whatwg.org/multipage/parsing.html#tag-open-state
+ */
+ if (
+ strlen( $html ) > $at + 8 &&
+ '[' === $html[ $at + 2 ] &&
+ 'C' === $html[ $at + 3 ] &&
+ 'D' === $html[ $at + 4 ] &&
+ 'A' === $html[ $at + 5 ] &&
+ 'T' === $html[ $at + 6 ] &&
+ 'A' === $html[ $at + 7 ] &&
+ '[' === $html[ $at + 8 ]
+ ) {
+ $closer_at = strpos( $html, ']]>', $at + 9 );
+ if ( false === $closer_at ) {
+ return false;
+ }
+
+ $at = $closer_at + 3;
+ continue;
+ }
+
+ /*
+ *
+ * These are ASCII-case-insensitive.
+ * https://html.spec.whatwg.org/multipage/parsing.html#tag-open-state
+ */
+ if (
+ strlen( $html ) > $at + 8 &&
+ ( 'D' === $html[ $at + 2 ] || 'd' === $html[ $at + 2 ] ) &&
+ ( 'O' === $html[ $at + 3 ] || 'o' === $html[ $at + 3 ] ) &&
+ ( 'C' === $html[ $at + 4 ] || 'c' === $html[ $at + 4 ] ) &&
+ ( 'T' === $html[ $at + 5 ] || 't' === $html[ $at + 5 ] ) &&
+ ( 'Y' === $html[ $at + 6 ] || 'y' === $html[ $at + 6 ] ) &&
+ ( 'P' === $html[ $at + 7 ] || 'p' === $html[ $at + 7 ] ) &&
+ ( 'E' === $html[ $at + 8 ] || 'e' === $html[ $at + 8 ] )
+ ) {
+ $closer_at = strpos( $html, '>', $at + 9 );
+ if ( false === $closer_at ) {
+ return false;
+ }
+
+ $at = $closer_at + 1;
+ continue;
+ }
+
+ /*
+ * Anything else here is an incorrectly-opened comment and transitions
+ * to the bogus comment state - skip to the nearest >.
+ */
+ $at = strpos( $html, '>', $at + 1 );
+ continue;
+ }
+
+ /*
+ * transitions to a bogus comment state – skip to the nearest >
+ * https://html.spec.whatwg.org/multipage/parsing.html#tag-open-state
+ */
+ if ( '?' === $html[ $at + 1 ] ) {
+ $closer_at = strpos( $html, '>', $at + 2 );
+ if ( false === $closer_at ) {
+ return false;
+ }
+
+ $at = $closer_at + 1;
+ continue;
+ }
+
+ ++$at;
+ }
+
+ return false;
+ }
+
+ /**
+ * Parses the next attribute.
+ *
+ * @since 6.2.0
+ *
+ * @return bool Whether an attribute was found before the end of the document.
+ */
+ private function parse_next_attribute() {
+ // Skip whitespace and slashes.
+ $this->parsed_bytes += strspn( $this->html, " \t\f\r\n/", $this->parsed_bytes );
+ if ( $this->parsed_bytes >= strlen( $this->html ) ) {
+ return false;
+ }
+
+ /*
+ * Treat the equal sign as a part of the attribute
+ * name if it is the first encountered byte.
+ *
+ * @see https://html.spec.whatwg.org/multipage/parsing.html#before-attribute-name-state
+ */
+ $name_length = '=' === $this->html[ $this->parsed_bytes ]
+ ? 1 + strcspn( $this->html, "=/> \t\f\r\n", $this->parsed_bytes + 1 )
+ : strcspn( $this->html, "=/> \t\f\r\n", $this->parsed_bytes );
+
+ // No attribute, just tag closer.
+ if ( 0 === $name_length || $this->parsed_bytes + $name_length >= strlen( $this->html ) ) {
+ return false;
+ }
+
+ $attribute_start = $this->parsed_bytes;
+ $attribute_name = substr( $this->html, $attribute_start, $name_length );
+ $this->parsed_bytes += $name_length;
+ if ( $this->parsed_bytes >= strlen( $this->html ) ) {
+ return false;
+ }
+
+ $this->skip_whitespace();
+ if ( $this->parsed_bytes >= strlen( $this->html ) ) {
+ return false;
+ }
+
+ $has_value = '=' === $this->html[ $this->parsed_bytes ];
+ if ( $has_value ) {
+ ++$this->parsed_bytes;
+ $this->skip_whitespace();
+ if ( $this->parsed_bytes >= strlen( $this->html ) ) {
+ return false;
+ }
+
+ switch ( $this->html[ $this->parsed_bytes ] ) {
+ case "'":
+ case '"':
+ $quote = $this->html[ $this->parsed_bytes ];
+ $value_start = $this->parsed_bytes + 1;
+ $value_length = strcspn( $this->html, $quote, $value_start );
+ $attribute_end = $value_start + $value_length + 1;
+ $this->parsed_bytes = $attribute_end;
+ break;
+
+ default:
+ $value_start = $this->parsed_bytes;
+ $value_length = strcspn( $this->html, "> \t\f\r\n", $value_start );
+ $attribute_end = $value_start + $value_length;
+ $this->parsed_bytes = $attribute_end;
+ }
+ } else {
+ $value_start = $this->parsed_bytes;
+ $value_length = 0;
+ $attribute_end = $attribute_start + $name_length;
+ }
+
+ if ( $attribute_end >= strlen( $this->html ) ) {
+ return false;
+ }
+
+ if ( $this->is_closing_tag ) {
+ return true;
+ }
+
+ /*
+ * > There must never be two or more attributes on
+ * > the same start tag whose names are an ASCII
+ * > case-insensitive match for each other.
+ * - HTML 5 spec
+ *
+ * @see https://html.spec.whatwg.org/multipage/syntax.html#attributes-2:ascii-case-insensitive
+ */
+ $comparable_name = strtolower( $attribute_name );
+
+ // If an attribute is listed many times, only use the first declaration and ignore the rest.
+ if ( ! array_key_exists( $comparable_name, $this->attributes ) ) {
+ $this->attributes[ $comparable_name ] = new WP_HTML_Attribute_Token(
+ $attribute_name,
+ $value_start,
+ $value_length,
+ $attribute_start,
+ $attribute_end,
+ ! $has_value
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * Move the internal cursor past any immediate successive whitespace.
+ *
+ * @since 6.2.0
+ *
+ * @return void
+ */
+ private function skip_whitespace() {
+ $this->parsed_bytes += strspn( $this->html, " \t\f\r\n", $this->parsed_bytes );
+ }
+
+ /**
+ * Applies attribute updates and cleans up once a tag is fully parsed.
+ *
+ * @since 6.2.0
+ *
+ * @return void
+ */
+ private function after_tag() {
+ $this->class_name_updates_to_attributes_updates();
+ $this->apply_attributes_updates();
+ $this->tag_name_starts_at = null;
+ $this->tag_name_length = null;
+ $this->tag_ends_at = null;
+ $this->is_closing_tag = null;
+ $this->attributes = array();
+ }
+
+ /**
+ * Converts class name updates into tag attributes updates
+ * (they are accumulated in different data formats for performance).
+ *
+ * @see $lexical_updates
+ * @see $classname_updates
+ *
+ * @since 6.2.0
+ *
+ * @return void
+ */
+ private function class_name_updates_to_attributes_updates() {
+ if ( count( $this->classname_updates ) === 0 ) {
+ return;
+ }
+
+ $existing_class = $this->get_enqueued_attribute_value( 'class' );
+ if ( null === $existing_class || true === $existing_class ) {
+ $existing_class = '';
+ }
+
+ if ( false === $existing_class && isset( $this->attributes['class'] ) ) {
+ $existing_class = substr(
+ $this->html,
+ $this->attributes['class']->value_starts_at,
+ $this->attributes['class']->value_length
+ );
+ }
+
+ if ( false === $existing_class ) {
+ $existing_class = '';
+ }
+
+ /**
+ * Updated "class" attribute value.
+ *
+ * This is incrementally built while scanning through the existing class
+ * attribute, skipping removed classes on the way, and then appending
+ * added classes at the end. Only when finished processing will the
+ * value contain the final new value.
+
+ * @var string $class
+ */
+ $class = '';
+
+ /**
+ * Tracks the cursor position in the existing
+ * class attribute value while parsing.
+ *
+ * @var int $at
+ */
+ $at = 0;
+
+ /**
+ * Indicates if there's any need to modify the existing class attribute.
+ *
+ * If a call to `add_class()` and `remove_class()` wouldn't impact
+ * the `class` attribute value then there's no need to rebuild it.
+ * For example, when adding a class that's already present or
+ * removing one that isn't.
+ *
+ * This flag enables a performance optimization when none of the enqueued
+ * class updates would impact the `class` attribute; namely, that the
+ * processor can continue without modifying the input document, as if
+ * none of the `add_class()` or `remove_class()` calls had been made.
+ *
+ * This flag is set upon the first change that requires a string update.
+ *
+ * @var bool $modified
+ */
+ $modified = false;
+
+ // Remove unwanted classes by only copying the new ones.
+ $existing_class_length = strlen( $existing_class );
+ while ( $at < $existing_class_length ) {
+ // Skip to the first non-whitespace character.
+ $ws_at = $at;
+ $ws_length = strspn( $existing_class, " \t\f\r\n", $ws_at );
+ $at += $ws_length;
+
+ // Capture the class name – it's everything until the next whitespace.
+ $name_length = strcspn( $existing_class, " \t\f\r\n", $at );
+ if ( 0 === $name_length ) {
+ // If no more class names are found then that's the end.
+ break;
+ }
+
+ $name = substr( $existing_class, $at, $name_length );
+ $at += $name_length;
+
+ // If this class is marked for removal, start processing the next one.
+ $remove_class = (
+ isset( $this->classname_updates[ $name ] ) &&
+ self::REMOVE_CLASS === $this->classname_updates[ $name ]
+ );
+
+ // If a class has already been seen then skip it; it should not be added twice.
+ if ( ! $remove_class ) {
+ $this->classname_updates[ $name ] = self::SKIP_CLASS;
+ }
+
+ if ( $remove_class ) {
+ $modified = true;
+ continue;
+ }
+
+ /*
+ * Otherwise, append it to the new "class" attribute value.
+ *
+ * There are options for handling whitespace between tags.
+ * Preserving the existing whitespace produces fewer changes
+ * to the HTML content and should clarify the before/after
+ * content when debugging the modified output.
+ *
+ * This approach contrasts normalizing the inter-class
+ * whitespace to a single space, which might appear cleaner
+ * in the output HTML but produce a noisier change.
+ */
+ $class .= substr( $existing_class, $ws_at, $ws_length );
+ $class .= $name;
+ }
+
+ // Add new classes by appending those which haven't already been seen.
+ foreach ( $this->classname_updates as $name => $operation ) {
+ if ( self::ADD_CLASS === $operation ) {
+ $modified = true;
+
+ $class .= strlen( $class ) > 0 ? ' ' : '';
+ $class .= $name;
+ }
+ }
+
+ $this->classname_updates = array();
+ if ( ! $modified ) {
+ return;
+ }
+
+ if ( strlen( $class ) > 0 ) {
+ $this->set_attribute( 'class', $class );
+ } else {
+ $this->remove_attribute( 'class' );
+ }
+ }
+
+ /**
+ * Applies attribute updates to HTML document.
+ *
+ * @since 6.2.0
+ *
+ * @return void
+ */
+ private function apply_attributes_updates() {
+ if ( ! count( $this->lexical_updates ) ) {
+ return;
+ }
+
+ /*
+ * Attribute updates can be enqueued in any order but updates
+ * to the document must occur in lexical order; that is, each
+ * replacement must be made before all others which follow it
+ * at later string indices in the input document.
+ *
+ * Sorting avoid making out-of-order replacements which
+ * can lead to mangled output, partially-duplicated
+ * attributes, and overwritten attributes.
+ */
+ usort( $this->lexical_updates, array( self::class, 'sort_start_ascending' ) );
+
+ foreach ( $this->lexical_updates as $diff ) {
+ $this->updated_html .= substr( $this->html, $this->updated_bytes, $diff->start - $this->updated_bytes );
+ $this->updated_html .= $diff->text;
+ $this->updated_bytes = $diff->end;
+ }
+
+ /*
+ * Adjust bookmark locations to account for how the text
+ * replacements adjust offsets in the input document.
+ */
+ foreach ( $this->bookmarks as $bookmark ) {
+ /*
+ * Each lexical update which appears before the bookmark's endpoints
+ * might shift the offsets for those endpoints. Loop through each change
+ * and accumulate the total shift for each bookmark, then apply that
+ * shift after tallying the full delta.
+ */
+ $head_delta = 0;
+ $tail_delta = 0;
+
+ foreach ( $this->lexical_updates as $diff ) {
+ $update_head = $bookmark->start >= $diff->start;
+ $update_tail = $bookmark->end >= $diff->start;
+
+ if ( ! $update_head && ! $update_tail ) {
+ break;
+ }
+
+ $delta = strlen( $diff->text ) - ( $diff->end - $diff->start );
+
+ if ( $update_head ) {
+ $head_delta += $delta;
+ }
+
+ if ( $update_tail ) {
+ $tail_delta += $delta;
+ }
+ }
+
+ $bookmark->start += $head_delta;
+ $bookmark->end += $tail_delta;
+ }
+
+ $this->lexical_updates = array();
+ }
+
+ /**
+ * Move the internal cursor in the Tag Processor to a given bookmark's location.
+ *
+ * In order to prevent accidental infinite loops, there's a
+ * maximum limit on the number of times seek() can be called.
+ *
+ * @since 6.2.0
+ *
+ * @param string $bookmark_name Jump to the place in the document identified by this bookmark name.
+ * @return bool
+ */
+ public function seek( $bookmark_name ) {
+ if ( ! array_key_exists( $bookmark_name, $this->bookmarks ) ) {
+ if ( WP_DEBUG ) {
+ trigger_error( 'Invalid bookmark name', E_USER_WARNING );
+ }
+ return false;
+ }
+
+ if ( ++$this->seek_count > self::MAX_SEEK_OPS ) {
+ if ( WP_DEBUG ) {
+ trigger_error( 'Too many calls to seek() - this can lead to performance issues.', E_USER_WARNING );
+ }
+ return false;
+ }
+
+ // Flush out any pending updates to the document.
+ $this->get_updated_html();
+
+ // Point this tag processor before the sought tag opener and consume it.
+ $this->parsed_bytes = $this->bookmarks[ $bookmark_name ]->start;
+ $this->updated_bytes = $this->parsed_bytes;
+ $this->updated_html = substr( $this->html, 0, $this->updated_bytes );
+ return $this->next_tag();
+ }
+
+ /**
+ * Compare two WP_HTML_Text_Replacement objects.
+ *
+ * @since 6.2.0
+ *
+ * @param WP_HTML_Text_Replacement $a First attribute update.
+ * @param WP_HTML_Text_Replacement $b Second attribute update.
+ * @return int
+ */
+ private static function sort_start_ascending( $a, $b ) {
+ $by_start = $a->start - $b->start;
+ if ( 0 !== $by_start ) {
+ return $by_start;
+ }
+
+ $by_text = isset( $a->text, $b->text ) ? strcmp( $a->text, $b->text ) : 0;
+ if ( 0 !== $by_text ) {
+ return $by_text;
+ }
+
+ /*
+ * This code should be unreachable, because it implies the two replacements
+ * start at the same location and contain the same text.
+ */
+ return $a->end - $b->end;
+ }
+
+ /**
+ * Return the enqueued value for a given attribute, if one exists.
+ *
+ * Enqueued updates can take different data types:
+ * - If an update is enqueued and is boolean, the return will be `true`
+ * - If an update is otherwise enqueued, the return will be the string value of that update.
+ * - If an attribute is enqueued to be removed, the return will be `null` to indicate that.
+ * - If no updates are enqueued, the return will be `false` to differentiate from "removed."
+ *
+ * @since 6.2.0
+ *
+ * @param string $comparable_name The attribute name in its comparable form.
+ * @return string|boolean|null Value of enqueued update if present, otherwise false.
+ */
+ private function get_enqueued_attribute_value( $comparable_name ) {
+ if ( ! isset( $this->lexical_updates[ $comparable_name ] ) ) {
+ return false;
+ }
+
+ $enqueued_text = $this->lexical_updates[ $comparable_name ]->text;
+
+ // Removed attributes erase the entire span.
+ if ( '' === $enqueued_text ) {
+ return null;
+ }
+
+ /*
+ * Boolean attribute updates are just the attribute name without a corresponding value.
+ *
+ * This value might differ from the given comparable name in that there could be leading
+ * or trailing whitespace, and that the casing follows the name given in `set_attribute`.
+ *
+ * Example:
+ * ```
+ * $p->set_attribute( 'data-TEST-id', 'update' );
+ * 'update' === $p->get_enqueued_attribute_value( 'data-test-id' );
+ * ```
+ *
+ * Detect this difference based on the absence of the `=`, which _must_ exist in any
+ * attribute containing a value, e.g. ` `.
+ * ¹ ²
+ * 1. Attribute with a string value.
+ * 2. Boolean attribute whose value is `true`.
+ */
+ $equals_at = strpos( $enqueued_text, '=' );
+ if ( false === $equals_at ) {
+ return true;
+ }
+
+ /*
+ * Finally, a normal update's value will appear after the `=` and
+ * be double-quoted, as performed incidentally by `set_attribute`.
+ *
+ * e.g. `type="text"`
+ * ¹² ³
+ * 1. Equals is here.
+ * 2. Double-quoting starts one after the equals sign.
+ * 3. Double-quoting ends at the last character in the update.
+ */
+ $enqueued_value = substr( $enqueued_text, $equals_at + 2, -1 );
+ return html_entity_decode( $enqueued_value );
+ }
+
+ /**
+ * Returns the value of a requested attribute from a matched tag opener if that attribute exists.
+ *
+ * Example:
+ * ```php
+ * $p = new WP_HTML_Tag_Processor( 'Test
' );
+ * $p->next_tag( [ 'class_name' => 'test' ] ) === true;
+ * $p->get_attribute( 'data-test-id' ) === '14';
+ * $p->get_attribute( 'enabled' ) === true;
+ * $p->get_attribute( 'aria-label' ) === null;
+ *
+ * $p->next_tag( [] ) === false;
+ * $p->get_attribute( 'class' ) === null;
+ * ```
+ *
+ * @since 6.2.0
+ *
+ * @param string $name Name of attribute whose value is requested.
+ * @return string|true|null Value of attribute or `null` if not available. Boolean attributes return `true`.
+ */
+ public function get_attribute( $name ) {
+ if ( null === $this->tag_name_starts_at ) {
+ return null;
+ }
+
+ $comparable = strtolower( $name );
+
+ /*
+ * For every attribute other than `class` it's possible to perform a quick check if
+ * there's an enqueued lexical update whose value takes priority over what's found in
+ * the input document.
+ *
+ * The `class` attribute is special though because of the exposed helpers `add_class`
+ * and `remove_class`. These form a builder for the `class` attribute, so an additional
+ * check for enqueued class changes is required in addition to the check for any enqueued
+ * attribute values. If any exist, those enqueued class changes must first be flushed out
+ * into an attribute value update.
+ */
+ if ( 'class' === $name ) {
+ $this->class_name_updates_to_attributes_updates();
+ }
+
+ // Return any enqueued attribute value updates if they exist.
+ $enqueued_value = $this->get_enqueued_attribute_value( $comparable );
+ if ( false !== $enqueued_value ) {
+ return $enqueued_value;
+ }
+
+ if ( ! isset( $this->attributes[ $comparable ] ) ) {
+ return null;
+ }
+
+ $attribute = $this->attributes[ $comparable ];
+
+ /*
+ * This flag distinguishes an attribute with no value
+ * from an attribute with an empty string value. For
+ * unquoted attributes this could look very similar.
+ * It refers to whether an `=` follows the name.
+ *
+ * e.g.
+ * ¹ ²
+ * 1. Attribute `boolean-attribute` is `true`.
+ * 2. Attribute `empty-attribute` is `""`.
+ */
+ if ( true === $attribute->is_true ) {
+ return true;
+ }
+
+ $raw_value = substr( $this->html, $attribute->value_starts_at, $attribute->value_length );
+
+ return html_entity_decode( $raw_value );
+ }
+
+ /**
+ * Returns the lowercase names of all attributes matching a given prefix in the currently-opened tag.
+ *
+ * Note that matching is case-insensitive. This is in accordance with the spec:
+ *
+ * > There must never be two or more attributes on
+ * > the same start tag whose names are an ASCII
+ * > case-insensitive match for each other.
+ * - HTML 5 spec
+ *
+ * @see https://html.spec.whatwg.org/multipage/syntax.html#attributes-2:ascii-case-insensitive
+ *
+ * Example:
+ * ```php
+ * $p = new WP_HTML_Tag_Processor( 'Test
' );
+ * $p->next_tag( [ 'class_name' => 'test' ] ) === true;
+ * $p->get_attribute_names_with_prefix( 'data-' ) === array( 'data-enabled', 'data-test-id' );
+ *
+ * $p->next_tag( [] ) === false;
+ * $p->get_attribute_names_with_prefix( 'data-' ) === null;
+ * ```
+ *
+ * @since 6.2.0
+ *
+ * @param string $prefix Prefix of requested attribute names.
+ * @return array|null List of attribute names, or `null` when no tag opener is matched.
+ */
+ function get_attribute_names_with_prefix( $prefix ) {
+ if ( $this->is_closing_tag || null === $this->tag_name_starts_at ) {
+ return null;
+ }
+
+ $comparable = strtolower( $prefix );
+
+ $matches = array();
+ foreach ( array_keys( $this->attributes ) as $attr_name ) {
+ if ( str_starts_with( $attr_name, $comparable ) ) {
+ $matches[] = $attr_name;
+ }
+ }
+ return $matches;
+ }
+
+ /**
+ * Returns the uppercase name of the matched tag.
+ *
+ * Example:
+ * ```php
+ * $p = new WP_HTML_Tag_Processor( 'Test
' );
+ * $p->next_tag( [] ) === true;
+ * $p->get_tag() === 'DIV';
+ *
+ * $p->next_tag( [] ) === false;
+ * $p->get_tag() === null;
+ * ```
+ *
+ * @since 6.2.0
+ *
+ * @return string|null Name of currently matched tag in input HTML, or `null` if none found.
+ */
+ public function get_tag() {
+ if ( null === $this->tag_name_starts_at ) {
+ return null;
+ }
+
+ $tag_name = substr( $this->html, $this->tag_name_starts_at, $this->tag_name_length );
+
+ return strtoupper( $tag_name );
+ }
+
+ /**
+ * Indicates if the current tag token is a tag closer.
+ *
+ * Example:
+ * ```php
+ * $p = new WP_HTML_Tag_Processor( '
' );
+ * $p->next_tag( [ 'tag_name' => 'div', 'tag_closers' => 'visit' ] );
+ * $p->is_tag_closer() === false;
+ *
+ * $p->next_tag( [ 'tag_name' => 'div', 'tag_closers' => 'visit' ] );
+ * $p->is_tag_closer() === true;
+ * ```
+ *
+ * @since 6.2.0
+ *
+ * @return bool
+ */
+ public function is_tag_closer() {
+ return $this->is_closing_tag;
+ }
+
+ /**
+ * Updates or creates a new attribute on the currently matched tag with the passed value.
+ *
+ * For boolean attributes special handling is provided:
+ * - When `true` is passed as the value, then only the attribute name is added to the tag.
+ * - When `false` is passed, the attribute gets removed if it existed before.
+ *
+ * For string attributes, the value is escaped using the `esc_attr` function.
+ *
+ * @since 6.2.0
+ *
+ * @param string $name The attribute name to target.
+ * @param string|bool $value The new attribute value.
+ * @return bool Whether an attribute value was set.
+ */
+ public function set_attribute( $name, $value ) {
+ if ( $this->is_closing_tag || null === $this->tag_name_starts_at ) {
+ return false;
+ }
+
+ /*
+ * WordPress rejects more characters than are strictly forbidden
+ * in HTML5. This is to prevent additional security risks deeper
+ * in the WordPress and plugin stack. Specifically the
+ * less-than (<) greater-than (>) and ampersand (&) aren't allowed.
+ *
+ * The use of a PCRE match enables looking for specific Unicode
+ * code points without writing a UTF-8 decoder. Whereas scanning
+ * for one-byte characters is trivial (with `strcspn`), scanning
+ * for the longer byte sequences would be more complicated. Given
+ * that this shouldn't be in the hot path for execution, it's a
+ * reasonable compromise in efficiency without introducing a
+ * noticeable impact on the overall system.
+ *
+ * @see https://html.spec.whatwg.org/#attributes-2
+ *
+ * @TODO as the only regex pattern maybe we should take it out? are
+ * Unicode patterns available broadly in Core?
+ */
+ if ( preg_match(
+ '~[' .
+ // Syntax-like characters.
+ '"\'>& =' .
+ // Control characters.
+ '\x{00}-\x{1F}' .
+ // HTML noncharacters.
+ '\x{FDD0}-\x{FDEF}' .
+ '\x{FFFE}\x{FFFF}\x{1FFFE}\x{1FFFF}\x{2FFFE}\x{2FFFF}\x{3FFFE}\x{3FFFF}' .
+ '\x{4FFFE}\x{4FFFF}\x{5FFFE}\x{5FFFF}\x{6FFFE}\x{6FFFF}\x{7FFFE}\x{7FFFF}' .
+ '\x{8FFFE}\x{8FFFF}\x{9FFFE}\x{9FFFF}\x{AFFFE}\x{AFFFF}\x{BFFFE}\x{BFFFF}' .
+ '\x{CFFFE}\x{CFFFF}\x{DFFFE}\x{DFFFF}\x{EFFFE}\x{EFFFF}\x{FFFFE}\x{FFFFF}' .
+ '\x{10FFFE}\x{10FFFF}' .
+ ']~Ssu',
+ $name
+ ) ) {
+ if ( WP_DEBUG ) {
+ trigger_error( 'Invalid attribute name', E_USER_WARNING );
+ }
+
+ return false;
+ }
+
+ /*
+ * > The values "true" and "false" are not allowed on boolean attributes.
+ * > To represent a false value, the attribute has to be omitted altogether.
+ * - HTML5 spec, https://html.spec.whatwg.org/#boolean-attributes
+ */
+ if ( false === $value ) {
+ return $this->remove_attribute( $name );
+ }
+
+ if ( true === $value ) {
+ $updated_attribute = $name;
+ } else {
+ $escaped_new_value = esc_attr( $value );
+ $updated_attribute = "{$name}=\"{$escaped_new_value}\"";
+ }
+
+ /*
+ * > There must never be two or more attributes on
+ * > the same start tag whose names are an ASCII
+ * > case-insensitive match for each other.
+ * - HTML 5 spec
+ *
+ * @see https://html.spec.whatwg.org/multipage/syntax.html#attributes-2:ascii-case-insensitive
+ */
+ $comparable_name = strtolower( $name );
+
+ if ( isset( $this->attributes[ $comparable_name ] ) ) {
+ /*
+ * Update an existing attribute.
+ *
+ * Example – set attribute id to "new" in
:
+ *
+ * ^-------------^
+ * start end
+ * replacement: `id="new"`
+ *
+ * Result:
+ */
+ $existing_attribute = $this->attributes[ $comparable_name ];
+ $this->lexical_updates[ $name ] = new WP_HTML_Text_Replacement(
+ $existing_attribute->start,
+ $existing_attribute->end,
+ $updated_attribute
+ );
+ } else {
+ /*
+ * Create a new attribute at the tag's name end.
+ *
+ * Example – add attribute id="new" to
:
+ *
+ * ^
+ * start and end
+ * replacement: ` id="new"`
+ *
+ * Result:
+ */
+ $this->lexical_updates[ $comparable_name ] = new WP_HTML_Text_Replacement(
+ $this->tag_name_starts_at + $this->tag_name_length,
+ $this->tag_name_starts_at + $this->tag_name_length,
+ ' ' . $updated_attribute
+ );
+ }
+
+ /*
+ * Any calls to update the `class` attribute directly should wipe out any
+ * enqueued class changes from `add_class` and `remove_class`.
+ */
+ if ( 'class' === $comparable_name && ! empty( $this->classname_updates ) ) {
+ $this->classname_updates = array();
+ }
+
+ return true;
+ }
+
+ /**
+ * Remove an attribute from the currently-matched tag.
+ *
+ * @since 6.2.0
+ *
+ * @param string $name The attribute name to remove.
+ * @return bool Whether an attribute was removed.
+ */
+ public function remove_attribute( $name ) {
+ if ( $this->is_closing_tag ) {
+ return false;
+ }
+
+ /*
+ * > There must never be two or more attributes on
+ * > the same start tag whose names are an ASCII
+ * > case-insensitive match for each other.
+ * - HTML 5 spec
+ *
+ * @see https://html.spec.whatwg.org/multipage/syntax.html#attributes-2:ascii-case-insensitive
+ */
+ $name = strtolower( $name );
+
+ /*
+ * Any calls to update the `class` attribute directly should wipe out any
+ * enqueued class changes from `add_class` and `remove_class`.
+ */
+ if ( 'class' === $name && count( $this->classname_updates ) !== 0 ) {
+ $this->classname_updates = array();
+ }
+
+ /*
+ * If updating an attribute that didn't exist in the input
+ * document, then remove the enqueued update and move on.
+ *
+ * For example, this might occur when calling `remove_attribute()`
+ * after calling `set_attribute()` for the same attribute
+ * and when that attribute wasn't originally present.
+ */
+ if ( ! isset( $this->attributes[ $name ] ) ) {
+ if ( isset( $this->lexical_updates[ $name ] ) ) {
+ unset( $this->lexical_updates[ $name ] );
+ }
+ return false;
+ }
+
+ /*
+ * Removes an existing tag attribute.
+ *
+ * Example – remove the attribute id from
:
+ *
+ * ^-------------^
+ * start end
+ * replacement: ``
+ *
+ * Result:
+ */
+ $this->lexical_updates[ $name ] = new WP_HTML_Text_Replacement(
+ $this->attributes[ $name ]->start,
+ $this->attributes[ $name ]->end,
+ ''
+ );
+
+ return true;
+ }
+
+ /**
+ * Adds a new class name to the currently matched tag.
+ *
+ * @since 6.2.0
+ *
+ * @param string $class_name The class name to add.
+ * @return bool Whether the class was set to be added.
+ */
+ public function add_class( $class_name ) {
+ if ( $this->is_closing_tag ) {
+ return false;
+ }
+
+ if ( null !== $this->tag_name_starts_at ) {
+ $this->classname_updates[ $class_name ] = self::ADD_CLASS;
+ }
+
+ return true;
+ }
+
+ /**
+ * Removes a class name from the currently matched tag.
+ *
+ * @since 6.2.0
+ *
+ * @param string $class_name The class name to remove.
+ * @return bool Whether the class was set to be removed.
+ */
+ public function remove_class( $class_name ) {
+ if ( $this->is_closing_tag ) {
+ return false;
+ }
+
+ if ( null !== $this->tag_name_starts_at ) {
+ $this->classname_updates[ $class_name ] = self::REMOVE_CLASS;
+ }
+
+ return true;
+ }
+
+ /**
+ * Returns the string representation of the HTML Tag Processor.
+ *
+ * @since 6.2.0
+ * @see get_updated_html
+ *
+ * @return string The processed HTML.
+ */
+ public function __toString() {
+ return $this->get_updated_html();
+ }
+
+ /**
+ * Returns the string representation of the HTML Tag Processor.
+ *
+ * @since 6.2.0
+ *
+ * @return string The processed HTML.
+ */
+ public function get_updated_html() {
+ // Short-circuit if there are no new updates to apply.
+ if ( ! count( $this->classname_updates ) && ! count( $this->lexical_updates ) ) {
+ return $this->updated_html . substr( $this->html, $this->updated_bytes );
+ }
+
+ // Otherwise: apply the updates, rewind before the current tag, and parse it again.
+ $delta_between_updated_html_end_and_current_tag_end = substr(
+ $this->html,
+ $this->updated_bytes,
+ $this->tag_name_starts_at + $this->tag_name_length - $this->updated_bytes
+ );
+ $updated_html_up_to_current_tag_name_end = $this->updated_html . $delta_between_updated_html_end_and_current_tag_end;
+
+ // 1. Apply the attributes updates to the original HTML
+ $this->class_name_updates_to_attributes_updates();
+ $this->apply_attributes_updates();
+
+ // 2. Replace the original HTML with the updated HTML
+ $this->html = $this->updated_html . substr( $this->html, $this->updated_bytes );
+ $this->updated_html = $updated_html_up_to_current_tag_name_end;
+ $this->updated_bytes = strlen( $this->updated_html );
+
+ // 3. Point this tag processor at the original tag opener and consume it
+
+ /*
+ * At this point the internal cursor points to the end of the tag name.
+ * Rewind before the tag name starts so that it's as if the cursor didn't
+ * move; a call to `next_tag()` will reparse the recently-updated attributes
+ * and additional calls to modify the attributes will apply at this same
+ * lcoation.
+ *
+ * Previous HTMLMore HTML
+ * ^ | back up by the length of the tag name plus the opening <
+ * \<-/ back up by strlen("em") + 1 ==> 3
+ */
+ $this->parsed_bytes = strlen( $updated_html_up_to_current_tag_name_end ) - $this->tag_name_length - 1;
+ $this->next_tag();
+
+ return $this->html;
+ }
+
+ /**
+ * Parses tag query input into internal search criteria.
+ *
+ * @since 6.2.0
+ *
+ * @param array|string|null $query {
+ * Optional. Which tag name to find, having which class, etc. Default is to find any tag.
+ *
+ * @type string|null $tag_name Which tag to find, or `null` for "any tag."
+ * @type int|null $match_offset Find the Nth tag matching all search criteria.
+ * 0 for "first" tag, 2 for "third," etc.
+ * Defaults to first tag.
+ * @type string|null $class_name Tag must contain this class name to match.
+ * @type string $tag_closers "visit" or "skip": whether to stop on tag closers, e.g. .
+ * }
+ *
+ * @return void
+ */
+ private function parse_query( $query ) {
+ if ( null !== $query && $query === $this->last_query ) {
+ return;
+ }
+
+ $this->last_query = $query;
+ $this->sought_tag_name = null;
+ $this->sought_class_name = null;
+ $this->sought_match_offset = 1;
+ $this->stop_on_tag_closers = false;
+
+ // A single string value means "find the tag of this name".
+ if ( is_string( $query ) ) {
+ $this->sought_tag_name = $query;
+ return;
+ }
+
+ // If not using the string interface, an associative array is required.
+ if ( ! is_array( $query ) ) {
+ return;
+ }
+
+ if ( isset( $query['tag_name'] ) && is_string( $query['tag_name'] ) ) {
+ $this->sought_tag_name = $query['tag_name'];
+ }
+
+ if ( isset( $query['class_name'] ) && is_string( $query['class_name'] ) ) {
+ $this->sought_class_name = $query['class_name'];
+ }
+
+ if ( isset( $query['match_offset'] ) && is_int( $query['match_offset'] ) && 0 < $query['match_offset'] ) {
+ $this->sought_match_offset = $query['match_offset'];
+ }
+
+ if ( isset( $query['tag_closers'] ) ) {
+ $this->stop_on_tag_closers = 'visit' === $query['tag_closers'];
+ }
+ }
+
+
+ /**
+ * Checks whether a given tag and its attributes match the search criteria.
+ *
+ * @since 6.2.0
+ *
+ * @return boolean
+ */
+ private function matches() {
+ if ( $this->is_closing_tag && ! $this->stop_on_tag_closers ) {
+ return false;
+ }
+
+ // Does the tag name match the requested tag name in a case-insensitive manner?
+ if ( null !== $this->sought_tag_name ) {
+ /*
+ * String (byte) length lookup is fast. If they aren't the
+ * same length then they can't be the same string values.
+ */
+ if ( strlen( $this->sought_tag_name ) !== $this->tag_name_length ) {
+ return false;
+ }
+
+ /*
+ * Check each character to determine if they are the same.
+ * Defer calls to `strtoupper()` to avoid them when possible.
+ * Calling `strcasecmp()` here tested slowed than comparing each
+ * character, so unless benchmarks show otherwise, it should
+ * not be used.
+ *
+ * It's expected that most of the time that this runs, a
+ * lower-case tag name will be supplied and the input will
+ * contain lower-case tag names, thus normally bypassing
+ * the case comparison code.
+ */
+ for ( $i = 0; $i < $this->tag_name_length; $i++ ) {
+ $html_char = $this->html[ $this->tag_name_starts_at + $i ];
+ $tag_char = $this->sought_tag_name[ $i ];
+
+ if ( $html_char !== $tag_char && strtoupper( $html_char ) !== $tag_char ) {
+ return false;
+ }
+ }
+ }
+
+ $needs_class_name = null !== $this->sought_class_name;
+
+ if ( $needs_class_name && ! isset( $this->attributes['class'] ) ) {
+ return false;
+ }
+
+ /*
+ * Match byte-for-byte (case-sensitive and encoding-form-sensitive) on the class name.
+ *
+ * This will overlook certain classes that exist in other lexical variations
+ * than was supplied to the search query, but requires more complicated searching.
+ */
+ if ( $needs_class_name ) {
+ $class_start = $this->attributes['class']->value_starts_at;
+ $class_end = $class_start + $this->attributes['class']->value_length;
+ $class_at = $class_start;
+
+ /*
+ * Ensure that boundaries surround the class name to avoid matching on
+ * substrings of a longer name. For example, the sequence "not-odd"
+ * should not match for the class "odd" even though "odd" is found
+ * within the class attribute text.
+ *
+ * See https://html.spec.whatwg.org/#attributes-3
+ * See https://html.spec.whatwg.org/#space-separated-tokens
+ */
+ while (
+ // phpcs:ignore WordPress.CodeAnalysis.AssignmentInCondition.FoundInWhileCondition
+ false !== ( $class_at = strpos( $this->html, $this->sought_class_name, $class_at ) ) &&
+ $class_at < $class_end
+ ) {
+ /*
+ * Verify this class starts at a boundary.
+ */
+ if ( $class_at > $class_start ) {
+ $character = $this->html[ $class_at - 1 ];
+
+ if ( ' ' !== $character && "\t" !== $character && "\f" !== $character && "\r" !== $character && "\n" !== $character ) {
+ $class_at += strlen( $this->sought_class_name );
+ continue;
+ }
+ }
+
+ /*
+ * Verify this class ends at a boundary as well.
+ */
+ if ( $class_at + strlen( $this->sought_class_name ) < $class_end ) {
+ $character = $this->html[ $class_at + strlen( $this->sought_class_name ) ];
+
+ if ( ' ' !== $character && "\t" !== $character && "\f" !== $character && "\r" !== $character && "\n" !== $character ) {
+ $class_at += strlen( $this->sought_class_name );
+ continue;
+ }
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/src/wp-includes/html-api/class-wp-html-text-replacement.php b/src/wp-includes/html-api/class-wp-html-text-replacement.php
new file mode 100644
index 0000000000000..912b4a56a5eb4
--- /dev/null
+++ b/src/wp-includes/html-api/class-wp-html-text-replacement.php
@@ -0,0 +1,59 @@
+start = $start;
+ $this->end = $end;
+ $this->text = $text;
+ }
+}
diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php
index de52578936989..10078c87f1f1d 100644
--- a/src/wp-includes/script-loader.php
+++ b/src/wp-includes/script-loader.php
@@ -104,8 +104,8 @@ function wp_default_packages_vendor( $scripts ) {
);
$vendor_scripts_versions = array(
- 'react' => '17.0.1',
- 'react-dom' => '17.0.1',
+ 'react' => '18.2.0',
+ 'react-dom' => '18.2.0',
'regenerator-runtime' => '0.13.9',
'moment' => '2.29.4',
'lodash' => '4.17.19',
@@ -1609,6 +1609,12 @@ function wp_default_styles( $styles ) {
array()
);
+ $styles->add(
+ 'wp-block-editor-content',
+ "/wp-includes/css/dist/block-editor/content$suffix.css",
+ array()
+ );
+
$wp_edit_blocks_dependencies = array(
'wp-components',
'wp-editor',
@@ -1617,6 +1623,7 @@ function wp_default_styles( $styles ) {
'wp-reset-editor-styles',
'wp-block-library',
'wp-reusable-blocks',
+ 'wp-block-editor-content',
);
// Only load the default layout and margin styles for themes without theme.json file.
diff --git a/src/wp-settings.php b/src/wp-settings.php
index 3ed93b2f36629..e867fc3009a9c 100644
--- a/src/wp-settings.php
+++ b/src/wp-settings.php
@@ -234,6 +234,10 @@
require ABSPATH . WPINC . '/class-wp-oembed-controller.php';
require ABSPATH . WPINC . '/media.php';
require ABSPATH . WPINC . '/http.php';
+require ABSPATH . WPINC . '/html-api/class-wp-html-attribute-token.php';
+require ABSPATH . WPINC . '/html-api/class-wp-html-span.php';
+require ABSPATH . WPINC . '/html-api/class-wp-html-text-replacement.php';
+require ABSPATH . WPINC . '/html-api/class-wp-html-tag-processor.php';
require ABSPATH . WPINC . '/class-wp-http.php';
require ABSPATH . WPINC . '/class-wp-http-streams.php';
require ABSPATH . WPINC . '/class-wp-http-curl.php';
diff --git a/tests/phpunit/includes/unregister-blocks-hooks.php b/tests/phpunit/includes/unregister-blocks-hooks.php
index df08612e8c490..5edeba144582c 100644
--- a/tests/phpunit/includes/unregister-blocks-hooks.php
+++ b/tests/phpunit/includes/unregister-blocks-hooks.php
@@ -21,6 +21,7 @@
remove_action( 'init', 'register_block_core_cover' );
remove_action( 'init', 'register_block_core_file' );
remove_action( 'init', 'register_block_core_gallery' );
+remove_action( 'init', 'register_block_core_heading' );
remove_action( 'init', 'register_block_core_home_link' );
remove_action( 'init', 'register_block_core_image' );
remove_action( 'init', 'register_block_core_latest_comments' );
@@ -33,6 +34,7 @@
remove_action( 'init', 'register_block_core_pattern' );
remove_action( 'init', 'register_block_core_post_author' );
remove_action( 'init', 'register_block_core_post_author_biography' );
+remove_action( 'init', 'register_block_core_post_author_name' );
remove_action( 'init', 'register_block_core_post_comments_form' );
remove_action( 'init', 'register_block_core_post_content' );
remove_action( 'init', 'register_block_core_post_date' );
diff --git a/tests/phpunit/tests/html/wpHtmlTagProcessor-bookmark.php b/tests/phpunit/tests/html/wpHtmlTagProcessor-bookmark.php
new file mode 100644
index 0000000000000..12c5917446de8
--- /dev/null
+++ b/tests/phpunit/tests/html/wpHtmlTagProcessor-bookmark.php
@@ -0,0 +1,367 @@
+
One Two Three ' );
+ $p->next_tag( 'li' );
+ $this->assertTrue( $p->set_bookmark( 'first li' ), 'Could not allocate a "first li" bookmark.' );
+ $p->next_tag( 'li' );
+ $this->assertTrue( $p->set_bookmark( 'second li' ), 'Could not allocate a "second li" bookmark.' );
+ $this->assertTrue( $p->set_bookmark( 'first li' ), 'Could not move the "first li" bookmark.' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::release_bookmark
+ */
+ public function test_release_bookmark() {
+ $p = new WP_HTML_Tag_Processor( '
' );
+ $p->next_tag( 'li' );
+ $this->assertFalse( $p->release_bookmark( 'first li' ), 'Released a non-existing bookmark.' );
+ $p->set_bookmark( 'first li' );
+ $this->assertTrue( $p->release_bookmark( 'first li' ), 'Could not release a bookmark.' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::seek
+ * @covers ::set_bookmark
+ */
+ public function test_seek() {
+ $p = new WP_HTML_Tag_Processor( '
' );
+ $p->next_tag( 'li' );
+ $p->set_bookmark( 'first li' );
+
+ $p->next_tag( 'li' );
+ $p->set_attribute( 'foo-2', 'bar-2' );
+
+ $p->seek( 'first li' );
+ $p->set_attribute( 'foo-1', 'bar-1' );
+
+ $this->assertEquals(
+ '
',
+ $p->get_updated_html()
+ );
+ }
+
+ /**
+ * WP_HTML_Tag_Processor used to test for the diffs affecting
+ * the adjusted bookmark position while simultaneously adjusting
+ * the bookmark in question. As a result, updating the bookmarks
+ * of a next tag while removing two subsequent attributes in
+ * a previous tag unfolded like this:
+ *
+ * 1. Check if the first removed attribute is before the bookmark:
+ *
+ *
+ * ^-------------------^ ^
+ * diff applied here the bookmark is here
+ *
+ * (Yes it is)
+ *
+ * 2. Move the bookmark to the left by the attribute length:
+ *
+ *
+ * ^
+ * the bookmark is here
+ *
+ * 3. Check if the second removed attribute is before the bookmark:
+ *
+ *
+ * ^ ^-----^
+ * bookmark diff
+ *
+ * This time, it isn't!
+ *
+ * The fix in the WP_HTML_Tag_Processor involves doing all the checks
+ * before moving the bookmark. This test is here to guard us from
+ * the erroneous behavior accidentally returning one day.
+ *
+ * @ticket 56299
+ *
+ * @covers ::seek
+ * @covers ::set_bookmark
+ * @covers ::apply_attributes_updates
+ */
+ public function test_removing_long_attributes_doesnt_break_seek() {
+ $input = <<
+HTML;
+ $p = new WP_HTML_Tag_Processor( $input );
+ $p->next_tag( 'button' );
+ $p->set_bookmark( 'first' );
+ $p->next_tag( 'button' );
+ $p->set_bookmark( 'second' );
+
+ $this->assertTrue(
+ $p->seek( 'first' ),
+ 'Seek() to the first button has failed'
+ );
+ $p->remove_attribute( 'twenty_one_characters' );
+ $p->remove_attribute( '7_chars' );
+
+ $this->assertTrue(
+ $p->seek( 'second' ),
+ 'Seek() to the second button has failed'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::seek
+ * @covers ::set_bookmark
+ */
+ public function test_bookmarks_complex_use_case() {
+ $input = <<
+
+
+HTML;
+ $expected_output = <<
+
+
+HTML;
+ $p = new WP_HTML_Tag_Processor( $input );
+ $p->next_tag( 'div' );
+ $p->next_tag( 'div' );
+ $p->next_tag( 'div' );
+ $p->set_bookmark( 'first div' );
+ $p->next_tag( 'button' );
+ $p->set_bookmark( 'first button' );
+ $p->next_tag( 'button' );
+ $p->set_bookmark( 'second button' );
+ $p->next_tag( 'button' );
+ $p->set_bookmark( 'third button' );
+ $p->next_tag( 'button' );
+ $p->set_bookmark( 'fourth button' );
+
+ $p->seek( 'first button' );
+ $p->set_attribute( 'type', 'submit' );
+
+ $this->assertTrue(
+ $p->seek( 'third button' ),
+ 'Seek() to the third button failed'
+ );
+ $p->remove_attribute( 'class' );
+ $p->remove_attribute( 'type' );
+ $p->remove_attribute( 'aria-expanded' );
+ $p->set_attribute( 'id', 'rebase-and-merge' );
+ $p->remove_attribute( 'data-details-container' );
+
+ $this->assertTrue(
+ $p->seek( 'first div' ),
+ 'Seek() to the first div failed'
+ );
+ $p->set_attribute( 'checked', false );
+
+ $this->assertTrue(
+ $p->seek( 'fourth button' ),
+ 'Seek() to the fourth button failed'
+ );
+ $p->set_attribute( 'id', 'last-button' );
+ $p->remove_attribute( 'class' );
+ $p->remove_attribute( 'type' );
+ $p->remove_attribute( 'checked' );
+ $p->remove_attribute( 'aria-label' );
+ $p->remove_attribute( 'disabled' );
+ $p->remove_attribute( 'data-view-component' );
+
+ $this->assertTrue(
+ $p->seek( 'second button' ),
+ 'Seek() to the second button failed'
+ );
+ $p->remove_attribute( 'type' );
+ $p->set_attribute( 'class', 'hx_create-pr-button' );
+
+ $this->assertEquals(
+ $expected_output,
+ $p->get_updated_html()
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::seek
+ * @covers ::set_bookmark
+ */
+ public function test_updates_bookmark_for_additions_after_both_sides() {
+ $p = new WP_HTML_Tag_Processor( 'First
Second
' );
+ $p->next_tag();
+ $p->set_bookmark( 'first' );
+ $p->next_tag();
+ $p->add_class( 'second' );
+
+ $p->seek( 'first' );
+ $p->add_class( 'first' );
+
+ $this->assertEquals(
+ 'First
Second
',
+ $p->get_updated_html()
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::seek
+ * @covers ::set_bookmark
+ */
+ public function test_updates_bookmark_for_additions_before_both_sides() {
+ $p = new WP_HTML_Tag_Processor( 'First
Second
' );
+ $p->next_tag();
+ $p->set_bookmark( 'first' );
+ $p->next_tag();
+ $p->set_bookmark( 'second' );
+
+ $p->seek( 'first' );
+ $p->add_class( 'first' );
+
+ $p->seek( 'second' );
+ $p->add_class( 'second' );
+
+ $this->assertEquals(
+ 'First
Second
',
+ $p->get_updated_html()
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::seek
+ * @covers ::set_bookmark
+ */
+ public function test_updates_bookmark_for_deletions_after_both_sides() {
+ $p = new WP_HTML_Tag_Processor( 'First
Second
' );
+ $p->next_tag();
+ $p->set_bookmark( 'first' );
+ $p->next_tag();
+ $p->remove_attribute( 'disabled' );
+
+ $p->seek( 'first' );
+ $p->set_attribute( 'untouched', true );
+
+ $this->assertEquals(
+ /** @TODO: we shouldn't have to assert the extra space after removing the attribute. */
+ 'First
Second
',
+ $p->get_updated_html()
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::seek
+ * @covers ::set_bookmark
+ */
+ public function test_updates_bookmark_for_deletions_before_both_sides() {
+ $p = new WP_HTML_Tag_Processor( 'First
Second
' );
+ $p->next_tag();
+ $p->set_bookmark( 'first' );
+ $p->next_tag();
+ $p->set_bookmark( 'second' );
+
+ $p->seek( 'first' );
+ $p->remove_attribute( 'disabled' );
+
+ $p->seek( 'second' );
+ $p->set_attribute( 'safe', true );
+
+ $this->assertEquals(
+ /** @TODO: we shouldn't have to assert the extra space after removing the attribute. */
+ 'First
Second
',
+ $p->get_updated_html()
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::set_bookmark
+ */
+ public function test_limits_the_number_of_bookmarks() {
+ $p = new WP_HTML_Tag_Processor( '' );
+ $p->next_tag( 'li' );
+
+ for ( $i = 0; $i < WP_HTML_Tag_Processor::MAX_BOOKMARKS; $i++ ) {
+ $this->assertTrue( $p->set_bookmark( "bookmark $i" ), "Could not allocate the bookmark #$i" );
+ }
+
+ $this->expectWarningMessageMatches( '/Too many bookmarks/' );
+ $this->assertFalse( $p->set_bookmark( 'final bookmark' ), "Allocated $i bookmarks, which is one above the limit." );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::seek
+ */
+ public function test_limits_the_number_of_seek_calls() {
+ $p = new WP_HTML_Tag_Processor( '' );
+ $p->next_tag( 'li' );
+ $p->set_bookmark( 'bookmark' );
+
+ for ( $i = 0; $i < WP_HTML_Tag_Processor::MAX_SEEK_OPS; $i++ ) {
+ $this->assertTrue( $p->seek( 'bookmark' ), 'Could not seek to the "bookmark"' );
+ }
+
+ $this->expectWarningMessageMatches( 'Too many calls to seek()' );
+ $this->assertFalse( $p->seek( 'bookmark' ), "$i-th seek() to the bookmark succeeded, even though it should exceed the allowed limit." );
+ }
+}
diff --git a/tests/phpunit/tests/html/wpHtmlTagProcessor.php b/tests/phpunit/tests/html/wpHtmlTagProcessor.php
new file mode 100644
index 0000000000000..7f8ff0895f042
--- /dev/null
+++ b/tests/phpunit/tests/html/wpHtmlTagProcessor.php
@@ -0,0 +1,2054 @@
+Text ';
+ const HTML_WITH_CLASSES = 'Text
';
+ const HTML_MALFORMED = 'Back to notifications
';
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::get_tag
+ */
+ public function test_get_tag_returns_null_before_finding_tags() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertNull( $p->get_tag() );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_tag
+ */
+ public function test_get_tag_returns_null_when_not_in_open_tag() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertFalse( $p->next_tag( 'p' ), 'Querying a non-existing tag did not return false' );
+ $this->assertNull( $p->get_tag(), 'Accessing a non-existing tag did not return null' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_tag
+ */
+ public function test_get_tag_returns_open_tag_name() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertTrue( $p->next_tag( 'div' ), 'Querying an existing tag did not return true' );
+ $this->assertSame( 'DIV', $p->get_tag(), 'Accessing an existing tag name did not return "div"' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_returns_null_before_finding_tags() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertNull( $p->get_attribute( 'class' ) );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_returns_null_when_not_in_open_tag() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertFalse( $p->next_tag( 'p' ), 'Querying a non-existing tag did not return false' );
+ $this->assertNull( $p->get_attribute( 'class' ), 'Accessing an attribute of a non-existing tag did not return null' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_returns_null_when_in_closing_tag() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertTrue( $p->next_tag( 'div' ), 'Querying an existing tag did not return true' );
+ $this->assertTrue( $p->next_tag( array( 'tag_closers' => 'visit' ) ), 'Querying an existing closing tag did not return true' );
+ $this->assertNull( $p->get_attribute( 'class' ), 'Accessing an attribute of a closing tag did not return null' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_returns_null_when_attribute_missing() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertTrue( $p->next_tag( 'div' ), 'Querying an existing tag did not return true' );
+ $this->assertNull( $p->get_attribute( 'test-id' ), 'Accessing a non-existing attribute did not return null' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_returns_attribute_value() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertTrue( $p->next_tag( 'div' ), 'Querying an existing tag did not return true' );
+ $this->assertSame( 'test', $p->get_attribute( 'class' ), 'Accessing a class="test" attribute value did not return "test"' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_returns_true_for_boolean_attribute() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertTrue( $p->next_tag( array( 'class_name' => 'test' ) ), 'Querying an existing tag did not return true' );
+ $this->assertTrue( $p->get_attribute( 'enabled' ), 'Accessing a boolean "enabled" attribute value did not return true' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_returns_string_for_truthy_attributes() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertTrue( $p->next_tag( array() ), 'Querying an existing tag did not return true' );
+ $this->assertSame( 'enabled', $p->get_attribute( 'enabled' ), 'Accessing a boolean "enabled" attribute value did not return true' );
+ $this->assertSame( '1', $p->get_attribute( 'checked' ), 'Accessing a checked=1 attribute value did not return "1"' );
+ $this->assertSame( 'true', $p->get_attribute( 'hidden' ), 'Accessing a hidden="true" attribute value did not return "true"' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::get_attribute
+ */
+ public function test_get_attribute_decodes_html_character_references() {
+ $p = new WP_HTML_Tag_Processor( '
' );
+ $p->next_tag();
+
+ $this->assertSame( 'the "grande" is < 32oz†', $p->get_attribute( 'id' ), 'HTML Attribute value was returned without decoding character references' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_attributes_parser_treats_slash_as_attribute_separator() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+
+ $this->assertTrue( $p->next_tag( array() ), 'Querying an existing tag did not return true' );
+ $this->assertTrue( $p->get_attribute( 'a' ), 'Accessing an existing attribute did not return true' );
+ $this->assertTrue( $p->get_attribute( 'b' ), 'Accessing an existing attribute did not return true' );
+ $this->assertTrue( $p->get_attribute( 'c' ), 'Accessing an existing attribute did not return true' );
+ $this->assertTrue( $p->get_attribute( 'd' ), 'Accessing an existing attribute did not return true' );
+ $this->assertSame( 'test', $p->get_attribute( 'e' ), 'Accessing an existing e="test" did not return "test"' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ *
+ * @dataProvider data_attribute_name_case_variants
+ *
+ * @param string $attribute_name Name of data-enabled attribute with case variations.
+ */
+ public function test_get_attribute_is_case_insensitive_for_attributes_with_values( $attribute_name ) {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag();
+
+ $this->assertSame( 'true', $p->get_attribute( $attribute_name ) );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ *
+ * @dataProvider data_attribute_name_case_variants
+ *
+ * @param string $attribute_name Name of data-enabled attribute with case variations.
+ */
+ public function test_attributes_parser_is_case_insensitive_for_attributes_without_values( $attribute_name ) {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag();
+
+ $this->assertTrue( $p->get_attribute( $attribute_name ) );
+ }
+
+ /**
+ * Data provider.
+ *
+ * @return array[].
+ */
+ public function data_attribute_name_case_variants() {
+ return array(
+ array( 'DATA-enabled' ),
+ array( 'data-enabled' ),
+ array( 'DATA-ENABLED' ),
+ array( 'DatA-EnABled' ),
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::remove_attribute
+ */
+ public function test_remove_attribute_is_case_insensitive() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag();
+ $p->remove_attribute( 'data-enabled' );
+
+ $this->assertSame( 'Test
', $p->get_updated_html(), 'A case-insensitive remove_attribute call did not remove the attribute.' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ */
+ public function test_set_attribute_is_case_insensitive() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag();
+ $p->set_attribute( 'data-enabled', 'abc' );
+
+ $this->assertSame( 'Test
', $p->get_updated_html(), 'A case-insensitive set_attribute call did not update the existing attribute.' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::get_attribute_names_with_prefix
+ */
+ public function test_get_attribute_names_with_prefix_returns_null_before_finding_tags() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $this->assertNull( $p->get_attribute_names_with_prefix( 'data-' ) );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::get_attribute_names_with_prefix
+ */
+ public function test_get_attribute_names_with_prefix_returns_null_when_not_in_open_tag() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag( 'p' );
+ $this->assertNull( $p->get_attribute_names_with_prefix( 'data-' ), 'Accessing attributes of a non-existing tag did not return null' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::get_attribute_names_with_prefix
+ */
+ public function test_get_attribute_names_with_prefix_returns_null_when_in_closing_tag() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag( 'div' );
+ $p->next_tag( array( 'tag_closers' => 'visit' ) );
+
+ $this->assertNull( $p->get_attribute_names_with_prefix( 'data-' ), 'Accessing attributes of a closing tag did not return null' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::get_attribute_names_with_prefix
+ */
+ public function test_get_attribute_names_with_prefix_returns_empty_array_when_no_attributes_present() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag( 'div' );
+
+ $this->assertSame( array(), $p->get_attribute_names_with_prefix( 'data-' ), 'Accessing the attributes on a tag without any did not return an empty array' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::get_attribute_names_with_prefix
+ */
+ public function test_get_attribute_names_with_prefix_returns_matching_attribute_names_in_lowercase() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag();
+
+ $this->assertSame(
+ array( 'data-enabled', 'data-test-id' ),
+ $p->get_attribute_names_with_prefix( 'data-' )
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute_names_with_prefix
+ */
+ public function test_get_attribute_names_with_prefix_returns_attribute_added_by_set_attribute() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag();
+ $p->set_attribute( 'data-test-id', '14' );
+
+ $this->assertSame(
+ 'Test
',
+ $p->get_updated_html(),
+ "Updated HTML doesn't include attribute added via set_attribute"
+ );
+ $this->assertSame(
+ array( 'data-test-id', 'data-foo' ),
+ $p->get_attribute_names_with_prefix( 'data-' ),
+ "Accessing attribute names doesn't find attribute added via set_attribute"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::__toString
+ */
+ public function test_to_string_returns_updated_html() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag();
+ $p->remove_attribute( 'id' );
+
+ $p->next_tag();
+ $p->set_attribute( 'id', 'div-id-1' );
+ $p->add_class( 'new_class_1' );
+
+ $this->assertSame(
+ $p->get_updated_html(),
+ (string) $p
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_get_updated_html_applies_the_updates_so_far_and_keeps_the_processor_on_the_current_tag() {
+ $p = new WP_HTML_Tag_Processor( 'Test
' );
+ $p->next_tag();
+ $p->remove_attribute( 'id' );
+
+ $p->next_tag();
+ $p->set_attribute( 'id', 'div-id-1' );
+ $p->add_class( 'new_class_1' );
+
+ $this->assertSame(
+ 'Test
',
+ $p->get_updated_html(),
+ 'Calling get_updated_html after updating the attributes of the second tag returned different HTML than expected'
+ );
+
+ $p->set_attribute( 'id', 'div-id-2' );
+ $p->add_class( 'new_class_2' );
+
+ $this->assertSame(
+ 'Test
',
+ $p->get_updated_html(),
+ 'Calling get_updated_html after updating the attributes of the second tag for the second time returned different HTML than expected'
+ );
+
+ $p->next_tag();
+ $p->remove_attribute( 'id' );
+
+ $this->assertSame(
+ 'Test
',
+ $p->get_updated_html(),
+ 'Calling get_updated_html after removing the id attribute of the third tag returned different HTML than expected'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::get_updated_html
+ */
+ public function test_get_updated_html_without_updating_any_attributes_returns_the_original_html() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+
+ $this->assertSame( self::HTML_SIMPLE, $p->get_updated_html() );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ */
+ public function test_next_tag_with_no_arguments_should_find_the_next_existing_tag() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+
+ $this->assertTrue( $p->next_tag(), 'Querying an existing tag did not return true' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ */
+ public function test_next_tag_should_return_false_for_a_non_existing_tag() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+
+ $this->assertFalse( $p->next_tag( 'p' ), 'Querying a non-existing tag did not return false' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::is_tag_closer
+ */
+ public function test_next_tag_should_stop_on_closers_only_when_requested() {
+ $p = new WP_HTML_Tag_Processor( '' );
+
+ $this->assertTrue( $p->next_tag( array( 'tag_name' => 'div' ) ), 'Did not find desired tag opener' );
+ $this->assertFalse( $p->next_tag( array( 'tag_name' => 'div' ) ), 'Visited an unwanted tag, a tag closer' );
+
+ $p = new WP_HTML_Tag_Processor( '' );
+ $p->next_tag(
+ array(
+ 'tag_name' => 'div',
+ 'tag_closers' => 'visit',
+ )
+ );
+
+ $this->assertFalse( $p->is_tag_closer(), 'Indicated a tag opener is a tag closer' );
+ $this->assertTrue(
+ $p->next_tag(
+ array(
+ 'tag_name' => 'div',
+ 'tag_closers' => 'visit',
+ )
+ ),
+ 'Did not stop at desired tag closer'
+ );
+ $this->assertTrue( $p->is_tag_closer(), 'Indicated a tag closer is a tag opener' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_set_attribute_on_a_non_existing_tag_does_not_change_the_markup() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+
+ $this->assertFalse( $p->next_tag( 'p' ), 'Querying a non-existing tag did not return false' );
+ $this->assertFalse( $p->next_tag( 'div' ), 'Querying a non-existing tag did not return false' );
+
+ $p->set_attribute( 'id', 'primary' );
+
+ $this->assertSame(
+ self::HTML_SIMPLE,
+ $p->get_updated_html(),
+ 'Calling get_updated_html after updating a non-existing tag returned an HTML that was different from the original HTML'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers ::is_tag_closer
+ * @covers ::set_attribute
+ * @covers ::remove_attribute
+ * @covers ::add_class
+ * @covers ::remove_class
+ * @covers ::get_updated_html
+ */
+ public function test_attribute_ops_on_tag_closer_do_not_change_the_markup() {
+ $p = new WP_HTML_Tag_Processor( '
' );
+ $p->next_tag(
+ array(
+ 'tag_name' => 'div',
+ 'tag_closers' => 'visit',
+ )
+ );
+
+ $this->assertFalse( $p->is_tag_closer(), 'Skipped tag opener' );
+
+ $p->next_tag(
+ array(
+ 'tag_name' => 'div',
+ 'tag_closers' => 'visit',
+ )
+ );
+
+ $this->assertTrue( $p->is_tag_closer(), 'Skipped tag closer' );
+ $this->assertFalse( $p->set_attribute( 'id', 'test' ), "Allowed setting an attribute on a tag closer when it shouldn't have" );
+ $this->assertFalse( $p->remove_attribute( 'invalid-id' ), "Allowed removing an attribute on a tag closer when it shouldn't have" );
+ $this->assertFalse( $p->add_class( 'sneaky' ), "Allowed adding a class on a tag closer when it shouldn't have" );
+ $this->assertFalse( $p->remove_class( 'not-appearing-in-this-test' ), "Allowed removing a class on a tag closer when it shouldn't have" );
+ $this->assertSame(
+ '
',
+ $p->get_updated_html(),
+ 'Calling get_updated_html after updating a non-existing tag returned an HTML that was different from the original HTML'
+ );
+ }
+
+ /**
+ * Passing a double quote inside of an attribute values could lead to an XSS attack as follows:
+ *
+ *
+ * $p = new WP_HTML_Tag_Processor( '' );
+ * $p->next_tag();
+ * $p->set_attribute('class', '" onclick="alert');
+ * echo $p;
+ * //
+ *
+ *
+ * To prevent it, `set_attribute` calls `esc_attr()` on its given values.
+ *
+ *
+ *
+ *
+ *
+ * @ticket 56299
+ *
+ * @dataProvider data_set_attribute_prevents_xss
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ *
+ * @param string $attribute_value AValue with potential XSS exploit.
+ */
+ public function test_set_attribute_prevents_xss( $attribute_value ) {
+ $p = new WP_HTML_Tag_Processor( '
' );
+ $p->next_tag();
+ $p->set_attribute( 'test', $attribute_value );
+
+ /*
+ * Testing the escaping is hard using tools that properly parse
+ * HTML because they might interpret the escaped values. It's hard
+ * with tools that don't understand HTML because they might get
+ * confused by improperly-escaped values.
+ *
+ * Since the input HTML is known, the test will do what looks like
+ * the opposite of what is expected to be done with this library.
+ * But by doing so, the test (a) has full control over the
+ * content and (b) looks at the raw values.
+ */
+ $match = null;
+ preg_match( '~^
$~', $p->get_updated_html(), $match );
+ list( , $actual_value ) = $match;
+
+ $this->assertSame( '"' . esc_attr( $attribute_value ) . '"', $actual_value );
+ }
+
+ /**
+ * Data provider.
+ *
+ * @return string[][].
+ */
+ public function data_set_attribute_prevents_xss() {
+ return array(
+ array( '"' ),
+ array( '"' ),
+ array( '&' ),
+ array( '&' ),
+ array( '€' ),
+ array( "'" ),
+ array( '<>' ),
+ array( '"";' ),
+ array( '" onclick="alert(\'1\');"> ' ),
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_set_attribute_with_a_non_existing_attribute_adds_a_new_attribute_to_the_markup() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->set_attribute( 'test-attribute', 'test-value' );
+
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not include attribute added via set_attribute()'
+ );
+ $this->assertSame(
+ 'test-value',
+ $p->get_attribute( 'test-attribute' ),
+ 'get_attribute() (called after get_updated_html()) did not return attribute added via set_attribute()'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_returns_updated_values_before_they_are_updated() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->set_attribute( 'test-attribute', 'test-value' );
+
+ $this->assertSame(
+ 'test-value',
+ $p->get_attribute( 'test-attribute' ),
+ 'get_attribute() (called before get_updated_html()) did not return attribute added via set_attribute()'
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not include attribute added via set_attribute()'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_get_attribute_returns_updated_values_before_they_are_updated_with_different_name_casing() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->set_attribute( 'test-ATTribute', 'test-value' );
+
+ $this->assertSame(
+ 'test-value',
+ $p->get_attribute( 'test-attribute' ),
+ 'get_attribute() (called before get_updated_html()) did not return attribute added via set_attribute()'
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not include attribute added via set_attribute()'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_reflects_added_class_names_before_they_are_updated() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->add_class( 'my-class' );
+
+ $this->assertSame(
+ 'my-class',
+ $p->get_attribute( 'class' ),
+ 'get_attribute() (called before get_updated_html()) did not return class name added via add_class()'
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not include class name added via add_class()'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_reflects_added_class_names_before_they_are_updated_and_retains_classes_from_previous_add_class_calls() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->add_class( 'my-class' );
+
+ $this->assertSame(
+ 'my-class',
+ $p->get_attribute( 'class' ),
+ 'get_attribute() (called before get_updated_html()) did not return class name added via add_class()'
+ );
+
+ $p->add_class( 'my-other-class' );
+
+ $this->assertSame(
+ 'my-class my-other-class',
+ $p->get_attribute( 'class' ),
+ 'get_attribute() (called before get_updated_html()) did not return class names added via subsequent add_class() calls'
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not include class names added via subsequent add_class() calls'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_attribute
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_get_attribute_reflects_removed_attribute_before_it_is_updated() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->remove_attribute( 'id' );
+
+ $this->assertNull(
+ $p->get_attribute( 'id' ),
+ 'get_attribute() (called before get_updated_html()) returned attribute that was removed by remove_attribute()'
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML includes attribute that was removed by remove_attribute()'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::remove_attribute
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_get_attribute_reflects_adding_and_then_removing_an_attribute_before_it_is_updated() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->set_attribute( 'test-attribute', 'test-value' );
+ $p->remove_attribute( 'test-attribute' );
+
+ $this->assertNull(
+ $p->get_attribute( 'test-attribute' ),
+ 'get_attribute() (called before get_updated_html()) returned attribute that was added via set_attribute() and then removed by remove_attribute()'
+ );
+ $this->assertSame(
+ self::HTML_SIMPLE,
+ $p->get_updated_html(),
+ 'Updated HTML includes attribute that was added via set_attribute() and then removed by remove_attribute()'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::remove_attribute
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_get_attribute_reflects_setting_and_then_removing_an_existing_attribute_before_it_is_updated() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->set_attribute( 'id', 'test-value' );
+ $p->remove_attribute( 'id' );
+
+ $this->assertNull(
+ $p->get_attribute( 'id' ),
+ 'get_attribute() (called before get_updated_html()) returned attribute that was overwritten by set_attribute() and then removed by remove_attribute()'
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML includes attribute that was overwritten by set_attribute() and then removed by remove_attribute()'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_get_attribute_reflects_removed_class_names_before_they_are_updated() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->remove_class( 'with-border' );
+
+ $this->assertSame(
+ 'main',
+ $p->get_attribute( 'class' ),
+ 'get_attribute() (called before get_updated_html()) returned the wrong attribute after calling remove_attribute()'
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML includes wrong attribute after calling remove_attribute()'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::remove_class
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_get_attribute_reflects_setting_and_then_removing_a_class_name_before_it_is_updated() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->add_class( 'foo-class' );
+ $p->remove_class( 'foo-class' );
+
+ $this->assertSame(
+ 'main with-border',
+ $p->get_attribute( 'class' ),
+ 'get_attribute() (called before get_updated_html()) returned class name that was added via add_class() and then removed by remove_class()'
+ );
+ $this->assertSame(
+ self::HTML_WITH_CLASSES,
+ $p->get_updated_html(),
+ 'Updated HTML includes class that was added via add_class() and then removed by remove_class()'
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::remove_class
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_get_attribute_reflects_duplicating_and_then_removing_an_existing_class_name_before_it_is_updated() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->add_class( 'with-border' );
+ $p->remove_class( 'with-border' );
+
+ $this->assertSame(
+ 'main',
+ $p->get_attribute( 'class' ),
+ 'get_attribute() (called before get_updated_html()) returned class name that was duplicated via add_class() and then removed by remove_class()'
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML includes class that was duplicated via add_class() and then removed by remove_class()'
+ );
+ }
+
+ /**
+ * According to HTML spec, only the first instance of an attribute counts.
+ * The other ones are ignored.
+ *
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_update_first_when_duplicated_attribute() {
+ $p = new WP_HTML_Tag_Processor( 'Text
' );
+ $p->next_tag();
+ $p->set_attribute( 'id', 'updated-id' );
+
+ $this->assertSame( 'Text
', $p->get_updated_html() );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_set_attribute_with_an_existing_attribute_name_updates_its_value_in_the_markup() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->set_attribute( 'id', 'new-id' );
+ $this->assertSame( 'Text
', $p->get_updated_html() );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_next_tag_and_set_attribute_in_a_loop_update_all_tags_in_the_markup() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ while ( $p->next_tag() ) {
+ $p->set_attribute( 'data-foo', 'bar' );
+ }
+
+ $this->assertSame( 'Text
', $p->get_updated_html() );
+ }
+
+ /**
+ * Removing an attribute that's listed many times, e.g. `
` should remove
+ * all its instances and output just `
`.
+ *
+ * Today, however, WP_HTML_Tag_Processor only removes the first such attribute. It seems like a corner case
+ * and introducing additional complexity to correctly handle this scenario doesn't seem to be worth it.
+ * Let's revisit if and when this becomes a problem.
+ *
+ * This test is in place to confirm this behavior, while incorrect, is well-defined.
+ *
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_remove_first_when_duplicated_attribute() {
+ $p = new WP_HTML_Tag_Processor( 'Text
' );
+ $p->next_tag();
+ $p->remove_attribute( 'id' );
+
+ $this->assertSame( 'Text
', $p->get_updated_html() );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_remove_attribute_with_an_existing_attribute_name_removes_it_from_the_markup() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->remove_attribute( 'id' );
+
+ $this->assertSame( 'Text
', $p->get_updated_html() );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_remove_attribute_with_a_non_existing_attribute_name_does_not_change_the_markup() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->remove_attribute( 'no-such-attribute' );
+
+ $this->assertSame( self::HTML_SIMPLE, $p->get_updated_html() );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_add_class_creates_a_class_attribute_when_there_is_none() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->add_class( 'foo-class' );
+
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not include class name added via add_class()'
+ );
+ $this->assertSame(
+ 'foo-class',
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) did not return class name added via add_class()"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_calling_add_class_twice_creates_a_class_attribute_with_both_class_names_when_there_is_no_class_attribute() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->add_class( 'foo-class' );
+ $p->add_class( 'bar-class' );
+
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not include class names added via subsequent add_class() calls'
+ );
+ $this->assertSame(
+ 'foo-class bar-class',
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) did not return class names added via subsequent add_class() calls"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_remove_class_does_not_change_the_markup_when_there_is_no_class_attribute() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->remove_class( 'foo-class' );
+
+ $this->assertSame(
+ self::HTML_SIMPLE,
+ $p->get_updated_html(),
+ 'Updated HTML includes class name that was removed by remove_class()'
+ );
+ $this->assertNull(
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) did not return null for class name that was removed by remove_class()"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_add_class_appends_class_names_to_the_existing_class_attribute_when_one_already_exists() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->add_class( 'foo-class' );
+ $p->add_class( 'bar-class' );
+
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not reflect class names added to existing class attribute via subsequent add_class() calls'
+ );
+ $this->assertSame(
+ 'main with-border foo-class bar-class',
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) does not reflect class names added to existing class attribute via subsequent add_class() calls"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_remove_class_removes_a_single_class_from_the_class_attribute_when_one_exists() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->remove_class( 'main' );
+
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not reflect class name removed from existing class attribute via remove_class()'
+ );
+ $this->assertSame(
+ ' with-border',
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) does not reflect class name removed from existing class attribute via remove_class()"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_calling_remove_class_with_all_listed_class_names_removes_the_existing_class_attribute_from_the_markup() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->remove_class( 'main' );
+ $p->remove_class( 'with-border' );
+
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not reflect class attribute removed via subesequent remove_class() calls'
+ );
+ $this->assertNull(
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) did not return null for class attribute removed via subesequent remove_class() calls"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_add_class_does_not_add_duplicate_class_names() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->add_class( 'with-border' );
+
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not reflect deduplicated class name added via add_class()'
+ );
+ $this->assertSame(
+ 'main with-border',
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) does not reflect deduplicated class name added via add_class()"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_add_class_preserves_class_name_order_when_a_duplicate_class_name_is_added() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->add_class( 'main' );
+
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not reflect class name order after adding duplicated class name via add_class()'
+ );
+ $this->assertSame(
+ 'main with-border',
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) does not reflect class name order after adding duplicated class name added via add_class()"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_add_class_when_there_is_a_class_attribute_with_excessive_whitespaces() {
+ $p = new WP_HTML_Tag_Processor(
+ 'Text
'
+ );
+ $p->next_tag();
+ $p->add_class( 'foo-class' );
+
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not reflect existing excessive whitespace after adding class name via add_class()'
+ );
+ $this->assertSame(
+ ' main with-border foo-class',
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) does not reflect existing excessive whitespace after adding class name via add_class()"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_remove_class_preserves_whitespaces_when_there_is_a_class_attribute_with_excessive_whitespaces() {
+ $p = new WP_HTML_Tag_Processor(
+ 'Text
'
+ );
+ $p->next_tag();
+ $p->remove_class( 'with-border' );
+
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not reflect existing excessive whitespace after removing class name via remove_class()'
+ );
+ $this->assertSame(
+ ' main',
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) does not reflect existing excessive whitespace after removing class name via removing_class()"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_removing_all_classes_removes_the_existing_class_attribute_from_the_markup_even_when_excessive_whitespaces_are_present() {
+ $p = new WP_HTML_Tag_Processor(
+ 'Text
'
+ );
+ $p->next_tag();
+ $p->remove_class( 'main' );
+ $p->remove_class( 'with-border' );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ 'Updated HTML does not reflect removed class attribute after removing all class names via remove_class()'
+ );
+ $this->assertNull(
+ $p->get_attribute( 'class' ),
+ "get_attribute( 'class' ) did not return null after removing all class names via remove_class()"
+ );
+ }
+
+ /**
+ * When add_class( $different_value ) is called _after_ set_attribute( 'class', $value ), the
+ * final class name should be "$value $different_value". In other words, the `add_class` call
+ * should append its class to the one(s) set by `set_attribute`. When `add_class( $different_value )`
+ * is called _before_ `set_attribute( 'class', $value )`, however, the final class name should be
+ * "$value" instead, as any direct updates to the `class` attribute supersede any changes enqueued
+ * via the class builder methods.
+ *
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ */
+ public function test_set_attribute_takes_priority_over_add_class() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->add_class( 'add_class' );
+ $p->set_attribute( 'class', 'set_attribute' );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ "Calling get_updated_html after updating first tag's attributes did not return the expected HTML"
+ );
+ $this->assertSame(
+ 'set_attribute',
+ $p->get_attribute( 'class' ),
+ "Calling get_attribute after updating first tag's attributes did not return the expected class name"
+ );
+
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->set_attribute( 'class', 'set_attribute' );
+ $p->add_class( 'add_class' );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ "Calling get_updated_html after updating first tag's attributes did not return the expected HTML"
+ );
+ $this->assertSame(
+ 'set_attribute add_class',
+ $p->get_attribute( 'class' ),
+ "Calling get_attribute after updating first tag's attributes did not return the expected class name"
+ );
+ }
+
+ /**
+ * When add_class( $different_value ) is called _after_ set_attribute( 'class', $value ), the
+ * final class name should be "$value $different_value". In other words, the `add_class` call
+ * should append its class to the one(s) set by `set_attribute`. When `add_class( $different_value )`
+ * is called _before_ `set_attribute( 'class', $value )`, however, the final class name should be
+ * "$value" instead, as any direct updates to the `class` attribute supersede any changes enqueued
+ * via the class builder methods.
+ *
+ * This is still true when reading enqueued updates before calling `get_updated_html()`.
+ *
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_set_attribute_takes_priority_over_add_class_even_before_updating() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->add_class( 'add_class' );
+ $p->set_attribute( 'class', 'set_attribute' );
+ $this->assertSame(
+ 'set_attribute',
+ $p->get_attribute( 'class' ),
+ "Calling get_attribute after updating first tag's attributes did not return the expected class name"
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ "Calling get_updated_html after updating first tag's attributes did not return the expected HTML"
+ );
+
+ $p = new WP_HTML_Tag_Processor( self::HTML_WITH_CLASSES );
+ $p->next_tag();
+ $p->set_attribute( 'class', 'set_attribute' );
+ $p->add_class( 'add_class' );
+ $this->assertSame(
+ 'set_attribute add_class',
+ $p->get_attribute( 'class' ),
+ "Calling get_attribute after updating first tag's attributes did not return the expected class name"
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ "Calling get_updated_html after updating first tag's attributes did not return the expected HTML"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_add_class_overrides_boolean_class_attribute() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->set_attribute( 'class', true );
+ $p->add_class( 'add_class' );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ "Updated HTML doesn't reflect class added via add_class that was originally set as boolean attribute"
+ );
+ $this->assertSame(
+ 'add_class',
+ $p->get_attribute( 'class' ),
+ "get_attribute (called after get_updated_html()) doesn't reflect class added via add_class that was originally set as boolean attribute"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::get_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_add_class_overrides_boolean_class_attribute_even_before_updating() {
+ $p = new WP_HTML_Tag_Processor( self::HTML_SIMPLE );
+ $p->next_tag();
+ $p->set_attribute( 'class', true );
+ $p->add_class( 'add_class' );
+ $this->assertSame(
+ 'add_class',
+ $p->get_attribute( 'class' ),
+ "get_attribute (called before get_updated_html()) doesn't reflect class added via add_class that was originally set as boolean attribute"
+ );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html(),
+ "Updated HTML doesn't reflect class added via add_class that was originally set as boolean attribute"
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::remove_attribute
+ * @covers WP_HTML_Tag_Processor::add_class
+ * @covers WP_HTML_Tag_Processor::remove_class
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_advanced_use_case() {
+ $input = <<
+
+
+HTML;
+
+ $expected_output = <<
+
+
+HTML;
+
+ $p = new WP_HTML_Tag_Processor( $input );
+ $this->assertTrue( $p->next_tag( 'div' ), 'Querying an existing tag did not return true' );
+ $p->set_attribute( 'data-details', '{ "key": "value" }' );
+ $p->add_class( 'is-processed' );
+ $this->assertTrue(
+ $p->next_tag(
+ array(
+ 'tag_name' => 'div',
+ 'class_name' => 'BtnGroup',
+ )
+ ),
+ 'Querying an existing tag did not return true'
+ );
+ $p->remove_class( 'BtnGroup' );
+ $p->add_class( 'button-group' );
+ $p->add_class( 'Another-Mixed-Case' );
+ $this->assertTrue(
+ $p->next_tag(
+ array(
+ 'tag_name' => 'div',
+ 'class_name' => 'BtnGroup',
+ )
+ ),
+ 'Querying an existing tag did not return true'
+ );
+ $p->remove_class( 'BtnGroup' );
+ $p->add_class( 'button-group' );
+ $p->add_class( 'Another-Mixed-Case' );
+ $this->assertTrue(
+ $p->next_tag(
+ array(
+ 'tag_name' => 'button',
+ 'class_name' => 'btn',
+ 'match_offset' => 3,
+ )
+ ),
+ 'Querying an existing tag did not return true'
+ );
+ $p->remove_attribute( 'class' );
+ $this->assertFalse( $p->next_tag( 'non-existent' ), 'Querying a non-existing tag did not return false' );
+ $p->set_attribute( 'class', 'test' );
+ $this->assertSame( $expected_output, $p->get_updated_html(), 'Calling get_updated_html after updating the attributes did not return the expected HTML' );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::remove_attribute
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_correctly_parses_html_attributes_wrapped_in_single_quotation_marks() {
+ $p = new WP_HTML_Tag_Processor(
+ 'Text
'
+ );
+ $p->next_tag(
+ array(
+ 'tag_name' => 'div',
+ 'id' => 'first',
+ )
+ );
+ $p->remove_attribute( 'id' );
+ $p->next_tag(
+ array(
+ 'tag_name' => 'span',
+ 'id' => 'second',
+ )
+ );
+ $p->set_attribute( 'id', 'single-quote' );
+ $this->assertSame(
+ 'Text
',
+ $p->get_updated_html()
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_set_attribute_with_value_equals_to_true_adds_a_boolean_html_attribute_with_implicit_value() {
+ $p = new WP_HTML_Tag_Processor(
+ ''
+ );
+ $p->next_tag( 'input' );
+ $p->set_attribute( 'checked', true );
+ $this->assertSame(
+ '',
+ $p->get_updated_html()
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_setting_a_boolean_attribute_to_false_removes_it_from_the_markup() {
+ $p = new WP_HTML_Tag_Processor(
+ ''
+ );
+ $p->next_tag( 'input' );
+ $p->set_attribute( 'checked', false );
+ $this->assertSame(
+ '',
+ $p->get_updated_html()
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_setting_a_missing_attribute_to_false_does_not_change_the_markup() {
+ $html_input = '';
+ $p = new WP_HTML_Tag_Processor( $html_input );
+ $p->next_tag( 'input' );
+ $p->set_attribute( 'checked', false );
+ $this->assertSame( $html_input, $p->get_updated_html() );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::set_attribute
+ * @covers WP_HTML_Tag_Processor::get_updated_html
+ */
+ public function test_setting_a_boolean_attribute_to_a_string_value_adds_explicit_value_to_the_markup() {
+ $p = new WP_HTML_Tag_Processor(
+ ''
+ );
+ $p->next_tag( 'input' );
+ $p->set_attribute( 'checked', 'checked' );
+ $this->assertSame(
+ '',
+ $p->get_updated_html()
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::get_tag
+ * @covers WP_HTML_Tag_Processor::next_tag
+ */
+ public function test_unclosed_script_tag_should_not_cause_an_infinite_loop() {
+ $p = new WP_HTML_Tag_Processor( '
',
+ ),
+
+ 'Simple uppercase script tag' => array(
+ '
',
+ ),
+
+ 'Script with a comment opener inside should end at the next script tag closer (dash dash escaped state)' => array(
+ '
-->',
+ ),
+
+ 'Script with a comment opener and a script tag opener inside should end two script tag closer later (double escaped state)' => array(
+ '
-->',
+ ),
+
+ 'Double escaped script with a tricky opener' => array(
+ '">">
',
+ ),
+
+ 'Double escaped script with a tricky closer' => array(
+ '">
',
+ ),
+
+ 'Double escaped, then escaped, then double escaped' => array(
+ '
',
+ ),
+
+ 'Script with a commented a script tag opener inside should at the next tag closer (dash dash escaped state)' => array(
+ '
-->',
+ ),
+
+ 'Script closer with another script tag in closer attributes' => array(
+ '
',
+ ),
+
+ 'Script closer with attributes' => array(
+ '
',
+ ),
+
+ 'Script opener with title closer inside' => array(
+ '
',
+ ),
+
+ 'Complex script with many parsing states' => array(
+ '-->
-->',
+ ),
+ );
+ }
+
+ /**
+ * @ticket 56299
+ *
+ * @covers WP_HTML_Tag_Processor::next_tag
+ *
+ * @dataProvider data_next_tag_ignores_contents_of_rcdata_tag
+ *
+ * @param string $rcdata_then_div HTML with RCDATA before a DIV.
+ * @param string $rcdata_tag RCDATA tag.
+ */
+ public function test_next_tag_ignores_contents_of_rcdata_tag( $rcdata_then_div, $rcdata_tag ) {
+ $p = new WP_HTML_Tag_Processor( $rcdata_then_div );
+ $p->next_tag();
+ $this->assertSame( $rcdata_tag, $p->get_tag(), "The first found tag was not '$rcdata_tag'" );
+ $p->next_tag();
+ $this->assertSame( 'DIV', $p->get_tag(), "The second found tag was not 'div'" );
+ }
+
+ /**
+ * Data provider.
+ *
+ * @return array[]
+ */
+ public function data_next_tag_ignores_contents_of_rcdata_tag() {
+ return array(
+ 'simple textarea' => array(
+ 'rcdata_then_div' => '
',
+ 'rcdata_tag' => 'TEXTAREA',
+ ),
+ 'simple title' => array(
+ 'rcdata_then_div' => 'Back to notifications
',
+ 'rcdata_tag' => 'TITLE',
+ ),
+ 'comment opener inside a textarea tag should be ignored' => array(
+ 'rcdata_then_div' => '