From 659063b3355457865a2d4470abeb8c6ce6d7c651 Mon Sep 17 00:00:00 2001 From: Frederik Bolding Date: Tue, 13 Dec 2022 15:37:20 +0100 Subject: [PATCH] [FLASK] Allow Snaps UI to use Markdown for text formatting (#16911) * Allow Snaps UI to use Markdown for text formatting * Fix yarn audit and dedupe errors * Update LavaMoat policies * Fix lint * Add paragraph wrapper component * Fix lint --- lavamoat/browserify/flask/policy.json | 119 +++++++++++++++ lavamoat/build-system/policy.json | 136 +++++++++--------- package.json | 2 + ui/components/app/app-components.scss | 1 + .../app/flask/snap-ui-markdown/index.js | 1 + .../app/flask/snap-ui-markdown/index.scss | 7 + .../snap-ui-markdown/snap-ui-markdown.js | 23 +++ .../snap-ui-renderer/snap-ui-renderer.js | 5 +- .../safe-component-list.js | 2 + yarn.lock | 107 ++++++++++++-- 10 files changed, 322 insertions(+), 81 deletions(-) create mode 100644 ui/components/app/flask/snap-ui-markdown/index.js create mode 100644 ui/components/app/flask/snap-ui-markdown/index.scss create mode 100644 ui/components/app/flask/snap-ui-markdown/snap-ui-markdown.js diff --git a/lavamoat/browserify/flask/policy.json b/lavamoat/browserify/flask/policy.json index 57ba6ae23..7830d8e18 100644 --- a/lavamoat/browserify/flask/policy.json +++ b/lavamoat/browserify/flask/policy.json @@ -5413,6 +5413,120 @@ "proxyquire>fill-keys>is-object": true } }, + "react-markdown": { + "globals": { + "console.warn": true + }, + "packages": { + "prop-types": true, + "react": true, + "react-markdown>comma-separated-tokens": true, + "react-markdown>property-information": true, + "react-markdown>react-is": true, + "react-markdown>remark-parse": true, + "react-markdown>remark-rehype": true, + "react-markdown>space-separated-tokens": true, + "react-markdown>style-to-object": true, + "react-markdown>unified": true, + "react-markdown>unist-util-visit": true, + "react-markdown>vfile": true + } + }, + "react-markdown>property-information": { + "packages": { + "watchify>xtend": true + } + }, + "react-markdown>react-is": { + "globals": { + "console": true + } + }, + "react-markdown>remark-parse": { + "packages": { + "react-markdown>remark-parse>mdast-util-from-markdown": true + } + }, + "react-markdown>remark-parse>mdast-util-from-markdown": { + "packages": { + "react-markdown>remark-parse>mdast-util-from-markdown>mdast-util-to-string": true, + "react-markdown>remark-parse>mdast-util-from-markdown>micromark": true, + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities": true, + "react-markdown>vfile>unist-util-stringify-position": true + } + }, + "react-markdown>remark-parse>mdast-util-from-markdown>micromark": { + "packages": { + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities": true + } + }, + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities": { + "globals": { + "document.createElement": true + } + }, + "react-markdown>remark-rehype": { + "packages": { + "react-markdown>remark-rehype>mdast-util-to-hast": true + } + }, + "react-markdown>remark-rehype>mdast-util-to-hast": { + "globals": { + "console.warn": true + }, + "packages": { + "react-markdown>remark-rehype>mdast-util-to-hast>mdast-util-definitions": true, + "react-markdown>remark-rehype>mdast-util-to-hast>mdurl": true, + "react-markdown>remark-rehype>mdast-util-to-hast>unist-builder": true, + "react-markdown>remark-rehype>mdast-util-to-hast>unist-util-generated": true, + "react-markdown>remark-rehype>mdast-util-to-hast>unist-util-position": true, + "react-markdown>unist-util-visit": true + } + }, + "react-markdown>remark-rehype>mdast-util-to-hast>mdast-util-definitions": { + "packages": { + "react-markdown>unist-util-visit": true + } + }, + "react-markdown>style-to-object": { + "packages": { + "react-markdown>style-to-object>inline-style-parser": true + } + }, + "react-markdown>unified": { + "packages": { + "jsdom>request>extend": true, + "react-markdown>unified>bail": true, + "react-markdown>unified>is-buffer": true, + "react-markdown>unified>is-plain-obj": true, + "react-markdown>unified>trough": true, + "react-markdown>vfile": true + } + }, + "react-markdown>unist-util-visit": { + "packages": { + "react-markdown>unist-util-visit>unist-util-visit-parents": true + } + }, + "react-markdown>unist-util-visit>unist-util-visit-parents": { + "packages": { + "react-markdown>unist-util-visit>unist-util-is": true + } + }, + "react-markdown>vfile": { + "packages": { + "browserify>path-browserify": true, + "browserify>process": true, + "react-markdown>vfile>is-buffer": true, + "react-markdown>vfile>vfile-message": true, + "vinyl>replace-ext": true + } + }, + "react-markdown>vfile>vfile-message": { + "packages": { + "react-markdown>vfile>unist-util-stringify-position": true + } + }, "react-popper": { "globals": { "document": true @@ -5777,6 +5891,11 @@ "browserify>buffer": true } }, + "vinyl>replace-ext": { + "packages": { + "browserify>path-browserify": true + } + }, "web3": { "globals": { "XMLHttpRequest": true diff --git a/lavamoat/build-system/policy.json b/lavamoat/build-system/policy.json index fbb3d2d47..f5fbc8b9d 100644 --- a/lavamoat/build-system/policy.json +++ b/lavamoat/build-system/policy.json @@ -1033,16 +1033,6 @@ "@metamask/jazzicon>color>color-convert>color-name": true } }, - "@storybook/addon-essentials>@storybook/addon-docs>remark-slug>unist-util-visit": { - "packages": { - "@storybook/addon-essentials>@storybook/addon-docs>remark-slug>unist-util-visit>unist-util-visit-parents": true - } - }, - "@storybook/addon-essentials>@storybook/addon-docs>remark-slug>unist-util-visit>unist-util-visit-parents": { - "packages": { - "stylelint>@stylelint/postcss-markdown>unist-util-find-all-after>unist-util-is": true - } - }, "@storybook/api>telejson>is-symbol": { "packages": { "string.prototype.matchall>has-symbols": true @@ -6363,6 +6353,64 @@ "define": true } }, + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities": { + "packages": { + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities>character-entities": true, + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities>character-entities-legacy": true, + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities>character-reference-invalid": true, + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities>is-alphanumerical": true, + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities>is-hexadecimal": true, + "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-decimal": true + } + }, + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities>is-alphanumerical": { + "packages": { + "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-alphabetical": true, + "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-decimal": true + } + }, + "react-markdown>unified": { + "packages": { + "jsdom>request>extend": true, + "react-markdown>unified>bail": true, + "react-markdown>unified>is-buffer": true, + "react-markdown>unified>is-plain-obj": true, + "react-markdown>unified>trough": true, + "react-markdown>vfile": true + } + }, + "react-markdown>unist-util-visit": { + "packages": { + "react-markdown>unist-util-visit>unist-util-visit-parents": true + } + }, + "react-markdown>unist-util-visit>unist-util-visit-parents": { + "packages": { + "react-markdown>unist-util-visit>unist-util-is": true + } + }, + "react-markdown>vfile": { + "builtin": { + "path.basename": true, + "path.dirname": true, + "path.extname": true, + "path.join": true, + "path.sep": true + }, + "globals": { + "process.cwd": true + }, + "packages": { + "react-markdown>vfile>is-buffer": true, + "react-markdown>vfile>vfile-message": true, + "vinyl>replace-ext": true + } + }, + "react-markdown>vfile>vfile-message": { + "packages": { + "react-markdown>vfile>unist-util-stringify-position": true + } + }, "readable-stream": { "builtin": { "events.EventEmitter": true, @@ -6695,13 +6743,14 @@ }, "stylelint>@stylelint/postcss-markdown>remark": { "packages": { + "react-markdown>unified": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-stringify": true, - "stylelint>@stylelint/postcss-markdown>remark>unified": true + "stylelint>@stylelint/postcss-markdown>remark>remark-stringify": true } }, "stylelint>@stylelint/postcss-markdown>remark>remark-parse": { "packages": { + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>ccount": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>collapse-white-space": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-alphabetical": true, @@ -6709,7 +6758,6 @@ "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-whitespace-character": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-word-character": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>markdown-escapes": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>repeat-string": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>state-toggle": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>trim": true, @@ -6720,22 +6768,6 @@ "watchify>xtend": true } }, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities": { - "packages": { - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-decimal": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities>character-entities": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities>character-entities-legacy": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities>character-reference-invalid": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities>is-alphanumerical": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities>is-hexadecimal": true - } - }, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities>is-alphanumerical": { - "packages": { - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-alphabetical": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-decimal": true - } - }, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>unherit": { "packages": { "pumpify>inherits": true, @@ -6744,16 +6776,16 @@ }, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>unist-util-remove-position": { "packages": { - "@storybook/addon-essentials>@storybook/addon-docs>remark-slug>unist-util-visit": true + "react-markdown>unist-util-visit": true } }, "stylelint>@stylelint/postcss-markdown>remark>remark-stringify": { "packages": { + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>ccount": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-decimal": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-whitespace-character": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>markdown-escapes": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>repeat-string": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>state-toggle": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>unherit": true, @@ -6772,53 +6804,21 @@ }, "stylelint>@stylelint/postcss-markdown>remark>remark-stringify>mdast-util-compact": { "packages": { - "@storybook/addon-essentials>@storybook/addon-docs>remark-slug>unist-util-visit": true + "react-markdown>unist-util-visit": true } }, "stylelint>@stylelint/postcss-markdown>remark>remark-stringify>stringify-entities": { "packages": { + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities>character-entities-legacy": true, + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities>is-alphanumerical": true, + "react-markdown>remark-parse>mdast-util-from-markdown>parse-entities>is-hexadecimal": true, "stylelint>@stylelint/postcss-markdown>remark>remark-parse>is-decimal": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities>character-entities-legacy": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities>is-alphanumerical": true, - "stylelint>@stylelint/postcss-markdown>remark>remark-parse>parse-entities>is-hexadecimal": true, "stylelint>@stylelint/postcss-markdown>remark>remark-stringify>stringify-entities>character-entities-html4": true } }, - "stylelint>@stylelint/postcss-markdown>remark>unified": { - "packages": { - "jsdom>request>extend": true, - "stylelint>@stylelint/postcss-markdown>remark>unified>bail": true, - "stylelint>@stylelint/postcss-markdown>remark>unified>is-buffer": true, - "stylelint>@stylelint/postcss-markdown>remark>unified>is-plain-obj": true, - "stylelint>@stylelint/postcss-markdown>remark>unified>trough": true, - "stylelint>@stylelint/postcss-markdown>remark>unified>vfile": true - } - }, - "stylelint>@stylelint/postcss-markdown>remark>unified>vfile": { - "builtin": { - "path.basename": true, - "path.dirname": true, - "path.extname": true, - "path.join": true, - "path.sep": true - }, - "globals": { - "process.cwd": true - }, - "packages": { - "stylelint>@stylelint/postcss-markdown>remark>unified>vfile>is-buffer": true, - "stylelint>@stylelint/postcss-markdown>remark>unified>vfile>vfile-message": true, - "vinyl>replace-ext": true - } - }, - "stylelint>@stylelint/postcss-markdown>remark>unified>vfile>vfile-message": { - "packages": { - "stylelint>@stylelint/postcss-markdown>remark>unified>vfile>unist-util-stringify-position": true - } - }, "stylelint>@stylelint/postcss-markdown>unist-util-find-all-after": { "packages": { - "stylelint>@stylelint/postcss-markdown>unist-util-find-all-after>unist-util-is": true + "react-markdown>unist-util-visit>unist-util-is": true } }, "stylelint>autoprefixer": { diff --git a/package.json b/package.json index 09854b447..e51f9d863 100644 --- a/package.json +++ b/package.json @@ -141,6 +141,7 @@ "regenerator-runtime@^0.13.4": "patch:regenerator-runtime@npm%3A0.13.7#./.yarn/patches/regenerator-runtime-npm-0.13.7-41bcbe64ea.patch", "regenerator-runtime@^0.13.7": "patch:regenerator-runtime@npm%3A0.13.7#./.yarn/patches/regenerator-runtime-npm-0.13.7-41bcbe64ea.patch", "regenerator-runtime@^0.11.0": "patch:regenerator-runtime@npm%3A0.13.7#./.yarn/patches/regenerator-runtime-npm-0.13.7-41bcbe64ea.patch", + "trim": "^0.0.3", "@babel/runtime@^7.5.5": "patch:@babel/runtime@npm%3A7.18.9#./.yarn/patches/@babel-runtime-npm-7.18.9-28ca6b5f61.patch", "@babel/runtime@^7.7.6": "patch:@babel/runtime@npm%3A7.18.9#./.yarn/patches/@babel-runtime-npm-7.18.9-28ca6b5f61.patch", "@babel/runtime@^7.9.2": "patch:@babel/runtime@npm%3A7.18.9#./.yarn/patches/@babel-runtime-npm-7.18.9-28ca6b5f61.patch", @@ -305,6 +306,7 @@ "react-dom": "^16.12.0", "react-idle-timer": "^4.2.5", "react-inspector": "^2.3.0", + "react-markdown": "^6.0.3", "react-popper": "^2.2.3", "react-redux": "^7.2.0", "react-responsive-carousel": "^3.2.21", diff --git a/ui/components/app/app-components.scss b/ui/components/app/app-components.scss index d4d22e37c..b12b91c5d 100644 --- a/ui/components/app/app-components.scss +++ b/ui/components/app/app-components.scss @@ -39,6 +39,7 @@ @import 'flask/snap-install-warning/index'; @import 'flask/snap-remove-warning/index'; @import 'flask/snap-ui-renderer/index'; +@import 'flask/snap-ui-markdown/index'; @import 'flask/snap-delineator/index'; @import 'flask/snap-settings-card/index'; @import 'flask/update-snap-permission-list/index'; diff --git a/ui/components/app/flask/snap-ui-markdown/index.js b/ui/components/app/flask/snap-ui-markdown/index.js new file mode 100644 index 000000000..f0e1980c7 --- /dev/null +++ b/ui/components/app/flask/snap-ui-markdown/index.js @@ -0,0 +1 @@ +export { SnapUIMarkdown } from './snap-ui-markdown'; diff --git a/ui/components/app/flask/snap-ui-markdown/index.scss b/ui/components/app/flask/snap-ui-markdown/index.scss new file mode 100644 index 000000000..1e206c281 --- /dev/null +++ b/ui/components/app/flask/snap-ui-markdown/index.scss @@ -0,0 +1,7 @@ +.snap-ui-markdown { + &__text { + em { + font-style: revert; + } + } +} diff --git a/ui/components/app/flask/snap-ui-markdown/snap-ui-markdown.js b/ui/components/app/flask/snap-ui-markdown/snap-ui-markdown.js new file mode 100644 index 000000000..2a2645aaa --- /dev/null +++ b/ui/components/app/flask/snap-ui-markdown/snap-ui-markdown.js @@ -0,0 +1,23 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import ReactMarkdown from 'react-markdown'; +import { TYPOGRAPHY } from '../../../../helpers/constants/design-system'; +import Typography from '../../../ui/typography/typography'; + +const Paragraph = (props) => ; + +export const SnapUIMarkdown = ({ children }) => { + return ( + + {children} + + ); +}; + +SnapUIMarkdown.propTypes = { + children: PropTypes.string, +}; diff --git a/ui/components/app/flask/snap-ui-renderer/snap-ui-renderer.js b/ui/components/app/flask/snap-ui-renderer/snap-ui-renderer.js index b92530f47..d44988299 100644 --- a/ui/components/app/flask/snap-ui-renderer/snap-ui-renderer.js +++ b/ui/components/app/flask/snap-ui-renderer/snap-ui-renderer.js @@ -35,11 +35,8 @@ export const UI_MAPPING = { }, }), text: (props) => ({ - element: 'Typography', + element: 'SnapUIMarkdown', children: props.value, - props: { - variant: TYPOGRAPHY.H6, - }, }), spinner: () => ({ element: 'Spinner', diff --git a/ui/components/app/metamask-template-renderer/safe-component-list.js b/ui/components/app/metamask-template-renderer/safe-component-list.js index f7e190160..accd11841 100644 --- a/ui/components/app/metamask-template-renderer/safe-component-list.js +++ b/ui/components/app/metamask-template-renderer/safe-component-list.js @@ -16,6 +16,7 @@ import Tooltip from '../../ui/tooltip/tooltip'; import { SnapDelineator } from '../flask/snap-delineator'; import { Copyable } from '../flask/copyable'; import Spinner from '../../ui/spinner'; +import { SnapUIMarkdown } from '../flask/snap-ui-markdown'; ///: END:ONLY_INCLUDE_IN export const safeComponentList = { @@ -44,5 +45,6 @@ export const safeComponentList = { Copyable, Spinner, hr: 'hr', + SnapUIMarkdown, ///: END:ONLY_INCLUDE_IN }; diff --git a/yarn.lock b/yarn.lock index bcb8a11ae..a0f7483ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23057,6 +23057,19 @@ __metadata: languageName: node linkType: hard +"mdast-util-from-markdown@npm:^0.8.0": + version: 0.8.5 + resolution: "mdast-util-from-markdown@npm:0.8.5" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-string: ^2.0.0 + micromark: ~2.11.0 + parse-entities: ^2.0.0 + unist-util-stringify-position: ^2.0.0 + checksum: 5a9d0d753a42db763761e874c22365d0c7c9934a5a18b5ff76a0643610108a208a041ffdb2f3d3dd1863d3d915225a4020a0aade282af0facfd0df110601eee6 + languageName: node + linkType: hard + "mdast-util-to-hast@npm:10.0.1": version: 10.0.1 resolution: "mdast-util-to-hast@npm:10.0.1" @@ -23073,6 +23086,22 @@ __metadata: languageName: node linkType: hard +"mdast-util-to-hast@npm:^10.2.0": + version: 10.2.0 + resolution: "mdast-util-to-hast@npm:10.2.0" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + mdast-util-definitions: ^4.0.0 + mdurl: ^1.0.0 + unist-builder: ^2.0.0 + unist-util-generated: ^1.0.0 + unist-util-position: ^3.0.0 + unist-util-visit: ^2.0.0 + checksum: 72df2dd9bfa2d07b4750a333444f82e0f3752dae75b6e300cf0a716407a185eb75095a54ecad90cbd6f6d133b20dea8844ff76c1ea78612550de170b43d4fa85 + languageName: node + linkType: hard + "mdast-util-to-string@npm:^1.0.0": version: 1.1.0 resolution: "mdast-util-to-string@npm:1.1.0" @@ -23080,6 +23109,13 @@ __metadata: languageName: node linkType: hard +"mdast-util-to-string@npm:^2.0.0": + version: 2.0.0 + resolution: "mdast-util-to-string@npm:2.0.0" + checksum: 0b2113ada10e002fbccb014170506dabe2f2ddacaacbe4bc1045c33f986652c5a162732a2c057c5335cdb58419e2ad23e368e5be226855d4d4e280b81c4e9ec2 + languageName: node + linkType: hard + "mdurl@npm:^1.0.0": version: 1.0.1 resolution: "mdurl@npm:1.0.1" @@ -23562,6 +23598,7 @@ __metadata: react-dom: ^16.12.0 react-idle-timer: ^4.2.5 react-inspector: ^2.3.0 + react-markdown: ^6.0.3 react-popper: ^2.2.3 react-redux: ^7.2.0 react-responsive-carousel: ^3.2.21 @@ -23634,6 +23671,16 @@ __metadata: languageName: node linkType: hard +"micromark@npm:~2.11.0": + version: 2.11.4 + resolution: "micromark@npm:2.11.4" + dependencies: + debug: ^4.0.0 + parse-entities: ^2.0.0 + checksum: f8a5477d394908a5d770227aea71657a76423d420227c67ea0699e659a5f62eb39d504c1f7d69ec525a6af5aaeb6a7bffcdba95614968c03d41d3851edecb0d6 + languageName: node + linkType: hard + "micromatch@npm:^2.1.5": version: 2.3.11 resolution: "micromatch@npm:2.3.11" @@ -27921,7 +27968,7 @@ __metadata: languageName: node linkType: hard -"react-is@npm:17.0.2, react-is@npm:^17.0.1": +"react-is@npm:17.0.2, react-is@npm:^17.0.0, react-is@npm:^17.0.1": version: 17.0.2 resolution: "react-is@npm:17.0.2" checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8 @@ -27949,6 +27996,30 @@ __metadata: languageName: node linkType: hard +"react-markdown@npm:^6.0.3": + version: 6.0.3 + resolution: "react-markdown@npm:6.0.3" + dependencies: + "@types/hast": ^2.0.0 + "@types/unist": ^2.0.3 + comma-separated-tokens: ^1.0.0 + prop-types: ^15.7.2 + property-information: ^5.3.0 + react-is: ^17.0.0 + remark-parse: ^9.0.0 + remark-rehype: ^8.0.0 + space-separated-tokens: ^1.1.0 + style-to-object: ^0.3.0 + unified: ^9.0.0 + unist-util-visit: ^2.0.0 + vfile: ^4.0.0 + peerDependencies: + "@types/react": ">=16" + react: ">=16" + checksum: 5176e6a314a397b4747570213ae6c092f76c5c3dc67c748731243a0d4108e002134a9061cea87df1bea00db46cc7d238e092bae1609de74983c844e8386c0554 + languageName: node + linkType: hard + "react-motion@npm:^0.5.2": version: 0.5.2 resolution: "react-motion@npm:0.5.2" @@ -28708,6 +28779,24 @@ __metadata: languageName: node linkType: hard +"remark-parse@npm:^9.0.0": + version: 9.0.0 + resolution: "remark-parse@npm:9.0.0" + dependencies: + mdast-util-from-markdown: ^0.8.0 + checksum: 50104880549639b7dd7ae6f1e23c214915fe9c054f02f3328abdaee3f6de6d7282bf4357c3c5b106958fe75e644a3c248c2197755df34f9955e8e028fc74868f + languageName: node + linkType: hard + +"remark-rehype@npm:^8.0.0": + version: 8.1.0 + resolution: "remark-rehype@npm:8.1.0" + dependencies: + mdast-util-to-hast: ^10.2.0 + checksum: e1152464cfa83c14b570b1cb85eb9b3667795b5bed2f6b16d1c6e96c369816b07945a3c04eb0e1fd57a19cc1837969527d0056d5b6d179f1290688db2a7e2c5f + languageName: node + linkType: hard + "remark-slug@npm:^6.0.0": version: 6.1.0 resolution: "remark-slug@npm:6.1.0" @@ -30536,10 +30625,10 @@ __metadata: languageName: node linkType: hard -"space-separated-tokens@npm:^1.0.0": - version: 1.1.4 - resolution: "space-separated-tokens@npm:1.1.4" - checksum: 4048c44ac1bded6927f4a31bf4bc958d6b878adf3ed3af9b08e7873b789016fe946ee69ca049d8030a3829ec2fe0481b55a93b066f29ab8f529864bcc85e043b +"space-separated-tokens@npm:^1.0.0, space-separated-tokens@npm:^1.1.0": + version: 1.1.5 + resolution: "space-separated-tokens@npm:1.1.5" + checksum: 8ef68f1cfa8ccad316b7f8d0df0919d0f1f6d32101e8faeee34ea3a923ce8509c1ad562f57388585ee4951e92d27afa211ed0a077d3d5995b5ba9180331be708 languageName: node linkType: hard @@ -32351,10 +32440,10 @@ __metadata: languageName: node linkType: hard -"trim@npm:0.0.1": - version: 0.0.1 - resolution: "trim@npm:0.0.1" - checksum: 2b4646dff99a222e8e1526edd4e3a43bbd925af0b8e837c340455d250157e7deefaa4da49bb891ab841e5c27b1afc5e9e32d4b57afb875d2dfcabf4e319b8f7f +"trim@npm:^0.0.3": + version: 0.0.3 + resolution: "trim@npm:0.0.3" + checksum: 9a059ba56d5e22c9e571798a7c63640cb25478c495d8a9d001f6352927207c6bd224018751a0c5145fbedc943ee2ebab1d7cc2e8ccba3121a51a7d3428dd879c languageName: node linkType: hard