diff --git a/src/frontend/apps/e2e/__tests__/app-impress/assets/test.svg b/src/frontend/apps/e2e/__tests__/app-impress/assets/test.svg
new file mode 100644
index 00000000..6da84dcd
--- /dev/null
+++ b/src/frontend/apps/e2e/__tests__/app-impress/assets/test.svg
@@ -0,0 +1,8 @@
+
diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-export.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-export.spec.ts
index c7f799aa..8b921ad7 100644
--- a/src/frontend/apps/e2e/__tests__/app-impress/doc-export.spec.ts
+++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-export.spec.ts
@@ -157,11 +157,9 @@ test.describe('Doc Export', () => {
await page.getByText('Upload image').click();
const fileChooser = await fileChooserPromise;
- await fileChooser.setFiles(
- path.join(__dirname, 'assets/logo-suite-numerique.png'),
- );
+ await fileChooser.setFiles(path.join(__dirname, 'assets/test.svg'));
- const image = page.getByRole('img', { name: 'logo-suite-numerique.png' });
+ const image = page.getByRole('img', { name: 'test.svg' });
await expect(image).toBeVisible();
diff --git a/src/frontend/apps/impress/package.json b/src/frontend/apps/impress/package.json
index d1eec73a..540b9f4b 100644
--- a/src/frontend/apps/impress/package.json
+++ b/src/frontend/apps/impress/package.json
@@ -16,17 +16,18 @@
},
"dependencies": {
"@ag-media/react-pdf-table": "2.0.1",
- "@blocknote/core": "*",
- "@blocknote/mantine": "*",
- "@blocknote/react": "*",
- "@blocknote/xl-docx-exporter": "*",
- "@blocknote/xl-pdf-exporter": "*",
+ "@blocknote/core": "0.23.2-hotfix.0",
+ "@blocknote/mantine": "0.23.2-hotfix.0",
+ "@blocknote/react": "0.23.2-hotfix.0",
+ "@blocknote/xl-docx-exporter": "0.23.2-hotfix.0",
+ "@blocknote/xl-pdf-exporter": "0.23.2-hotfix.0",
"@gouvfr-lasuite/integration": "1.0.2",
"@hocuspocus/provider": "2.15.2",
"@openfun/cunningham-react": "3.0.0",
"@react-pdf/renderer": "4.1.6",
"@sentry/nextjs": "9.3.0",
"@tanstack/react-query": "5.67.1",
+ "canvg": "4.0.2",
"cmdk": "1.0.4",
"crisp-sdk-web": "1.0.25",
"docx": "9.1.1",
diff --git a/src/frontend/apps/impress/src/features/docs/doc-export/blocks-mapping/imagePDF.tsx b/src/frontend/apps/impress/src/features/docs/doc-export/blocks-mapping/imagePDF.tsx
new file mode 100644
index 00000000..134bf391
--- /dev/null
+++ b/src/frontend/apps/impress/src/features/docs/doc-export/blocks-mapping/imagePDF.tsx
@@ -0,0 +1,54 @@
+/* eslint-disable jsx-a11y/alt-text */
+import { DefaultProps } from '@blocknote/core';
+import { Image, Text, View } from '@react-pdf/renderer';
+
+import { DocsExporterPDF } from '../types';
+import { convertSvgToPng } from '../utils';
+
+const PIXELS_PER_POINT = 0.75;
+const FONT_SIZE = 16;
+
+export const blockMappingImagePDF: DocsExporterPDF['mappings']['blockMapping']['image'] =
+ async (block, exporter) => {
+ const blob = await exporter.resolveFile(block.props.url);
+ let pngConverted: string | undefined;
+
+ if (blob.type.includes('svg')) {
+ const svgText = await blob.text();
+ pngConverted = await convertSvgToPng(svgText);
+ }
+
+ return (
+
+
+ {caption(block.props)}
+
+ );
+ };
+
+function caption(
+ props: Partial,
+) {
+ if (!props.caption) {
+ return undefined;
+ }
+ return (
+
+ {props.caption}
+
+ );
+}
diff --git a/src/frontend/apps/impress/src/features/docs/doc-export/blocks-mapping/index.ts b/src/frontend/apps/impress/src/features/docs/doc-export/blocks-mapping/index.ts
index 38d4ba84..69eb7da2 100644
--- a/src/frontend/apps/impress/src/features/docs/doc-export/blocks-mapping/index.ts
+++ b/src/frontend/apps/impress/src/features/docs/doc-export/blocks-mapping/index.ts
@@ -1,6 +1,7 @@
export * from './dividerDocx';
export * from './dividerPDF';
export * from './headingPDF';
+export * from './imagePDF';
export * from './paragraphPDF';
export * from './quoteDocx';
export * from './quotePDF';
diff --git a/src/frontend/apps/impress/src/features/docs/doc-export/mappingPDF.tsx b/src/frontend/apps/impress/src/features/docs/doc-export/mappingPDF.tsx
index de16a6c3..380e2f1a 100644
--- a/src/frontend/apps/impress/src/features/docs/doc-export/mappingPDF.tsx
+++ b/src/frontend/apps/impress/src/features/docs/doc-export/mappingPDF.tsx
@@ -3,6 +3,7 @@ import { pdfDefaultSchemaMappings } from '@blocknote/xl-pdf-exporter';
import {
blockMappingDividerPDF,
blockMappingHeadingPDF,
+ blockMappingImagePDF,
blockMappingParagraphPDF,
blockMappingQuotePDF,
blockMappingTablePDF,
@@ -14,6 +15,7 @@ export const pdfDocsSchemaMappings: DocsExporterPDF['mappings'] = {
blockMapping: {
...pdfDefaultSchemaMappings.blockMapping,
heading: blockMappingHeadingPDF,
+ image: blockMappingImagePDF,
paragraph: blockMappingParagraphPDF,
divider: blockMappingDividerPDF,
quote: blockMappingQuotePDF,
diff --git a/src/frontend/apps/impress/src/features/docs/doc-export/utils.ts b/src/frontend/apps/impress/src/features/docs/doc-export/utils.ts
index 248b7033..bdebc052 100644
--- a/src/frontend/apps/impress/src/features/docs/doc-export/utils.ts
+++ b/src/frontend/apps/impress/src/features/docs/doc-export/utils.ts
@@ -3,6 +3,7 @@ import {
DefaultProps,
UnreachableCaseError,
} from '@blocknote/core';
+import { Canvg } from 'canvg';
import { IParagraphOptions, ShadingType } from 'docx';
export function downloadFile(blob: Blob, filename: string) {
@@ -17,6 +18,26 @@ export function downloadFile(blob: Blob, filename: string) {
window.URL.revokeObjectURL(url);
}
+/**
+ * Convert SVG to PNG
+ * @param svgText - The SVG text to convert
+ * @returns The PNG data URL
+ */
+export async function convertSvgToPng(svgText: string) {
+ // Create a canvas and render the SVG onto it
+ const canvas = document.createElement('canvas');
+ const ctx = canvas.getContext('2d');
+
+ if (!ctx) {
+ throw new Error('Canvas context is null');
+ }
+
+ const svg = Canvg.fromString(ctx, svgText);
+ await svg.render();
+
+ return canvas.toDataURL('image/png');
+}
+
export function docxBlockPropsToStyles(
props: Partial,
colors: typeof COLORS_DEFAULT,
diff --git a/src/frontend/package.json b/src/frontend/package.json
index 44efdba6..2029c548 100644
--- a/src/frontend/package.json
+++ b/src/frontend/package.json
@@ -28,11 +28,6 @@
"server:test": "yarn COLLABORATION_SERVER run test"
},
"resolutions": {
- "@blocknote/core": "0.23.2-hotfix.0",
- "@blocknote/mantine": "0.23.2-hotfix.0",
- "@blocknote/react": "0.23.2-hotfix.0",
- "@blocknote/xl-docx-exporter": "0.23.2-hotfix.0",
- "@blocknote/xl-pdf-exporter": "0.23.2-hotfix.0",
"@types/node": "22.13.9",
"@types/react": "19.0.0",
"@types/react-dom": "19.0.0",
diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock
index efbfd5b5..ca70db98 100644
--- a/src/frontend/yarn.lock
+++ b/src/frontend/yarn.lock
@@ -1004,7 +1004,7 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-"@blocknote/core@*", "@blocknote/core@0.23.2-hotfix.0", "@blocknote/core@^0.23.2", "@blocknote/core@^0.23.2-hotfix.0":
+"@blocknote/core@0.23.2-hotfix.0", "@blocknote/core@^0.23.2-hotfix.0":
version "0.23.2-hotfix.0"
resolved "https://registry.yarnpkg.com/@blocknote/core/-/core-0.23.2-hotfix.0.tgz#f95e64dfa6a481baac27414242b08b593bf6383d"
integrity sha512-y+fAV7YBwRQYonITjcSYiydTqZMA2VePBkcurLGDGU/OV3V/ihSsS8TjhABVf3l+w5bX3bp1i1ZuyhiGopyFBg==
@@ -1053,7 +1053,56 @@
y-protocols "^1.0.6"
yjs "^13.6.15"
-"@blocknote/mantine@*", "@blocknote/mantine@0.23.2-hotfix.0":
+"@blocknote/core@^0.23.2", "@blocknote/core@^0.23.6":
+ version "0.23.6"
+ resolved "https://registry.yarnpkg.com/@blocknote/core/-/core-0.23.6.tgz#3cffea4549b77a6d6a9406ad9bb3e56e8c76d3ab"
+ integrity sha512-X5bxzFCgAG42lT2NhKJQdEQp0DEWaY4DJdGo76d2o3xef+bNGCLRe4i2XkGty2B9B3uYElgHqz6GYGeF0Hfn5g==
+ dependencies:
+ "@emoji-mart/data" "^1.2.1"
+ "@tiptap/core" "^2.7.1"
+ "@tiptap/extension-bold" "^2.7.1"
+ "@tiptap/extension-code" "^2.7.1"
+ "@tiptap/extension-collaboration" "^2.7.1"
+ "@tiptap/extension-collaboration-cursor" "^2.7.1"
+ "@tiptap/extension-gapcursor" "^2.7.1"
+ "@tiptap/extension-hard-break" "^2.7.1"
+ "@tiptap/extension-history" "^2.7.1"
+ "@tiptap/extension-horizontal-rule" "^2.7.1"
+ "@tiptap/extension-italic" "^2.7.1"
+ "@tiptap/extension-link" "^2.7.1"
+ "@tiptap/extension-paragraph" "^2.7.1"
+ "@tiptap/extension-strike" "^2.7.1"
+ "@tiptap/extension-table-cell" "^2.7.1"
+ "@tiptap/extension-table-header" "^2.7.1"
+ "@tiptap/extension-table-row" "^2.7.1"
+ "@tiptap/extension-text" "^2.7.1"
+ "@tiptap/extension-underline" "^2.7.1"
+ "@tiptap/pm" "^2.7.1"
+ emoji-mart "^5.6.0"
+ hast-util-from-dom "^4.2.0"
+ prosemirror-dropcursor "^1.8.1"
+ prosemirror-highlight "^0.9.0"
+ prosemirror-model "^1.23.0"
+ prosemirror-state "^1.4.3"
+ prosemirror-tables "^1.6.1"
+ prosemirror-transform "^1.10.2"
+ prosemirror-view "^1.38.0"
+ rehype-format "^5.0.0"
+ rehype-parse "^8.0.4"
+ rehype-remark "^9.1.2"
+ rehype-stringify "^9.0.3"
+ remark-gfm "^3.0.1"
+ remark-parse "^10.0.1"
+ remark-rehype "^10.1.0"
+ remark-stringify "^10.0.2"
+ shiki "^1.22.0"
+ unified "^10.1.2"
+ uuid "^8.3.2"
+ y-prosemirror "1.2.13"
+ y-protocols "^1.0.6"
+ yjs "^13.6.15"
+
+"@blocknote/mantine@0.23.2-hotfix.0":
version "0.23.2-hotfix.0"
resolved "https://registry.yarnpkg.com/@blocknote/mantine/-/mantine-0.23.2-hotfix.0.tgz#695a6b44b92fab91ee0dcaa93c4224bc573374f4"
integrity sha512-8SNBzgdOiYz+of/BfZY15nG71fmB0jk2eKjVliU4fWbhyKCM5ZJ86I2/5Ap8yBNP6ZtrV7QEEKyUqelg7/U/PA==
@@ -1065,7 +1114,7 @@
"@mantine/utils" "^6.0.21"
react-icons "^5.2.1"
-"@blocknote/react@*", "@blocknote/react@0.23.2-hotfix.0", "@blocknote/react@^0.23.2", "@blocknote/react@^0.23.2-hotfix.0":
+"@blocknote/react@0.23.2-hotfix.0", "@blocknote/react@^0.23.2-hotfix.0":
version "0.23.2-hotfix.0"
resolved "https://registry.yarnpkg.com/@blocknote/react/-/react-0.23.2-hotfix.0.tgz#4fc52986b6b22598ee89a5ab1cafbe3d2d04ae0b"
integrity sha512-POcDQHc4VsNrGxDH6DPcm2SeAaSnqQgWgGKCGljR1+4HaaqdK56WbHYeFw4W70jJcj5W6zY0keoev+r3lNH86Q==
@@ -1077,6 +1126,18 @@
lodash.merge "^4.6.2"
react-icons "^5.2.1"
+"@blocknote/react@^0.23.2":
+ version "0.23.6"
+ resolved "https://registry.yarnpkg.com/@blocknote/react/-/react-0.23.6.tgz#359272d4a7116822254c32710ec889f6ae503a72"
+ integrity sha512-HHlutNtgDNuSLYPyDjbyAGSimSY+CTG3Uvga5J8E4aky2XvxDQhrp1w2iPdOX5IAcLbpuqTOpDbdRj5pfTvveA==
+ dependencies:
+ "@blocknote/core" "^0.23.6"
+ "@floating-ui/react" "^0.26.4"
+ "@tiptap/core" "^2.7.1"
+ "@tiptap/react" "^2.7.1"
+ lodash.merge "^4.6.2"
+ react-icons "^5.2.1"
+
"@blocknote/server-util@0.23.2":
version "0.23.2"
resolved "https://registry.yarnpkg.com/@blocknote/server-util/-/server-util-0.23.2.tgz#aa2123b71027b8db1f98e7e3073c87361902fd19"
@@ -1091,7 +1152,7 @@
y-protocols "^1.0.6"
yjs "^13.6.15"
-"@blocknote/xl-docx-exporter@*", "@blocknote/xl-docx-exporter@0.23.2-hotfix.0":
+"@blocknote/xl-docx-exporter@0.23.2-hotfix.0":
version "0.23.2-hotfix.0"
resolved "https://registry.yarnpkg.com/@blocknote/xl-docx-exporter/-/xl-docx-exporter-0.23.2-hotfix.0.tgz#4be683d38da35d7b056f759e033a59335746c88b"
integrity sha512-LXodW2toxtjx2WE7ZOUFdrqnuahjpt5+12EkA1n3BeMIoApv7BKsPKmwkvMLmjg3S+8VX29tiOxFqRUOUL75lQ==
@@ -1101,7 +1162,7 @@
docx "^9.0.2"
sharp "^0.33.5"
-"@blocknote/xl-pdf-exporter@*", "@blocknote/xl-pdf-exporter@0.23.2-hotfix.0":
+"@blocknote/xl-pdf-exporter@0.23.2-hotfix.0":
version "0.23.2-hotfix.0"
resolved "https://registry.yarnpkg.com/@blocknote/xl-pdf-exporter/-/xl-pdf-exporter-0.23.2-hotfix.0.tgz#a9a64e66e0d3f87a28efc9de689c3a14ce573025"
integrity sha512-1QPOSv+2OeUAEGY2yDxRsZopv/rdpZZ2U6amvipwGXwH9KmXqenFOuM8ZrrHf/UAens9vXGRx4ezKaAkdm/Nmw==
@@ -6188,7 +6249,7 @@
dependencies:
"@types/node" "*"
-"@types/node@*", "@types/node@22.13.9", "@types/node@^22.7.5":
+"@types/node@*", "@types/node@^22.7.5":
version "22.13.9"
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.13.9.tgz#5d9a8f7a975a5bd3ef267352deb96fb13ec02eca"
integrity sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==
@@ -6240,12 +6301,17 @@
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.18.tgz#877292caa91f7c1b213032b34626505b746624c2"
integrity sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==
+"@types/raf@^3.4.0":
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/@types/raf/-/raf-3.4.3.tgz#85f1d1d17569b28b8db45e16e996407a56b0ab04"
+ integrity sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==
+
"@types/range-parser@*":
version "1.2.7"
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
-"@types/react-dom@*", "@types/react-dom@19.0.0":
+"@types/react-dom@*":
version "19.0.0"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.0.0.tgz#e7f5d618a080486eaf9952246dbf59eaa2c64130"
integrity sha512-1KfiQKsH1o00p9m5ag12axHQSb3FOU9H20UTrujVSkNhuCrRHiQWFqgEnTNK5ZNfnzZv8UWrnXVqCmCF9fgY3w==
@@ -6264,7 +6330,7 @@
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044"
integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==
-"@types/react@*", "@types/react@19.0.0":
+"@types/react@*":
version "19.0.0"
resolved "https://registry.yarnpkg.com/@types/react/-/react-19.0.0.tgz#fbbb53ce223f4e2b750ad5dd09580b2c43522bbf"
integrity sha512-MY3oPudxvMYyesqs/kW1Bh8y9VqSmf+tzqw3ae8a9DZW68pUe3zAdHeI1jc6iAysuRdACnVknHP8AhwD4/dxtg==
@@ -6382,7 +6448,7 @@
dependencies:
"@types/yargs-parser" "*"
-"@typescript-eslint/eslint-plugin@*", "@typescript-eslint/eslint-plugin@8.26.0", "@typescript-eslint/eslint-plugin@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
+"@typescript-eslint/eslint-plugin@*", "@typescript-eslint/eslint-plugin@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
version "8.26.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.0.tgz#7e880faf91f89471c30c141951e15f0eb3a0599e"
integrity sha512-cLr1J6pe56zjKYajK6SSSre6nl1Gj6xDp1TY0trpgPzjVbgDwd09v2Ws37LABxzkicmUjhEeg/fAUjPJJB1v5Q==
@@ -6397,7 +6463,7 @@
natural-compare "^1.4.0"
ts-api-utils "^2.0.1"
-"@typescript-eslint/parser@*", "@typescript-eslint/parser@8.26.0", "@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
+"@typescript-eslint/parser@*", "@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
version "8.26.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.26.0.tgz#9b4d2198e89f64fb81e83167eedd89a827d843a9"
integrity sha512-mNtXP9LTVBy14ZF3o7JG69gRPBK/2QWtQd0j0oH26HcY/foyJJau6pNUez7QrM5UHnSvwlQcJXKsk0I99B9pOA==
@@ -7312,6 +7378,17 @@ caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001688:
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001696.tgz#00c30a2fc11e3c98c25e5125418752af3ae2f49f"
integrity sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==
+canvg@4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/canvg/-/canvg-4.0.2.tgz#e08a6b100aa69f908933476cecf4bcc558d741de"
+ integrity sha512-/7kIZger/mdFci4KXdtMr+NQB4GU1InkJ4RwSyDBRcvy4BUlg1hD+ZUWo550sWPyWaKZ8purqby6kjf09qVriw==
+ dependencies:
+ "@types/raf" "^3.4.0"
+ raf "^3.4.1"
+ rgbcolor "^1.0.1"
+ stackblur-canvas "^2.0.0"
+ svg-pathdata "^6.0.3"
+
ccount@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5"
@@ -8613,7 +8690,7 @@ eslint-visitor-keys@^4.2.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45"
integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
-eslint@*, eslint@8.57.0:
+eslint@*:
version "8.57.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
@@ -12254,6 +12331,11 @@ pdf-parse@1.1.1:
debug "^3.1.0"
node-ensure "^0.0.0"
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+ integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
+
pg-int8@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
@@ -12696,6 +12778,15 @@ prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.27.0, pros
prosemirror-state "^1.0.0"
prosemirror-transform "^1.1.0"
+prosemirror-view@^1.38.0:
+ version "1.38.1"
+ resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.38.1.tgz#566d30cc8b00a68d6b4c60f5d8a6ab97c82990b3"
+ integrity sha512-4FH/uM1A4PNyrxXbD+RAbAsf0d/mM0D/wAKSVVWK7o0A9Q/oOXJBrw786mBf2Vnrs/Edly6dH6Z2gsb7zWwaUw==
+ dependencies:
+ prosemirror-model "^1.20.0"
+ prosemirror-state "^1.0.0"
+ prosemirror-transform "^1.1.0"
+
proxy-addr@~2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
@@ -12786,6 +12877,13 @@ quick-temp@^0.1.8:
rimraf "^2.5.4"
underscore.string "~3.3.4"
+raf@^3.4.1:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/raf/-/raf-3.4.1.tgz#0742e99a4a6552f445d73e3ee0328af0ff1ede39"
+ integrity sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==
+ dependencies:
+ performance-now "^2.1.0"
+
randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -13572,6 +13670,11 @@ reusify@^1.0.4:
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
+rgbcolor@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/rgbcolor/-/rgbcolor-1.0.1.tgz#d6505ecdb304a6595da26fa4b43307306775945d"
+ integrity sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==
+
rimraf@^2.5.4:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
@@ -14049,6 +14152,11 @@ stack-utils@^2.0.3:
dependencies:
escape-string-regexp "^2.0.0"
+stackblur-canvas@^2.0.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz#af931277d0b5096df55e1f91c530043e066989b6"
+ integrity sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==
+
stacktrace-parser@^0.1.10:
version "0.1.10"
resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a"
@@ -14400,6 +14508,11 @@ svg-parser@^2.0.4:
resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5"
integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==
+svg-pathdata@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz#80b0e0283b652ccbafb69ad4f8f73e8d3fbf2cac"
+ integrity sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==
+
svg-tags@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
@@ -14806,7 +14919,7 @@ typed-array-length@^1.0.7:
possible-typed-array-names "^1.0.0"
reflect.getprototypeof "^1.0.6"
-typescript@*, typescript@5.8.2, typescript@^5.0.4:
+typescript@*, typescript@^5.0.4:
version "5.8.2"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.2.tgz#8170b3702f74b79db2e5a96207c15e65807999e4"
integrity sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==
@@ -15823,7 +15936,7 @@ yargs@17.7.2, yargs@^17.3.1:
y18n "^5.0.5"
yargs-parser "^21.1.1"
-yjs@*, yjs@13.6.23, yjs@^13.6.15:
+yjs@*, yjs@^13.6.15:
version "13.6.23"
resolved "https://registry.yarnpkg.com/yjs/-/yjs-13.6.23.tgz#62358dfa52e92dc870b8a0bedcf0d4cbd4c5ffa8"
integrity sha512-ExtnT5WIOVpkL56bhLeisG/N5c4fmzKn4k0ROVfJa5TY2QHbH7F0Wu2T5ZhR7ErsFWQEFafyrnSI8TPKVF9Few==