diff --git a/package-lock.json b/package-lock.json index 709684571..ddbbab2b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,6 +64,57 @@ "core-js": "^3.35.0" } }, + "node_modules/@10up/block-components": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@10up/block-components/-/block-components-1.18.0.tgz", + "integrity": "sha512-pp+bDDJ1ewC8TwLGgM3aFaNA/X6/t03eRDiTLgAjVIp6j3f1cF5DnU98lK/xoTDPQJP+erQy6U0r+FoZm0O8GA==", + "optional": true, + "peer": true, + "workspaces": [ + "./", + "example/" + ], + "dependencies": { + "@10up/block-components": "^1.17.2", + "@dnd-kit/core": "^6.0.6", + "@dnd-kit/modifiers": "^6.0.1", + "@dnd-kit/sortable": "^7.0.1", + "@dnd-kit/utilities": "^3.2.1", + "@emotion/react": "^11.10.5", + "@emotion/styled": "^11.10.5", + "@floating-ui/react-dom": "^1.0.1", + "@leeoniya/ufuzzy": "^1.0.8", + "@wordpress/icons": "^9.14.0", + "array-move": "^3.0.1", + "prop-types": "^15.8.1", + "react-window": "^1.8.9", + "uuid": "^8.3.2" + } + }, + "node_modules/@10up/block-components/node_modules/@floating-ui/react-dom": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-1.3.0.tgz", + "integrity": "sha512-htwHm67Ji5E/pROEAr7f8IKFShuiCKHwUC/UY4vC3I5jiSvGFAYnSYiZO5MlGmads+QqvUkR9ANHEguGrDv72g==", + "optional": true, + "peer": true, + "dependencies": { + "@floating-ui/dom": "^1.2.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@10up/block-components/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true, + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@10up/eslint-config": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@10up/eslint-config/-/eslint-config-4.0.0.tgz", @@ -174,13 +225,15 @@ "version": "0.3.11", "resolved": "https://registry.npmjs.org/@ariakit/core/-/core-0.3.11.tgz", "integrity": "sha512-+MnOeqnA4FLI/7vqsZLbZQHHN4ofd9kvkNjz44fNi0gqmD+ZbMWiDkFAvZII75dYnxYw5ZPpWjA4waK22VBWig==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@ariakit/react": { "version": "0.3.14", "resolved": "https://registry.npmjs.org/@ariakit/react/-/react-0.3.14.tgz", "integrity": "sha512-h71BPMZ2eW+E2ESbdYxSAEMR1DozYzd5eHE5IOzGd9Egi5u7EZxqmuW4CXVXZ1Y6vbaDMV3SudgPh7iHS/ArFw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@ariakit/react-core": "0.3.14" }, @@ -197,7 +250,8 @@ "version": "0.3.14", "resolved": "https://registry.npmjs.org/@ariakit/react-core/-/react-core-0.3.14.tgz", "integrity": "sha512-16Qj6kDPglpdWtU5roY9q+G66naOjauTY5HvUIaL2aLY0187ATaRrABIKoMMzTtJyhvsud4jFlzivz+/zCQ8yw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@ariakit/core": "0.3.11", "@floating-ui/dom": "^1.0.0", @@ -3869,11 +3923,84 @@ "node": ">=10.0.0" } }, + "node_modules/@dnd-kit/accessibility": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/accessibility/-/accessibility-3.1.0.tgz", + "integrity": "sha512-ea7IkhKvlJUv9iSHJOnxinBcoOI3ppGnnL+VDJ75O45Nss6HtZd8IdN8touXPDtASfeI2T2LImb8VOZcL47wjQ==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/core": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@dnd-kit/core/-/core-6.1.0.tgz", + "integrity": "sha512-J3cQBClB4TVxwGo3KEjssGEXNJqGVWx17aRTZ1ob0FliR5IjYgTxl5YJbKTzA6IzrtelotH19v6y7uoIRUZPSg==", + "optional": true, + "peer": true, + "dependencies": { + "@dnd-kit/accessibility": "^3.1.0", + "@dnd-kit/utilities": "^3.2.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/modifiers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@dnd-kit/modifiers/-/modifiers-6.0.1.tgz", + "integrity": "sha512-rbxcsg3HhzlcMHVHWDuh9LCjpOVAgqbV78wLGI8tziXY3+qcMQ61qVXIvNKQFuhj75dSfD+o+PYZQ/NUk2A23A==", + "optional": true, + "peer": true, + "dependencies": { + "@dnd-kit/utilities": "^3.2.1", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.0.6", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/sortable": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/sortable/-/sortable-7.0.2.tgz", + "integrity": "sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==", + "optional": true, + "peer": true, + "dependencies": { + "@dnd-kit/utilities": "^3.2.0", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@dnd-kit/core": "^6.0.7", + "react": ">=16.8.0" + } + }, + "node_modules/@dnd-kit/utilities": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@dnd-kit/utilities/-/utilities-3.2.2.tgz", + "integrity": "sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==", + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" + } + }, "node_modules/@emotion/babel-plugin": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/runtime": "^7.18.3", @@ -3892,13 +4019,15 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -3910,7 +4039,8 @@ "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@emotion/memoize": "^0.8.1", "@emotion/sheet": "^1.2.2", @@ -3923,7 +4053,8 @@ "version": "11.11.2", "resolved": "https://registry.npmjs.org/@emotion/css/-/css-11.11.2.tgz", "integrity": "sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@emotion/babel-plugin": "^11.11.0", "@emotion/cache": "^11.11.0", @@ -3936,7 +4067,8 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@emotion/is-prop-valid": { "version": "1.2.2", @@ -3955,7 +4087,8 @@ "version": "11.11.4", "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", @@ -3979,7 +4112,8 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@emotion/hash": "^0.9.1", "@emotion/memoize": "^0.8.1", @@ -3992,13 +4126,15 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@emotion/styled": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.11.0", @@ -4021,13 +4157,15 @@ "version": "0.8.1", "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", - "dev": true, + "optional": true, + "peer": true, "peerDependencies": { "react": ">=16.8.0" } @@ -4036,13 +4174,15 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@emotion/weak-memoize": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@endemolshinegroup/cosmiconfig-typescript-loader": { "version": "3.0.2", @@ -4200,7 +4340,8 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@floating-ui/utils": "^0.2.1" } @@ -4209,7 +4350,8 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@floating-ui/core": "^1.0.0", "@floating-ui/utils": "^0.2.0" @@ -4219,7 +4361,8 @@ "version": "2.0.8", "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@floating-ui/dom": "^1.6.1" }, @@ -4232,7 +4375,8 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@headstartwp/blocks-primitives": { "resolved": "packages/primitives", @@ -5080,6 +5224,13 @@ "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", "dev": true }, + "node_modules/@leeoniya/ufuzzy": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@leeoniya/ufuzzy/-/ufuzzy-1.0.14.tgz", + "integrity": "sha512-/xF4baYuCQMo+L/fMSUrZnibcu0BquEGnbxfVPiZhs/NbJeKj4c/UmFpQzW9Us0w45ui/yYW3vyaqawhNYsTzA==", + "optional": true, + "peer": true + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", @@ -6360,7 +6511,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.0.tgz", "integrity": "sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10" } @@ -6369,7 +6521,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.0.tgz", "integrity": "sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -6381,7 +6534,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.0.tgz", "integrity": "sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -6393,7 +6547,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.0.tgz", "integrity": "sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.0", @@ -6420,7 +6575,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.0.tgz", "integrity": "sha512-n7kDRfx+LB1zLueRDvZ1Pd0bxdJWDUZNQ/GWoxDn2prnuJKRdxsjulejX/ePkOsLi2tTm6P24mDqlMSgQpsT6g==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/primitive": "1.0.0", @@ -6438,7 +6594,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.0.tgz", "integrity": "sha512-UagjDk4ijOAnGu4WMUPj9ahi7/zJJqNZ9ZAiGPp7waUWJO0O1aWXi/udPphI0IUjvrhBsZJGSN66dR2dsueLWQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -6450,7 +6607,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.0.tgz", "integrity": "sha512-C4SWtsULLGf/2L4oGeIHlvWQx7Rf+7cX/vKOAD2dXW0A1b5QXwi3wWeaEgW+wn+SEVrraMUk05vLU9fZZz5HbQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.0", @@ -6466,7 +6624,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.0.tgz", "integrity": "sha512-Q6iAB/U7Tq3NTolBBQbHTgclPmGWE3OlktGGqrClPozSw4vkQ1DfQAOtzgRPecKsMdJINE05iaoDUG8tRzCBjw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-layout-effect": "1.0.0" @@ -6479,7 +6638,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.0.tgz", "integrity": "sha512-a8qyFO/Xb99d8wQdu4o7qnigNjTPG123uADNecz0eX4usnQEj7o+cG4ZX4zkqq98NYekT7UoEQIjxBNWIFuqTA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-primitive": "1.0.0" @@ -6493,7 +6653,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.0.tgz", "integrity": "sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.0", @@ -6508,7 +6669,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.0.tgz", "integrity": "sha512-EyXe6mnRlHZ8b6f4ilTDrXmkLShICIuOTTj0GX4w1rp+wSxf3+TD05u1UOITC8VsJ2a9nwHvdXtOXEOl0Cw/zQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-slot": "1.0.0" @@ -6522,7 +6684,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.0.tgz", "integrity": "sha512-3mrKauI/tWXo1Ll+gN5dHcxDPdm/Df1ufcDLCecn+pnCIVcdWE7CujXo8QaXOWRJyZyQWWbpB8eFwHzWXlv5mQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-compose-refs": "1.0.0" @@ -6535,7 +6698,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.0.tgz", "integrity": "sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -6547,7 +6711,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.0.tgz", "integrity": "sha512-FohDoZvk3mEXh9AWAVyRTYR4Sq7/gavuofglmiXB2g1aKyboUD4YtgWxKj8O5n+Uak52gXQ4wKz5IFST4vtJHg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.0" @@ -6560,7 +6725,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.0.tgz", "integrity": "sha512-JwfBCUIfhXRxKExgIqGa4CQsiMemo1Xt0W/B4ei3fpzpvPENKpMKQ8mZSB6Acj3ebrAEgi2xiQvcI1PAAodvyg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10", "@radix-ui/react-use-callback-ref": "1.0.0" @@ -6573,7 +6739,8 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.0.tgz", "integrity": "sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.13.10" }, @@ -6585,7 +6752,8 @@ "version": "9.7.3", "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.7.3.tgz", "integrity": "sha512-5CWeNJt9pNgyvuSzQH+uy2pvTg8Y4/OisoscZIR8/ZNLIOI+CatFBhGZpDGTF/OzdNFsAoGk3wiUYTwoJ0YIvw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@react-spring/shared": "~9.7.3", "@react-spring/types": "~9.7.3" @@ -6598,7 +6766,8 @@ "version": "9.7.3", "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.7.3.tgz", "integrity": "sha512-IqFdPVf3ZOC1Cx7+M0cXf4odNLxDC+n7IN3MDcVCTIOSBfqEcBebSv+vlY5AhM0zw05PDbjKrNmBpzv/AqpjnQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@react-spring/animated": "~9.7.3", "@react-spring/shared": "~9.7.3", @@ -6616,7 +6785,8 @@ "version": "9.7.3", "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.7.3.tgz", "integrity": "sha512-NEopD+9S5xYyQ0pGtioacLhL2luflh6HACSSDUZOwLHoxA5eku1UPuqcJqjwSD6luKjjLfiLOspxo43FUHKKSA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@react-spring/types": "~9.7.3" }, @@ -6628,13 +6798,15 @@ "version": "9.7.3", "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.7.3.tgz", "integrity": "sha512-Kpx/fQ/ZFX31OtlqVEFfgaD1ACzul4NksrvIgYfIFq9JpDHFwQkMVZ10tbo0FU/grje4rcL4EIrjekl3kYwgWw==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@react-spring/web": { "version": "9.7.3", "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.7.3.tgz", "integrity": "sha512-BXt6BpS9aJL/QdVqEIX9YoUy8CE6TJrU0mNCqSoxdXlIeNcEBWOfIyE6B14ENNsyQKS3wOWkiJfco0tCr/9tUg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@react-spring/animated": "~9.7.3", "@react-spring/core": "~9.7.3", @@ -7399,13 +7571,15 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@types/gradient-parser/-/gradient-parser-0.1.3.tgz", "integrity": "sha512-XDbrTSBlQV9nxE1GiDL3FaOPy4G/KaJkhDutBX48Kg8CYZMBARyyDFGCWfWJn4pobmInmwud1xxH7VJMAr0CKQ==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@types/highlight-words-core": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@types/highlight-words-core/-/highlight-words-core-1.2.1.tgz", "integrity": "sha512-9VZUA5omXBfn+hDxFjUDu1FOJTBM3LmvqfDey+Z6Aa8B8/JmF5SMj6FBrjfgJ/Q3YXOZd3qyTDfJyMZSs/wCUA==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", @@ -7593,7 +7767,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", - "dev": true + "devOptional": true }, "node_modules/@types/prop-types": { "version": "15.7.11", @@ -7731,9 +7905,9 @@ "dev": true }, "node_modules/@types/wordpress__block-editor": { - "version": "11.5.11", - "resolved": "https://registry.npmjs.org/@types/wordpress__block-editor/-/wordpress__block-editor-11.5.11.tgz", - "integrity": "sha512-NyEXf5QIbNTFd4rKRwuQ07PPqvok8ntb81+IHLXDzAxX1uWxOng98uwDhoordeNB1md8ab2iIo08KR2VXq2FNg==", + "version": "11.5.12", + "resolved": "https://registry.npmjs.org/@types/wordpress__block-editor/-/wordpress__block-editor-11.5.12.tgz", + "integrity": "sha512-zkFmnqHmZCJwe4JJ+GGfz7sF1IeoWhHhY7lVWvFOnREW4l6dLAqAHXwJ+jPbG/GQLEyGPjP5so2YYoPOucWc8g==", "dependencies": { "@types/react": "*", "@types/wordpress__blocks": "*", @@ -8137,13 +8311,15 @@ "version": "10.3.0", "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.0.tgz", "integrity": "sha512-rh+6MND31zfHcy9VU3dOZCqGY511lvGcfyJenN4cWZe0u1BH6brBpBddLVXhF2r4BMqWbvxfsbL7D287thJU2A==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@use-gesture/react": { "version": "10.3.0", "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.0.tgz", "integrity": "sha512-3zc+Ve99z4usVP6l9knYVbVnZgfqhKah7sIG+PS2w+vpig2v2OLct05vs+ZXMzwxdNCMka8B+8WlOo0z6Pn6DA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@use-gesture/core": "10.3.0" }, @@ -8413,7 +8589,8 @@ "version": "3.53.0", "resolved": "https://registry.npmjs.org/@wordpress/a11y/-/a11y-3.53.0.tgz", "integrity": "sha512-8Fg3c21oO0J6MjFb3UJ2pmDvwXLK9WVn2RdohqG36o3ft/oGD0FTtUw5ct5sgaCUcydFrCN7iNLJ/MLgbSrFiw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/dom-ready": "^3.53.0", @@ -8427,7 +8604,8 @@ "version": "6.50.0", "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-6.50.0.tgz", "integrity": "sha512-a459l9WD58W5UyQkD6c54+4hv2hZzstDSzoJRMOZGSeEfbgN+49vgHLNEVhDHjNsS7Z6X2KeyyR/YoRgtXfloA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/i18n": "^4.53.0", @@ -8441,7 +8619,8 @@ "version": "3.53.0", "resolved": "https://registry.npmjs.org/@wordpress/autop/-/autop-3.53.0.tgz", "integrity": "sha512-t330lnDM8gb8G4U8Ky1qWvDxDsNn4FP+QVTrN72AAhjsz95VTQRsNY5xesedEN82e6FRdPIoeHyd/RuVqd6QTg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -8488,7 +8667,8 @@ "version": "3.53.0", "resolved": "https://registry.npmjs.org/@wordpress/blob/-/blob-3.53.0.tgz", "integrity": "sha512-fB1oXibUBfL2eTt303nbkbIJPP+SkKDGxEbYNIBrwaAoqp3oma7Q5uhguI8XFwKcdFw5I73U9bhlnnLMhK4FuA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -8500,7 +8680,8 @@ "version": "12.21.0", "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-12.21.0.tgz", "integrity": "sha512-B6c8YNWyv/zZPoEIo+Ks1W/RQQ9InUf99uZqlZSSevjDaKXZgFWWtecto60b8JQIqmpQJ32Y7LjdHcTMgAcFVQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@emotion/react": "^11.7.1", @@ -8562,7 +8743,8 @@ "version": "4.53.0", "resolved": "https://registry.npmjs.org/@wordpress/block-serialization-default-parser/-/block-serialization-default-parser-4.53.0.tgz", "integrity": "sha512-EfLBKT6igcuS8NnnFM3IAIefJJm5ooR5M8+ZnsMYQLgCnpQ8fikCs2r2UwBXxQ8DqONmMrXnORAld2o8C21dxw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -8574,7 +8756,8 @@ "version": "12.30.0", "resolved": "https://registry.npmjs.org/@wordpress/blocks/-/blocks-12.30.0.tgz", "integrity": "sha512-XBuT+I15TGA7B8AFE13W8CcXvfAIzu1w9V7NRKZZm8A7TCN4BTUSGUwufbd8Jw7qZ7yrh8+JwzHtBOL2GpBByw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/autop": "^3.53.0", @@ -8625,7 +8808,8 @@ "version": "0.24.0", "resolved": "https://registry.npmjs.org/@wordpress/commands/-/commands-0.24.0.tgz", "integrity": "sha512-siX+ouT9yvcdVYMdSY3REs3Tmnnzkv4L/dBhgJBrjJeMqh8badHR/4yqGEprPxuoRrU+Or5pwQDgq+HsvlxiaA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/components": "^27.1.0", @@ -8651,7 +8835,8 @@ "version": "27.1.0", "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-27.1.0.tgz", "integrity": "sha512-5y7xr4vmWqVzErM/BHKnOTcZpFkfPdhNJkRMXztL8NP6EcrkSPRexiUtaCTQqbNRKC/ZBtwR6P93JKKd8soKlQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@ariakit/react": "^0.3.12", "@babel/runtime": "^7.16.0", @@ -8714,13 +8899,15 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", - "dev": true + "optional": true, + "peer": true }, "node_modules/@wordpress/components/node_modules/valtio": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.7.0.tgz", "integrity": "sha512-3Tnix66EERwMcrl1rfB3ylcewOcL5L/GiPmC3FlVNreQzqf2jufEeqlNmgnLgSGchkEmH3WYVtS+x6Qw4r+yzQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "proxy-compare": "2.3.0", "use-sync-external-store": "1.2.0" @@ -8815,7 +9002,8 @@ "version": "4.53.0", "resolved": "https://registry.npmjs.org/@wordpress/date/-/date-4.53.0.tgz", "integrity": "sha512-Jfs7zYELB84Reo5DJ3pjr609IyWE3oJwubh5oZQI8E28hwj1OkGn6tY6qchg4QGnDyUcb+S9JDaJttG0wJGEfw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/deprecated": "^3.53.0", @@ -8870,7 +9058,8 @@ "version": "3.53.0", "resolved": "https://registry.npmjs.org/@wordpress/dom-ready/-/dom-ready-3.53.0.tgz", "integrity": "sha512-0sKnHwWoSxFrazehbxg4gZwTMCe1qIC4u2jUjVDviTlUMn3vsx5GdXNi0a7nYdR3Oiq7/a5JRKWsgXtIpeprnw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -9548,7 +9737,8 @@ "version": "3.53.0", "resolved": "https://registry.npmjs.org/@wordpress/html-entities/-/html-entities-3.53.0.tgz", "integrity": "sha512-fqO6oJnBs1hLNtRLQLIYkKcnISpwf/ts4hOcBr+SN1pusTM3Om9fSUYjjRwXzjnqQsm/Tqjnh3GyDNzmmyuz5w==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -9579,7 +9769,8 @@ "version": "9.44.0", "resolved": "https://registry.npmjs.org/@wordpress/icons/-/icons-9.44.0.tgz", "integrity": "sha512-8VxsFkcUYGCk6qfrriSOxOFSDSgl4tNRnJo7019ABj8mTr4pqdJC7tYz88rOvtBbx9tswWXLBJM49vaBG8mOpw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/element": "^5.30.0", @@ -9620,7 +9811,8 @@ "version": "4.30.0", "resolved": "https://registry.npmjs.org/@wordpress/keyboard-shortcuts/-/keyboard-shortcuts-4.30.0.tgz", "integrity": "sha512-ICEFcw6p/uuXMddnDqMglR74p/uAUX1Rr4RM1BoZ7BqmopPTey4hQz8bT/FfogBpjl0QulD7D6rh19aiZ/ppfQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/data": "^9.23.0", @@ -9651,7 +9843,8 @@ "version": "4.21.0", "resolved": "https://registry.npmjs.org/@wordpress/notices/-/notices-4.21.0.tgz", "integrity": "sha512-clyPRDhVbG7g1n1JDLLOimfBi5e6b9EekZv/P9amxCQxAvFquwDoAvQtUbuz6unF8sFLRtvLO5LnNqGwEnL/eg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.53.0", @@ -9668,7 +9861,8 @@ "version": "3.30.0", "resolved": "https://registry.npmjs.org/@wordpress/preferences/-/preferences-3.30.0.tgz", "integrity": "sha512-8GfcEWerwliMTs/hpKbYHxF0SnH/ghbpyUHk13hdZsJwIYFN/DGS9KPbeQmoMdJIOS5YUxhQ1dXCxJIjBmpSlA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.53.0", @@ -9706,7 +9900,8 @@ "version": "3.51.0", "resolved": "https://registry.npmjs.org/@wordpress/primitives/-/primitives-3.51.0.tgz", "integrity": "sha512-UKz0h3BIU4hDMXnNlLZ6CZCe7eWuhDhzLj25+Ldfb71RuXMoqdH31ZN3gwIljVrLRWcBKVtgp9ULmuhdGvwzDA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/element": "^5.30.0", @@ -9760,7 +9955,8 @@ "version": "6.30.0", "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-6.30.0.tgz", "integrity": "sha512-zVc7pRzPajP5M1g79EvLMsvBkduu19TdwbxZrwzHD7xY+jfPdRAzNV8UMw41lVrH203yrAN1tfcJw4Hshjl/VQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.53.0", @@ -9785,7 +9981,8 @@ "version": "3.53.0", "resolved": "https://registry.npmjs.org/@wordpress/shortcode/-/shortcode-3.53.0.tgz", "integrity": "sha512-ste35FEC3wKUmGpPCh0UaujAKUFSamcI2NEW7H+j+ODX8tgsa2fuLX4wtxPenrkoDlCblZVW4Q2tIIgBmex6XA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "memize": "^2.0.1" @@ -9798,7 +9995,8 @@ "version": "1.36.0", "resolved": "https://registry.npmjs.org/@wordpress/style-engine/-/style-engine-1.36.0.tgz", "integrity": "sha512-6ANXOxOinWxMssdlhvlGoaI25okwLEx2SC6r+/JH6I7HYlnk/TSSgkpxz9t/b/sGOKrG46KzzXZT2XVb+4pDCQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "change-case": "^4.1.2" @@ -9811,7 +10009,8 @@ "version": "2.53.0", "resolved": "https://registry.npmjs.org/@wordpress/token-list/-/token-list-2.53.0.tgz", "integrity": "sha512-SI6/UD8USz6USJUoF9r70/lMtp24tb9qjWCMqJp1vvtFcKgNpqHZ63SXnfE3FlYUt/Y6UurPbbsnXw6FhFEfdw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -9835,7 +10034,8 @@ "version": "3.54.0", "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.54.0.tgz", "integrity": "sha512-65/2c3vzzgX4VEd90GG1tbZTN1b10NiqAa2V+a/m0Ak9RoCyAY0MtNNEa4kxCxUyN5ajpgCJCzVJIKDNVj/Fhg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0", "remove-accents": "^0.5.0" @@ -9848,7 +10048,7 @@ "version": "2.53.0", "resolved": "https://registry.npmjs.org/@wordpress/warning/-/warning-2.53.0.tgz", "integrity": "sha512-53O09aUJgEuGcCVTHQcxvqjeU79rHF6fw9VSZwv6lYfZTwwtxwMHGPF6hUp12NeR+bqYGsUz2Ls6gzSHaAE2Zw==", - "dev": true, + "devOptional": true, "engines": { "node": ">=12" } @@ -9857,7 +10057,8 @@ "version": "3.53.0", "resolved": "https://registry.npmjs.org/@wordpress/wordcount/-/wordcount-3.53.0.tgz", "integrity": "sha512-pzx1VojKb/yh/J+GOb8+QF3UwlXuIaSXG5wurABxXPBZVk8UBmZotiEvQOZRJW1J6wn8Kta6eiwn34imR4la9A==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.16.0" }, @@ -10155,7 +10356,8 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "tslib": "^2.0.0" }, @@ -10245,6 +10447,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-move": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-move/-/array-move-3.0.1.tgz", + "integrity": "sha512-H3Of6NIn2nNU1gsVDqDnYKY/LCdWvCMMOWifNGhKcVQgiZ6nOek39aESOvro6zmueP07exSl93YLvkN4fZOkSg==", + "optional": true, + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -10897,7 +11112,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@babel/runtime": "^7.12.5", "cosmiconfig": "^7.0.0", @@ -11659,7 +11875,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, + "devOptional": true, "engines": { "node": ">=6" } @@ -11902,7 +12118,8 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", - "dev": true + "optional": true, + "peer": true }, "node_modules/clean-css": { "version": "5.3.3", @@ -12053,7 +12270,8 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-0.2.1.tgz", "integrity": "sha512-U6//9lQ6JvT47+6OF6Gi8BvkxYQ8SCRRSKIJkthIMsFsLZRG0cKvTtuTaefyIKMQb8rvvXy0wGdpTNq/jPtm+g==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "@radix-ui/react-dialog": "1.0.0" }, @@ -12149,7 +12367,7 @@ "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true + "devOptional": true }, "node_modules/colorette": { "version": "1.4.0", @@ -12901,7 +13119,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, + "devOptional": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -13589,7 +13807,7 @@ "version": "2.30.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, + "devOptional": true, "dependencies": { "@babel/runtime": "^7.21.0" }, @@ -13627,7 +13845,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -13951,13 +14169,14 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "dev": true + "optional": true, + "peer": true }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.3.1" } @@ -16143,7 +16362,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true + "optional": true, + "peer": true }, "node_modules/find-up": { "version": "5.0.0", @@ -16327,7 +16547,8 @@ "version": "10.18.0", "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-10.18.0.tgz", "integrity": "sha512-oGlDh1Q1XqYPksuTD/usb0I70hq95OUzmL9+6Zd+Hs4XV0oaISBa/UUMSjYiq6m8EUF32132mOJ8xVZS+I0S6w==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" }, @@ -16351,8 +16572,8 @@ "version": "0.8.8", "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz", "integrity": "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==", - "dev": true, "optional": true, + "peer": true, "dependencies": { "@emotion/memoize": "0.7.4" } @@ -16361,8 +16582,8 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==", - "dev": true, - "optional": true + "optional": true, + "peer": true }, "node_modules/fresh": { "version": "0.5.2", @@ -16558,7 +16779,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, + "devOptional": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -16585,7 +16806,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -16976,7 +17198,8 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/gradient-parser/-/gradient-parser-0.1.5.tgz", "integrity": "sha512-+uPlcVbjrKOnTzvz0MjTj7BfACj8OmxIa1moIjJV7btvhUMSJk0D47RfDCgDrZE3dYMz9Cf5xKJwnrKLjUq0KQ==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -17222,7 +17445,8 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/highlight-words-core/-/highlight-words-core-1.2.2.tgz", "integrity": "sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg==", - "dev": true + "optional": true, + "peer": true }, "node_modules/hmac-drbg": { "version": "1.0.1", @@ -17239,7 +17463,8 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "react-is": "^16.7.0" } @@ -17248,7 +17473,8 @@ "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + "optional": true, + "peer": true }, "node_modules/hosted-git-info": { "version": "2.8.9", @@ -17308,7 +17534,8 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/hpq/-/hpq-1.4.0.tgz", "integrity": "sha512-ycJQMRaRPBcfnoT1gS5I1XCvbbw9KO94Y0vkwksuOjcJMqNZtb03MF2tCItLI2mQbkZWSSeFinoRDPmjzv4tKg==", - "dev": true + "optional": true, + "peer": true }, "node_modules/html-dom-parser": { "version": "3.1.7", @@ -17967,7 +18194,8 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "loose-envify": "^1.0.0" } @@ -21622,6 +21850,13 @@ "resolved": "https://registry.npmjs.org/memize/-/memize-2.1.0.tgz", "integrity": "sha512-yywVJy8ctVlN5lNPxsep5urnZ6TTclwPEyigM9M3Bi8vseJBOfqNrGWN/r8NzuIt3PovM323W04blJfGQfQSVg==" }, + "node_modules/memoize-one": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", + "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", + "optional": true, + "peer": true + }, "node_modules/memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -22007,7 +22242,8 @@ "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": "*" } @@ -22016,7 +22252,8 @@ "version": "0.5.45", "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.45.tgz", "integrity": "sha512-HIWmqA86KcmCAhnMAN0wuDOARV/525R2+lOLotuGFzn4HO+FH+/645z2wx0Dt3iDv6/p61SIvKnDstISainhLQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "moment": "^2.29.4" }, @@ -22682,7 +22919,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==", - "dev": true + "optional": true, + "peer": true }, "node_modules/npm-run-path": { "version": "4.0.1", @@ -23680,7 +23918,7 @@ "version": "8.4.35", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", - "dev": true, + "devOptional": true, "funding": [ { "type": "opencollective", @@ -24814,7 +25052,8 @@ "version": "1.45.0", "resolved": "https://registry.npmjs.org/postcss-prefixwrap/-/postcss-prefixwrap-1.45.0.tgz", "integrity": "sha512-gPLEPuZKG8dXb0AuEaaBa0Aaj7iL0OxqoiKoluPzBB12rAhjajMPff0hFW8GqKDdG7VKMIo5GSww87QgC3ZxOA==", - "dev": true, + "optional": true, + "peer": true, "peerDependencies": { "postcss": "*" } @@ -25116,7 +25355,8 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/postcss-urlrebase/-/postcss-urlrebase-1.3.0.tgz", "integrity": "sha512-LOFN43n1IewKriXiypMNNinXeptttSyGGRLPbBMdQzuTvvCEo5mz/gG06y/HqrkN7p3ayHQf2R2bTBv639FOaQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -25128,7 +25368,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true + "devOptional": true }, "node_modules/prebuild-install": { "version": "7.1.2", @@ -25351,7 +25591,8 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.3.0.tgz", "integrity": "sha512-c3L2CcAi7f7pvlD0D7xsF+2CQIW8C3HaYx2Pfgq8eA4HAl3GAH6/dVYsyBbYF/0XJs2ziGLrzmz5fmzPm6A0pQ==", - "dev": true + "optional": true, + "peer": true }, "node_modules/prr": { "version": "1.0.1", @@ -25628,7 +25869,8 @@ "version": "5.6.1", "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", "integrity": "sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==", - "dev": true, + "optional": true, + "peer": true, "peerDependencies": { "react": ">=16.8.0", "react-dom": ">=16.8.0" @@ -25650,7 +25892,8 @@ "version": "4.7.5", "resolved": "https://registry.npmjs.org/react-easy-crop/-/react-easy-crop-4.7.5.tgz", "integrity": "sha512-qKfI4PuhaH1jOLC3DQfQB0cE0z+3N7bfyPkPejQmylXNb8nstfPMH+oHj3gKgpBHLFUiQp/C1rY7sVCVgtjn3Q==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "normalize-wheel": "^1.0.1", "tslib": "2.0.1" @@ -25664,7 +25907,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", "integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==", - "dev": true + "optional": true, + "peer": true }, "node_modules/react-html-attributes": { "version": "1.4.6", @@ -25686,7 +25930,7 @@ "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "devOptional": true }, "node_modules/react-property": { "version": "2.0.0", @@ -25706,7 +25950,8 @@ "version": "2.5.4", "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.4.tgz", "integrity": "sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "react-remove-scroll-bar": "^2.3.3", "react-style-singleton": "^2.2.1", @@ -25731,7 +25976,8 @@ "version": "2.3.5", "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.5.tgz", "integrity": "sha512-3cqjOqg6s0XbOjWvmasmqHch+RLxIEk2r/70rzGXuz3iIGQsQheEQyqYCBb5EECoD01Vo2SIbDqW4paLeLTASw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "react-style-singleton": "^2.2.1", "tslib": "^2.0.0" @@ -25753,7 +25999,8 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "get-nonce": "^1.0.0", "invariant": "^2.2.4", @@ -25772,6 +26019,24 @@ } } }, + "node_modules/react-window": { + "version": "1.8.10", + "resolved": "https://registry.npmjs.org/react-window/-/react-window-1.8.10.tgz", + "integrity": "sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==", + "optional": true, + "peer": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "memoize-one": ">=3.1.1 <6" + }, + "engines": { + "node": ">8.0.0" + }, + "peerDependencies": { + "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -26101,7 +26366,8 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==", - "dev": true + "optional": true, + "peer": true }, "node_modules/remove-trailing-separator": { "version": "1.1.0", @@ -26220,7 +26486,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -26237,7 +26503,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true + "devOptional": true }, "node_modules/requireindex": { "version": "1.2.0", @@ -26867,7 +27133,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true + "devOptional": true }, "node_modules/set-cookie-parser": { "version": "2.6.0", @@ -27068,7 +27334,8 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.9.1.tgz", "integrity": "sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "yargs": "^14.2" }, @@ -27080,7 +27347,8 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=6" } @@ -27089,7 +27357,8 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", @@ -27100,13 +27369,15 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true + "optional": true, + "peer": true }, "node_modules/showdown/node_modules/find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "locate-path": "^3.0.0" }, @@ -27118,7 +27389,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4" } @@ -27127,7 +27399,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -27140,7 +27413,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "p-limit": "^2.0.0" }, @@ -27152,7 +27426,8 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, + "optional": true, + "peer": true, "engines": { "node": ">=4" } @@ -27161,7 +27436,8 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", @@ -27175,7 +27451,8 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-regex": "^4.1.0" }, @@ -27187,7 +27464,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", @@ -27201,13 +27479,15 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "optional": true, + "peer": true }, "node_modules/showdown/node_modules/yargs": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "cliui": "^5.0.0", "decamelize": "^1.2.0", @@ -27226,7 +27506,8 @@ "version": "15.0.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz", "integrity": "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" @@ -27319,7 +27600,8 @@ "version": "0.5.11", "resolved": "https://registry.npmjs.org/simple-html-tokenizer/-/simple-html-tokenizer-0.5.11.tgz", "integrity": "sha512-C2WEK/Z3HoSFbYq8tI7ni3eOo/NneSPRoPpcM7WdLjFOArFuyXEjAoCdOC3DgMfRyziZQ1hCNR4mrNdWEvD0og==", - "dev": true + "optional": true, + "peer": true }, "node_modules/simple-swizzle": { "version": "0.2.2", @@ -27724,6 +28006,7 @@ "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -29061,7 +29344,8 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", - "dev": true + "optional": true, + "peer": true }, "node_modules/sugarss": { "version": "4.0.1", @@ -30676,7 +30960,8 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz", "integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "tslib": "^2.0.0" }, @@ -30697,7 +30982,8 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/use-lilius/-/use-lilius-2.0.4.tgz", "integrity": "sha512-5y4yKCDivylrUOB5V19BKLWFVyjInC/nkOHjiy4M5qjZzRR0HJQtNKVOZ+o5SMW+mOj1wIg65qXZ0uJF40Iv4w==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "date-fns": "^3.0.0" }, @@ -30710,7 +30996,8 @@ "version": "3.4.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.4.0.tgz", "integrity": "sha512-Akz4R8J9MXBsOgF1QeWeCsbv6pntT5KCPjU0Q9prBxVmWJYPLhwAIsNg3b0QAdr0ttiozYLD3L/af7Ra0jqYXw==", - "dev": true, + "optional": true, + "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/kossnocorp" @@ -30728,7 +31015,8 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "dev": true, + "optional": true, + "peer": true, "dependencies": { "detect-node-es": "^1.1.0", "tslib": "^2.0.0" @@ -30792,11 +31080,12 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], + "optional": true, + "peer": true, "bin": { "uuid": "dist/bin/uuid" } @@ -31764,7 +32053,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true + "devOptional": true }, "node_modules/which-pm": { "version": "2.0.0", @@ -31958,7 +32247,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, + "devOptional": true, "engines": { "node": ">= 6" } @@ -32124,30 +32413,37 @@ "version": "0.0.1", "license": "MIT", "dependencies": { - "@types/wordpress__block-editor": "^11.5.11", - "@types/wordpress__block-library": "^2.6.3" + "@types/wordpress__block-editor": "^11.5.12", + "@types/wordpress__block-library": "^2.6.3", + "@types/wordpress__components": "^23.0.11" }, "devDependencies": { "@testing-library/dom": "^9.3.4", "@testing-library/react": "^14.2.1", "@testing-library/user-event": "^14.5.2", "@types/jest": "^29.0.3", - "@wordpress/block-editor": "^12.21.0", - "@wordpress/data": "^9.23.0", "jest": "^29.0.3", "ts-jest": "^29.0.1", "typescript": "^5.4.2", "whatwg-fetch": "^3.6.2" }, "peerDependencies": { + "@10up/block-components": "^1.18.0", "@wordpress/block-editor": "^12.21.0", + "@wordpress/components": "^27.1.0", "@wordpress/data": "^9.23.0", "react": ">= 17.0.2" }, "peerDependenciesMeta": { + "@10up/block-components": { + "optional": true + }, "@wordpress/block-editor": { "optional": true }, + "@wordpress/components": { + "optional": true + }, "@wordpress/data": { "optional": true } diff --git a/packages/primitives/package.json b/packages/primitives/package.json index 9b8c027d8..98635139d 100644 --- a/packages/primitives/package.json +++ b/packages/primitives/package.json @@ -12,6 +12,11 @@ "types": "./dist/src/primitives/rich-text.d.ts", "default": "./dist/src/primitives/rich-text.js" }, + "./image": { + "block-editor": "./dist/src/block-editor/image.js", + "types": "./dist/src/primitives/image.d.ts", + "default": "./dist/src/primitives/image.js" + }, "./block": { "block-editor": "./dist/src/block-editor/block.js", "types": "./dist/src/primitives/block.d.ts", @@ -43,7 +48,8 @@ }, "dependencies": { "@types/wordpress__block-library": "^2.6.3", - "@types/wordpress__block-editor": "^11.5.11" + "@types/wordpress__block-editor": "^11.5.12", + "@types/wordpress__components": "^23.0.11" }, "devDependencies": { "@testing-library/dom": "^9.3.4", @@ -53,14 +59,15 @@ "jest": "^29.0.3", "ts-jest": "^29.0.1", "typescript": "^5.4.2", - "whatwg-fetch": "^3.6.2", - "@wordpress/block-editor": "^12.21.0", - "@wordpress/data": "^9.23.0" + "whatwg-fetch": "^3.6.2" }, "peerDependencies": { "react": ">= 17.0.2", "@wordpress/block-editor": "^12.21.0", - "@wordpress/data": "^9.23.0" + "@wordpress/data": "^9.23.0", + "@wordpress/components": "^27.1.0", + "@10up/block-components" : "^1.18.0", + "@wordpress/blob": "^3.53.0" }, "peerDependenciesMeta": { "@wordpress/block-editor": { @@ -68,6 +75,15 @@ }, "@wordpress/data": { "optional": true + }, + "@wordpress/components": { + "optional": true + }, + "@wordpress/blob": { + "optional": true + }, + "@10up/block-components": { + "optional": true } } } diff --git a/packages/primitives/src/block-editor/image.tsx b/packages/primitives/src/block-editor/image.tsx new file mode 100644 index 000000000..658cbc762 --- /dev/null +++ b/packages/primitives/src/block-editor/image.tsx @@ -0,0 +1,73 @@ +// @ts-expect-error +import { BlockControls, MediaReplaceFlow } from '@wordpress/block-editor'; +import { Placeholder, Spinner, ToolbarGroup } from '@wordpress/components'; +import { isBlobURL } from '@wordpress/blob'; +import { ImagePrimitive, ImagePrimitiveValue } from '../shared/types.js'; +import { useBlockPrimitiveProps } from './block.js'; + +const Image = ({ + name, + onPrimitiveSelect, + mediaURL, + mediaId, + title = 'Edit Media', + value, + accept = 'image/*,video/*', + allowedTypes = ['image'], + ...rest +}: ImagePrimitive) => { + const { attributes, setAttributes } = useBlockPrimitiveProps(); + + const defaultOnPrimitive: ImagePrimitive['onPrimitiveSelect'] = ( + _name, + { id, url, alt }, + _setAttributes, + ) => _setAttributes({ [_name]: { id, url, alt } }); + const _onPrimitiveSelect = onPrimitiveSelect ?? defaultOnPrimitive; + + const onSelect: MediaReplaceFlow['onSelect'] = (value) => { + _onPrimitiveSelect(name, value, setAttributes, attributes); + }; + + const attribute: ImagePrimitiveValue = attributes[name] ?? value ?? {}; + const { id, url, alt } = attribute; + + const isUploading = !id && isBlobURL(url); + + return ( + <> + {/* @ts-expect-error */} + + {/* @ts-expect-error */} + + + + + + {!id ? ( + + {isUploading && ( + + )} + + ) : null} + {/* TOOD: Maybe just use the front-end primitive here */} + {!isUploading && id ? {alt : null} + + ); +}; + +export default Image; diff --git a/packages/primitives/src/primitives/image.tsx b/packages/primitives/src/primitives/image.tsx new file mode 100644 index 000000000..fd6ad23a9 --- /dev/null +++ b/packages/primitives/src/primitives/image.tsx @@ -0,0 +1,13 @@ +import { ImagePrimitive } from '../shared/types.js'; + +const Image = ({ value }: ImagePrimitive) => { + if (typeof value === 'undefined') { + return null; + } + + const { url, alt } = value; + + return {alt; +}; + +export default Image; diff --git a/packages/primitives/src/shared/types.ts b/packages/primitives/src/shared/types.ts index d04fc59eb..00adf92aa 100644 --- a/packages/primitives/src/shared/types.ts +++ b/packages/primitives/src/shared/types.ts @@ -1,4 +1,48 @@ import type { RichText } from '@wordpress/block-editor'; +import type { DropdownProps } from '@wordpress/components/build-types/dropdown/types.js'; + +export type Attributes = Record; +export type SetAttributes = (attributes: Attributes) => void; + +export type MediaReplaceFlow = { + mediaURL: string; + mediaId?: number; + mediaIds?: number[]; + allowedTypes: string[]; + accept: string[] | string; + onError?: (err: string) => void; + onSelect: (media: ImagePrimitiveValue) => void; + onSelectURL?: (newUrl: string) => void; + onToggleFeaturedImage?: () => void; + useFeaturedImage?: () => void; + onFilesUpload?: (files: any) => void; + name?: string | React.ReactNode; + createNotice?: () => void; + removeNotice?: () => void; + children?: React.ReactNode; + multiple?: boolean; + addToGallery?: boolean; + handleUpload?: boolean; + popoverProps?: DropdownProps['popoverProps']; +}; + +export type ImagePrimitiveValue = { + id: number; + url: string; + alt: string; +}; + +export interface ImagePrimitive extends Omit { + name: string; + title?: string; + value?: ImagePrimitiveValue; + onPrimitiveSelect?: ( + name: string, + value: Parameters['0'], + setAttributes: SetAttributes, + attributes: Attributes, + ) => void; +} export interface RichTextPrimitive extends Omit, 'onChange' | 'value'> { @@ -7,7 +51,7 @@ export interface RichTextPrimitive onPrimitiveChange?: ( name: string, value: string, - setAttributes: (attributes: Record) => void, - attributes: Record, + setAttributes: SetAttributes, + attributes: Attributes, ) => void; } diff --git a/wp/10up-theme/includes/blocks/example-block/block.json b/wp/10up-theme/includes/blocks/example-block/block.json index 318cb08f1..9660e48f5 100644 --- a/wp/10up-theme/includes/blocks/example-block/block.json +++ b/wp/10up-theme/includes/blocks/example-block/block.json @@ -10,6 +10,9 @@ "attributes":{ "title": { "type" : "string" + }, + "image": { + "type": "object" } }, "example": { diff --git a/wp/10up-theme/includes/blocks/example-block/edit.js b/wp/10up-theme/includes/blocks/example-block/edit.js index 39c76a1db..4fe069e71 100644 --- a/wp/10up-theme/includes/blocks/example-block/edit.js +++ b/wp/10up-theme/includes/blocks/example-block/edit.js @@ -7,6 +7,8 @@ import { useBlockProps } from '@wordpress/block-editor'; import RichText from '@headstartwp/blocks-primitives/rich-text'; // eslint-disable-next-line import/no-unresolved import Block from '@headstartwp/blocks-primitives/block'; +// eslint-disable-next-line import/no-unresolved +import Image from '@headstartwp/blocks-primitives/image'; /** * Edit component. @@ -35,6 +37,9 @@ const ExampleBlockEdit = (props) => { name="title" value={title} /> + +

Image 1

+ );