From 8f921277c0b2ebc42eb17de6f78b84fa66997710 Mon Sep 17 00:00:00 2001 From: EiffelFly <57251712+EiffelFly@users.noreply.github.com> Date: Wed, 27 Nov 2024 17:32:03 +0800 Subject: [PATCH 1/5] feat: supporting latex in the markdown viewer --- apps/console/package.json | 2 - .../src/components/ModelReadmeMarkdown.tsx | 54 -- apps/console/src/components/index.ts | 1 - package.json | 1 + packages/toolkit/package.json | 6 +- .../src/lib/markdown/MarkdownViewer.tsx | 82 ++ packages/toolkit/src/lib/markdown/index.ts | 2 + .../src/lib/markdown/preprocessLatex.test.ts | 92 ++ .../src/lib/markdown/preprocessLatex.ts | 85 ++ .../component-output/MDTextViewer.tsx | 19 +- .../catalog/components/FileDetailsOverlay.tsx | 6 +- pnpm-lock.yaml | 848 +++++++++++++----- 12 files changed, 885 insertions(+), 313 deletions(-) delete mode 100644 apps/console/src/components/ModelReadmeMarkdown.tsx create mode 100644 packages/toolkit/src/lib/markdown/MarkdownViewer.tsx create mode 100644 packages/toolkit/src/lib/markdown/index.ts create mode 100644 packages/toolkit/src/lib/markdown/preprocessLatex.test.ts create mode 100644 packages/toolkit/src/lib/markdown/preprocessLatex.ts diff --git a/apps/console/package.json b/apps/console/package.json index f31fb7bca5..4babb9d6e0 100644 --- a/apps/console/package.json +++ b/apps/console/package.json @@ -57,9 +57,7 @@ "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.51.0", - "react-markdown": "^8.0.3", "reactflow": "^11.8.3", - "remark-frontmatter": "^4.0.1", "sharp": "^0.32.6", "shiki": "^0.11.1", "tailwindcss-animate": "^1.0.6", diff --git a/apps/console/src/components/ModelReadmeMarkdown.tsx b/apps/console/src/components/ModelReadmeMarkdown.tsx deleted file mode 100644 index 8880c7d68b..0000000000 --- a/apps/console/src/components/ModelReadmeMarkdown.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import * as React from "react"; -import cn from "clsx"; -import ReactMarkdown from "react-markdown"; -import remarkFrontmatter from "remark-frontmatter"; - -import { NoBgSquareProgress } from "@instill-ai/design-system"; -import { Nullable } from "@instill-ai/toolkit"; - -export type ModelReadmeMarkdownProps = { - markdown: Nullable; - isLoading: boolean; - className?: string; -}; - -export const ModelReadmeMarkdown = ({ - markdown, - isLoading, - className, -}: ModelReadmeMarkdownProps) => { - return ( -
- {isLoading ? ( -
- -
- ) : markdown && markdown !== "" ? ( -
- - {markdown} - -
- ) : ( - -

- There is no Model card -

-

- You can add a README.md to describe the model. -

-
- )} -
- ); -}; diff --git a/apps/console/src/components/index.ts b/apps/console/src/components/index.ts index 259fccb3f4..cf7c63115f 100644 --- a/apps/console/src/components/index.ts +++ b/apps/console/src/components/index.ts @@ -1,5 +1,4 @@ export * from "./AuthPageBase"; export * from "./ChangePasswordForm"; export * from "./LoginForm"; -export * from "./ModelReadmeMarkdown"; export * from "./OnboardingForm"; diff --git a/package.json b/package.json index a24629f1ac..c4af287fc3 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "turbo": "latest", "typescript": "^5.5.4", "yaml": "^2.5.0" + }, "engines": { "node": ">=20.0.0" diff --git a/packages/toolkit/package.json b/packages/toolkit/package.json index ea3efd9186..ae5aa7ef92 100644 --- a/packages/toolkit/package.json +++ b/packages/toolkit/package.json @@ -1,6 +1,6 @@ { "name": "@instill-ai/toolkit", - "version": "0.112.0", + "version": "0.113.0-rc.2", "description": "Instill AI's frontend toolkit", "repository": "https://github.com/instill-ai/design-system.git", "bugs": "https://github.com/instill-ai/design-system/issues", @@ -158,9 +158,13 @@ "react-avatar-editor": "^13.0.2", "react-error-boundary": "^4.0.13", "react-hook-form": "^7.51.0", + "react-markdown": "^9.0.1", "react-syntax-highlighter": "^15.5.0", "reactflow": "^11.10.0", "recharts": "2.12.7", + "rehype-katex": "^7.0.1", + "remark-gfm": "^4.0.0", + "remark-math": "^6.0.0", "sanitize-html": "^2.13.0", "semver": "^7.5.4", "server-only": "^0.0.1", diff --git a/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx b/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx new file mode 100644 index 0000000000..24a346f17c --- /dev/null +++ b/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx @@ -0,0 +1,82 @@ +"use client"; + +import * as React from "react"; +import ReactMarkdown from "react-markdown"; +import rehypeKatex from "rehype-katex"; +import remarkGfm from "remark-gfm"; +import remarkMath from "remark-math"; +import sanitizeHtml from "sanitize-html"; + +import { cn } from "@instill-ai/design-system"; + +import { preprocessLaTeX } from "./preprocessLatex"; + +export const MarkdownViewer = ({ + className, + markdown, +}: { + className?: string; + markdown: string; +}) => { + const sanitizedHtmlText = sanitizeHtml(markdown ?? ""); + + const processedText = preprocessLaTeX(sanitizedHtmlText); + + const remarkPlugins = [ + remarkGfm, + [remarkMath, { singleDollarTextMath: true }], + ]; + + const rehypePlugins = [[rehypeKatex, { output: "mathml" }]]; + + return ( + + +
+ {/* {sanitizedHtmlText} */} + + {processedText} + +
+
+ ); +}; diff --git a/packages/toolkit/src/lib/markdown/index.ts b/packages/toolkit/src/lib/markdown/index.ts new file mode 100644 index 0000000000..28efe2efa3 --- /dev/null +++ b/packages/toolkit/src/lib/markdown/index.ts @@ -0,0 +1,2 @@ +export * from "./MarkdownViewer"; +export * from "./preprocessLatex"; diff --git a/packages/toolkit/src/lib/markdown/preprocessLatex.test.ts b/packages/toolkit/src/lib/markdown/preprocessLatex.test.ts new file mode 100644 index 0000000000..b489a519b8 --- /dev/null +++ b/packages/toolkit/src/lib/markdown/preprocessLatex.test.ts @@ -0,0 +1,92 @@ +import { describe, expect, test } from "vitest"; + +import { preprocessLaTeX } from "./preprocessLatex"; + +describe("preprocessLaTeX", () => { + test("returns the same string if no LaTeX patterns are found", () => { + const content = "This is a test string without LaTeX"; + expect(preprocessLaTeX(content)).toBe(content); + }); + + test("escapes dollar signs followed by digits", () => { + const content = "Price is $50 and $100"; + const expected = "Price is \\$50 and \\$100"; + expect(preprocessLaTeX(content)).toBe(expected); + }); + + test("does not escape dollar signs not followed by digits", () => { + const content = "This $variable is not escaped"; + expect(preprocessLaTeX(content)).toBe(content); + }); + + test("preserves existing LaTeX expressions", () => { + const content = "Inline $x^2 + y^2 = z^2$ and block $$E = mc^2$$"; + expect(preprocessLaTeX(content)).toBe(content); + }); + + test("handles mixed LaTeX and currency", () => { + const content = "LaTeX $x^2$ and price $50"; + const expected = "LaTeX $x^2$ and price \\$50"; + expect(preprocessLaTeX(content)).toBe(expected); + }); + + test("converts LaTeX delimiters", () => { + const content = "Brackets \\[x^2\\] and parentheses \\(y^2\\)"; + const expected = "Brackets $$x^2$$ and parentheses $y^2$"; + expect(preprocessLaTeX(content)).toBe(expected); + }); + + test("escapes mhchem commands", () => { + const content = "$\\ce{H2O}$ and $\\pu{123 J}$"; + const expected = "$\\\\ce{H2O}$ and $\\\\pu{123 J}$"; + expect(preprocessLaTeX(content)).toBe(expected); + }); + + test("handles complex mixed content", () => { + const content = ` + LaTeX inline $x^2$ and block $$y^2$$ + Currency $100 and $200 + Chemical $\\ce{H2O}$ + Brackets \\[z^2\\] + `; + const expected = ` + LaTeX inline $x^2$ and block $$y^2$$ + Currency \\$100 and \\$200 + Chemical $\\\\ce{H2O}$ + Brackets $$z^2$$ + `; + expect(preprocessLaTeX(content)).toBe(expected); + }); + + test("handles empty string", () => { + expect(preprocessLaTeX("")).toBe(""); + }); + + test("preserves code blocks", () => { + const content = "```\n$100\n```\nOutside $200"; + const expected = "```\n$100\n```\nOutside \\$200"; + expect(preprocessLaTeX(content)).toBe(expected); + }); + + test("handles multiple currency values in a sentence", () => { + const content = "I have $50 in my wallet and $100 in the bank."; + const expected = "I have \\$50 in my wallet and \\$100 in the bank."; + expect(preprocessLaTeX(content)).toBe(expected); + }); + + test("preserves LaTeX expressions with numbers", () => { + const content = "The equation is $f(x) = 2x + 3$ where x is a variable."; + expect(preprocessLaTeX(content)).toBe(content); + }); + + test("handles currency values with commas", () => { + const content = "The price is $1,000,000 for this item."; + const expected = "The price is \\$1,000,000 for this item."; + expect(preprocessLaTeX(content)).toBe(expected); + }); + + test("preserves LaTeX expressions with special characters", () => { + const content = "The set is defined as $\\{x | x > 0\\}$."; + expect(preprocessLaTeX(content)).toBe(content); + }); +}); diff --git a/packages/toolkit/src/lib/markdown/preprocessLatex.ts b/packages/toolkit/src/lib/markdown/preprocessLatex.ts new file mode 100644 index 0000000000..adb2669a6c --- /dev/null +++ b/packages/toolkit/src/lib/markdown/preprocessLatex.ts @@ -0,0 +1,85 @@ +/* + Credit: + https://github.com/danny-avila/LibreChat/blob/8178ae2a20f95525c3cb41e49409ffd7281ca743/client/src/utils/latex.ts +*/ + +/** + * Preprocesses LaTeX content by replacing delimiters and escaping certain characters. + * + * @param content The input string containing LaTeX expressions. + * @returns The processed string with replaced delimiters and escaped characters. + */ +export function preprocessLaTeX(content: string): string { + // Step 1: Protect code blocks + const codeBlocks: string[] = []; + content = content.replace(/(```[\s\S]*?```|`[^`\n]+`)/g, (_, code) => { + codeBlocks.push(code); + return `<>`; + }); + + // Step 2: Protect existing LaTeX expressions + const latexExpressions: string[] = []; + content = content.replace( + /(\$\$[\s\S]*?\$\$|\\\[[\s\S]*?\\\]|\\\(.*?\\\))/g, + (match) => { + latexExpressions.push(match); + return `<>`; + }, + ); + + // Step 3: Escape dollar signs that are likely currency indicators + content = content.replace(/\$(?=\d)/g, "\\$"); + + // Step 4: Restore LaTeX expressions + content = content.replace(/<>/g, (match, index) => { + const idx = parseInt(index); + if (latexExpressions[idx] != null) { + return latexExpressions[idx]; + } else { + return match; + } + }); + + // Step 5: Restore code blocks + content = content.replace(/<>/g, (match, index) => { + const idx = parseInt(index); + if (codeBlocks[idx] != null) { + return codeBlocks[idx]; + } else { + return match; + } + }); + + // Step 6: Apply additional escaping functions + content = escapeBrackets(content); + content = escapeMhchem(content); + + return content; +} + +export function escapeBrackets(text: string): string { + const pattern = + /(```[\S\s]*?```|`.*?`)|\\\[([\S\s]*?[^\\])\\]|\\\((.*?)\\\)/g; + return text.replace( + pattern, + ( + match: string, + codeBlock: string | undefined, + squareBracket: string | undefined, + roundBracket: string | undefined, + ): string => { + if (codeBlock != null) { + return codeBlock; + } else if (squareBracket != null) { + return `$$${squareBracket}$$`; + } else if (roundBracket != null) { + return `$${roundBracket}$`; + } + return match; + }, + ); +} + +export function escapeMhchem(text: string) { + return text.replaceAll("$\\ce{", "$\\\\ce{").replaceAll("$\\pu{", "$\\\\pu{"); +} diff --git a/packages/toolkit/src/lib/use-instill-form/components/component-output/MDTextViewer.tsx b/packages/toolkit/src/lib/use-instill-form/components/component-output/MDTextViewer.tsx index c30f3ee142..916d07afea 100644 --- a/packages/toolkit/src/lib/use-instill-form/components/component-output/MDTextViewer.tsx +++ b/packages/toolkit/src/lib/use-instill-form/components/component-output/MDTextViewer.tsx @@ -1,13 +1,12 @@ "use client"; +import type { Nullable } from "instill-sdk"; import * as React from "react"; -import cn from "clsx"; -import Markdown from "markdown-to-jsx"; import sanitizeHtml from "sanitize-html"; -import { Switch } from "@instill-ai/design-system"; +import { cn, Switch } from "@instill-ai/design-system"; -import { Nullable } from "../../../type"; +import { MarkdownViewer } from "../../../markdown"; import { CopyButton } from "./CopyButton"; export const MDTextViewer = ({ @@ -77,14 +76,10 @@ export const MDTextViewer = ({
-
- {sanitizedHtmlText} -
+
             
) : ( -
- {sanitizedHtmlText} -
+ )} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc9c20d7a9..501a9d5400 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,10 +29,10 @@ importers: version: 15.2.0 prettier: specifier: latest - version: 3.4.0 + version: 3.4.1 turbo: specifier: latest - version: 2.3.2 + version: 2.3.3 typescript: specifier: ^5.5.4 version: 5.5.4 @@ -131,7 +131,7 @@ importers: version: link:../../packages/sdk next: specifier: ^14.2.12 - version: 14.2.12(@playwright/test@1.47.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 14.2.12(@babel/core@7.24.6)(@playwright/test@1.47.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-mdx-remote: specifier: ^4.1.0 version: 4.4.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -144,15 +144,9 @@ importers: react-hook-form: specifier: ^7.51.0 version: 7.51.0(react@18.2.0) - react-markdown: - specifier: ^8.0.3 - version: 8.0.7(@types/react@18.2.48)(react@18.2.0) reactflow: specifier: ^11.8.3 version: 11.10.2(@types/react@18.2.48)(immer@9.0.21)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - remark-frontmatter: - specifier: ^4.0.1 - version: 4.0.1 sharp: specifier: ^0.32.6 version: 0.32.6 @@ -270,7 +264,7 @@ importers: version: 4.6.0(monaco-editor@0.50.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next: specifier: 14.2.12 - version: 14.2.12(@playwright/test@1.47.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 14.2.12(@babel/core@7.24.6)(@playwright/test@1.47.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: specifier: ^18 version: 18.2.0 @@ -458,7 +452,7 @@ importers: version: 8.1.4 '@storybook/addon-essentials': specifier: ^8.1.4 - version: 8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/addon-interactions': specifier: ^8.1.4 version: 8.1.4(@types/jest@29.5.11)(vitest@1.6.0(@types/node@20.14.11)(jsdom@21.1.2)(terser@5.27.0)) @@ -473,13 +467,13 @@ importers: version: 1.1.0 '@storybook/nextjs': specifier: ^8.1.4 - version: 8.1.4(@types/jest@29.5.11)(esbuild@0.20.2)(next@14.2.12(@babel/core@7.23.7)(@playwright/test@1.47.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(type-fest@4.22.1)(typescript@5.5.4)(vitest@1.6.0(@types/node@20.14.11)(jsdom@21.1.2)(terser@5.27.0))(webpack-hot-middleware@2.26.0)(webpack@5.89.0(esbuild@0.20.2)) + version: 8.1.4(@types/jest@29.5.11)(esbuild@0.21.5)(next@14.2.12(@babel/core@7.23.7)(@playwright/test@1.47.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(type-fest@4.22.1)(typescript@5.5.4)(vitest@1.6.0(@types/node@20.14.11)(jsdom@21.1.2)(terser@5.27.0))(webpack-hot-middleware@2.26.0)(webpack@5.89.0(esbuild@0.21.5)) '@storybook/react': specifier: ^8.1.4 - version: 8.1.4(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) + version: 8.1.4(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) '@storybook/react-webpack5': specifier: ^8.1.4 - version: 8.1.4(esbuild@0.20.2)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) + version: 8.1.4(esbuild@0.21.5)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) '@storybook/test': specifier: ^8.1.4 version: 8.1.4(@types/jest@29.5.11)(vitest@1.6.0(@types/node@20.14.11)(jsdom@21.1.2)(terser@5.27.0)) @@ -512,7 +506,7 @@ importers: version: 10.4.17(postcss@8.4.31) babel-loader: specifier: ^8.2.4 - version: 8.3.0(@babel/core@7.23.7)(webpack@5.89.0(esbuild@0.20.2)) + version: 8.3.0(@babel/core@7.23.7)(webpack@5.89.0(esbuild@0.21.5)) clsx: specifier: ^1.1.1 version: 1.2.1 @@ -566,7 +560,7 @@ importers: version: 1.6.0(@types/node@20.14.11)(jsdom@21.1.2)(terser@5.27.0) webpack: specifier: ^5.76.0 - version: 5.89.0(esbuild@0.20.2) + version: 5.89.0(esbuild@0.21.5) packages/design-tokens: dependencies: @@ -899,6 +893,9 @@ importers: react-hook-form: specifier: ^7.51.0 version: 7.51.0(react@18.2.0) + react-markdown: + specifier: ^9.0.1 + version: 9.0.1(@types/react@18.2.48)(react@18.2.0) react-syntax-highlighter: specifier: ^15.5.0 version: 15.5.0(react@18.2.0) @@ -908,6 +905,15 @@ importers: recharts: specifier: 2.12.7 version: 2.12.7(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + rehype-katex: + specifier: ^7.0.1 + version: 7.0.1 + remark-gfm: + specifier: ^4.0.0 + version: 4.0.0 + remark-math: + specifier: ^6.0.0 + version: 6.0.0 sanitize-html: specifier: ^2.13.0 version: 2.13.0 @@ -1064,7 +1070,7 @@ importers: version: 9.1.0(eslint@8.56.0) eslint-config-turbo: specifier: latest - version: 2.3.2(eslint@8.56.0) + version: 2.3.3(eslint@8.56.0) eslint-import-resolver-typescript: specifier: ^3.0.0 version: 3.6.1(@typescript-eslint/parser@7.10.0(eslint@8.56.0)(typescript@5.5.4))(eslint-plugin-import@2.31.0)(eslint@8.56.0) @@ -1088,14 +1094,14 @@ importers: dependencies: prettier: specifier: latest - version: 3.4.0 + version: 3.4.1 prettier-plugin-tailwindcss: specifier: latest - version: 0.6.9(@ianvs/prettier-plugin-sort-imports@4.2.1(@vue/compiler-sfc@3.4.33)(prettier@3.4.0))(prettier@3.4.0) + version: 0.6.9(@ianvs/prettier-plugin-sort-imports@4.2.1(@vue/compiler-sfc@3.4.33)(prettier@3.4.1))(prettier@3.4.1) devDependencies: '@ianvs/prettier-plugin-sort-imports': specifier: ^4.2.1 - version: 4.2.1(@vue/compiler-sfc@3.4.33)(prettier@3.4.0) + version: 4.2.1(@vue/compiler-sfc@3.4.33)(prettier@3.4.1) toolings/typescript: {} @@ -5636,6 +5642,9 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + '@types/katex@0.16.7': + resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} + '@types/linkify-it@3.0.5': resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} @@ -7410,10 +7419,6 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} - engines: {node: '>=0.3.1'} - diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -7857,8 +7862,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.3.2: - resolution: {integrity: sha512-gIH/BQdbfWNa9uw/Obo7PZa/NNilZNP8STD0ppVKd8ekSVFONm2GebvOxNiSr5zHregRzokfynnHjZfB5ngJig==} + eslint-config-turbo@2.3.3: + resolution: {integrity: sha512-cM9wSBYowQIrjx2MPCzFE6jTnG4vpTPJKZ/O+Ps3CqrmGK/wtNOsY6WHGMwLtKY/nNbgRahAJH6jGVF6k2coOg==} peerDependencies: eslint: '>6.6.0' @@ -7988,8 +7993,8 @@ packages: peerDependencies: eslint: ^7.5.0 || ^8.0.0 - eslint-plugin-turbo@2.3.2: - resolution: {integrity: sha512-NoGxnaFi/8KotvKdbwR+VJOB3nVvIOjS193qCjHz2eBKhnO+Wr3cFgw9IZvk1rBIqg3a6VtJQmxkwNIYo2yWOw==} + eslint-plugin-turbo@2.3.3: + resolution: {integrity: sha512-j8UEA0Z+NNCsjZep9G5u5soDQHcXq/x4amrwulk6eHF1U91H2qAjp5I4jQcvJewmccCJbVp734PkHHTRnosjpg==} peerDependencies: eslint: '>6.6.0' @@ -8562,6 +8567,18 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-from-dom@5.0.1: + resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} + + hast-util-from-html-isomorphic@2.0.0: + resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} + + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + + hast-util-from-parse5@8.0.2: + resolution: {integrity: sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==} + hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} @@ -8571,18 +8588,33 @@ packages: hast-util-parse-selector@2.2.5: resolution: {integrity: sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==} + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + hast-util-to-estree@2.3.3: resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} + hast-util-to-jsx-runtime@2.3.2: + resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} + hast-util-to-string@3.0.0: resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hastscript@6.0.0: resolution: {integrity: sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==} + hastscript@9.0.0: + resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} + he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -8625,6 +8657,9 @@ packages: resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} engines: {node: '>=8'} + html-url-attributes@3.0.1: + resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} + html-webpack-plugin@5.6.0: resolution: {integrity: sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==} engines: {node: '>=10.13.0'} @@ -8743,6 +8778,9 @@ packages: inline-style-parser@0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + internal-slot@1.0.6: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} @@ -9240,6 +9278,10 @@ packages: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} + katex@0.16.11: + resolution: {integrity: sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==} + hasBin: true + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -9526,18 +9568,24 @@ packages: mdast-util-directive@3.0.0: resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + mdast-util-from-markdown@1.3.1: resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} mdast-util-from-markdown@2.0.1: resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} - mdast-util-frontmatter@1.0.1: - resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} - mdast-util-frontmatter@2.0.1: resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + mdast-util-gfm-strikethrough@2.0.0: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} @@ -9547,6 +9595,12 @@ packages: mdast-util-gfm-task-list-item@2.0.0: resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-math@3.0.0: + resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} + mdast-util-mdx-expression@1.3.2: resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} @@ -9580,6 +9634,9 @@ packages: mdast-util-to-hast@12.3.0: resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} @@ -9647,21 +9704,33 @@ packages: micromark-extension-directive@3.0.0: resolution: {integrity: sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==} - micromark-extension-frontmatter@1.1.1: - resolution: {integrity: sha512-m2UH9a7n3W8VAH9JO9y01APpPKmNNNs71P0RbknEmYSaZU5Ghogv38BYO94AI5Xw6OYfxZRdHZZ2nYjs/Z+SZQ==} - micromark-extension-frontmatter@2.0.0: resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + micromark-extension-gfm-strikethrough@2.0.0: resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} micromark-extension-gfm-table@2.0.0: resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + micromark-extension-gfm-task-list-item@2.0.1: resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-math@3.1.0: + resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} + micromark-extension-mdx-expression@1.0.8: resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} @@ -10688,8 +10757,8 @@ packages: engines: {node: '>=14'} hasBin: true - prettier@3.4.0: - resolution: {integrity: sha512-/OXNZcLyWkfo13ofOW5M7SLh+k5pnIs07owXK2teFpnfaOEcycnSy7HQxldaVX1ZP/7Q8oO1eDuQJNwbomQq5Q==} + prettier@3.4.1: + resolution: {integrity: sha512-G+YdqtITVZmOJje6QkXQWzl3fSfMxFwm1tjTyo9exhkmWSqC4Yhd1+lug++IlR2mvRVAxEDDWYkQdeSztajqgg==} engines: {node: '>=14'} hasBin: true @@ -10960,11 +11029,11 @@ packages: react-is@18.2.0: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - react-markdown@8.0.7: - resolution: {integrity: sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==} + react-markdown@9.0.1: + resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: - '@types/react': '>=16' - react: '>=16' + '@types/react': '>=18' + react: '>=18' react-refresh@0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} @@ -11144,6 +11213,9 @@ packages: rehype-external-links@3.0.0: resolution: {integrity: sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==} + rehype-katex@7.0.1: + resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} + rehype-slug@6.0.0: resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} @@ -11151,8 +11223,11 @@ packages: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} - remark-frontmatter@4.0.1: - resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-math@6.0.0: + resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} remark-mdx@2.3.0: resolution: {integrity: sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g==} @@ -11160,9 +11235,18 @@ packages: remark-parse@10.0.2: resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + remark-rehype@10.1.0: resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + renderkid@3.0.0: resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} @@ -11746,6 +11830,9 @@ packages: style-to-object@0.4.4: resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + styled-jsx@5.1.1: resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} engines: {node: '>= 12.0.0'} @@ -12103,38 +12190,38 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - turbo-darwin-64@2.3.2: - resolution: {integrity: sha512-B1lS/UqjXNsG+kx1uzJNwXMuw2i5wavcyNy8opvSLjfuECdsqQU9B1wPqkSTU+mZjFTJcEfiGKyJ/I2EVk8vdw==} + turbo-darwin-64@2.3.3: + resolution: {integrity: sha512-bxX82xe6du/3rPmm4aCC5RdEilIN99VUld4HkFQuw+mvFg6darNBuQxyWSHZTtc25XgYjQrjsV05888w1grpaA==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.3.2: - resolution: {integrity: sha512-XHeuEdk9tHaw2Bsr3rTzFtZyldeSyagDZkOSPIJ1zioavMjWEFPA75vdgy4j8ns96EBpZMaPXVEnODuEHfiZfQ==} + turbo-darwin-arm64@2.3.3: + resolution: {integrity: sha512-DYbQwa3NsAuWkCUYVzfOUBbSUBVQzH5HWUFy2Kgi3fGjIWVZOFk86ss+xsWu//rlEAfYwEmopigsPYSmW4X15A==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.3.2: - resolution: {integrity: sha512-oKDsO5+flqpPx5tNLFGVUYpJ/sBc3KvaGpyNzXl2u3epzyafgblFKWMG5YsSiU1ruouPpcC6YG5SN5chA7Abfg==} + turbo-linux-64@2.3.3: + resolution: {integrity: sha512-eHj9OIB0dFaP6BxB88jSuaCLsOQSYWBgmhy2ErCu6D2GG6xW3b6e2UWHl/1Ho9FsTg4uVgo4DB9wGsKa5erjUA==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.3.2: - resolution: {integrity: sha512-luyvTl3wQ1hF+ljK7ljH4TL7rg4pmx5pQ2mzvfMvPo5eaLuKr/tImmbdH6/vr56iffUIISkIsLVhVxgZeAsUOw==} + turbo-linux-arm64@2.3.3: + resolution: {integrity: sha512-NmDE/NjZoDj1UWBhMtOPmqFLEBKhzGS61KObfrDEbXvU3lekwHeoPvAMfcovzswzch+kN2DrtbNIlz+/rp8OCg==} cpu: [arm64] os: [linux] - turbo-windows-64@2.3.2: - resolution: {integrity: sha512-yw7BnTU5cE7GdUnZEW3jIAI98hh4dcWk+Jwza8X7CXpxpill2zteq7VPf+a/B3o/xm+oVXzLmP83YP91Bm0SaA==} + turbo-windows-64@2.3.3: + resolution: {integrity: sha512-O2+BS4QqjK3dOERscXqv7N2GXNcqHr9hXumkMxDj/oGx9oCatIwnnwx34UmzodloSnJpgSqjl8iRWiY65SmYoQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.3.2: - resolution: {integrity: sha512-Hgp6V7jaIYlDcy5xpKN+XXyYCf5afT690GmXcEsMoUawd5dStvZe0QHWcGxuqho497BAlx0XGAWftm0KelNePA==} + turbo-windows-arm64@2.3.3: + resolution: {integrity: sha512-dW4ZK1r6XLPNYLIKjC4o87HxYidtRRcBeo/hZ9Wng2XM/MqqYkAyzJXJGgRMsc0MMEN9z4+ZIfnSNBrA0b08ag==} cpu: [arm64] os: [win32] - turbo@2.3.2: - resolution: {integrity: sha512-vCJPoy8/3KkqY3W0cX2nrwhmtBQSZhEyrVgeJ4NlEXwGxu5vNRQDyV6se5VVAQMwfBsBJswlo87B7ai7Dr1MpQ==} + turbo@2.3.3: + resolution: {integrity: sha512-DUHWQAcC8BTiUZDRzAYGvpSpGLiaOQPfYXlCieQbwUvmml/LRGIe3raKdrOPOoiX0DYlzxs2nH6BoWJoZrj8hA==} hasBin: true tween-functions@1.2.0: @@ -12283,6 +12370,9 @@ packages: unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unique-names-generator@4.7.1: resolution: {integrity: sha512-lMx9dX+KRmG8sq6gulYYpKWZc9RlGsgBR6aoO8Qsm3qvkSJ+3rAymr+TnV8EDMrIrwuFJ4kruzMWM/OpYzPoow==} engines: {node: '>=8'} @@ -12291,6 +12381,9 @@ packages: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + unist-util-generated@2.0.1: resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} @@ -12309,6 +12402,9 @@ packages: unist-util-position@4.0.4: resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + unist-util-remove-position@4.0.2: resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} @@ -12434,6 +12530,9 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + vfile-matter@3.0.1: resolution: {integrity: sha512-CAAIDwnh6ZdtrqAuxdElUqQRQDQgbbIrYtDYI8gCjXS1qQ+1XdLoK8FIZWxJwn0/I+BkSSZpar3SOgjemQz4fg==} @@ -12446,6 +12545,9 @@ packages: vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + victory-vendor@36.9.2: resolution: {integrity: sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==} @@ -12568,6 +12670,9 @@ packages: wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -16192,14 +16297,14 @@ snapshots: '@humanwhocodes/object-schema@2.0.2': {} - '@ianvs/prettier-plugin-sort-imports@4.2.1(@vue/compiler-sfc@3.4.33)(prettier@3.4.0)': + '@ianvs/prettier-plugin-sort-imports@4.2.1(@vue/compiler-sfc@3.4.33)(prettier@3.4.1)': dependencies: '@babel/core': 7.24.6 '@babel/generator': 7.24.6 '@babel/parser': 7.24.6 '@babel/traverse': 7.24.6 '@babel/types': 7.24.6 - prettier: 3.4.0 + prettier: 3.4.1 semver: 7.6.0 optionalDependencies: '@vue/compiler-sfc': 3.4.33 @@ -16867,7 +16972,7 @@ snapshots: dependencies: playwright: 1.47.1 - '@pmmmwh/react-refresh-webpack-plugin@0.5.13(react-refresh@0.14.0)(type-fest@4.22.1)(webpack-hot-middleware@2.26.0)(webpack@5.89.0(esbuild@0.20.2))': + '@pmmmwh/react-refresh-webpack-plugin@0.5.13(react-refresh@0.14.0)(type-fest@4.22.1)(webpack-hot-middleware@2.26.0)(webpack@5.89.0(esbuild@0.21.5))': dependencies: ansi-html-community: 0.0.8 core-js-pure: 3.37.0 @@ -16877,7 +16982,7 @@ snapshots: react-refresh: 0.14.0 schema-utils: 3.3.0 source-map: 0.7.4 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) optionalDependencies: type-fest: 4.22.1 webpack-hot-middleware: 2.26.0 @@ -18198,9 +18303,9 @@ snapshots: memoizerific: 1.11.3 ts-dedent: 2.2.0 - '@storybook/addon-controls@8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@storybook/addon-controls@8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@storybook/blocks': 8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/blocks': 8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) dequal: 2.0.3 lodash: 4.17.21 ts-dedent: 2.2.0 @@ -18213,11 +18318,11 @@ snapshots: - react-dom - supports-color - '@storybook/addon-docs@8.1.4(@types/react-dom@18.2.0)(prettier@3.4.0)': + '@storybook/addon-docs@8.1.4(@types/react-dom@18.2.0)(prettier@3.4.1)': dependencies: '@babel/core': 7.24.6 '@mdx-js/react': 3.0.1(@types/react@18.2.48)(react@18.2.0) - '@storybook/blocks': 8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/blocks': 8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/client-logger': 8.1.4 '@storybook/components': 8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/csf-plugin': 8.1.4 @@ -18241,18 +18346,18 @@ snapshots: - prettier - supports-color - '@storybook/addon-essentials@8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@storybook/addon-essentials@8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@storybook/addon-actions': 8.1.4 '@storybook/addon-backgrounds': 8.1.4 - '@storybook/addon-controls': 8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - '@storybook/addon-docs': 8.1.4(@types/react-dom@18.2.0)(prettier@3.4.0) + '@storybook/addon-controls': 8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/addon-docs': 8.1.4(@types/react-dom@18.2.0)(prettier@3.4.1) '@storybook/addon-highlight': 8.1.4 '@storybook/addon-measure': 8.1.4 '@storybook/addon-outline': 8.1.4 '@storybook/addon-toolbars': 8.1.4 '@storybook/addon-viewport': 8.1.4 - '@storybook/core-common': 8.1.4(prettier@3.4.0) + '@storybook/core-common': 8.1.4(prettier@3.4.1) '@storybook/manager-api': 8.1.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/node-logger': 8.1.4 '@storybook/preview-api': 8.1.4 @@ -18309,14 +18414,14 @@ snapshots: dependencies: memoizerific: 1.11.3 - '@storybook/blocks@8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@storybook/blocks@8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@storybook/channels': 8.1.4 '@storybook/client-logger': 8.1.4 '@storybook/components': 8.1.4(@types/react-dom@18.2.0)(@types/react@18.2.48)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/core-events': 8.1.4 '@storybook/csf': 0.1.7 - '@storybook/docs-tools': 8.1.4(prettier@3.4.0) + '@storybook/docs-tools': 8.1.4(prettier@3.4.1) '@storybook/global': 5.0.0 '@storybook/icons': 1.2.9(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/manager-api': 8.1.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -18345,10 +18450,10 @@ snapshots: - prettier - supports-color - '@storybook/builder-manager@8.1.4(prettier@3.4.0)': + '@storybook/builder-manager@8.1.4(prettier@3.4.1)': dependencies: '@fal-works/esbuild-plugin-global-externals': 2.1.2 - '@storybook/core-common': 8.1.4(prettier@3.4.0) + '@storybook/core-common': 8.1.4(prettier@3.4.1) '@storybook/manager': 8.1.4 '@storybook/node-logger': 8.1.4 '@types/ejs': 3.1.5 @@ -18366,13 +18471,13 @@ snapshots: - prettier - supports-color - '@storybook/builder-webpack5@8.1.4(esbuild@0.20.2)(prettier@3.4.0)(typescript@5.5.4)': + '@storybook/builder-webpack5@8.1.4(esbuild@0.21.5)(prettier@3.4.1)(typescript@5.5.4)': dependencies: '@storybook/channels': 8.1.4 '@storybook/client-logger': 8.1.4 - '@storybook/core-common': 8.1.4(prettier@3.4.0) + '@storybook/core-common': 8.1.4(prettier@3.4.1) '@storybook/core-events': 8.1.4 - '@storybook/core-webpack': 8.1.4(prettier@3.4.0) + '@storybook/core-webpack': 8.1.4(prettier@3.4.1) '@storybook/node-logger': 8.1.4 '@storybook/preview': 8.1.4 '@storybook/preview-api': 8.1.4 @@ -18382,24 +18487,24 @@ snapshots: case-sensitive-paths-webpack-plugin: 2.4.0 cjs-module-lexer: 1.2.3 constants-browserify: 1.0.0 - css-loader: 6.9.1(webpack@5.89.0(esbuild@0.20.2)) + css-loader: 6.9.1(webpack@5.89.0(esbuild@0.21.5)) es-module-lexer: 1.5.3 express: 4.19.2 - fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.5.4)(webpack@5.89.0(esbuild@0.20.2)) + fork-ts-checker-webpack-plugin: 8.0.0(typescript@5.5.4)(webpack@5.89.0(esbuild@0.21.5)) fs-extra: 11.2.0 - html-webpack-plugin: 5.6.0(webpack@5.89.0(esbuild@0.20.2)) + html-webpack-plugin: 5.6.0(webpack@5.89.0(esbuild@0.21.5)) magic-string: 0.30.5 path-browserify: 1.0.1 process: 0.11.10 semver: 7.6.0 - style-loader: 3.3.4(webpack@5.89.0(esbuild@0.20.2)) - terser-webpack-plugin: 5.3.10(esbuild@0.20.2)(webpack@5.89.0(esbuild@0.20.2)) + style-loader: 3.3.4(webpack@5.89.0(esbuild@0.21.5)) + terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.89.0(esbuild@0.21.5)) ts-dedent: 2.2.0 url: 0.11.3 util: 0.12.5 util-deprecate: 1.0.2 - webpack: 5.89.0(esbuild@0.20.2) - webpack-dev-middleware: 6.1.3(webpack@5.89.0(esbuild@0.20.2)) + webpack: 5.89.0(esbuild@0.21.5) + webpack-dev-middleware: 6.1.3(webpack@5.89.0(esbuild@0.21.5)) webpack-hot-middleware: 2.26.0 webpack-virtual-modules: 0.5.0 optionalDependencies: @@ -18428,12 +18533,12 @@ snapshots: '@babel/types': 7.24.0 '@ndelangen/get-tarball': 3.0.9 '@storybook/codemod': 8.1.4 - '@storybook/core-common': 8.1.4(prettier@3.4.0) + '@storybook/core-common': 8.1.4(prettier@3.4.1) '@storybook/core-events': 8.1.4 - '@storybook/core-server': 8.1.4(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@storybook/core-server': 8.1.4(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/csf-tools': 8.1.4 '@storybook/node-logger': 8.1.4 - '@storybook/telemetry': 8.1.4(prettier@3.4.0) + '@storybook/telemetry': 8.1.4(prettier@3.4.1) '@storybook/types': 8.1.4 '@types/semver': 7.5.6 '@yarnpkg/fslib': 2.10.3 @@ -18452,7 +18557,7 @@ snapshots: jscodeshift: 0.15.1(@babel/preset-env@7.23.8(@babel/core@7.23.7)) leven: 3.1.0 ora: 5.4.1 - prettier: 3.4.0 + prettier: 3.4.1 prompts: 2.4.2 read-pkg-up: 7.0.1 semver: 7.6.0 @@ -18487,7 +18592,7 @@ snapshots: globby: 14.0.1 jscodeshift: 0.15.1(@babel/preset-env@7.24.6(@babel/core@7.24.6)) lodash: 4.17.21 - prettier: 3.4.0 + prettier: 3.4.1 recast: 0.23.6 tiny-invariant: 1.3.3 transitivePeerDependencies: @@ -18511,7 +18616,7 @@ snapshots: - '@types/react' - '@types/react-dom' - '@storybook/core-common@8.1.4(prettier@3.4.0)': + '@storybook/core-common@8.1.4(prettier@3.4.1)': dependencies: '@storybook/core-events': 8.1.4 '@storybook/csf-tools': 8.1.4 @@ -18534,7 +18639,7 @@ snapshots: node-fetch: 2.7.0 picomatch: 2.3.1 pkg-dir: 5.0.0 - prettier-fallback: prettier@3.4.0 + prettier-fallback: prettier@3.4.1 pretty-hrtime: 1.0.3 resolve-from: 5.0.0 semver: 7.6.0 @@ -18543,7 +18648,7 @@ snapshots: ts-dedent: 2.2.0 util: 0.12.5 optionalDependencies: - prettier: 3.4.0 + prettier: 3.4.1 transitivePeerDependencies: - encoding - supports-color @@ -18553,15 +18658,15 @@ snapshots: '@storybook/csf': 0.1.7 ts-dedent: 2.2.0 - '@storybook/core-server@8.1.4(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@storybook/core-server@8.1.4(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@aw-web-design/x-default-browser': 1.4.126 '@babel/core': 7.24.6 '@babel/parser': 7.24.6 '@discoveryjs/json-ext': 0.5.7 - '@storybook/builder-manager': 8.1.4(prettier@3.4.0) + '@storybook/builder-manager': 8.1.4(prettier@3.4.1) '@storybook/channels': 8.1.4 - '@storybook/core-common': 8.1.4(prettier@3.4.0) + '@storybook/core-common': 8.1.4(prettier@3.4.1) '@storybook/core-events': 8.1.4 '@storybook/csf': 0.1.7 '@storybook/csf-tools': 8.1.4 @@ -18571,7 +18676,7 @@ snapshots: '@storybook/manager-api': 8.1.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@storybook/node-logger': 8.1.4 '@storybook/preview-api': 8.1.4 - '@storybook/telemetry': 8.1.4(prettier@3.4.0) + '@storybook/telemetry': 8.1.4(prettier@3.4.1) '@storybook/types': 8.1.4 '@types/detect-port': 1.3.5 '@types/diff': 5.2.1 @@ -18610,9 +18715,9 @@ snapshots: - supports-color - utf-8-validate - '@storybook/core-webpack@8.1.4(prettier@3.4.0)': + '@storybook/core-webpack@8.1.4(prettier@3.4.1)': dependencies: - '@storybook/core-common': 8.1.4(prettier@3.4.0) + '@storybook/core-common': 8.1.4(prettier@3.4.1) '@storybook/node-logger': 8.1.4 '@storybook/types': 8.1.4 '@types/node': 18.19.8 @@ -18653,9 +18758,9 @@ snapshots: '@storybook/docs-mdx@3.1.0-next.0': {} - '@storybook/docs-tools@8.1.4(prettier@3.4.0)': + '@storybook/docs-tools@8.1.4(prettier@3.4.1)': dependencies: - '@storybook/core-common': 8.1.4(prettier@3.4.0) + '@storybook/core-common': 8.1.4(prettier@3.4.1) '@storybook/core-events': 8.1.4 '@storybook/preview-api': 8.1.4 '@storybook/types': 8.1.4 @@ -18710,7 +18815,7 @@ snapshots: '@storybook/mdx2-csf@1.1.0': {} - '@storybook/nextjs@8.1.4(@types/jest@29.5.11)(esbuild@0.20.2)(next@14.2.12(@babel/core@7.23.7)(@playwright/test@1.47.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(type-fest@4.22.1)(typescript@5.5.4)(vitest@1.6.0(@types/node@20.14.11)(jsdom@21.1.2)(terser@5.27.0))(webpack-hot-middleware@2.26.0)(webpack@5.89.0(esbuild@0.20.2))': + '@storybook/nextjs@8.1.4(@types/jest@29.5.11)(esbuild@0.21.5)(next@14.2.12(@babel/core@7.23.7)(@playwright/test@1.47.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(type-fest@4.22.1)(typescript@5.5.4)(vitest@1.6.0(@types/node@20.14.11)(jsdom@21.1.2)(terser@5.27.0))(webpack-hot-middleware@2.26.0)(webpack@5.89.0(esbuild@0.21.5))': dependencies: '@babel/core': 7.24.4 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.4) @@ -18725,36 +18830,36 @@ snapshots: '@babel/preset-react': 7.24.6(@babel/core@7.24.4) '@babel/preset-typescript': 7.24.6(@babel/core@7.24.4) '@babel/runtime': 7.24.6 - '@pmmmwh/react-refresh-webpack-plugin': 0.5.13(react-refresh@0.14.0)(type-fest@4.22.1)(webpack-hot-middleware@2.26.0)(webpack@5.89.0(esbuild@0.20.2)) - '@storybook/builder-webpack5': 8.1.4(esbuild@0.20.2)(prettier@3.4.0)(typescript@5.5.4) - '@storybook/core-common': 8.1.4(prettier@3.4.0) + '@pmmmwh/react-refresh-webpack-plugin': 0.5.13(react-refresh@0.14.0)(type-fest@4.22.1)(webpack-hot-middleware@2.26.0)(webpack@5.89.0(esbuild@0.21.5)) + '@storybook/builder-webpack5': 8.1.4(esbuild@0.21.5)(prettier@3.4.1)(typescript@5.5.4) + '@storybook/core-common': 8.1.4(prettier@3.4.1) '@storybook/core-events': 8.1.4 '@storybook/node-logger': 8.1.4 - '@storybook/preset-react-webpack': 8.1.4(esbuild@0.20.2)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) + '@storybook/preset-react-webpack': 8.1.4(esbuild@0.21.5)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) '@storybook/preview-api': 8.1.4 - '@storybook/react': 8.1.4(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) + '@storybook/react': 8.1.4(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) '@storybook/test': 8.1.4(@types/jest@29.5.11)(vitest@1.6.0(@types/node@20.14.11)(jsdom@21.1.2)(terser@5.27.0)) '@storybook/types': 8.1.4 '@types/node': 18.19.8 '@types/semver': 7.5.6 - babel-loader: 9.1.3(@babel/core@7.24.4)(webpack@5.89.0(esbuild@0.20.2)) - css-loader: 6.9.1(webpack@5.89.0(esbuild@0.20.2)) + babel-loader: 9.1.3(@babel/core@7.24.4)(webpack@5.89.0(esbuild@0.21.5)) + css-loader: 6.9.1(webpack@5.89.0(esbuild@0.21.5)) find-up: 5.0.0 fs-extra: 11.2.0 image-size: 1.1.1 loader-utils: 3.2.1 next: 14.2.12(@babel/core@7.23.7)(@playwright/test@1.47.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - node-polyfill-webpack-plugin: 2.0.1(webpack@5.89.0(esbuild@0.20.2)) + node-polyfill-webpack-plugin: 2.0.1(webpack@5.89.0(esbuild@0.21.5)) pnp-webpack-plugin: 1.7.0(typescript@5.5.4) postcss: 8.4.38 - postcss-loader: 8.1.1(postcss@8.4.38)(typescript@5.5.4)(webpack@5.89.0(esbuild@0.20.2)) + postcss-loader: 8.1.1(postcss@8.4.38)(typescript@5.5.4)(webpack@5.89.0(esbuild@0.21.5)) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-refresh: 0.14.0 resolve-url-loader: 5.0.0 - sass-loader: 12.6.0(webpack@5.89.0(esbuild@0.20.2)) + sass-loader: 12.6.0(webpack@5.89.0(esbuild@0.21.5)) semver: 7.6.0 - style-loader: 3.3.4(webpack@5.89.0(esbuild@0.20.2)) + style-loader: 3.3.4(webpack@5.89.0(esbuild@0.21.5)) styled-jsx: 5.1.1(@babel/core@7.24.4)(react@18.2.0) ts-dedent: 2.2.0 tsconfig-paths: 4.2.0 @@ -18762,7 +18867,7 @@ snapshots: optionalDependencies: sharp: 0.33.3 typescript: 5.5.4 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) transitivePeerDependencies: - '@jest/globals' - '@rspack/core' @@ -18791,13 +18896,13 @@ snapshots: '@storybook/node-logger@8.1.4': {} - '@storybook/preset-react-webpack@8.1.4(esbuild@0.20.2)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4)': + '@storybook/preset-react-webpack@8.1.4(esbuild@0.21.5)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4)': dependencies: - '@storybook/core-webpack': 8.1.4(prettier@3.4.0) - '@storybook/docs-tools': 8.1.4(prettier@3.4.0) + '@storybook/core-webpack': 8.1.4(prettier@3.4.1) + '@storybook/docs-tools': 8.1.4(prettier@3.4.1) '@storybook/node-logger': 8.1.4 - '@storybook/react': 8.1.4(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) - '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.5.4)(webpack@5.89.0(esbuild@0.20.2)) + '@storybook/react': 8.1.4(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) + '@storybook/react-docgen-typescript-plugin': 1.0.6--canary.9.0c3f3b7.0(typescript@5.5.4)(webpack@5.89.0(esbuild@0.21.5)) '@types/node': 18.19.8 '@types/semver': 7.5.6 find-up: 5.0.0 @@ -18809,7 +18914,7 @@ snapshots: resolve: 1.22.8 semver: 7.6.0 tsconfig-paths: 4.2.0 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -18840,7 +18945,7 @@ snapshots: '@storybook/preview@8.1.4': {} - '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.5.4)(webpack@5.89.0(esbuild@0.20.2))': + '@storybook/react-docgen-typescript-plugin@1.0.6--canary.9.0c3f3b7.0(typescript@5.5.4)(webpack@5.89.0(esbuild@0.21.5))': dependencies: debug: 4.3.5 endent: 2.1.0 @@ -18850,7 +18955,7 @@ snapshots: react-docgen-typescript: 2.2.2(typescript@5.5.4) tslib: 2.6.2 typescript: 5.5.4 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) transitivePeerDependencies: - supports-color @@ -18859,11 +18964,11 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@storybook/react-webpack5@8.1.4(esbuild@0.20.2)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4)': + '@storybook/react-webpack5@8.1.4(esbuild@0.21.5)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4)': dependencies: - '@storybook/builder-webpack5': 8.1.4(esbuild@0.20.2)(prettier@3.4.0)(typescript@5.5.4) - '@storybook/preset-react-webpack': 8.1.4(esbuild@0.20.2)(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) - '@storybook/react': 8.1.4(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) + '@storybook/builder-webpack5': 8.1.4(esbuild@0.21.5)(prettier@3.4.1)(typescript@5.5.4) + '@storybook/preset-react-webpack': 8.1.4(esbuild@0.21.5)(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) + '@storybook/react': 8.1.4(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4) '@storybook/types': 8.1.4 '@types/node': 18.19.8 react: 18.2.0 @@ -18880,10 +18985,10 @@ snapshots: - uglify-js - webpack-cli - '@storybook/react@8.1.4(prettier@3.4.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4)': + '@storybook/react@8.1.4(prettier@3.4.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(typescript@5.5.4)': dependencies: '@storybook/client-logger': 8.1.4 - '@storybook/docs-tools': 8.1.4(prettier@3.4.0) + '@storybook/docs-tools': 8.1.4(prettier@3.4.1) '@storybook/global': 5.0.0 '@storybook/preview-api': 8.1.4 '@storybook/react-dom-shim': 8.1.4(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -18918,10 +19023,10 @@ snapshots: memoizerific: 1.11.3 qs: 6.11.2 - '@storybook/telemetry@8.1.4(prettier@3.4.0)': + '@storybook/telemetry@8.1.4(prettier@3.4.1)': dependencies: '@storybook/client-logger': 8.1.4 - '@storybook/core-common': 8.1.4(prettier@3.4.0) + '@storybook/core-common': 8.1.4(prettier@3.4.1) '@storybook/csf-tools': 8.1.4 chalk: 4.1.2 detect-package-manager: 2.0.1 @@ -19448,6 +19553,8 @@ snapshots: '@types/json5@0.0.29': {} + '@types/katex@0.16.7': {} + '@types/linkify-it@3.0.5': {} '@types/lodash.debounce@4.0.9': @@ -20527,21 +20634,21 @@ snapshots: dependencies: '@babel/core': 7.24.6 - babel-loader@8.3.0(@babel/core@7.23.7)(webpack@5.89.0(esbuild@0.20.2)): + babel-loader@8.3.0(@babel/core@7.23.7)(webpack@5.89.0(esbuild@0.21.5)): dependencies: '@babel/core': 7.23.7 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) - babel-loader@9.1.3(@babel/core@7.24.4)(webpack@5.89.0(esbuild@0.20.2)): + babel-loader@9.1.3(@babel/core@7.24.4)(webpack@5.89.0(esbuild@0.21.5)): dependencies: '@babel/core': 7.24.4 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.4): dependencies: @@ -21301,7 +21408,7 @@ snapshots: crypto-random-string@2.0.0: {} - css-loader@6.9.1(webpack@5.89.0(esbuild@0.20.2)): + css-loader@6.9.1(webpack@5.89.0(esbuild@0.21.5)): dependencies: icss-utils: 5.1.0(postcss@8.4.38) postcss: 8.4.38 @@ -21311,7 +21418,7 @@ snapshots: postcss-modules-values: 4.0.0(postcss@8.4.38) postcss-value-parser: 4.2.0 semver: 7.6.0 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) css-select@4.3.0: dependencies: @@ -21602,8 +21709,6 @@ snapshots: diff@4.0.2: {} - diff@5.1.0: {} - diff@5.2.0: {} diffie-hellman@5.0.3: @@ -22197,8 +22302,8 @@ snapshots: '@typescript-eslint/parser': 7.2.0(eslint@8.56.0)(typescript@5.5.4) eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.56.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.10.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint@8.56.0))(eslint@8.56.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.56.0) eslint-plugin-react: 7.37.2(eslint@8.56.0) eslint-plugin-react-hooks: 5.0.0(eslint@8.56.0) @@ -22212,10 +22317,10 @@ snapshots: dependencies: eslint: 8.56.0 - eslint-config-turbo@2.3.2(eslint@8.56.0): + eslint-config-turbo@2.3.3(eslint@8.56.0): dependencies: eslint: 8.56.0 - eslint-plugin-turbo: 2.3.2(eslint@8.56.0) + eslint-plugin-turbo: 2.3.3(eslint@8.56.0) eslint-import-resolver-node@0.3.9: dependencies: @@ -22259,13 +22364,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@8.56.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint@8.56.0))(eslint@8.56.0): dependencies: debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.56.0 eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.10.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -22287,6 +22392,17 @@ snapshots: transitivePeerDependencies: - supports-color + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + dependencies: + debug: 3.2.7 + optionalDependencies: + '@typescript-eslint/parser': 7.2.0(eslint@8.56.0)(typescript@5.5.4) + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint@8.56.0))(eslint@8.56.0) + transitivePeerDependencies: + - supports-color + eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): dependencies: debug: 3.2.7 @@ -22315,7 +22431,7 @@ snapshots: '@typescript-eslint/parser': 7.2.0(eslint@8.56.0)(typescript@5.5.4) eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.10.0(eslint@8.56.0)(typescript@5.5.4))(eslint-plugin-import@2.31.0)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint@8.56.0))(eslint@8.56.0) transitivePeerDependencies: - supports-color @@ -22375,6 +22491,35 @@ snapshots: - eslint-import-resolver-webpack - supports-color + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.2 + array.prototype.flatmap: 1.3.2 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.56.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.2.0(eslint@8.56.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + hasown: 2.0.2 + is-core-module: 2.15.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 + semver: 6.3.1 + string.prototype.trimend: 1.0.8 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 7.2.0(eslint@8.56.0)(typescript@5.5.4) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + eslint-plugin-jsx-a11y@6.10.2(eslint@8.56.0): dependencies: aria-query: 5.3.2 @@ -22494,7 +22639,7 @@ snapshots: - supports-color - typescript - eslint-plugin-turbo@2.3.2(eslint@8.56.0): + eslint-plugin-turbo@2.3.3(eslint@8.56.0): dependencies: dotenv: 16.0.3 eslint: 8.56.0 @@ -22870,7 +23015,7 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@8.0.0(typescript@5.5.4)(webpack@5.89.0(esbuild@0.20.2)): + fork-ts-checker-webpack-plugin@8.0.0(typescript@5.5.4)(webpack@5.89.0(esbuild@0.21.5)): dependencies: '@babel/code-frame': 7.24.6 chalk: 4.1.2 @@ -22885,7 +23030,7 @@ snapshots: semver: 7.6.0 tapable: 2.2.1 typescript: 5.5.4 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) form-data@4.0.0: dependencies: @@ -23201,6 +23346,39 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-from-dom@5.0.1: + dependencies: + '@types/hast': 3.0.4 + hastscript: 9.0.0 + web-namespaces: 2.0.1 + + hast-util-from-html-isomorphic@2.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-dom: 5.0.1 + hast-util-from-html: 2.0.3 + unist-util-remove-position: 5.0.0 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.2 + parse5: 7.1.2 + vfile: 6.0.3 + vfile-message: 4.0.2 + + hast-util-from-parse5@8.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + devlop: 1.1.0 + hastscript: 9.0.0 + property-information: 6.4.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + hast-util-heading-rank@3.0.0: dependencies: '@types/hast': 3.0.4 @@ -23211,6 +23389,10 @@ snapshots: hast-util-parse-selector@2.2.5: {} + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-estree@2.3.3: dependencies: '@types/estree': 1.0.5 @@ -23231,12 +23413,43 @@ snapshots: transitivePeerDependencies: - supports-color + hast-util-to-jsx-runtime@2.3.2: + dependencies: + '@types/estree': 1.0.5 + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.2 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.8 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + hast-util-to-string@3.0.0: dependencies: '@types/hast': 3.0.4 + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + hast-util-whitespace@2.0.1: {} + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hastscript@6.0.0: dependencies: '@types/hast': 2.3.9 @@ -23245,6 +23458,14 @@ snapshots: property-information: 5.6.0 space-separated-tokens: 1.1.5 + hastscript@9.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.4.0 + space-separated-tokens: 2.0.2 + he@1.2.0: {} header-case@2.0.4: @@ -23288,7 +23509,9 @@ snapshots: html-tags@3.3.1: {} - html-webpack-plugin@5.6.0(webpack@5.89.0(esbuild@0.20.2)): + html-url-attributes@3.0.1: {} + + html-webpack-plugin@5.6.0(webpack@5.89.0(esbuild@0.21.5)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -23296,7 +23519,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) htmlparser2@6.1.0: dependencies: @@ -23395,6 +23618,8 @@ snapshots: inline-style-parser@0.1.1: {} + inline-style-parser@0.2.4: {} + internal-slot@1.0.6: dependencies: get-intrinsic: 1.2.2 @@ -23940,6 +24165,10 @@ snapshots: object.assign: 4.1.5 object.values: 1.1.7 + katex@0.16.11: + dependencies: + commander: 8.3.0 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -24235,6 +24464,13 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-find-and-replace@3.0.1: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + mdast-util-from-markdown@1.3.1: dependencies: '@types/mdast': 3.0.15 @@ -24269,12 +24505,6 @@ snapshots: transitivePeerDependencies: - supports-color - mdast-util-frontmatter@1.0.1: - dependencies: - '@types/mdast': 3.0.15 - mdast-util-to-markdown: 1.5.0 - micromark-extension-frontmatter: 1.1.1 - mdast-util-frontmatter@2.0.1: dependencies: '@types/mdast': 4.0.4 @@ -24286,6 +24516,24 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-strikethrough@2.0.0: dependencies: '@types/mdast': 4.0.4 @@ -24313,6 +24561,30 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-math@3.0.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + longest-streak: 3.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + unist-util-remove-position: 5.0.0 + transitivePeerDependencies: + - supports-color + mdast-util-mdx-expression@1.3.2: dependencies: '@types/estree-jsx': 1.0.3 @@ -24431,6 +24703,18 @@ snapshots: unist-util-position: 4.0.4 unist-util-visit: 4.1.2 + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + mdast-util-to-markdown@1.5.0: dependencies: '@types/mdast': 3.0.15 @@ -24551,17 +24835,28 @@ snapshots: micromark-util-types: 2.0.0 parse-entities: 4.0.1 - micromark-extension-frontmatter@1.1.1: + micromark-extension-frontmatter@2.0.0: dependencies: fault: 2.0.1 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 - micromark-extension-frontmatter@2.0.0: + micromark-extension-gfm-autolink-literal@2.1.0: dependencies: - fault: 2.0.1 micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 @@ -24582,6 +24877,10 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + micromark-extension-gfm-task-list-item@2.0.1: dependencies: devlop: 1.1.0 @@ -24590,6 +24889,27 @@ snapshots: micromark-util-symbol: 2.0.0 micromark-util-types: 2.0.0 + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.0.0 + micromark-extension-gfm-table: 2.0.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.0.1 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-math@3.1.0: + dependencies: + '@types/katex': 0.16.7 + devlop: 1.1.0 + katex: 0.16.11 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + micromark-extension-mdx-expression@1.0.8: dependencies: '@types/estree': 1.0.5 @@ -25201,32 +25521,6 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@14.2.12(@playwright/test@1.47.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): - dependencies: - '@next/env': 14.2.12 - '@swc/helpers': 0.5.5 - busboy: 1.6.0 - caniuse-lite: 1.0.30001624 - graceful-fs: 4.2.11 - postcss: 8.4.31 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.24.4)(react@18.2.0) - optionalDependencies: - '@next/swc-darwin-arm64': 14.2.12 - '@next/swc-darwin-x64': 14.2.12 - '@next/swc-linux-arm64-gnu': 14.2.12 - '@next/swc-linux-arm64-musl': 14.2.12 - '@next/swc-linux-x64-gnu': 14.2.12 - '@next/swc-linux-x64-musl': 14.2.12 - '@next/swc-win32-arm64-msvc': 14.2.12 - '@next/swc-win32-ia32-msvc': 14.2.12 - '@next/swc-win32-x64-msvc': 14.2.12 - '@playwright/test': 1.47.1 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - nice-try@1.0.5: {} no-case@3.0.4: @@ -25256,7 +25550,7 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-polyfill-webpack-plugin@2.0.1(webpack@5.89.0(esbuild@0.20.2)): + node-polyfill-webpack-plugin@2.0.1(webpack@5.89.0(esbuild@0.21.5)): dependencies: assert: 2.1.0 browserify-zlib: 0.2.0 @@ -25283,7 +25577,7 @@ snapshots: url: 0.11.3 util: 0.12.5 vm-browserify: 1.1.2 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) node-readfiles@0.2.0: dependencies: @@ -25815,14 +26109,14 @@ snapshots: postcss: 8.4.39 ts-node: 10.9.2(@types/node@20.14.11)(typescript@5.5.4) - postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.5.4)(webpack@5.89.0(esbuild@0.20.2)): + postcss-loader@8.1.1(postcss@8.4.38)(typescript@5.5.4)(webpack@5.89.0(esbuild@0.21.5)): dependencies: cosmiconfig: 9.0.0(typescript@5.5.4) jiti: 1.21.0 postcss: 8.4.38 semver: 7.6.0 optionalDependencies: - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) transitivePeerDependencies: - typescript @@ -25906,15 +26200,15 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-tailwindcss@0.6.9(@ianvs/prettier-plugin-sort-imports@4.2.1(@vue/compiler-sfc@3.4.33)(prettier@3.4.0))(prettier@3.4.0): + prettier-plugin-tailwindcss@0.6.9(@ianvs/prettier-plugin-sort-imports@4.2.1(@vue/compiler-sfc@3.4.33)(prettier@3.4.1))(prettier@3.4.1): dependencies: - prettier: 3.4.0 + prettier: 3.4.1 optionalDependencies: - '@ianvs/prettier-plugin-sort-imports': 4.2.1(@vue/compiler-sfc@3.4.33)(prettier@3.4.0) + '@ianvs/prettier-plugin-sort-imports': 4.2.1(@vue/compiler-sfc@3.4.33)(prettier@3.4.1) prettier@3.3.2: {} - prettier@3.4.0: {} + prettier@3.4.1: {} pretty-error@4.0.0: dependencies: @@ -26238,25 +26532,20 @@ snapshots: react-is@18.2.0: {} - react-markdown@8.0.7(@types/react@18.2.48)(react@18.2.0): + react-markdown@9.0.1(@types/react@18.2.48)(react@18.2.0): dependencies: - '@types/hast': 2.3.9 - '@types/prop-types': 15.7.11 + '@types/hast': 3.0.4 '@types/react': 18.2.48 - '@types/unist': 2.0.10 - comma-separated-tokens: 2.0.3 - hast-util-whitespace: 2.0.1 - prop-types: 15.8.1 - property-information: 6.4.0 + devlop: 1.1.0 + hast-util-to-jsx-runtime: 2.3.2 + html-url-attributes: 3.0.1 + mdast-util-to-hast: 13.2.0 react: 18.2.0 - react-is: 18.2.0 - remark-parse: 10.0.2 - remark-rehype: 10.1.0 - space-separated-tokens: 2.0.2 - style-to-object: 0.4.4 - unified: 10.1.2 - unist-util-visit: 4.1.2 - vfile: 5.3.7 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + unified: 11.0.5 + unist-util-visit: 5.0.0 + vfile: 6.0.3 transitivePeerDependencies: - supports-color @@ -26509,6 +26798,16 @@ snapshots: space-separated-tokens: 2.0.2 unist-util-visit: 5.0.0 + rehype-katex@7.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/katex': 0.16.7 + hast-util-from-html-isomorphic: 2.0.0 + hast-util-to-text: 4.0.2 + katex: 0.16.11 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + rehype-slug@6.0.0: dependencies: '@types/hast': 3.0.4 @@ -26519,12 +26818,25 @@ snapshots: relateurl@0.2.7: {} - remark-frontmatter@4.0.1: + remark-gfm@4.0.0: dependencies: - '@types/mdast': 3.0.15 - mdast-util-frontmatter: 1.0.1 - micromark-extension-frontmatter: 1.1.1 - unified: 10.1.2 + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-math@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-math: 3.0.0 + micromark-extension-math: 3.1.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color remark-mdx@2.3.0: dependencies: @@ -26541,6 +26853,15 @@ snapshots: transitivePeerDependencies: - supports-color + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + remark-rehype@10.1.0: dependencies: '@types/hast': 2.3.9 @@ -26548,6 +26869,20 @@ snapshots: mdast-util-to-hast: 12.3.0 unified: 10.1.2 + remark-rehype@11.1.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + renderkid@3.0.0: dependencies: css-select: 4.3.0 @@ -26704,11 +27039,11 @@ snapshots: parse-srcset: 1.0.2 postcss: 8.4.31 - sass-loader@12.6.0(webpack@5.89.0(esbuild@0.20.2)): + sass-loader@12.6.0(webpack@5.89.0(esbuild@0.21.5)): dependencies: klona: 2.0.6 neo-async: 2.6.2 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) saxes@6.0.0: dependencies: @@ -27258,9 +27593,9 @@ snapshots: lodash: 4.17.21 tinycolor2: 1.6.0 - style-loader@3.3.4(webpack@5.89.0(esbuild@0.20.2)): + style-loader@3.3.4(webpack@5.89.0(esbuild@0.21.5)): dependencies: - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) style-mod@4.1.2: {} @@ -27268,6 +27603,10 @@ snapshots: dependencies: inline-style-parser: 0.1.1 + style-to-object@1.0.8: + dependencies: + inline-style-parser: 0.2.4 + styled-jsx@5.1.1(@babel/core@7.23.7)(react@18.2.0): dependencies: client-only: 0.0.1 @@ -27486,16 +27825,16 @@ snapshots: type-fest: 0.16.0 unique-string: 2.0.0 - terser-webpack-plugin@5.3.10(esbuild@0.20.2)(webpack@5.89.0(esbuild@0.20.2)): + terser-webpack-plugin@5.3.10(esbuild@0.21.5)(webpack@5.89.0(esbuild@0.21.5)): dependencies: '@jridgewell/trace-mapping': 0.3.22 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.27.0 - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) optionalDependencies: - esbuild: 0.20.2 + esbuild: 0.21.5 terser-webpack-plugin@5.3.10(webpack@5.89.0): dependencies: @@ -27776,32 +28115,32 @@ snapshots: dependencies: safe-buffer: 5.2.1 - turbo-darwin-64@2.3.2: + turbo-darwin-64@2.3.3: optional: true - turbo-darwin-arm64@2.3.2: + turbo-darwin-arm64@2.3.3: optional: true - turbo-linux-64@2.3.2: + turbo-linux-64@2.3.3: optional: true - turbo-linux-arm64@2.3.2: + turbo-linux-arm64@2.3.3: optional: true - turbo-windows-64@2.3.2: + turbo-windows-64@2.3.3: optional: true - turbo-windows-arm64@2.3.2: + turbo-windows-arm64@2.3.3: optional: true - turbo@2.3.2: + turbo@2.3.3: optionalDependencies: - turbo-darwin-64: 2.3.2 - turbo-darwin-arm64: 2.3.2 - turbo-linux-64: 2.3.2 - turbo-linux-arm64: 2.3.2 - turbo-windows-64: 2.3.2 - turbo-windows-arm64: 2.3.2 + turbo-darwin-64: 2.3.3 + turbo-darwin-arm64: 2.3.3 + turbo-linux-64: 2.3.3 + turbo-linux-arm64: 2.3.3 + turbo-windows-64: 2.3.3 + turbo-windows-arm64: 2.3.3 tween-functions@1.2.0: {} @@ -27947,12 +28286,27 @@ snapshots: trough: 2.1.0 vfile: 5.3.7 + unified@11.0.5: + dependencies: + '@types/unist': 3.0.2 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.1.0 + vfile: 6.0.3 + unique-names-generator@4.7.1: {} unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + unist-util-generated@2.0.1: {} unist-util-is@5.2.1: @@ -27975,6 +28329,10 @@ snapshots: dependencies: '@types/unist': 2.0.10 + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.2 + unist-util-remove-position@4.0.2: dependencies: '@types/unist': 2.0.10 @@ -28104,7 +28462,7 @@ snapshots: uvu@0.5.6: dependencies: dequal: 2.0.3 - diff: 5.1.0 + diff: 5.2.0 kleur: 4.1.5 sade: 1.8.1 @@ -28117,6 +28475,11 @@ snapshots: vary@1.1.2: {} + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.2 + vfile: 6.0.3 + vfile-matter@3.0.1: dependencies: '@types/js-yaml': 4.0.9 @@ -28140,6 +28503,11 @@ snapshots: unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.2 + vfile-message: 4.0.2 + victory-vendor@36.9.2: dependencies: '@types/d3-array': 3.2.1 @@ -28299,6 +28667,8 @@ snapshots: dependencies: defaults: 1.0.4 + web-namespaces@2.0.1: {} + webidl-conversions@3.0.1: {} webidl-conversions@4.0.2: {} @@ -28324,7 +28694,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@6.1.3(webpack@5.89.0(esbuild@0.20.2)): + webpack-dev-middleware@6.1.3(webpack@5.89.0(esbuild@0.21.5)): dependencies: colorette: 2.0.20 memfs: 3.5.3 @@ -28332,7 +28702,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.2.0 optionalDependencies: - webpack: 5.89.0(esbuild@0.20.2) + webpack: 5.89.0(esbuild@0.21.5) webpack-hot-middleware@2.26.0: dependencies: @@ -28377,7 +28747,7 @@ snapshots: - esbuild - uglify-js - webpack@5.89.0(esbuild@0.20.2): + webpack@5.89.0(esbuild@0.21.5): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -28400,7 +28770,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(esbuild@0.20.2)(webpack@5.89.0(esbuild@0.20.2)) + terser-webpack-plugin: 5.3.10(esbuild@0.21.5)(webpack@5.89.0(esbuild@0.21.5)) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: From 7ae70c2d4fdc28efd509144abd7f01efd08fd9e5 Mon Sep 17 00:00:00 2001 From: EiffelFly <57251712+EiffelFly@users.noreply.github.com> Date: Wed, 27 Nov 2024 17:33:04 +0800 Subject: [PATCH 2/5] chore: remove the comment --- packages/toolkit/src/lib/markdown/MarkdownViewer.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx b/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx index 24a346f17c..5fe867f97c 100644 --- a/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx +++ b/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx @@ -67,7 +67,6 @@ export const MarkdownViewer = ({ className, )} > - {/* {sanitizedHtmlText} */} Date: Wed, 27 Nov 2024 18:00:15 +0100 Subject: [PATCH 3/5] update readme editor markdown preview --- .../toolkit/src/components/ReadmeEditor.tsx | 51 ++++--------------- .../src/lib/markdown/MarkdownViewer.tsx | 21 ++++++-- .../src/view/model/view-model/ModelReadme.tsx | 2 +- .../pipeline/view-pipeline/PipelineReadme.tsx | 2 +- 4 files changed, 27 insertions(+), 49 deletions(-) diff --git a/packages/toolkit/src/components/ReadmeEditor.tsx b/packages/toolkit/src/components/ReadmeEditor.tsx index 2dc02a01df..0cdc235045 100644 --- a/packages/toolkit/src/components/ReadmeEditor.tsx +++ b/packages/toolkit/src/components/ReadmeEditor.tsx @@ -1,12 +1,10 @@ "use client"; import * as React from "react"; -import Markdown from "markdown-to-jsx"; - import { Button, cn, Icons, ToggleGroup } from "@instill-ai/design-system"; - import { debounce } from "../lib"; import { MarkdownEditor } from "./"; +import { MarkdownViewer } from "../lib/markdown"; type ViewMode = "view" | "edit"; type EditorMode = "edit" | "preview"; @@ -71,11 +69,14 @@ export const ReadmeEditor = ({ const renderMarkdown = () => { return ( -
- - {content || placeholder || ""} - -
+ ); }; @@ -97,40 +98,6 @@ export const ReadmeEditor = ({ .mdxeditor-popup-container { display: none; } - - .markdown-body a { - word-break: break-all !important; - } - - .markdown-body pre code { - white-space: pre-wrap !important; - } - - .markdown-body p { - white-space: pre-wrap !important; - } - - .markdown-body ul > li { - white-space: pre-wrap !important; - } - - .markdown-body ol > li { - white-space: pre-wrap !important; - } - - .markdown-body h1, - .markdown-body h2, - .markdown-body h3, - .markdown-body h4, - .markdown-body h5, - .markdown-body h6 { - white-space: pre-wrap !important; - } - - .markdown-body img { - max-width: 100%; - object-fit: contain; - } `}
{ const sanitizedHtmlText = sanitizeHtml(markdown ?? ""); @@ -53,21 +57,28 @@ export const MarkdownViewer = ({ } .markdown-body h1, - h2, - h3, - h4, - h5, - h6 { + .markdown-body h2, + .markdown-body h3, + .markdown-body h4, + .markdown-body h5, + .markdown-body h6 { white-space: pre-wrap !important; } + + .markdown-body img { + max-width: 100%; + object-fit: contain; + } `}
{ ? `You don't have a README. You can start creating one by clicking **Edit** icon in the top right corner.` : "There is no README for this model." } - className="flex-1 flex flex-col [&>.markdown-body]:flex-1" + className="flex-1 flex flex-col" /> ); }; diff --git a/packages/toolkit/src/view/pipeline/view-pipeline/PipelineReadme.tsx b/packages/toolkit/src/view/pipeline/view-pipeline/PipelineReadme.tsx index 93037afde8..04b40308c5 100644 --- a/packages/toolkit/src/view/pipeline/view-pipeline/PipelineReadme.tsx +++ b/packages/toolkit/src/view/pipeline/view-pipeline/PipelineReadme.tsx @@ -74,7 +74,7 @@ export const PipelineReadme = ({ pipeline, onUpdate }: PipelineReadmeProps) => { ? `You don't have a README. You can start creating one by clicking **Edit** icon in the top right corner.` : "There is no README for this pipeline." } - className="flex-1 flex flex-col [&>.markdown-body]:flex-1" + className="flex-1 flex flex-col" /> ); }; From 416c74c706160065e35b17d55c8e9ac10811e02c Mon Sep 17 00:00:00 2001 From: Alexander Petcoglo Date: Wed, 27 Nov 2024 18:00:43 +0100 Subject: [PATCH 4/5] fix formatting --- packages/toolkit/src/components/ReadmeEditor.tsx | 4 +++- packages/toolkit/src/lib/markdown/MarkdownViewer.tsx | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/toolkit/src/components/ReadmeEditor.tsx b/packages/toolkit/src/components/ReadmeEditor.tsx index 0cdc235045..757d343060 100644 --- a/packages/toolkit/src/components/ReadmeEditor.tsx +++ b/packages/toolkit/src/components/ReadmeEditor.tsx @@ -1,10 +1,12 @@ "use client"; import * as React from "react"; + import { Button, cn, Icons, ToggleGroup } from "@instill-ai/design-system"; + import { debounce } from "../lib"; -import { MarkdownEditor } from "./"; import { MarkdownViewer } from "../lib/markdown"; +import { MarkdownEditor } from "./"; type ViewMode = "view" | "edit"; type EditorMode = "edit" | "preview"; diff --git a/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx b/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx index 670e91997c..9d9d7f814b 100644 --- a/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx +++ b/packages/toolkit/src/lib/markdown/MarkdownViewer.tsx @@ -66,8 +66,8 @@ export const MarkdownViewer = ({ } .markdown-body img { - max-width: 100%; - object-fit: contain; + max-width: 100%; + object-fit: contain; } `}
Date: Thu, 28 Nov 2024 13:59:54 +0800 Subject: [PATCH 5/5] fix: fix sanitzed --- .../components/component-output/MDTextViewer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/toolkit/src/lib/use-instill-form/components/component-output/MDTextViewer.tsx b/packages/toolkit/src/lib/use-instill-form/components/component-output/MDTextViewer.tsx index 916d07afea..e5d04598b7 100644 --- a/packages/toolkit/src/lib/use-instill-form/components/component-output/MDTextViewer.tsx +++ b/packages/toolkit/src/lib/use-instill-form/components/component-output/MDTextViewer.tsx @@ -78,7 +78,7 @@ export const MDTextViewer = ({