diff --git a/client/data/posts/use-create-new-post.ts b/client/data/posts/use-create-new-post.ts new file mode 100644 index 0000000000000..18691ac272c88 --- /dev/null +++ b/client/data/posts/use-create-new-post.ts @@ -0,0 +1,32 @@ +import { useMutation } from '@tanstack/react-query'; +import { Post } from '@wordpress/core-data'; +import { useCallback } from 'react'; +import wpcom from 'calypso/lib/wp'; +import { SiteId } from 'calypso/types'; + +export default function useCreateNewPost( mutationOptions = {} ) { + const mutation = useMutation( { + mutationFn: async ( { siteId, post }: { siteId: SiteId; post: Post } ) => + wpcom.req.post( + `/sites/${ siteId }/posts`, + { + apiNamespace: 'wp/v2', + }, + { + ...post, + status: 'publish', + } + ), + + ...mutationOptions, + } ); + + const { mutate } = mutation; + + const createNewPost = useCallback( + ( siteId: SiteId, post: Post ) => mutate( { siteId, post } ), + [ mutate ] + ); + + return { createNewPost, ...mutation }; +} diff --git a/client/package.json b/client/package.json index 3e8a509bb756c..b82f8502af137 100644 --- a/client/package.json +++ b/client/package.json @@ -39,6 +39,7 @@ "@automattic/global-styles": "workspace:^", "@automattic/help-center": "workspace:^", "@automattic/i18n-utils": "workspace:^", + "@automattic/isolated-block-editor": "2.24.x", "@automattic/js-utils": "workspace:^", "@automattic/language-picker": "workspace:^", "@automattic/languages": "workspace:^", @@ -83,6 +84,7 @@ "@wordpress/blocks": "^12.0.0", "@wordpress/components": "^23.0.0", "@wordpress/compose": "^6.0.0", + "@wordpress/core-data": "^6.11.0", "@wordpress/data": "^8.0.0", "@wordpress/dom": "^3.23.0", "@wordpress/edit-post": "^7.0.0", diff --git a/client/reader/following/main.jsx b/client/reader/following/main.jsx index 4dd5adb7295dd..c2827f5981f2d 100644 --- a/client/reader/following/main.jsx +++ b/client/reader/following/main.jsx @@ -1,3 +1,4 @@ +import config from '@automattic/calypso-config'; import AsyncLoad from 'calypso/components/async-load'; import SuggestionProvider from 'calypso/reader/search-stream/suggestion-provider'; import Stream from 'calypso/reader/stream'; @@ -12,6 +13,9 @@ function FollowingStream( { ...props } ) { + } streamSidebar={ } > diff --git a/client/reader/post-editor/index.jsx b/client/reader/post-editor/index.jsx new file mode 100644 index 0000000000000..b770de696afd8 --- /dev/null +++ b/client/reader/post-editor/index.jsx @@ -0,0 +1,79 @@ +import IsoloatedEditor, { ToolbarSlot } from '@automattic/isolated-block-editor'; +import { serialize } from '@wordpress/blocks'; +import { Button } from '@wordpress/components'; +import { select, useDispatch } from '@wordpress/data'; +import { useTranslate } from 'i18n-calypso'; +import { useSelector, useDispatch as useReduxDispatch } from 'react-redux'; +import useCreateNewPost from 'calypso/data/posts/use-create-new-post'; +import { successNotice, errorNotice } from 'calypso/state/notices/actions'; +import getPrimarySiteId from 'calypso/state/selectors/get-primary-site-id'; +import '@automattic/isolated-block-editor/build-browser/core.css'; +import './style.scss'; + +const noticeOptions = { + duration: 5000, + id: 'reader-post-editor-create-post-notice', + isDismissible: true, +}; + +function ReaderPostEditor() { + const dispatch = useDispatch(); + const translate = useTranslate(); + + // Use global redux store for Calypso state and actions + const reduxDispatch = useReduxDispatch(); + const primarySiteId = useSelector( getPrimarySiteId ); + + const { createNewPost, isLoading } = useCreateNewPost( { + onSuccess: () => { + reduxDispatch( successNotice( translate( 'Post published!' ), noticeOptions ) ); + dispatch( 'core/block-editor' ).resetBlocks( [] ); + }, + onError: ( error ) => { + const errorMessage = error?.message || translate( 'Something went wrong, please try again.' ); + reduxDispatch( errorNotice( errorMessage, noticeOptions ) ); + }, + } ); + + const editorSettings = { + iso: { + moreMenu: false, + footer: true, + }, + editor: { + bodyPlaceholder: translate( "What's on your mind?" ), + hasFixedToolbar: true, + }, + }; + + function publishPost() { + const blocks = select( 'core/block-editor' ).getBlocks(); + + if ( blocks && blocks.length > 0 ) { + createNewPost( primarySiteId, { + content: serialize( blocks ), + } ); + } + } + + return ( +
+
+ + + + + +
+
+ ); +} + +export default ReaderPostEditor; diff --git a/client/reader/post-editor/style.scss b/client/reader/post-editor/style.scss new file mode 100644 index 0000000000000..c4bab9fb3ceea --- /dev/null +++ b/client/reader/post-editor/style.scss @@ -0,0 +1,18 @@ +.reader-post-editor { + margin-bottom: 80px; + + .components-menu-items__item-icon { + // Make sure menu icons display at the intended size. + height: 24px; + width: 24px; + } +} + +.reader-post-editor__editor { + margin-bottom: 12px; + width: 100%; +} + +.reader-post-editor__publish-button { + float: right; +} diff --git a/config/development.json b/config/development.json index 0758092eed67e..4b4264b7c6433 100644 --- a/config/development.json +++ b/config/development.json @@ -159,6 +159,7 @@ "push-notifications": true, "reader": true, "reader/comment-polling": false, + "reader/editor": true, "reader/full-errors": true, "reader/list-management": true, "reader/public-tag-pages": true, diff --git a/package.json b/package.json index f39cb820fcd5a..579a6b50f26bb 100644 --- a/package.json +++ b/package.json @@ -354,7 +354,7 @@ "@wordpress/jest-console": "6.6.0", "@wordpress/jest-preset-default": "10.4.0", "@wordpress/jest-puppeteer-axe": "5.6.0", - "@wordpress/keyboard-shortcuts": "4.0.0", + "@wordpress/keyboard-shortcuts": "4.9.0", "@wordpress/keycodes": "3.23.0", "@wordpress/lazy-import": "1.10.0", "@wordpress/library-export-default-webpack-plugin": "2.9.0", @@ -387,7 +387,8 @@ "@wordpress/viewport": "5.0.0", "@wordpress/warning": "2.23.0", "@wordpress/widgets": "3.0.0", - "@wordpress/wordcount": "3.23.0" + "@wordpress/wordcount": "3.23.0", + "framer-motion": "10.11.6" }, "packageManager": "yarn@3.2.3", "dependenciesMeta": { diff --git a/yarn.lock b/yarn.lock index f8c818dd45362..4ef62064ad20b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -895,6 +895,73 @@ __metadata: languageName: unknown linkType: soft +"@automattic/isolated-block-editor@npm:2.24.x": + version: 2.24.0 + resolution: "@automattic/isolated-block-editor@npm:2.24.0" + dependencies: + "@wordpress/a11y": 3.31.0 + "@wordpress/annotations": 2.31.0 + "@wordpress/api-fetch": 6.28.0 + "@wordpress/autop": 3.31.0 + "@wordpress/base-styles": 4.22.0 + "@wordpress/blob": 3.31.0 + "@wordpress/block-editor": 11.8.0 + "@wordpress/block-library": 8.8.0 + "@wordpress/block-serialization-default-parser": 4.31.0 + "@wordpress/block-serialization-spec-parser": 4.31.0 + "@wordpress/blocks": 12.8.0 + "@wordpress/components": 23.8.0 + "@wordpress/compose": 6.8.0 + "@wordpress/core-data": 6.8.0 + "@wordpress/data": 9.1.0 + "@wordpress/data-controls": 3.0.0 + "@wordpress/date": 4.31.0 + "@wordpress/deprecated": 3.31.0 + "@wordpress/dom": 3.31.0 + "@wordpress/dom-ready": 3.31.0 + "@wordpress/edit-post": 7.8.0 + "@wordpress/editor": 13.8.0 + "@wordpress/element": 5.8.0 + "@wordpress/escape-html": 2.31.0 + "@wordpress/format-library": 4.8.0 + "@wordpress/hooks": 3.31.0 + "@wordpress/html-entities": 3.31.0 + "@wordpress/i18n": 4.31.0 + "@wordpress/icons": 9.22.0 + "@wordpress/interface": 5.8.0 + "@wordpress/is-shallow-equal": 4.31.0 + "@wordpress/keyboard-shortcuts": 4.8.0 + "@wordpress/keycodes": 3.31.0 + "@wordpress/list-reusable-blocks": 4.8.0 + "@wordpress/media-utils": 4.22.0 + "@wordpress/notices": 3.31.0 + "@wordpress/plugins": 5.8.0 + "@wordpress/primitives": 3.29.0 + "@wordpress/priority-queue": 2.31.0 + "@wordpress/react-i18n": 3.29.0 + "@wordpress/redux-routine": 4.31.0 + "@wordpress/reusable-blocks": 4.8.0 + "@wordpress/rich-text": 6.8.0 + "@wordpress/server-side-render": 4.8.0 + "@wordpress/shortcode": 3.31.0 + "@wordpress/token-list": 2.31.0 + "@wordpress/url": 3.32.0 + "@wordpress/viewport": 5.8.0 + "@wordpress/warning": 2.31.0 + "@wordpress/wordcount": 3.31.0 + classnames: ^2.3.2 + debug: ^4.3.4 + lib0: ^0.2.74 + lodash: ^4.17.21 + memize: ^1.1.0 + react-autosize-textarea: ^7.1.0 + redux-undo: ^1.0.1 + uuid: ^9.0.0 + yjs: ^13.6.0 + checksum: de8d0f67364593f98759e8e50f38f39d0232d97426f36e034fb6d034037041064b64a3aa53235be52c20c5bffbb681622d6bcf1d5364f6b7c050632d414c3385 + languageName: node + linkType: hard + "@automattic/jest-circus-allure-reporter@workspace:^, @automattic/jest-circus-allure-reporter@workspace:packages/jest-circus-allure-reporter": version: 0.0.0-use.local resolution: "@automattic/jest-circus-allure-reporter@workspace:packages/jest-circus-allure-reporter" @@ -4406,71 +4473,6 @@ __metadata: languageName: node linkType: hard -"@motionone/animation@npm:^10.15.1": - version: 10.15.1 - resolution: "@motionone/animation@npm:10.15.1" - dependencies: - "@motionone/easing": ^10.15.1 - "@motionone/types": ^10.15.1 - "@motionone/utils": ^10.15.1 - tslib: ^2.3.1 - checksum: 0b34079d1f8bbc342baf94ce849175edbe36aaee83e7167343e5f4dc73c22b34cdb3ad6dba2fd65f27cc5a516ca759791ceaa549a0b4ee4f34e76a262896c853 - languageName: node - linkType: hard - -"@motionone/dom@npm:^10.15.3": - version: 10.16.2 - resolution: "@motionone/dom@npm:10.16.2" - dependencies: - "@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 - checksum: 820165454e5eec10b403897d109df3e378f17973ef68aeb76f915c5a1281d548affe03827eb2f7a5906b4a50cf59160c73bde27179c38e38cf83d6c2b33e8e96 - languageName: node - linkType: hard - -"@motionone/easing@npm:^10.15.1": - version: 10.15.1 - resolution: "@motionone/easing@npm:10.15.1" - dependencies: - "@motionone/utils": ^10.15.1 - tslib: ^2.3.1 - checksum: e7a8043b9a0d9673a725b1b6c49904582c5bbc34ee63ed36a04eff280f8d076ebbea5f0e269b36bad1a29a20d5843c8db0729764f98304b44a05f89958ef95e7 - languageName: node - linkType: hard - -"@motionone/generators@npm:^10.15.1": - version: 10.15.1 - resolution: "@motionone/generators@npm:10.15.1" - dependencies: - "@motionone/types": ^10.15.1 - "@motionone/utils": ^10.15.1 - tslib: ^2.3.1 - checksum: 247478a225849ec6019092d61f04cd13defff7e63aff706087af6b12dd424fbc374f5277f8e3825b9b2ee7527003dddcb9a6d4214bcaf42be9904bd4420bb0c1 - languageName: node - linkType: hard - -"@motionone/types@npm:^10.15.1": - version: 10.15.1 - resolution: "@motionone/types@npm:10.15.1" - checksum: e1cf3c980c835d583190bf7d99e549b0523da14c797a07ccc82da932b7c3f2930cedd429d737ecd80da4df0290588e6c2c5bf3d14c9e77c45e2a3d92bd50ad8c - languageName: node - linkType: hard - -"@motionone/utils@npm:^10.15.1": - version: 10.15.1 - resolution: "@motionone/utils@npm:10.15.1" - dependencies: - "@motionone/types": ^10.15.1 - hey-listen: ^1.0.8 - tslib: ^2.3.1 - checksum: 6bb1cbc90593fe67d91c4c63ef2c2f33862e842fc8c7c51401adc5281d5267437604e8c396d3d9d033f544f61a9f0983113c9b1822abcd4250de974adc6ac65a - languageName: node - linkType: hard - "@ndelangen/get-tarball@npm:^3.0.7": version: 3.0.7 resolution: "@ndelangen/get-tarball@npm:3.0.7" @@ -7731,6 +7733,21 @@ __metadata: languageName: node linkType: hard +"@wordpress/annotations@npm:2.23.0": + version: 2.23.0 + resolution: "@wordpress/annotations@npm:2.23.0" + dependencies: + "@babel/runtime": ^7.16.0 + "@wordpress/data": ^8.0.0 + "@wordpress/hooks": ^3.23.0 + "@wordpress/i18n": ^4.23.0 + "@wordpress/rich-text": ^6.0.0 + rememo: ^4.0.0 + uuid: ^8.3.0 + checksum: 356b610a786ecbb1b9687471422c60a64a9d108c2466a02f3dd935a8f7ed59beaf73fbd1901d946b8c58df5d814570193cfbf6c9eac360124c806d73c990045e + languageName: node + linkType: hard + "@wordpress/api-fetch@npm:6.20.0": version: 6.20.0 resolution: "@wordpress/api-fetch@npm:6.20.0" @@ -7907,6 +7924,16 @@ __metadata: languageName: node linkType: hard +"@wordpress/block-serialization-spec-parser@npm:4.23.0": + version: 4.23.0 + resolution: "@wordpress/block-serialization-spec-parser@npm:4.23.0" + dependencies: + pegjs: ^0.10.0 + phpegjs: ^1.0.0-beta7 + checksum: ddf3526bd1610e0df8933ab78743e0e52bcfe2ee95fa82d0b1db3be5b7482d8bebe34a6514c52357abf69f8d3950808b004559c079a3976a5a938997475390c8 + languageName: node + linkType: hard + "@wordpress/blocks@npm:12.0.0": version: 12.0.0 resolution: "@wordpress/blocks@npm:12.0.0" @@ -8359,6 +8386,29 @@ __metadata: languageName: node linkType: hard +"@wordpress/format-library@npm:4.0.0": + version: 4.0.0 + resolution: "@wordpress/format-library@npm:4.0.0" + dependencies: + "@babel/runtime": ^7.16.0 + "@wordpress/a11y": ^3.23.0 + "@wordpress/block-editor": ^11.0.0 + "@wordpress/components": ^23.0.0 + "@wordpress/compose": ^6.0.0 + "@wordpress/data": ^8.0.0 + "@wordpress/element": ^5.0.0 + "@wordpress/html-entities": ^3.23.0 + "@wordpress/i18n": ^4.23.0 + "@wordpress/icons": ^9.14.0 + "@wordpress/rich-text": ^6.0.0 + "@wordpress/url": ^3.24.0 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: a25a5f1995e07c1348819c492e1a57fb4346674a0b586f71a2446142c687296de66752eaaa7482d8a4172544fa8bda2b91c2770100368b88130e6ceddc548e0d + languageName: node + linkType: hard + "@wordpress/hooks@npm:3.23.0": version: 3.23.0 resolution: "@wordpress/hooks@npm:3.23.0" @@ -8462,18 +8512,18 @@ __metadata: languageName: node linkType: hard -"@wordpress/keyboard-shortcuts@npm:4.0.0": - version: 4.0.0 - resolution: "@wordpress/keyboard-shortcuts@npm:4.0.0" +"@wordpress/keyboard-shortcuts@npm:4.9.0": + version: 4.9.0 + resolution: "@wordpress/keyboard-shortcuts@npm:4.9.0" dependencies: "@babel/runtime": ^7.16.0 - "@wordpress/data": ^8.0.0 - "@wordpress/element": ^5.0.0 - "@wordpress/keycodes": ^3.23.0 - rememo: ^4.0.0 + "@wordpress/data": ^9.2.0 + "@wordpress/element": ^5.9.0 + "@wordpress/keycodes": ^3.32.0 + rememo: ^4.0.2 peerDependencies: react: ^18.0.0 - checksum: 60aec720db7ca40056285c5119170562cdb63168bc66ce2cb888fbc81a123a8d1d62d18058311d82ca7d8bee7dd6df5ba78ce8bc2111d6f356ba6042d91d9a6e + checksum: a1dcfefac9873ff691dcdefed2ce2e2aaf49d061f034cf110a092dae95ebbdce61500e1d7631811a559434978d9fedd3e24fb6b93d72ffe64cd6e0cdbbb1e90a languageName: node linkType: hard @@ -8489,6 +8539,24 @@ __metadata: languageName: node linkType: hard +"@wordpress/list-reusable-blocks@npm:4.0.0": + version: 4.0.0 + resolution: "@wordpress/list-reusable-blocks@npm:4.0.0" + dependencies: + "@babel/runtime": ^7.16.0 + "@wordpress/api-fetch": ^6.20.0 + "@wordpress/components": ^23.0.0 + "@wordpress/compose": ^6.0.0 + "@wordpress/element": ^5.0.0 + "@wordpress/i18n": ^4.23.0 + change-case: ^4.1.2 + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 8a9ecdbe718008d6416b7c870d7dbab06a1161880f1997d2ec6e49c547bd2bfe6d57671607b2679169d672d9e41459f274ec2df4f322be0604458d2e80f783c4 + languageName: node + linkType: hard + "@wordpress/media-utils@npm:4.14.0": version: 4.14.0 resolution: "@wordpress/media-utils@npm:4.14.0" @@ -10819,6 +10887,7 @@ __metadata: "@automattic/global-styles": "workspace:^" "@automattic/help-center": "workspace:^" "@automattic/i18n-utils": "workspace:^" + "@automattic/isolated-block-editor": 2.24.x "@automattic/js-utils": "workspace:^" "@automattic/language-picker": "workspace:^" "@automattic/languages": "workspace:^" @@ -10873,6 +10942,7 @@ __metadata: "@wordpress/blocks": ^12.0.0 "@wordpress/components": ^23.0.0 "@wordpress/compose": ^6.0.0 + "@wordpress/core-data": ^6.11.0 "@wordpress/data": ^8.0.0 "@wordpress/dom": ^3.23.0 "@wordpress/edit-post": ^7.0.0 @@ -16118,50 +16188,24 @@ __metadata: languageName: node linkType: hard -"framer-motion@npm:6.2.8": - version: 6.2.8 - resolution: "framer-motion@npm:6.2.8" +"framer-motion@npm:10.11.6": + version: 10.11.6 + resolution: "framer-motion@npm:10.11.6" dependencies: "@emotion/is-prop-valid": ^0.8.2 - framesync: 6.0.1 - hey-listen: ^1.0.8 - popmotion: 11.0.3 - style-value-types: 5.0.0 - tslib: ^2.1.0 - peerDependencies: - react: ">=16.8 || ^17.0.0 || ^18.0.0" - react-dom: ">=16.8 || ^17.0.0 || ^18.0.0" - dependenciesMeta: - "@emotion/is-prop-valid": - optional: true - checksum: 148ee1be89f214f3d4d2d0ce5592b850a5577974673a4efe8528f50ff6722e9855cf8e4fdc32036981a0d55c95d474e1ac23380634da1f2fb481b7243da66454 - languageName: node - linkType: hard - -"framer-motion@npm:^7.6.1": - version: 7.10.3 - resolution: "framer-motion@npm:7.10.3" - dependencies: - "@emotion/is-prop-valid": ^0.8.2 - "@motionone/dom": ^10.15.3 - hey-listen: ^1.0.8 - tslib: 2.4.0 + tslib: ^2.4.0 peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependenciesMeta: "@emotion/is-prop-valid": optional: true - checksum: c2127aedc2d4f6feba17305b2f67f931de3869eb8c87e16e3620f03cd9745f7091f8ecc974288525da20df205fa564573eddc937dfce4351330ca900973f87e6 - languageName: node - linkType: hard - -"framesync@npm:6.0.1": - version: 6.0.1 - resolution: "framesync@npm:6.0.1" - dependencies: - tslib: ^2.1.0 - checksum: ce84ce548a8612be070204b9cf3ce7258acead2d51df05586995340e501d1439dfc1f9402ede921a9c0dde854d80fd46e97c699a3657f8d7abd5bc705553bf2b + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + checksum: ae9cd16d0ca425ec81c65385b5b39a28e8d55c2e01159383fa903ce6854987e87526cd9bd59a14a19067844fa302edf2cd3a360a8b868cd40f98a96b909cbd76 languageName: node linkType: hard @@ -17260,13 +17304,6 @@ __metadata: languageName: node linkType: hard -"hey-listen@npm:^1.0.8": - version: 1.0.8 - resolution: "hey-listen@npm:1.0.8" - checksum: 38db3028b4756f3d536c0f6a92da53bad577ab649b06dddfd0a4d953f9a46bbc6a7f693c8c5b466a538d6d23dbc469260c848427f0de14198a2bbecbac37b39e - languageName: node - linkType: hard - "highlight-words-core@npm:^1.2.2": version: 1.2.2 resolution: "highlight-words-core@npm:1.2.2" @@ -18948,6 +18985,13 @@ __metadata: languageName: node linkType: hard +"isomorphic.js@npm:^0.2.4": + version: 0.2.5 + resolution: "isomorphic.js@npm:0.2.5" + checksum: 7cd268c8e58146a8160c8cd16596291fd1fbf3e8799a325f269accda9dc1238806e371ccef0b66fe2ad957209230c55997248d8b6d02cf2d7c575ffeb759c789 + languageName: node + linkType: hard + "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -20237,6 +20281,18 @@ __metadata: languageName: node linkType: hard +"lib0@npm:^0.2.74": + version: 0.2.78 + resolution: "lib0@npm:0.2.78" + dependencies: + isomorphic.js: ^0.2.4 + bin: + 0gentesthtml: bin/gentesthtml.js + 0serve: bin/0serve.js + checksum: d22476480469b0355ae78b017c1b23244b8be878931e11ff1aff546beb73eeab545ecd54bdc5750781205717890e0d6f0b04e07f422aeaf70ef415801cd22e6e + languageName: node + linkType: hard + "liftoff@npm:^4.0.0": version: 4.0.0 resolution: "liftoff@npm:4.0.0" @@ -23206,6 +23262,15 @@ __metadata: languageName: node linkType: hard +"pegjs@npm:^0.10.0": + version: 0.10.0 + resolution: "pegjs@npm:0.10.0" + bin: + pegjs: bin/pegjs + checksum: 51f2aee312cd506c37c21a88fee2d921ccae81697c7aa3e61f0ad8e370d8c37e2a86680993fce405f53337a56ad471f9e7f4377b2eb3c780d5cf6ae8a16ce0a5 + languageName: node + linkType: hard + "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -23254,6 +23319,15 @@ __metadata: languageName: unknown linkType: soft +"phpegjs@npm:^1.0.0-beta7": + version: 1.0.0-beta7 + resolution: "phpegjs@npm:1.0.0-beta7" + peerDependencies: + pegjs: ^0.10.0 + checksum: 15cdc5b0cebc4958771c1c651e54e6a4e439c08998eca74f7c91294e364061a1e9c3050de80192f43197522bedd49489d02b200c34dcc8716209603dda1f7dab + languageName: node + linkType: hard + "phpunserialize@npm:^1.1.0": version: 1.1.0 resolution: "phpunserialize@npm:1.1.0" @@ -23437,18 +23511,6 @@ __metadata: languageName: node linkType: hard -"popmotion@npm:11.0.3": - version: 11.0.3 - resolution: "popmotion@npm:11.0.3" - dependencies: - framesync: 6.0.1 - hey-listen: ^1.0.8 - style-value-types: 5.0.0 - tslib: ^2.1.0 - checksum: ed196cf034c199a2ab6095f047924b38e24f386c33a182970ad6e1769002b72adff34a72ba7ab2cf34ff5bbfd711ef4caf2e9843ebb7a5c9cafa27c50e525f70 - languageName: node - linkType: hard - "portfinder@npm:^1.0.28": version: 1.0.28 resolution: "portfinder@npm:1.0.28" @@ -25391,6 +25453,13 @@ __metadata: languageName: node linkType: hard +"redux-undo@npm:^1.0.1": + version: 1.0.1 + resolution: "redux-undo@npm:1.0.1" + checksum: 0f882276c168f2c818be5e42e81f2d071ff48e8374bef4ce76859bf0ffc96e752039677dd36bbeed309b1635af236efa921abaea93f0ee45be71a6dd74581a09 + languageName: node + linkType: hard + "redux@npm:^4.0.4, redux@npm:^4.0.5, redux@npm:^4.1.2, redux@npm:^4.2.0, redux@npm:^4.2.1": version: 4.2.1 resolution: "redux@npm:4.2.1" @@ -26180,7 +26249,7 @@ __metadata: languageName: node linkType: hard -"rememo@npm:^4.0.0": +"rememo@npm:^4.0.0, rememo@npm:^4.0.2": version: 4.0.2 resolution: "rememo@npm:4.0.2" checksum: de253eda9eb8d4b9d8f7e0fce16eb7e2a2c547e59bdb332e7dde326b74482e8f1fb5bca793df699f6f6cccf67e480fdd7c6fc7b8d4d180e6670fbeb4b6371853 @@ -28123,16 +28192,6 @@ __metadata: languageName: node linkType: hard -"style-value-types@npm:5.0.0": - version: 5.0.0 - resolution: "style-value-types@npm:5.0.0" - dependencies: - hey-listen: ^1.0.8 - tslib: ^2.1.0 - checksum: a7b693269d48c0cab73da6c88eade845e71b5f330541a9ccb6a065468739d9bafdeb34f94fb89581931371275846da53e35989218cbc0c2d1a38f127e4d765fd - languageName: node - linkType: hard - "stylehacks@npm:^5.0.1": version: 5.0.1 resolution: "stylehacks@npm:5.0.1" @@ -29123,14 +29182,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.4.0": - version: 2.4.0 - resolution: "tslib@npm:2.4.0" - checksum: eb19bda3ae545b03caea6a244b34593468e23d53b26bf8649fbc20fce43e9b21a71127fd6d2b9662c0fe48ee6ff668ead48fd00d3b88b2b716b1c12edae25b5d - languageName: node - linkType: hard - -"tslib@npm:>=2.3.0, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0": +"tslib@npm:>=2.3.0, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0": version: 2.5.3 resolution: "tslib@npm:2.5.3" checksum: 4cb1817d34fae5b27d146e6c4a468d4155097d95c1335d0bc9690f11f33e63844806bf4ed6d97c30c72b8d85261b66cbbe16d871d9c594ac05701ec83e62a607 @@ -31442,6 +31494,15 @@ __metadata: languageName: node linkType: hard +"yjs@npm:^13.6.0": + version: 13.6.6 + resolution: "yjs@npm:13.6.6" + dependencies: + lib0: ^0.2.74 + checksum: 0caa6eec90d88c516b947127ae6630789a1164fc281da6b36741a66bf274ef2a2b9d8fce414bbeb42107bc26ba9e5b02c6671cdbdb56dee246c34171932afdbe + languageName: node + linkType: hard + "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0"