diff --git a/apps/web/components/community/info.tsx b/apps/web/components/community/info.tsx
index fb609f036..b185274d2 100644
--- a/apps/web/components/community/info.tsx
+++ b/apps/web/components/community/info.tsx
@@ -14,13 +14,14 @@ import {
FormField,
getSymbolFromCurrency,
Link,
- TextRenderer,
useToast,
} from "@courselit/components-library";
+import { TextRenderer } from "@courselit/page-blocks";
import {
AddressContext,
ProfileContext,
SiteInfoContext,
+ ThemeContext,
} from "@components/contexts";
import {
Dialog,
@@ -33,6 +34,7 @@ import {
} from "@components/ui/dialog";
import { COMMUNITY_SETTINGS, TOAST_TITLE_SUCCESS } from "@ui-config/strings";
import { Share2 } from "lucide-react";
+import WidgetErrorBoundary from "@components/public/base-layout/template/widget-error-boundary";
const { permissions } = UIConstants;
interface CommunityInfoProps {
@@ -74,6 +76,7 @@ export function CommunityInfo({
const currencySymbol =
getSymbolFromCurrency(siteinfo.currencyISOCode || "USD") || "$";
const { toast } = useToast();
+ const { theme } = useContext(ThemeContext);
const handleJoinSubmit = async (e: FormEvent) => {
e.preventDefault();
@@ -121,7 +124,14 @@ export function CommunityInfo({
/>
- {description && }
+ {description && (
+
+
+
+ )}
{memberCount.toLocaleString()} members
diff --git a/apps/web/components/public/lesson-viewer/index.tsx b/apps/web/components/public/lesson-viewer/index.tsx
index 03973794b..af1e76480 100644
--- a/apps/web/components/public/lesson-viewer/index.tsx
+++ b/apps/web/components/public/lesson-viewer/index.tsx
@@ -19,12 +19,12 @@ import {
NOT_ENROLLED_HEADER,
} from "@/ui-config/strings";
import {
- TextRenderer,
Link,
Button2,
Skeleton,
useToast,
} from "@courselit/components-library";
+import { TextRenderer } from "@courselit/page-blocks";
import {
Constants,
type Address,
@@ -38,6 +38,7 @@ import { isEnrolled } from "../../../ui-lib/utils";
import LessonEmbedViewer from "./embed-viewer";
import QuizViewer from "./quiz-viewer";
import { getUserProfile } from "@/app/(with-contexts)/helpers";
+import WidgetErrorBoundary from "../base-layout/template/widget-error-boundary";
interface CaptionProps {
text: string;
@@ -299,14 +300,16 @@ export const LessonViewer = ({
{String.prototype.toUpperCase.call(LESSON_TYPE_TEXT) ===
lesson.type &&
lesson.content && (
-
- }
- />
+
+
+ }
+ />
+
)}
{String.prototype.toUpperCase.call(
LESSON_TYPE_EMBED,
diff --git a/apps/web/components/table-of-content.tsx b/apps/web/components/table-of-content.tsx
new file mode 100644
index 000000000..2ab56dd82
--- /dev/null
+++ b/apps/web/components/table-of-content.tsx
@@ -0,0 +1,46 @@
+import React from "react";
+import { extractHeadings } from "@courselit/text-editor";
+import { Header2, Link } from "@courselit/page-primitives";
+import type { ThemeStyle } from "@courselit/page-models";
+
+interface TableOfContentProps {
+ json: Record;
+ contentTableHeader?: string;
+ theme?: ThemeStyle;
+}
+
+export function TableOfContent({
+ json,
+ contentTableHeader = "Table of Contents",
+ theme,
+}: TableOfContentProps) {
+ let headings: { text: string; id: string }[] = [];
+
+ try {
+ headings = json ? extractHeadings(json as any) : [];
+ } catch (err) {
+ // eslint-disable-next-line no-console
+ console.error("Error extracting headings", err);
+ }
+
+ if (headings.length === 0) {
+ return null;
+ }
+
+ return (
+
+ {contentTableHeader && (
+
+ {contentTableHeader}
+
+ )}
+
+ {headings.map(({ text, id }) => (
+
+ {text}
+
+ ))}
+
+
+ );
+}
diff --git a/apps/web/graphql/pages/logic.ts b/apps/web/graphql/pages/logic.ts
index fe80764bc..b58ed1a22 100644
--- a/apps/web/graphql/pages/logic.ts
+++ b/apps/web/graphql/pages/logic.ts
@@ -472,3 +472,44 @@ export const deletePageInternal = async (ctx: GQLContext, id: string) => {
pageId: id,
});
};
+
+export const deleteBlock = async ({
+ context: ctx,
+ pageId,
+ blockId,
+}: {
+ context: GQLContext;
+ pageId: string;
+ blockId: string;
+}) => {
+ checkIfAuthenticated(ctx);
+ if (!checkPermission(ctx.user.permissions, [permissions.manageSite])) {
+ throw new Error(responses.action_not_allowed);
+ }
+ const page: Page | null = await PageModel.findOne({
+ pageId,
+ domain: ctx.subdomain._id,
+ });
+
+ if (!page) {
+ return null;
+ }
+
+ const block = page.draftLayout.find(
+ (block: any) => block.widgetId === blockId,
+ );
+ if (!block) {
+ return null;
+ }
+
+ const deletedMediaIds = extractMediaIDs(JSON.stringify(block));
+ for (const mediaId of Array.from(deletedMediaIds)) {
+ await deleteMedia(mediaId);
+ }
+
+ page.draftLayout = page.draftLayout.filter(
+ (block: any) => block.widgetId !== blockId,
+ );
+ await (page as any).save();
+ return getPageResponse(page!, ctx);
+};
diff --git a/apps/web/graphql/pages/mutation.ts b/apps/web/graphql/pages/mutation.ts
index 1871aa103..2d698ba45 100644
--- a/apps/web/graphql/pages/mutation.ts
+++ b/apps/web/graphql/pages/mutation.ts
@@ -1,6 +1,12 @@
import { GraphQLBoolean, GraphQLNonNull, GraphQLString } from "graphql";
import GQLContext from "../../models/GQLContext";
-import { updatePage, createPage, deletePage, publish } from "./logic";
+import {
+ updatePage,
+ createPage,
+ deletePage,
+ publish,
+ deleteBlock,
+} from "./logic";
import types from "./types";
import constants from "../../config/constants";
const { defaultPages } = constants;
@@ -89,6 +95,18 @@ const mutations = {
context: GQLContext,
) => deletePage(context, id),
},
+ deleteBlock: {
+ type: types.page,
+ args: {
+ pageId: { type: new GraphQLNonNull(GraphQLString) },
+ blockId: { type: new GraphQLNonNull(GraphQLString) },
+ },
+ resolve: async (
+ _: any,
+ { pageId, blockId }: { pageId: string; blockId: string },
+ context: GQLContext,
+ ) => deleteBlock({ context, pageId, blockId }),
+ },
};
export default mutations;
diff --git a/apps/web/next-env.d.ts b/apps/web/next-env.d.ts
index 9edff1c7c..c4b7818fb 100644
--- a/apps/web/next-env.d.ts
+++ b/apps/web/next-env.d.ts
@@ -1,6 +1,6 @@
///
///
-import "./.next/types/routes.d.ts";
+import "./.next/dev/types/routes.d.ts";
// NOTE: This file should not be edited
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
diff --git a/apps/web/package.json b/apps/web/package.json
index ff42f96a5..2d696e448 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -13,6 +13,7 @@
"@courselit/common-models": "workspace:^",
"@courselit/components-library": "workspace:^",
"@courselit/email-editor": "workspace:^",
+ "@courselit/text-editor": "workspace:^",
"@courselit/icons": "workspace:^",
"@courselit/page-blocks": "workspace:^",
"@courselit/page-models": "workspace:^",
@@ -109,4 +110,4 @@
"@types/react": "19.2.4"
}
}
-}
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index f76727a8d..c14d9ae40 100644
--- a/package.json
+++ b/package.json
@@ -28,7 +28,7 @@
"test:watch": "NODE_OPTIONS='--experimental-vm-modules' SUPPRESS_JEST_WARNINGS=1 jest --watch",
"test:coverage": "NODE_OPTIONS='--experimental-vm-modules' SUPPRESS_JEST_WARNINGS=1 jest --coverage"
},
- "packageManager": "pnpm@10.17.0+sha512.fce8a3dd29a4ed2ec566fb53efbb04d8c44a0f05bc6f24a73046910fb9c3ce7afa35a0980500668fa3573345bd644644fa98338fa168235c80f4aa17aa17fbef",
+ "packageManager": "pnpm@10.22.0+sha512.bf049efe995b28f527fd2b41ae0474ce29186f7edcb3bf545087bd61fbbebb2bf75362d1307fda09c2d288e1e499787ac12d4fcb617a974718a6051f2eee741c",
"devDependencies": {
"@changesets/cli": "^2.29.7",
"@testing-library/dom": "^10.4.0",
diff --git a/packages/components-library/src/index.ts b/packages/components-library/src/index.ts
index 6b1dd53b6..0a4ded271 100644
--- a/packages/components-library/src/index.ts
+++ b/packages/components-library/src/index.ts
@@ -7,8 +7,6 @@ import Section from "./section";
import CourseItem from "./course-item";
import Link from "./link";
import MediaSelector from "./media-selector";
-import TextEditor, { emptyDoc as TextEditorEmptyDoc } from "./text-editor";
-import TextRenderer from "./text-renderer";
import LessonIcon from "./lesson-icon";
import ColorSelector from "./color-selector";
import Button from "./button";
@@ -71,9 +69,6 @@ export {
Select,
Link,
MediaSelector,
- TextEditor,
- TextEditorEmptyDoc,
- TextRenderer,
LessonIcon,
ColorSelector,
Button,
diff --git a/packages/components-library/src/styles.css b/packages/components-library/src/styles.css
index 766ccd5fc..32d5e1015 100644
--- a/packages/components-library/src/styles.css
+++ b/packages/components-library/src/styles.css
@@ -2,179 +2,6 @@
@tailwind components;
@tailwind utilities;
-.text-editor {
- .remirror-theme {
- /* Base paragraph spacing for consistent rhythm */
- :is(p) {
- @apply leading-relaxed mb-6 text-base;
- line-height: 1.7;
- }
-
- /* Consistent heading spacing with proper hierarchy */
- *:not(:first-child) ~ :is(h1, h2, h3, h4, h5, h6) {
- @apply mt-16 mb-6;
- }
-
- :is(h1) {
- @apply text-4xl font-bold mb-8 mt-16;
- color: inherit;
- line-height: 1.2;
- }
-
- :is(h2) {
- @apply text-3xl font-bold mb-6 mt-12;
- color: inherit;
- line-height: 1.3;
- }
-
- :is(h3) {
- @apply text-2xl font-semibold mb-5 mt-10;
- color: inherit;
- line-height: 1.4;
- }
-
- :is(h4) {
- @apply text-xl font-semibold mb-4 mt-8;
- color: inherit;
- line-height: 1.4;
- }
-
- :is(h5) {
- @apply text-lg font-semibold mb-4 mt-6;
- color: inherit;
- line-height: 1.5;
- }
-
- :is(h6) {
- @apply text-base font-semibold mb-3 mt-5;
- color: inherit;
- line-height: 1.5;
- }
-
- /* List spacing for better readability */
- :is(ul, ol) {
- @apply mb-6 mt-2;
-
- :is(p) {
- @apply !mb-0;
- }
-
- :is(li) {
- @apply mb-3 leading-relaxed;
- line-height: 1.6;
- }
- }
-
- :is(ul) {
- @apply list-disc ml-6;
- }
-
- :is(ol) {
- @apply list-decimal ml-6;
- }
-
- /* Remove margin from last paragraph in divs */
- :is(div) > p:last-of-type {
- @apply mb-0;
- }
-
- /* Code block styling */
- :is(pre) {
- @apply mb-6 mt-4 p-4 bg-accent rounded-lg;
-
- :is(code) {
- @apply !bg-transparent !px-0 !py-0 !rounded-none !border-none !text-base;
- }
- }
-
- /* Blockquote with better spacing */
- :is(blockquote) {
- @apply italic border-l-4 border-border text-muted-foreground pl-6 py-2 mb-6 mt-4;
- line-height: 1.6;
-
- :is(p) {
- @apply !mb-0;
- }
- }
-
- /* Inline code styling */
- :is(code) {
- @apply bg-muted px-2 py-1 rounded border border-border text-sm;
- }
-
- /* Image spacing for better visual flow */
- :is(img) {
- @apply !w-full !h-auto mb-8 mt-6;
- }
-
- /* Link styling */
- :is(a) {
- @apply underline decoration-2 underline-offset-2 transition-all duration-200 hover:decoration-dotted;
- }
-
- /* Better spacing for content sections */
- :is(div) {
- @apply mb-6;
- }
-
- /* Table spacing */
- :is(table) {
- @apply mb-6 mt-4 w-full;
- }
-
- :is(th, td) {
- @apply p-3 border border-border;
- }
-
- /* Horizontal rule spacing */
- :is(hr) {
- @apply my-8 border-border;
- }
-
- .MuiStack-root {
- @apply bg-background flex justify-center;
-
- .MuiBox-root {
- @apply bg-transparent;
-
- :is(button) {
- @apply border border-border hover:cursor-pointer;
-
- :is(svg) {
- fill: hsl(var(--foreground));
- }
- }
- }
- }
-
- .ProseMirror {
- @apply border border-border outline-none overflow-y-auto;
- }
-
- .ProseMirror-gapcursor:after {
- border-top-color: hsl(var(--foreground));
- }
- }
-}
-
-.MuiPopper-root {
- .MuiStack-root {
- @apply bg-background;
-
- .MuiBox-root {
- @apply bg-transparent;
-
- :is(button) {
- @apply border border-border hover:cursor-pointer;
-
- :is(svg) {
- fill: hsl(var(--foreground));
- }
- }
- }
- }
-}
-
@layer base {
:root {
--background: 0 0% 100%;
diff --git a/packages/components-library/src/text-editor.tsx b/packages/components-library/src/text-editor.tsx
deleted file mode 100644
index 2c06394c0..000000000
--- a/packages/components-library/src/text-editor.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-import React from "react";
-import { WysiwygEditor as TextEditor } from "@courselit/text-editor";
-export { emptyDoc } from "@courselit/text-editor";
-
-export interface WysiwygEditorProps {
- initialContent?: any;
- onChange: (...args: any[]) => void;
- showToolbar?: boolean;
- editable?: boolean;
- refresh?: number;
- url: string;
- placeholder?: string;
-}
-
-export default function Editor({
- initialContent,
- onChange,
- showToolbar,
- editable,
- refresh,
- url,
- placeholder,
-}: WysiwygEditorProps) {
- return (
-
-
-
- );
-}
diff --git a/packages/components-library/src/text-renderer.tsx b/packages/components-library/src/text-renderer.tsx
deleted file mode 100644
index 75c55d28c..000000000
--- a/packages/components-library/src/text-renderer.tsx
+++ /dev/null
@@ -1,48 +0,0 @@
-import React from "react";
-import { Renderer, extractHeadings } from "@courselit/text-editor";
-
-interface RendererProps {
- json: Record;
- showTableOfContent?: boolean;
- contentTableHeader?: string;
-}
-
-export default function TextRenderer({
- json,
- showTableOfContent = false,
- contentTableHeader = "Table of Contents",
-}: RendererProps) {
- let headings;
-
- try {
- headings = json && extractHeadings(json as any);
- } catch (err) {
- console.error("Error extracting headings", err); // eslint-disable-line no-console
- }
-
- return (
-
- {showTableOfContent && headings.length > 0 && (
-
- {contentTableHeader && (
-
- {contentTableHeader}
-
- )}
-
- {headings.map(
- ({ text, id }: { text: string; id: string }) => (
-
- {text}
-
- ),
- )}
-
-
- )}
-
-
-
-
- );
-}
diff --git a/packages/page-blocks/package.json b/packages/page-blocks/package.json
index a34e87883..cc6aa2ed5 100644
--- a/packages/page-blocks/package.json
+++ b/packages/page-blocks/package.json
@@ -60,6 +60,9 @@
"dependencies": {
"@courselit/common-models": "workspace:^",
"@courselit/components-library": "workspace:^",
+ "@courselit/text-editor": "workspace:^",
+ "@tiptap/core": "^3.0.0",
+ "@tiptap/static-renderer": "^3.10.7",
"@courselit/icons": "workspace:^",
"@courselit/page-models": "workspace:^",
"@courselit/page-primitives": "workspace:^",
diff --git a/packages/page-blocks/src/blocks/banner/admin-widget/custom-settings.tsx b/packages/page-blocks/src/blocks/banner/admin-widget/custom-settings.tsx
index ec9b070fa..6593a51a0 100644
--- a/packages/page-blocks/src/blocks/banner/admin-widget/custom-settings.tsx
+++ b/packages/page-blocks/src/blocks/banner/admin-widget/custom-settings.tsx
@@ -2,7 +2,6 @@ import * as React from "react";
import { useState, useEffect } from "react";
import Settings from "../settings";
import {
- TextEditor,
Select,
AdminWidgetPanel,
AdminWidgetPanelContainer,
@@ -20,6 +19,8 @@ import {
} from "@courselit/common-models";
import { DEFAULT_FAILURE_MESSAGE, DEFAULT_SUCCESS_MESSAGE } from "../constants";
import { ThemeStyle } from "@courselit/page-models";
+import { Editor } from "@courselit/text-editor";
+import { TextEditorContent } from "@courselit/common-models";
interface CustomSettingsProps {
name: string;
@@ -133,7 +134,7 @@ export default function CustomSettings({
/>
Custom description
-
setDescription(state)}
showToolbar={false}
@@ -162,8 +163,10 @@ export default function CustomSettings({
Success message
-
setSuccessMessage(state)
}
diff --git a/packages/page-blocks/src/blocks/banner/widget.tsx b/packages/page-blocks/src/blocks/banner/widget.tsx
index 84b512ef6..a212a1522 100644
--- a/packages/page-blocks/src/blocks/banner/widget.tsx
+++ b/packages/page-blocks/src/blocks/banner/widget.tsx
@@ -2,11 +2,11 @@ import { FormEvent, useState } from "react";
import { Constants, Media, WidgetProps } from "@courselit/common-models";
import {
Image,
- TextRenderer,
Link,
useToast,
getSymbolFromCurrency,
} from "@courselit/components-library";
+import { TextRenderer } from "../../components";
import { FetchBuilder, getPlanPrice } from "@courselit/utils";
import { DEFAULT_FAILURE_MESSAGE, DEFAULT_SUCCESS_MESSAGE } from "./constants";
import Settings from "./settings";
@@ -244,7 +244,10 @@ export default function Widget({
theme={overiddenTheme}
component="span"
>
-
+
)}
@@ -259,6 +262,7 @@ export default function Widget({
successMessage ||
defaultSuccessMessage
}
+ theme={overiddenTheme}
/>
)}
diff --git a/packages/page-blocks/src/blocks/content/admin-widget.tsx b/packages/page-blocks/src/blocks/content/admin-widget.tsx
index 164938a15..e9b9e6a15 100644
--- a/packages/page-blocks/src/blocks/content/admin-widget.tsx
+++ b/packages/page-blocks/src/blocks/content/admin-widget.tsx
@@ -6,7 +6,6 @@ import {
AdminWidgetPanel,
AdminWidgetPanelContainer,
Select,
- TextEditor,
Form,
FormField,
CssIdField,
@@ -14,6 +13,7 @@ import {
VerticalPaddingSelector,
} from "@courselit/components-library";
import { Theme, ThemeStyle } from "@courselit/page-models";
+import { Editor } from "@courselit/text-editor";
interface AdminWidgetProps {
settings: Settings;
@@ -66,7 +66,7 @@ export default function AdminWidget({
Description
-
setDescription(state)}
showToolbar={false}
diff --git a/packages/page-blocks/src/blocks/content/widget.tsx b/packages/page-blocks/src/blocks/content/widget.tsx
index 03224bb98..354d07f9e 100644
--- a/packages/page-blocks/src/blocks/content/widget.tsx
+++ b/packages/page-blocks/src/blocks/content/widget.tsx
@@ -12,7 +12,6 @@ import { FetchBuilder } from "@courselit/utils";
import {
Link,
LessonIcon,
- TextRenderer,
Skeleton,
useToast,
Badge,
@@ -21,6 +20,7 @@ import {
AccordionTrigger,
AccordionContent,
} from "@courselit/components-library";
+import { TextRenderer } from "../../components";
import {
Header1,
Text1,
@@ -162,7 +162,10 @@ export default function Widget({
}`}
>
-
+
)}
diff --git a/packages/page-blocks/src/blocks/faq/admin-widget/index.tsx b/packages/page-blocks/src/blocks/faq/admin-widget/index.tsx
index c5e69b412..826227b08 100644
--- a/packages/page-blocks/src/blocks/faq/admin-widget/index.tsx
+++ b/packages/page-blocks/src/blocks/faq/admin-widget/index.tsx
@@ -7,7 +7,6 @@ import {
AdminWidgetPanel,
AdminWidgetPanelContainer,
Select,
- TextEditor,
Button,
Form,
FormField,
@@ -19,6 +18,7 @@ import {
} from "@courselit/components-library";
import { Edit } from "@courselit/icons";
import { generateUniqueId } from "@courselit/utils";
+import { Editor } from "@courselit/text-editor";
export interface AdminWidgetProps {
settings: Settings;
@@ -179,7 +179,7 @@ export default function AdminWidget({
/>
Description
-
setDescription(state)}
showToolbar={false}
diff --git a/packages/page-blocks/src/blocks/faq/admin-widget/item-editor.tsx b/packages/page-blocks/src/blocks/faq/admin-widget/item-editor.tsx
index 718bf4a14..e00850d71 100644
--- a/packages/page-blocks/src/blocks/faq/admin-widget/item-editor.tsx
+++ b/packages/page-blocks/src/blocks/faq/admin-widget/item-editor.tsx
@@ -1,7 +1,6 @@
import { useState } from "react";
import { Item } from "../settings";
import {
- TextEditor,
Button,
Form,
FormField,
@@ -11,6 +10,7 @@ import {
} from "@courselit/components-library";
import { Address, Auth, Profile } from "@courselit/common-models";
import { AlertCircle } from "lucide-react";
+import { Editor } from "@courselit/text-editor";
interface ItemProps {
item: Item;
@@ -54,7 +54,7 @@ export default function ItemEditor({
/>
Description
-
setDescription(state)}
showToolbar={false}
diff --git a/packages/page-blocks/src/blocks/faq/widget.tsx b/packages/page-blocks/src/blocks/faq/widget.tsx
index 50342a98f..7489fd19f 100644
--- a/packages/page-blocks/src/blocks/faq/widget.tsx
+++ b/packages/page-blocks/src/blocks/faq/widget.tsx
@@ -2,12 +2,12 @@ import React from "react";
import { WidgetProps } from "@courselit/common-models";
import Settings, { Item } from "./settings";
import {
- TextRenderer,
Accordion,
AccordionItem,
AccordionTrigger,
AccordionContent,
} from "@courselit/components-library";
+import { TextRenderer } from "../../components";
import {
Header1,
Section,
@@ -68,7 +68,10 @@ export default function Widget({
}`}
>
-
+
)}
@@ -101,7 +104,10 @@ export default function Widget({
-
+
))}
diff --git a/packages/page-blocks/src/blocks/featured/admin-widget.tsx b/packages/page-blocks/src/blocks/featured/admin-widget.tsx
index 0e6e6bd41..eb922bddb 100644
--- a/packages/page-blocks/src/blocks/featured/admin-widget.tsx
+++ b/packages/page-blocks/src/blocks/featured/admin-widget.tsx
@@ -6,7 +6,6 @@ import {
AdminWidgetPanel,
AdminWidgetPanelContainer,
Select,
- TextEditor,
IconButton,
Form,
FormField,
@@ -17,6 +16,7 @@ import {
} from "@courselit/components-library";
import { Delete } from "@courselit/icons";
import { Alignment, Address } from "@courselit/common-models";
+import { Editor } from "@courselit/text-editor";
interface AdminWidgetProps {
settings: Settings;
@@ -145,7 +145,7 @@ export default function AdminWidget({
Description
-
setDescription(state)}
showToolbar={false}
diff --git a/packages/page-blocks/src/blocks/featured/widget.tsx b/packages/page-blocks/src/blocks/featured/widget.tsx
index f003b234e..b1fc86680 100644
--- a/packages/page-blocks/src/blocks/featured/widget.tsx
+++ b/packages/page-blocks/src/blocks/featured/widget.tsx
@@ -1,10 +1,10 @@
import React, { useEffect, useState } from "react";
import { Course, SiteInfo, WidgetProps } from "@courselit/common-models";
import {
- TextRenderer,
SkeletonCard,
getSymbolFromCurrency,
} from "@courselit/components-library";
+import { TextRenderer } from "../../components";
import { FetchBuilder, getPlanPrice } from "@courselit/utils";
import Settings from "./settings";
import { Header1, Subheader1, Section } from "@courselit/page-primitives";
@@ -110,7 +110,10 @@ export default function Widget({
{description && (
-
+
)}
diff --git a/packages/page-blocks/src/blocks/grid/admin-widget/index.tsx b/packages/page-blocks/src/blocks/grid/admin-widget/index.tsx
index f980605b0..37d4fc20b 100644
--- a/packages/page-blocks/src/blocks/grid/admin-widget/index.tsx
+++ b/packages/page-blocks/src/blocks/grid/admin-widget/index.tsx
@@ -6,7 +6,6 @@ import {
AdminWidgetPanel,
AdminWidgetPanelContainer,
Select,
- TextEditor,
Button,
Form,
FormField,
@@ -22,6 +21,7 @@ import { columns as defaultColumns } from "../defaults";
import { Theme, ThemeStyle } from "@courselit/page-models";
import { PencilIcon, WandSparkles, HelpCircle } from "lucide-react";
import SvgStyleEditor from "./svg-style-editor";
+import { Editor } from "@courselit/text-editor";
export interface AdminWidgetProps {
settings: Settings;
@@ -220,7 +220,7 @@ export default function AdminWidget({
Description
-
setDescription(state)}
showToolbar={false}
diff --git a/packages/page-blocks/src/blocks/grid/admin-widget/item-editor.tsx b/packages/page-blocks/src/blocks/grid/admin-widget/item-editor.tsx
index 2d3b4917b..e57ef97ac 100644
--- a/packages/page-blocks/src/blocks/grid/admin-widget/item-editor.tsx
+++ b/packages/page-blocks/src/blocks/grid/admin-widget/item-editor.tsx
@@ -2,7 +2,6 @@ import React, { useState } from "react";
import { Item, SvgStyle } from "../settings";
import {
MediaSelector,
- TextEditor,
Button,
Form,
FormField,
@@ -16,6 +15,8 @@ import {
VerticalAlignment,
} from "@courselit/common-models";
import SvgEditor from "./svg-editor";
+import { Editor } from "@courselit/text-editor";
+
interface ItemProps {
item: Item;
svgStyle: SvgStyle;
@@ -65,7 +66,7 @@ export default function ItemEditor({
/>
Description
-
setDescription(state)}
showToolbar={false}
diff --git a/packages/page-blocks/src/blocks/grid/widget/index.tsx b/packages/page-blocks/src/blocks/grid/widget/index.tsx
index 605ccbeb8..f1f3c0137 100644
--- a/packages/page-blocks/src/blocks/grid/widget/index.tsx
+++ b/packages/page-blocks/src/blocks/grid/widget/index.tsx
@@ -1,7 +1,8 @@
import React from "react";
import { WidgetProps } from "@courselit/common-models";
import Settings from "../settings";
-import { TextRenderer, Link } from "@courselit/components-library";
+import { Link } from "@courselit/components-library";
+import { TextRenderer } from "../../../components";
import Itemm from "./item";
import { columns as defaultColumns } from "../defaults";
import {
@@ -63,7 +64,10 @@ export default function Widget({
}`}
>
-
+
)}
diff --git a/packages/page-blocks/src/blocks/grid/widget/item.tsx b/packages/page-blocks/src/blocks/grid/widget/item.tsx
index 5940d8543..c1704e550 100644
--- a/packages/page-blocks/src/blocks/grid/widget/item.tsx
+++ b/packages/page-blocks/src/blocks/grid/widget/item.tsx
@@ -1,6 +1,7 @@
import React from "react";
import { Item, SvgStyle } from "../settings";
-import { TextRenderer, Link } from "@courselit/components-library";
+import { Link } from "@courselit/components-library";
+import { TextRenderer } from "../../../components";
import { Alignment } from "@courselit/common-models";
import { ThemeStyle } from "@courselit/page-models";
import {
@@ -101,7 +102,10 @@ export default function Itemm({
}`}
>
-
+
)}
diff --git a/packages/page-blocks/src/blocks/hero/admin-widget.tsx b/packages/page-blocks/src/blocks/hero/admin-widget.tsx
index f4c6b400a..5a24cd156 100644
--- a/packages/page-blocks/src/blocks/hero/admin-widget.tsx
+++ b/packages/page-blocks/src/blocks/hero/admin-widget.tsx
@@ -12,7 +12,6 @@ import {
AdminWidgetPanelContainer,
MediaSelector,
Select,
- TextEditor,
Form,
FormField,
Accordion,
@@ -29,8 +28,8 @@ import {
MaxWidthSelector,
SectionBackgroundPanel,
} from "@courselit/components-library";
-
import { isVideo } from "@courselit/utils";
+import { Editor } from "@courselit/text-editor";
interface AdminWidgetProps {
name: string;
@@ -181,7 +180,7 @@ export default function AdminWidget({
Description
-
setDescription(state)}
showToolbar={false}
diff --git a/packages/page-blocks/src/blocks/hero/widget.tsx b/packages/page-blocks/src/blocks/hero/widget.tsx
index 10ec6e784..028b90096 100644
--- a/packages/page-blocks/src/blocks/hero/widget.tsx
+++ b/packages/page-blocks/src/blocks/hero/widget.tsx
@@ -1,12 +1,8 @@
import React from "react";
import { WidgetProps } from "@courselit/common-models";
import Settings from "./settings";
-import {
- Image,
- TextRenderer,
- VideoWithPreview,
- Link,
-} from "@courselit/components-library";
+import { Image, VideoWithPreview, Link } from "@courselit/components-library";
+import { TextRenderer } from "../../components";
import { isVideo } from "@courselit/utils";
import clsx from "clsx";
import {
@@ -168,7 +164,10 @@ export default function Widget({
)}
>
-
+
)}
diff --git a/packages/page-blocks/src/blocks/pricing/admin-widget/index.tsx b/packages/page-blocks/src/blocks/pricing/admin-widget/index.tsx
index ef097d2ad..a19ed4456 100644
--- a/packages/page-blocks/src/blocks/pricing/admin-widget/index.tsx
+++ b/packages/page-blocks/src/blocks/pricing/admin-widget/index.tsx
@@ -6,7 +6,6 @@ import {
AdminWidgetPanel,
AdminWidgetPanelContainer,
Select,
- TextEditor,
Form,
FormField,
CssIdField,
@@ -20,6 +19,7 @@ import { columns as defaultColumns } from "../defaults";
import { PageBuilderSlider } from "@courselit/components-library";
import { Theme, ThemeStyle } from "@courselit/page-models";
import { PencilIcon } from "lucide-react";
+import { Editor } from "@courselit/text-editor";
export interface AdminWidgetProps {
settings: Settings;
@@ -200,7 +200,7 @@ export default function AdminWidget({
/>
Description
-
setDescription(state)}
showToolbar={false}
diff --git a/packages/page-blocks/src/blocks/pricing/admin-widget/item-editor.tsx b/packages/page-blocks/src/blocks/pricing/admin-widget/item-editor.tsx
index 23bc3e0e3..2eb34e06c 100644
--- a/packages/page-blocks/src/blocks/pricing/admin-widget/item-editor.tsx
+++ b/packages/page-blocks/src/blocks/pricing/admin-widget/item-editor.tsx
@@ -1,7 +1,6 @@
import { useState } from "react";
import { Item } from "../settings";
import {
- TextEditor,
Button,
Form,
FormField,
@@ -9,6 +8,7 @@ import {
} from "@courselit/components-library";
import { Address } from "@courselit/common-models";
import { Checkbox } from "@courselit/components-library";
+import { Editor } from "@courselit/text-editor";
interface ItemProps {
item: Item;
@@ -57,7 +57,7 @@ export default function ItemEditor({
/>
Description
-
setDescription(state)}
showToolbar={false}
diff --git a/packages/page-blocks/src/blocks/pricing/widget.tsx b/packages/page-blocks/src/blocks/pricing/widget.tsx
index 17ec46016..5da4ec1a2 100644
--- a/packages/page-blocks/src/blocks/pricing/widget.tsx
+++ b/packages/page-blocks/src/blocks/pricing/widget.tsx
@@ -2,7 +2,8 @@ import React from "react";
import { useState } from "react";
import { WidgetProps } from "@courselit/common-models";
import Settings from "./settings";
-import { Link, TextRenderer } from "@courselit/components-library";
+import { Link } from "@courselit/components-library";
+import { TextRenderer } from "../../components";
import { columns as defaultColumns } from "./defaults";
import {
Button,
@@ -71,7 +72,10 @@ export default function Widget({
}`}
>
-
+
)}
@@ -138,6 +142,7 @@ export default function Widget({
>
diff --git a/packages/page-blocks/src/blocks/rich-text/admin-widget.tsx b/packages/page-blocks/src/blocks/rich-text/admin-widget.tsx
index ee418cca0..7e840b4e5 100644
--- a/packages/page-blocks/src/blocks/rich-text/admin-widget.tsx
+++ b/packages/page-blocks/src/blocks/rich-text/admin-widget.tsx
@@ -3,8 +3,6 @@ import {
AdminWidgetPanel,
AdminWidgetPanelContainer,
Select,
- TextEditor,
- // PageBuilderSlider,
VerticalPaddingSelector,
MaxWidthSelector,
} from "@courselit/components-library";
@@ -13,6 +11,7 @@ import { Address, HorizontalAlignment } from "@courselit/common-models";
import { fontSize as defaultFontSize } from "./defaults";
import { CssIdField } from "@courselit/components-library";
import type { Theme, ThemeStyle } from "@courselit/page-models";
+import { Editor } from "@courselit/text-editor";
export interface AboutWidgetProps {
onChange: (...args: any[]) => void;
@@ -75,7 +74,7 @@ const AdminWidget = ({
Text
-
setContent(state)}
showToolbar={false}
diff --git a/packages/page-blocks/src/blocks/rich-text/widget.tsx b/packages/page-blocks/src/blocks/rich-text/widget.tsx
index 48d31e3ee..161cb05d7 100644
--- a/packages/page-blocks/src/blocks/rich-text/widget.tsx
+++ b/packages/page-blocks/src/blocks/rich-text/widget.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { TextRenderer } from "@courselit/components-library";
+import { TextRenderer } from "../../components";
import type { WidgetProps } from "@courselit/common-models";
import Settings from "./settings";
import { fontSize as defaultFontSize } from "./defaults";
@@ -54,7 +54,7 @@ const Widget = ({
className={`${twFontSize[fontSize]}`}
component="span"
>
-
+
);
diff --git a/packages/page-blocks/src/components/index.ts b/packages/page-blocks/src/components/index.ts
index 382cf2edd..c19b693e2 100644
--- a/packages/page-blocks/src/components/index.ts
+++ b/packages/page-blocks/src/components/index.ts
@@ -1 +1,2 @@
export * from "./product-card";
+export * from "./text-renderer";
diff --git a/packages/page-blocks/src/components/text-renderer.tsx b/packages/page-blocks/src/components/text-renderer.tsx
new file mode 100644
index 000000000..1ef9fea2f
--- /dev/null
+++ b/packages/page-blocks/src/components/text-renderer.tsx
@@ -0,0 +1,116 @@
+import React from "react";
+import { renderToReactElement } from "@tiptap/static-renderer";
+import {
+ extractTextFromNode,
+ emptyDoc,
+ createExtensions,
+ createId,
+} from "@courselit/text-editor";
+import type { ThemeStyle } from "@courselit/page-models";
+import {
+ Header1,
+ Header2,
+ Header3,
+ Link,
+ Text1,
+} from "@courselit/page-primitives";
+
+interface TextRendererProps {
+ json: Record;
+ className?: string;
+ theme?: ThemeStyle;
+}
+
+export function TextRenderer({ json, className, theme }: TextRendererProps) {
+ const extensions = createExtensions();
+ const content = (json as any) ?? (emptyDoc as any);
+
+ const rendered = renderToReactElement({
+ extensions,
+ content,
+ options: {
+ nodeMapping: {
+ paragraph: ({ children }) => {
+ if (theme) {
+ return (
+
+ {children}
+
+ );
+ }
+ return {children}
;
+ },
+ heading: ({ node, children }) => {
+ const level = node?.attrs?.level ?? 1;
+ // Extract text from the node structure (same as extractHeadings does)
+ const textContent = extractTextFromNode(node);
+ const id = createId(textContent);
+
+ if (!theme) {
+ const Tag =
+ `h${level}` as unknown as keyof JSX.IntrinsicElements;
+ return {children} ;
+ }
+
+ if (level === 1) {
+ return (
+
+ {children}
+
+ );
+ }
+ if (level === 2) {
+ return (
+
+ {children}
+
+ );
+ }
+ return (
+
+ {children}
+
+ );
+ },
+ codeMirror: ({ children }) => (
+
+ {children}
+
+ ),
+ },
+ markMapping: {
+ link: ({ mark, children, node }) => {
+ const href = mark?.attrs?.href;
+ return (
+
+
+ {children}
+
+
+ );
+ },
+ highlight: ({ children }) => (
+
+ {children}
+
+ ),
+ },
+ },
+ });
+
+ const combinedClassName = ["tiptap-renderer", className]
+ .filter(Boolean)
+ .join(" ");
+
+ return (
+
+ );
+}
+
+export default TextRenderer;
diff --git a/packages/page-blocks/src/styles.css b/packages/page-blocks/src/styles.css
index b5c61c956..4bd3bd471 100644
--- a/packages/page-blocks/src/styles.css
+++ b/packages/page-blocks/src/styles.css
@@ -1,3 +1,120 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
+
+.tiptap-renderer {
+ line-height: 1.7;
+ color: inherit;
+}
+
+.tiptap-renderer p {
+ margin: 0.75rem 0;
+}
+
+.tiptap-renderer h1,
+.tiptap-renderer h2,
+.tiptap-renderer h3,
+.tiptap-renderer h4,
+.tiptap-renderer h5,
+.tiptap-renderer h6 {
+ /* font-weight: 600; */
+ line-height: 1.25;
+ margin: 1.5rem 0 0.75rem;
+}
+
+/* .tiptap-renderer h1 {
+ font-size: clamp(2rem, 3vw, 2.5rem);
+}
+
+.tiptap-renderer h2 {
+ font-size: clamp(1.75rem, 2.5vw, 2rem);
+}
+
+.tiptap-renderer h3 {
+ font-size: clamp(1.5rem, 2vw, 1.75rem);
+} */
+
+.tiptap-renderer ul,
+.tiptap-renderer ol {
+ padding-left: 1.5rem;
+ margin: 0.75rem 0;
+}
+
+.tiptap-renderer ul li {
+ list-style: disc;
+}
+
+.tiptap-renderer ol li {
+ list-style: decimal;
+}
+
+.tiptap-renderer blockquote {
+ border-left: 3px solid hsl(var(--border));
+ margin: 0.75rem 0;
+ padding-left: 1rem;
+ color: hsl(var(--muted-foreground));
+ font-style: italic;
+}
+
+.tiptap-renderer pre {
+ background-color: hsl(var(--muted));
+ border-radius: 0.5rem;
+ color: hsl(var(--foreground));
+ font-family:
+ ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
+ "Liberation Mono", monospace;
+ font-size: 0.875rem;
+ margin: 0.75rem 0;
+ padding: 1rem;
+ overflow-x: auto;
+}
+
+.tiptap-renderer pre code {
+ background: none;
+ color: inherit;
+ padding: 0;
+}
+
+.tiptap-renderer code {
+ background-color: hsl(var(--muted));
+ border-radius: 0.375rem;
+ padding: 0.125rem 0.375rem;
+ font-size: 0.875em;
+ font-family:
+ ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
+ "Liberation Mono", monospace;
+}
+
+.tiptap-renderer hr {
+ border: none;
+ border-top: 1px solid hsl(var(--border));
+ margin: 1.5rem 0;
+}
+
+.tiptap-renderer table {
+ border-collapse: collapse;
+ border: 1px solid hsl(var(--border));
+ margin: 1rem 0;
+ width: 100%;
+ table-layout: fixed;
+}
+
+.tiptap-renderer table th,
+.tiptap-renderer table td {
+ border: 1px solid hsl(var(--border));
+ padding: 0.5rem;
+}
+
+.tiptap-renderer table th {
+ background-color: hsl(var(--muted));
+ font-weight: 600;
+ text-align: left;
+}
+
+.tiptap-renderer img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ border-radius: 0.5rem;
+ margin: 1rem auto;
+}
diff --git a/packages/page-primitives/src/link.tsx b/packages/page-primitives/src/link.tsx
index d1702827e..4266f0ce3 100644
--- a/packages/page-primitives/src/link.tsx
+++ b/packages/page-primitives/src/link.tsx
@@ -23,7 +23,7 @@ export const Link: React.FC = ({
const linkStyles = theme?.interactives?.link;
const classes = cn(
// Base styles
- "font-medium",
+ "font-medium cursor-pointer",
// Theme typography
typographyStyles?.fontFamily,
typographyStyles?.fontSize,
diff --git a/packages/page-primitives/src/section.tsx b/packages/page-primitives/src/section.tsx
index a6a70cab0..332440d1d 100644
--- a/packages/page-primitives/src/section.tsx
+++ b/packages/page-primitives/src/section.tsx
@@ -130,14 +130,6 @@ export const Section: React.FC = ({
theme?.structure?.section?.padding?.y || "py-4",
)}
>
-
- {nextTheme}
-
{" "}
- {/** This is used to force re-render the component when the theme changes */}
{children}
>,
diff --git a/packages/text-editor/.eslintrc.js b/packages/text-editor/.eslintrc.cjs
similarity index 100%
rename from packages/text-editor/.eslintrc.js
rename to packages/text-editor/.eslintrc.cjs
diff --git a/packages/text-editor/README.md b/packages/text-editor/README.md
index ee47cbd1f..861380330 100644
--- a/packages/text-editor/README.md
+++ b/packages/text-editor/README.md
@@ -1,6 +1,6 @@
# CourseLit's Text Editor
-This is a rich text editor, based on [Remirror](https://remirror.io).
+This is a rich text editor built on top of [TipTap v3](https://tiptap.dev/).
## Installation
@@ -10,7 +10,13 @@ To install this package, use the following command.
npm install @courselit/text-editor
```
-> You need to install [remirror](https://www.npmjs.com/package/remirror) package in your application and import Remirror's CSS file in your application using the following command `import 'remirror/styles/all.css'`.
+After installing, import the bundled styles once in your app (for example, in your root layout).
+
+```ts
+import "@courselit/text-editor/styles.css";
+```
+
+> TipTap relies on ProseMirror. The editor ships with all required extensions, so no additional peer dependencies are needed.
## Shortcut keys
@@ -20,9 +26,7 @@ npm install @courselit/text-editor
`Ctrl + u`: Underline
-`Ctrl + d`: Strikethrough
-
-`Ctrl + k`: Create/edit a link
+`Ctrl + Shift + s`: Strikethrough
`Ctrl + z`: Undo
@@ -30,12 +34,12 @@ npm install @courselit/text-editor
`Ctrl + v`: Paste
-`Ctrl + Shift + 8`: Bulleted list
+`Ctrl + Shift + 7`: Ordered list
-`Ctrl + Shift + 9`: Ordered list
+`Ctrl + Shift + 8`: Bulleted list
-`Ctrl + Shift + 7`: Tasked list
+`Ctrl + Shift + H`: Highlight (or type `==two equal signs==` and it will be converted to highlight)
## Images
-Simply drag and drop images in the editor window to put it as a `data:` embed in your content.
+Use the _Image_ button in the toolbar to upload assets to CourseLit. Uploads are limited to `2 Mega bytes` per file.
diff --git a/packages/text-editor/additional.d.ts b/packages/text-editor/additional.d.ts
new file mode 100644
index 000000000..03ee8baef
--- /dev/null
+++ b/packages/text-editor/additional.d.ts
@@ -0,0 +1 @@
+declare module "@tiptap/react/menus";
diff --git a/packages/text-editor/package.json b/packages/text-editor/package.json
index 03aef8162..a6d7f40fa 100644
--- a/packages/text-editor/package.json
+++ b/packages/text-editor/package.json
@@ -1,7 +1,7 @@
{
"name": "@courselit/text-editor",
"version": "0.34.10",
- "description": "A text editor based on Remirror",
+ "description": "A text editor based on TipTap",
"private": true,
"keywords": [
"text editor",
@@ -13,12 +13,21 @@
"license": "MIT",
"main": "dist/index.js",
"types": "dist/index.d.ts",
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "import": "./dist/index.js",
+ "require": "./dist/index.js"
+ },
+ "./styles.css": "./styles.css"
+ },
"directories": {
"lib": "src",
"test": "__tests__"
},
"files": [
- "dist"
+ "dist",
+ "styles.css"
],
"publishConfig": {
"access": "public"
@@ -40,23 +49,26 @@
"react": "^17.0.2"
},
"dependencies": {
- "@codemirror/language-data": "^6.5.1",
- "@codemirror/state": "^6.5.2",
- "@codemirror/theme-one-dark": "^6.1.2",
"@courselit/common-models": "workspace:^",
"@courselit/utils": "workspace:^",
- "@remirror/core": "^3.0.2",
- "@remirror/core-types": "^3.0.0",
- "@remirror/extension-codemirror6": "^2.0.2",
- "@remirror/extension-react-tables": "^3.0.3",
- "@remirror/i18n": "^3.0.0",
- "@remirror/pm": "^3.0.1",
- "@remirror/react": "^3.0.3",
- "@remirror/react-editors": "^2.0.3",
- "@remirror/react-ui": "^1.0.3",
- "codemirror": "^6.0.2",
- "prosemirror-model": "^1.25.3",
- "remirror": "^3.0.3"
+ "@floating-ui/dom": "^1.6.0",
+ "@tiptap/core": "^3.0.0",
+ "@tiptap/extension-bubble-menu": "^3.10.4",
+ "@tiptap/extension-code-block-lowlight": "^3.0.0",
+ "@tiptap/extension-dropcursor": "^3.0.0",
+ "@tiptap/extension-gapcursor": "^3.0.0",
+ "@tiptap/extension-heading": "^3.0.0",
+ "@tiptap/extension-highlight": "^3.11.0",
+ "@tiptap/extension-image": "^3.0.0",
+ "@tiptap/extension-link": "^3.0.0",
+ "@tiptap/extension-placeholder": "^3.0.0",
+ "@tiptap/extension-table": "^3.10.7",
+ "@tiptap/react": "^3.0.0",
+ "@tiptap/starter-kit": "^3.0.0",
+ "@tiptap/static-renderer": "^3.10.7",
+ "highlight.js": "^11.10.0",
+ "lowlight": "^2.9.0",
+ "lucide-react": "^0.544.0"
},
"devDependencies": {
"@types/node": "^18.8.0",
diff --git a/packages/text-editor/src/BubbleMenu.tsx b/packages/text-editor/src/BubbleMenu.tsx
deleted file mode 100644
index b21e2368c..000000000
--- a/packages/text-editor/src/BubbleMenu.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import React, { FC } from "react";
-import { FloatingToolbar, FormattingButtonGroup } from "@remirror/react-ui";
-import FloatingLinkCommandGroup from "./FloatingLinkCommandGroup";
-
-/**
- * Bubble menu for the pre-packaged editors
- */
-const BubbleMenu: FC = () => {
- return (
-
-
-
-
- );
-};
-
-export default BubbleMenu;
diff --git a/packages/text-editor/src/FloatingLinkCommandGroup.tsx b/packages/text-editor/src/FloatingLinkCommandGroup.tsx
deleted file mode 100644
index 0881eda30..000000000
--- a/packages/text-editor/src/FloatingLinkCommandGroup.tsx
+++ /dev/null
@@ -1,244 +0,0 @@
-import type { ChangeEvent, HTMLProps, KeyboardEvent } from "react";
-import React, {
- useCallback,
- useEffect,
- useLayoutEffect,
- useMemo,
- useRef,
- useState,
-} from "react";
-import type { AnyExtensionConstructor } from "@remirror/core";
-import {
- createMarkPositioner,
- LinkExtension,
- ShortcutHandlerProps,
-} from "remirror/extensions";
-import {
- FloatingWrapper,
- useActive,
- useAttrs,
- useChainedCommands,
- useCurrentSelection,
- useExtensionEvent,
- useUpdateReason,
-} from "@remirror/react";
-import { CommandButton, CommandButtonGroup } from "@remirror/react-ui";
-
-function useLinkShortcut() {
- const [linkShortcut, setLinkShortcut] = useState<
- ShortcutHandlerProps | undefined
- >();
- const [isEditing, setIsEditing] = useState(false);
-
- useExtensionEvent(
- LinkExtension as unknown as AnyExtensionConstructor,
- "onShortcut",
- useCallback(
- (props) => {
- if (!isEditing) {
- setIsEditing(true);
- }
-
- return setLinkShortcut(props);
- },
- [isEditing],
- ),
- );
-
- return { linkShortcut, isEditing, setIsEditing };
-}
-
-function useFloatingLinkState() {
- // @ts-ignore
- const chain = useChainedCommands();
- const { isEditing, linkShortcut, setIsEditing } = useLinkShortcut();
- const { to, empty } = useCurrentSelection();
-
- const url = (useAttrs().link()?.href as string) ?? "";
- const [href, setHref] = useState(url);
-
- // A positioner which only shows for links.
- const linkPositioner = useMemo(
- () => createMarkPositioner({ type: "link" }),
- [],
- );
-
- const onRemove = useCallback(() => {
- return chain.removeLink().focus().run();
- }, [chain]);
-
- const updateReason = useUpdateReason();
-
- useLayoutEffect(() => {
- if (!isEditing) {
- return;
- }
-
- if (updateReason.doc || updateReason.selection) {
- setIsEditing(false);
- }
- }, [isEditing, setIsEditing, updateReason.doc, updateReason.selection]);
-
- useEffect(() => {
- setHref(url);
- }, [url]);
-
- const submitHref = useCallback(() => {
- setIsEditing(false);
- const range = linkShortcut ?? undefined;
-
- if (href === "") {
- chain.removeLink();
- } else {
- chain.updateLink({ href, auto: false }, range);
- }
-
- chain.focus(range?.to ?? to).run();
- }, [setIsEditing, linkShortcut, chain, href, to]);
-
- const cancelHref = useCallback(() => {
- setIsEditing(false);
- }, [setIsEditing]);
-
- const clickEdit = useCallback(() => {
- if (empty) {
- chain.selectLink();
- }
-
- setIsEditing(true);
- }, [chain, empty, setIsEditing]);
-
- return useMemo(
- () => ({
- href,
- setHref,
- linkShortcut,
- linkPositioner,
- isEditing,
- clickEdit,
- onRemove,
- submitHref,
- cancelHref,
- }),
- [
- href,
- linkShortcut,
- linkPositioner,
- isEditing,
- clickEdit,
- onRemove,
- submitHref,
- cancelHref,
- ],
- );
-}
-
-const DelayAutoFocusInput = ({
- autoFocus,
- ...rest
-}: HTMLProps) => {
- const inputRef = useRef(null);
-
- useEffect(() => {
- if (!autoFocus) {
- return;
- }
-
- const frame = window.requestAnimationFrame(() => {
- inputRef.current?.focus();
- });
-
- return () => {
- window.cancelAnimationFrame(frame);
- };
- }, [autoFocus]);
-
- return ;
-};
-
-const FloatingLinkToolbar = () => {
- const {
- isEditing,
- clickEdit,
- onRemove,
- submitHref,
- href,
- setHref,
- cancelHref,
- } = useFloatingLinkState();
- const active = useActive();
- const activeLink = active.link();
- const { empty } = useCurrentSelection();
-
- const handleClickEdit = useCallback(() => {
- clickEdit();
- }, [clickEdit]);
- const label = "Link";
-
- const linkEditButtons = activeLink ? (
- <>
-
-
- >
- ) : (
-
- );
-
- return (
- <>
- {!isEditing && (
- {linkEditButtons}
- )}
- {!isEditing && empty && (
- {linkEditButtons}
- )}
-
-
- ) =>
- setHref(event.target.value)
- }
- value={href}
- onKeyPress={(event: KeyboardEvent) => {
- const { code } = event;
-
- if (code === "Enter") {
- submitHref();
- }
-
- if (code === "Escape") {
- cancelHref();
- }
- }}
- />
-
- >
- );
-};
-
-export default FloatingLinkToolbar;
diff --git a/packages/text-editor/src/Renderer/code-mirror-renderer.tsx b/packages/text-editor/src/Renderer/code-mirror-renderer.tsx
deleted file mode 100644
index 993c00415..000000000
--- a/packages/text-editor/src/Renderer/code-mirror-renderer.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { MarkMap, TextHandler } from "@remirror/react";
-import React, { FC } from "react";
-import { RemirrorJSON } from "remirror";
-
-export const CodeMirrorRenderer: FC<{
- node: RemirrorJSON;
- markMap: MarkMap;
-}> = (props) => {
- const content = props.node.content;
- if (!content) {
- return null;
- }
-
- const children = content.map((node, ii) => {
- return ;
- });
-
- return (
-
- {children}
-
- );
-};
diff --git a/packages/text-editor/src/Renderer/index.tsx b/packages/text-editor/src/Renderer/index.tsx
deleted file mode 100644
index 2e9ad93c8..000000000
--- a/packages/text-editor/src/Renderer/index.tsx
+++ /dev/null
@@ -1,85 +0,0 @@
-import React from "react";
-import {
- Callout,
- CodeBlock,
- createIFrameHandler,
- createLinkHandler,
- Doc,
- MarkMap,
- RemirrorRenderer,
- TextHandler,
- ThemeProvider,
-} from "@remirror/react";
-import { RemirrorJSON } from "@remirror/core-types";
-import { CodeMirrorRenderer } from "./code-mirror-renderer";
-import { createId } from "../create-id";
-
-const typeMap: MarkMap = {
- blockquote: "blockquote",
- bulletList: "ul",
- callout: Callout,
- codeBlock: CodeBlock,
- codeMirror: CodeMirrorRenderer,
- doc: Doc,
- hardBreak: "br",
- horizontalRule: "hr",
- iframe: createIFrameHandler(),
- image: "img",
- listItem: "li",
- paragraph: "p",
- orderedList: "ol",
- text: TextHandler,
- taskList: "ul",
- taskListItem: "li",
- // add links to headings for table of contents navigation
- heading: ({ node, children }) => {
- if (!node.content) {
- return null;
- }
-
- let textContent = "";
- for (const child of node.content) {
- textContent += child.text;
- }
- const id = createId(textContent);
- const HeadingTag =
- `h${node.attrs.level}` as keyof JSX.IntrinsicElements;
-
- return {children} ;
- },
-};
-
-const markMap: MarkMap = {
- italic: "em",
- bold: "strong",
- code: "code",
- link: createLinkHandler({ target: "_blank", rel: "noopener noreferrer" }),
- underline: "u",
- strike: "strike",
-};
-
-interface RendererProps {
- json: RemirrorJSON;
- fontFamily?: string;
-}
-
-const Renderer = ({ json, fontFamily }: RendererProps): JSX.Element => {
- const theme = {
- fontFamily: {
- default: fontFamily,
- },
- };
-
- return (
-
-
-
- );
-};
-
-export default Renderer;
diff --git a/packages/text-editor/src/Toolbar.tsx b/packages/text-editor/src/Toolbar.tsx
deleted file mode 100644
index c3dc002c3..000000000
--- a/packages/text-editor/src/Toolbar.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import React, { FC } from "react";
-import {
- FormattingButtonGroup,
- HeadingLevelButtonGroup,
- InsertHorizontalRuleButton,
- ListButtonGroup,
- RedoButton,
- Toolbar as RemirrorToolbar,
- ToggleBlockquoteButton,
- UndoButton,
-} from "@remirror/react-ui";
-
-const Toolbar: FC = () => {
- return (
-
-
-
-
-
-
-
-
-
-
- );
-};
-
-export default Toolbar;
diff --git a/packages/text-editor/src/WysiwygEditor.tsx b/packages/text-editor/src/WysiwygEditor.tsx
deleted file mode 100644
index c62f4b813..000000000
--- a/packages/text-editor/src/WysiwygEditor.tsx
+++ /dev/null
@@ -1,150 +0,0 @@
-"use client";
-
-/* eslint-disable react-hooks/rules-of-hooks */
-import React, { useEffect, FC, PropsWithChildren, useCallback } from "react";
-import {
- EditorComponent,
- Remirror,
- ThemeProvider,
- useRemirror,
-} from "@remirror/react";
-import { TableComponents } from "@remirror/extension-react-tables";
-import { RemirrorContentType } from "@remirror/core-types";
-import {
- getTextContentFromSlice,
- AnyExtension,
- RemirrorEventListenerProps,
- Slice,
-} from "@remirror/core";
-import { InvalidContentHandler } from "remirror";
-import BubbleMenu from "./BubbleMenu";
-import Toolbar from "./Toolbar";
-import { ReactEditorProps } from "./types";
-import emptyDoc from "./empty-doc";
-import { getExtensions } from "./extensions";
-import { i18nFormat } from "@remirror/i18n";
-
-export interface WysiwygEditorProps {
- onChange: (json: unknown) => void;
- showToolbar?: boolean;
- editable?: boolean;
- refresh?: number;
- fontFamily?: string;
- url: string;
- initialContent?: ReactEditorProps["initialContent"];
- stringHandler?: ReactEditorProps["stringHandler"];
- placeholder?: string;
- autoFocus?: boolean;
- hooks?: ReactEditorProps["hooks"];
-}
-
-interface WysiwygEditorType extends FC> {
- getPlainText: (doc: RemirrorContentType) => string;
- emptyDoc: RemirrorContentType;
-}
-
-const WysiwygEditor: WysiwygEditorType = Object.assign(
- ({
- initialContent,
- onChange,
- placeholder,
- stringHandler,
- children,
- showToolbar = true,
- editable = true,
- refresh,
- fontFamily,
- url,
- ...rest
- }) => {
- const theme = {
- fontFamily: {
- default: fontFamily,
- },
- };
-
- if (typeof window === "undefined") {
- return <>>;
- }
-
- useEffect(() => {
- manager.view.updateState(
- manager.createState({
- content: initialContent as RemirrorContentType,
- }),
- );
- }, [refresh]);
-
- const extensions = useCallback(() => {
- const exts = getExtensions(placeholder, url)();
- return exts as unknown as AnyExtension[];
- }, [placeholder, url]);
-
- const onError: InvalidContentHandler = useCallback(
- ({ json, invalidContent, transformers }) => {
- // Automatically remove all invalid nodes and marks.
- return transformers.remove(json, invalidContent);
- },
- [],
- );
-
- const {
- manager,
- state,
- onChange: onChangeRemirror,
- } = useRemirror({
- extensions,
- stringHandler,
- content: (initialContent as RemirrorContentType) || emptyDoc,
- onError,
- });
-
- const onChangeFunc = (
- data: RemirrorEventListenerProps,
- ) => {
- setTimeout(() => onChange(data.helpers.getJSON()), 0);
- };
-
- return (
-
- {
- onChangeRemirror(data);
- onChangeFunc(data);
- }}
- editable={editable}
- i18nFormat={i18nFormat}
- {...rest}
- >
-
- {editable && showToolbar && (
-
-
-
- )}
-
-
-
- {children}
-
-
-
- );
- },
- {
- getPlainText: (doc: RemirrorContentType) =>
- getTextContentFromSlice(doc as unknown as Slice),
- emptyDoc,
- },
-) as WysiwygEditorType;
-
-export default WysiwygEditor;
diff --git a/packages/text-editor/src/bubble-menu.tsx b/packages/text-editor/src/bubble-menu.tsx
new file mode 100644
index 000000000..c65f8721e
--- /dev/null
+++ b/packages/text-editor/src/bubble-menu.tsx
@@ -0,0 +1,196 @@
+import React, { useCallback, useEffect, useRef, useState } from "react";
+import type { Editor } from "@tiptap/core";
+import type { BubbleMenuPluginProps } from "@tiptap/extension-bubble-menu";
+import { BubbleMenuPlugin } from "@tiptap/extension-bubble-menu";
+import {
+ Bold,
+ Code,
+ Italic,
+ Link as LinkIcon,
+ Strikethrough,
+ Underline,
+} from "lucide-react";
+import LinkEditorPopover from "./components/link-editor-popover";
+
+interface BubbleMenuProps {
+ editor: Editor;
+}
+
+const buttonBase =
+ "inline-flex h-8 w-8 items-center justify-center rounded text-foreground transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary";
+
+type TipTapBubbleMenuProps = {
+ editor: Editor | null;
+ className?: string;
+ children: React.ReactNode;
+ pluginKey?: string;
+} & Partial>;
+
+const TipTapBubbleMenu = ({
+ editor,
+ className,
+ children,
+ pluginKey = "inlineBubbleMenu",
+ updateDelay,
+ resizeDelay,
+ shouldShow,
+ appendTo,
+ getReferencedVirtualElement,
+ options,
+}: TipTapBubbleMenuProps): JSX.Element => {
+ const menuRef = useRef(null);
+
+ useEffect(() => {
+ const element = menuRef.current;
+
+ if (!editor || editor.isDestroyed || !element) {
+ return;
+ }
+
+ const plugin = BubbleMenuPlugin({
+ editor,
+ element,
+ pluginKey,
+ updateDelay,
+ resizeDelay,
+ shouldShow: shouldShow ?? null,
+ appendTo,
+ getReferencedVirtualElement,
+ options,
+ });
+
+ editor.registerPlugin(plugin);
+
+ return () => {
+ editor.unregisterPlugin(pluginKey);
+ };
+ }, [
+ editor,
+ pluginKey,
+ updateDelay,
+ resizeDelay,
+ shouldShow,
+ appendTo,
+ getReferencedVirtualElement,
+ options,
+ ]);
+
+ return (
+
+ {children}
+
+ );
+};
+
+function InlineButton({
+ icon: Icon,
+ label,
+ active,
+ onClick,
+}: {
+ icon: React.ComponentType<{ className?: string }>;
+ label: string;
+ active?: boolean;
+ onClick: () => void;
+}): JSX.Element {
+ return (
+
+
+
+ );
+}
+
+const InlineBubbleMenu = ({ editor }: BubbleMenuProps): JSX.Element | null => {
+ const [isLinkEditing, setIsLinkEditing] = useState(false);
+
+ const openLinkEditor = useCallback(() => {
+ setIsLinkEditing((prev) => !prev);
+ }, []);
+
+ useEffect(() => {
+ const handleSelectionUpdate = () => {
+ setIsLinkEditing(false);
+ };
+
+ editor.on("selectionUpdate", handleSelectionUpdate);
+
+ return () => {
+ editor.off("selectionUpdate", handleSelectionUpdate);
+ };
+ }, [editor]);
+
+ if (!editor) {
+ return null;
+ }
+
+ return (
+
+
+ editor.chain().focus().toggleBold().run()}
+ />
+ editor.chain().focus().toggleItalic().run()}
+ />
+
+ editor.chain().focus().toggleMark("underline").run()
+ }
+ />
+ editor.chain().focus().toggleStrike().run()}
+ />
+ editor.chain().focus().toggleCode().run()}
+ />
+
+
+ {isLinkEditing && (
+ setIsLinkEditing(false)}
+ variant="inline"
+ />
+ )}
+
+ );
+};
+
+export default InlineBubbleMenu;
diff --git a/packages/text-editor/src/components/custom-code-mirror.tsx b/packages/text-editor/src/components/custom-code-mirror.tsx
new file mode 100644
index 000000000..b9a4fbb35
--- /dev/null
+++ b/packages/text-editor/src/components/custom-code-mirror.tsx
@@ -0,0 +1,27 @@
+// This is only to maintain backward compatibility for codeMirror node type
+
+import { Node } from "@tiptap/core";
+
+export const CodeMirrorNode = Node.create({
+ name: "codeMirror",
+ content: "block+",
+ code: true,
+
+ addOptions() {
+ return {
+ HTMLAttributes: {},
+ };
+ },
+
+ parseHTML() {
+ return [
+ {
+ tag: "pre",
+ },
+ ];
+ },
+
+ renderHTML({ HTMLAttributes }) {
+ return ["pre", HTMLAttributes, 0];
+ },
+});
diff --git a/packages/text-editor/src/components/link-editor-popover.tsx b/packages/text-editor/src/components/link-editor-popover.tsx
new file mode 100644
index 000000000..552e1b747
--- /dev/null
+++ b/packages/text-editor/src/components/link-editor-popover.tsx
@@ -0,0 +1,170 @@
+"use client";
+
+import React, { useEffect, useRef, useState } from "react";
+import type { Editor } from "@tiptap/react";
+import { Check, Trash2, X } from "lucide-react";
+
+interface LinkEditorPopoverProps {
+ editor: Editor;
+ onClose: () => void;
+ variant?: "panel" | "inline";
+ containerRef?: React.MutableRefObject;
+}
+
+const LinkEditorPopover = ({
+ editor,
+ onClose,
+ variant = "panel",
+ containerRef,
+}: LinkEditorPopoverProps): JSX.Element => {
+ const [linkValue, setLinkValue] = useState("");
+ const inputRef = useRef(null);
+ const localContainerRef = useRef(null);
+
+ const assignContainerRef = (node: HTMLDivElement | null) => {
+ localContainerRef.current = node;
+ if (containerRef) {
+ containerRef.current = node;
+ }
+ };
+
+ useEffect(() => {
+ const current = editor.getAttributes("link").href as string | undefined;
+ setLinkValue(current ?? "");
+ }, [editor]);
+
+ useEffect(() => {
+ const timer = window.setTimeout(() => {
+ inputRef.current?.focus();
+ }, 20);
+
+ return () => window.clearTimeout(timer);
+ }, []);
+
+ const applyLink = () => {
+ const value = linkValue.trim();
+ if (!value) {
+ editor.chain().focus().extendMarkRange("link").unsetLink().run();
+ } else {
+ editor
+ .chain()
+ .focus()
+ .extendMarkRange("link")
+ .setLink({ href: value })
+ .run();
+ }
+
+ onClose();
+ };
+
+ const removeLink = () => {
+ editor.chain().focus().extendMarkRange("link").unsetLink().run();
+ onClose();
+ };
+
+ const handleKeyDown = (event: React.KeyboardEvent) => {
+ if (event.key === "Enter") {
+ event.preventDefault();
+ applyLink();
+ }
+
+ if (event.key === "Escape") {
+ event.preventDefault();
+ onClose();
+ }
+ };
+
+ if (variant === "inline") {
+ return (
+ event.stopPropagation()}
+ >
+ setLinkValue(event.target.value)}
+ onKeyDown={handleKeyDown}
+ className="w-48 rounded border border-border bg-background px-2 py-1 text-sm text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary"
+ />
+
+
+
+
+
+
+
+
+
+
+ );
+ }
+
+ return (
+
+
+
+ Link URL
+
+
setLinkValue(event.target.value)}
+ onKeyDown={handleKeyDown}
+ className="w-full rounded border border-border bg-background px-2 py-1 text-sm text-foreground focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary"
+ />
+
+
+
+ Cancel
+
+
+
+ Remove
+
+
+
+ Apply
+
+
+
+
+ );
+};
+
+export default LinkEditorPopover;
diff --git a/packages/text-editor/src/editor.tsx b/packages/text-editor/src/editor.tsx
new file mode 100644
index 000000000..e9dd519c7
--- /dev/null
+++ b/packages/text-editor/src/editor.tsx
@@ -0,0 +1,240 @@
+"use client";
+
+import React, {
+ FC,
+ PropsWithChildren,
+ useCallback,
+ useEffect,
+ useMemo,
+ useRef,
+ useState,
+} from "react";
+import type { JSONContent } from "@tiptap/core";
+import { generateText } from "@tiptap/core";
+import { EditorContent, useEditor } from "@tiptap/react";
+import emptyDoc from "./empty-doc";
+import { createExtensions } from "./extensions";
+import Toolbar from "./toolbar";
+import BubbleMenu from "./bubble-menu";
+import type { ReactEditorProps } from "./types";
+import { uploadImageToMediaLit } from "./file-upload-extention";
+
+export interface EditorProps {
+ onChange: (json: JSONContent) => void;
+ showToolbar?: boolean;
+ editable?: boolean;
+ refresh?: number;
+ url: string;
+ initialContent?: ReactEditorProps["initialContent"];
+ placeholder?: string;
+ autoFocus?: boolean;
+ imageSizeLimit?: number;
+ onError?: (...args: any[]) => void;
+}
+
+interface EditorType extends FC> {
+ getPlainText: (doc: JSONContent) => string;
+ emptyDoc: JSONContent;
+}
+
+const Editor: EditorType = Object.assign(
+ ({
+ initialContent,
+ onChange,
+ placeholder,
+ children,
+ showToolbar = true,
+ editable = true,
+ refresh,
+ url,
+ autoFocus,
+ imageSizeLimit,
+ onError,
+ }) => {
+ const [isUploading, setIsUploading] = useState(false);
+ const fileInputRef = useRef(null);
+ const hasInteractedRef = useRef(false);
+ const lastSerializedContentRef = useRef(
+ JSON.stringify(initialContent ?? emptyDoc),
+ );
+ const refreshRef = useRef(refresh);
+
+ const extensions = useMemo(
+ () => createExtensions({ placeholder }),
+ [placeholder],
+ );
+
+ const changeTimeoutRef = useRef(null);
+
+ const editor = useEditor(
+ {
+ immediatelyRender: false,
+ extensions,
+ content: initialContent ?? emptyDoc,
+ autofocus: autoFocus ? "end" : false,
+ editable,
+ editorProps: {
+ attributes: {
+ class: "tiptap-content",
+ "data-placeholder": placeholder ?? "",
+ },
+ },
+ onUpdate: ({ editor: instance }) => {
+ if (changeTimeoutRef.current) {
+ clearTimeout(changeTimeoutRef.current);
+ }
+
+ changeTimeoutRef.current = setTimeout(() => {
+ hasInteractedRef.current = true;
+ onChange(instance.getJSON());
+ changeTimeoutRef.current = null;
+ }, 1000);
+ },
+ onSelectionUpdate: ({ editor: instance }) => {
+ hasInteractedRef.current = true;
+ },
+ },
+ [extensions],
+ );
+ useEffect(() => {
+ return () => {
+ if (changeTimeoutRef.current) {
+ clearTimeout(changeTimeoutRef.current);
+ }
+ };
+ }, []);
+
+ useEffect(() => {
+ if (!editor) {
+ return;
+ }
+
+ editor.setEditable(editable);
+ }, [editor, editable]);
+
+ useEffect(() => {
+ if (!editor) {
+ return;
+ }
+
+ const nextContent = initialContent ?? emptyDoc;
+ const nextSerialized = JSON.stringify(nextContent);
+ const refreshChanged = refreshRef.current !== refresh;
+
+ if (refreshChanged) {
+ refreshRef.current = refresh;
+ hasInteractedRef.current = false;
+ lastSerializedContentRef.current = nextSerialized;
+ editor.commands.setContent(nextContent, {
+ emitUpdate: false,
+ });
+ return;
+ }
+
+ if (!hasInteractedRef.current) {
+ if (lastSerializedContentRef.current !== nextSerialized) {
+ lastSerializedContentRef.current = nextSerialized;
+ editor.commands.setContent(nextContent, {
+ emitUpdate: false,
+ });
+ }
+ return;
+ }
+
+ lastSerializedContentRef.current = nextSerialized;
+ }, [editor, initialContent, refresh]);
+
+ const handleImageUpload = useCallback(
+ async (file: File) => {
+ try {
+ setIsUploading(true);
+ const result = await uploadImageToMediaLit({
+ url,
+ file,
+ fileSizeLimit: imageSizeLimit,
+ onError,
+ });
+ editor
+ ?.chain()
+ .focus()
+ .setImage({
+ src: result.src,
+ alt: result.fileName,
+ title: result.fileName,
+ })
+ .run();
+ } catch (error) {
+ console.error("Image upload failed", error);
+ } finally {
+ setIsUploading(false);
+ }
+ },
+ [editor, url],
+ );
+
+ const handleSelectFile = useCallback(
+ (event: React.ChangeEvent) => {
+ const files = event.target.files;
+ if (!files || files.length === 0) {
+ return;
+ }
+
+ const file = files[0];
+ void handleImageUpload(file);
+ event.target.value = "";
+ },
+ [handleImageUpload],
+ );
+
+ const openFileDialog = useCallback(() => {
+ fileInputRef.current?.click();
+ }, []);
+
+ if (typeof window === "undefined") {
+ return <>>;
+ }
+
+ return (
+
+ {editable && showToolbar && (
+
+
+
+ )}
+
+
+
+
+ {children}
+ {editor && }
+
+
+
+ );
+ },
+ {
+ getPlainText: (doc: JSONContent) =>
+ generateText(doc || emptyDoc, createExtensions()),
+ emptyDoc,
+ },
+) as EditorType;
+
+export default Editor;
diff --git a/packages/text-editor/src/empty-doc.ts b/packages/text-editor/src/empty-doc.ts
index 47633cf56..12a71e997 100644
--- a/packages/text-editor/src/empty-doc.ts
+++ b/packages/text-editor/src/empty-doc.ts
@@ -1,6 +1,6 @@
-import { RemirrorContentType } from "remirror";
+import type { JSONContent } from "@tiptap/core";
-const emptyDoc: RemirrorContentType = {
+const emptyDoc: JSONContent = {
type: "doc",
content: [],
};
diff --git a/packages/text-editor/src/extensions.ts b/packages/text-editor/src/extensions.ts
index 431a2b4a5..8300d76d6 100644
--- a/packages/text-editor/src/extensions.ts
+++ b/packages/text-editor/src/extensions.ts
@@ -1,77 +1,97 @@
+import StarterKit from "@tiptap/starter-kit";
+import Placeholder from "@tiptap/extension-placeholder";
+import Link from "@tiptap/extension-link";
import {
- BulletListExtension,
- DocExtension,
- DropCursorExtension,
- HeadingExtension,
- ImageExtension,
- LinkExtension,
- OrderedListExtension,
- ParagraphExtension,
- PlaceholderExtension,
- TaskListExtension,
- TextExtension,
- BlockquoteExtension,
- HardBreakExtension,
- BoldExtension,
- ItalicExtension,
- GapCursorExtension,
- HorizontalRuleExtension,
- StrikeExtension,
- UnderlineExtension,
- CodeExtension,
- BidiExtension,
- CodeBlockExtension,
- TrailingNodeExtension,
- IframeExtension,
- ShortcutsExtension,
-} from "remirror/extensions";
-import { CodeMirrorExtension } from "@remirror/extension-codemirror6";
-import { TableExtension } from "@remirror/extension-react-tables";
-import { oneDark } from "@codemirror/theme-one-dark";
-import { basicSetup } from "codemirror";
-import { getUploadHandler } from "./file-upload-extention";
+ Table,
+ TableCell,
+ TableHeader,
+ TableRow,
+} from "@tiptap/extension-table";
+import Image from "@tiptap/extension-image";
+import Dropcursor from "@tiptap/extension-dropcursor";
+import Gapcursor from "@tiptap/extension-gapcursor";
+import CodeBlockLowlight from "@tiptap/extension-code-block-lowlight";
+import Heading from "@tiptap/extension-heading";
+import Highlight from "@tiptap/extension-highlight";
+import { lowlight } from "lowlight";
+import javascript from "highlight.js/lib/languages/javascript";
+import typescript from "highlight.js/lib/languages/typescript";
+import json from "highlight.js/lib/languages/json";
+import css from "highlight.js/lib/languages/css";
+import xml from "highlight.js/lib/languages/xml";
+import type { Extensions } from "@tiptap/core";
+import { createId } from "./create-id";
+import { CodeMirrorNode } from "./components/custom-code-mirror";
-export const getExtensions = (placeholder, url) => () => [
- new DocExtension({}),
- new TextExtension(),
- new ParagraphExtension(),
- new HeadingExtension({}),
- new BulletListExtension({}),
- new LinkExtension({}),
- new OrderedListExtension(),
- new PlaceholderExtension({ placeholder }),
- new TableExtension(),
- new TaskListExtension(),
- new ImageExtension({
- enableResizing: true,
- uploadHandler: getUploadHandler(url),
+lowlight.registerLanguage("javascript", javascript);
+lowlight.registerLanguage("typescript", typescript);
+lowlight.registerLanguage("json", json);
+lowlight.registerLanguage("css", css);
+lowlight.registerLanguage("html", xml);
+
+interface ExtensionOptions {
+ placeholder?: string;
+}
+
+export const createExtensions = ({
+ placeholder,
+}: ExtensionOptions = {}): Extensions => [
+ StarterKit.configure({
+ codeBlock: false,
+ }),
+ Placeholder.configure({
+ placeholder: placeholder || "Write something…",
+ }),
+ Link.configure({
+ openOnClick: false,
+ autolink: true,
+ linkOnPaste: true,
}),
- new DropCursorExtension({
+ Table.configure({
+ resizable: true,
+ }),
+ TableRow,
+ TableHeader,
+ TableCell,
+ Image.configure({
+ allowBase64: false,
+ HTMLAttributes: {
+ class: "max-w-full h-auto rounded-md",
+ },
+ resize: {
+ enabled: true,
+ directions: ["top", "bottom", "left", "right"],
+ alwaysPreserveAspectRatio: true,
+ },
+ }),
+ Dropcursor.configure({
color: "hsl(var(--foreground))",
+ width: 2,
}),
- new CodeMirrorExtension({
- extensions: [basicSetup, oneDark],
+ Gapcursor,
+ CodeBlockLowlight.configure({
+ lowlight,
+ }),
+ Heading.extend({
+ renderHTML({ node, HTMLAttributes }) {
+ const level = this.options.levels.includes(node.attrs.level)
+ ? node.attrs.level
+ : this.options.levels[0];
+ const id =
+ typeof node.textContent === "string"
+ ? createId(node.textContent)
+ : undefined;
+
+ return [
+ `h${level}`,
+ {
+ ...HTMLAttributes,
+ id,
+ },
+ 0,
+ ];
+ },
}),
- new BlockquoteExtension(),
- new HardBreakExtension(),
- new BoldExtension(null),
- new ItalicExtension(),
- new HardBreakExtension(),
- new GapCursorExtension(),
- new HardBreakExtension(),
- new HorizontalRuleExtension(),
- new StrikeExtension(),
- new UnderlineExtension(),
- new BlockquoteExtension(),
- new CodeExtension(),
- new BidiExtension(null),
- new CodeBlockExtension(null),
- new DropCursorExtension(),
- new HeadingExtension(null),
- new TrailingNodeExtension(),
- new IframeExtension({ enableResizing: false }),
- new BulletListExtension({}),
- new OrderedListExtension(),
- new TaskListExtension(),
- new ShortcutsExtension(),
+ Highlight,
+ CodeMirrorNode,
];
diff --git a/packages/text-editor/src/extract-headings.ts b/packages/text-editor/src/extract-headings.ts
index db97ac7c8..65cd2ee0e 100644
--- a/packages/text-editor/src/extract-headings.ts
+++ b/packages/text-editor/src/extract-headings.ts
@@ -1,7 +1,4 @@
-import { Node, Schema } from "prosemirror-model";
-import { RemirrorManager } from "remirror";
-import { AnyExtension } from "@remirror/core";
-import { getExtensions } from "./extensions";
+import type { JSONContent } from "@tiptap/core";
import { createId } from "./create-id";
interface Heading {
@@ -10,28 +7,53 @@ interface Heading {
id: string;
}
-interface JSONDoc {
- type: string;
- content?: JSONDoc[];
- attrs?: Record;
- text?: string;
-}
-
-export function extractHeadings(json: JSONDoc): Heading[] {
+export function extractHeadings(
+ json: JSONContent | null | undefined,
+): Heading[] {
const headings: Heading[] = [];
- const exts = getExtensions("", "")() as unknown as AnyExtension[];
- const manager = RemirrorManager.create(exts);
- const doc = Node.fromJSON(manager.schema as Schema, json);
- doc.descendants((node) => {
- if (node.type.name === "heading") {
+ const collectHeadings = (node?: JSONContent) => {
+ if (!node) {
+ return;
+ }
+
+ if (node.type === "heading") {
+ const level =
+ typeof node.attrs?.level === "number" ? node.attrs.level : 1;
+
+ const collectText = (current?: JSONContent): string => {
+ if (!current) {
+ return "";
+ }
+
+ if (typeof current.text === "string") {
+ return current.text;
+ }
+
+ if (!current.content) {
+ return "";
+ }
+
+ return current.content.map(collectText).join("");
+ };
+
+ const textContent = collectText(node);
+
headings.push({
- level: node.attrs.level as number,
- text: node.textContent,
- id: createId(node.textContent),
+ level,
+ text: textContent,
+ id: createId(textContent),
});
}
- });
+
+ if (Array.isArray(node.content)) {
+ node.content.forEach((child) => {
+ collectHeadings(child as JSONContent);
+ });
+ }
+ };
+
+ collectHeadings(json || undefined);
return headings;
}
diff --git a/packages/text-editor/src/extract-text-from-node.ts b/packages/text-editor/src/extract-text-from-node.ts
new file mode 100644
index 000000000..dfbeb9ef8
--- /dev/null
+++ b/packages/text-editor/src/extract-text-from-node.ts
@@ -0,0 +1,42 @@
+export function extractTextFromNode(node): string {
+ if (!node) {
+ return "";
+ }
+
+ // ProseMirror nodes have a textContent property that contains all text
+ if (typeof node.textContent === "string") {
+ return node.textContent;
+ }
+
+ // Fallback: if content is a Fragment, access its content array
+ if (
+ node.content &&
+ node.content.content &&
+ Array.isArray(node.content.content)
+ ) {
+ return node.content.content
+ .map((child: any) => {
+ // Text nodes have a text property
+ if (child.text) {
+ return child.text;
+ }
+ // Recursively extract from child nodes
+ return extractTextFromNode(child);
+ })
+ .join("");
+ }
+
+ // Fallback: if content is directly an array
+ if (Array.isArray(node.content)) {
+ return node.content
+ .map((child: any) => {
+ if (child.text) {
+ return child.text;
+ }
+ return extractTextFromNode(child);
+ })
+ .join("");
+ }
+
+ return "";
+}
diff --git a/packages/text-editor/src/file-upload-extention.ts b/packages/text-editor/src/file-upload-extention.ts
index a48a05b86..923076364 100644
--- a/packages/text-editor/src/file-upload-extention.ts
+++ b/packages/text-editor/src/file-upload-extention.ts
@@ -1,14 +1,5 @@
-import { DelayedPromiseCreator, ErrorConstant, invariant } from "remirror";
import { FetchBuilder } from "@courselit/utils";
import { Media } from "@courselit/common-models";
-import { ImageAttributes } from "remirror/extensions";
-
-type SetProgress = (progress: number) => void;
-
-interface FileWithProgress {
- file: File;
- progress: SetProgress;
-}
async function getPresignedUrl(url: string) {
const fetch = new FetchBuilder()
@@ -18,55 +9,52 @@ async function getPresignedUrl(url: string) {
return await fetch.exec();
}
-export function getUploadHandler(url: string) {
- return function uploadFileToMediaLit(
- files: FileWithProgress[],
- ): DelayedPromiseCreator[] {
- invariant(files.length > 0, {
- code: ErrorConstant.EXTENSION,
- message:
- "The upload handler was applied for the image extension without any valid files",
- });
+export interface UploadedImage {
+ mediaId: string;
+ src: string;
+ fileName?: string;
+}
- let completed = 0;
- const promises: DelayedPromiseCreator[] = [];
+export async function uploadImageToMediaLit({
+ url,
+ file,
+ fileSizeLimit = 2097152, // 2 MB,
+ onError,
+}: {
+ url: string;
+ file: File;
+ fileSizeLimit?: number;
+ onError?: (args: any) => void;
+}): Promise {
+ if (file.size > fileSizeLimit) {
+ if (onError) {
+ onError("File is larger than 2MB");
+ return { src: "", mediaId: "", fileName: "" };
+ } else {
+ throw new Error("File is larger than 2MB");
+ }
+ }
- for (const { file, progress } of files) {
- promises.push(
- () =>
- new Promise((resolve, reject) => {
- if (file.size > 2097152) {
- // 2 MB (taken from: https://stackoverflow.com/a/49490014)
- return reject("File is larger than 2MB");
- }
- getPresignedUrl(url)
- .then(({ signature, endpoint }) => {
- const fD = new FormData();
- fD.append("caption", file.name);
- fD.append("access", "public");
- fD.append("file", file);
+ const { signature, endpoint } = await getPresignedUrl(url);
- return fetch(`${endpoint}/media/create`, {
- method: "POST",
- headers: {
- "x-medialit-signature": signature,
- },
- body: fD,
- });
- })
- .then((data) => data.json())
- .then((data: Media) => {
- completed += 1;
- progress(completed / files.length);
- resolve({
- src: data.file,
- fileName: data.originalFileName,
- });
- })
- .catch((err) => reject(err.message));
- }),
- );
- }
- return promises;
+ const formData = new FormData();
+ formData.append("caption", file.name);
+ formData.append("access", "public");
+ formData.append("file", file);
+
+ const response = await fetch(`${endpoint}/media/create`, {
+ method: "POST",
+ headers: {
+ "x-medialit-signature": signature,
+ },
+ body: formData,
+ });
+
+ const data: Media = await response.json();
+
+ return {
+ src: data.file,
+ fileName: data.originalFileName,
+ mediaId: data.mediaId,
};
}
diff --git a/packages/text-editor/src/index.tsx b/packages/text-editor/src/index.tsx
index 71f330911..52f082d3f 100644
--- a/packages/text-editor/src/index.tsx
+++ b/packages/text-editor/src/index.tsx
@@ -1,4 +1,7 @@
-export { default as WysiwygEditor } from "./WysiwygEditor";
-export { default as Renderer } from "./Renderer";
+export { default as Editor } from "./editor";
+export type { EditorProps } from "./editor";
export { default as emptyDoc } from "./empty-doc";
-export { extractHeadings } from "./extract-headings";
+export * from "./extract-headings";
+export * from "./extensions";
+export * from "./create-id";
+export * from "./extract-text-from-node";
diff --git a/packages/text-editor/src/toolbar.tsx b/packages/text-editor/src/toolbar.tsx
new file mode 100644
index 000000000..0819b8b74
--- /dev/null
+++ b/packages/text-editor/src/toolbar.tsx
@@ -0,0 +1,416 @@
+import React, { useEffect, useRef, useState } from "react";
+import type { Editor } from "@tiptap/core";
+import type { Level } from "@tiptap/extension-heading";
+import {
+ Bold,
+ Code,
+ CodeSquare,
+ Heading1,
+ Heading2,
+ Heading3,
+ Image as ImageIcon,
+ Italic,
+ Link as LinkIcon,
+ List as ListIcon,
+ ListOrdered,
+ Minus,
+ Quote,
+ Redo2,
+ SquarePen,
+ Strikethrough,
+ Table as TableIcon,
+ Trash2,
+ Underline,
+ Undo2,
+} from "lucide-react";
+import LinkEditorPopover from "./components/link-editor-popover.js";
+
+interface ToolbarProps {
+ editor: Editor | null;
+ onRequestImageUpload: () => void;
+ isUploadingImage?: boolean;
+}
+
+type PopoverType = "link" | "table" | null;
+
+const iconButtonBase =
+ "inline-flex h-8 w-8 items-center justify-center rounded border border-transparent text-foreground transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary disabled:cursor-not-allowed disabled:opacity-50";
+
+function IconButton({
+ icon: Icon,
+ label,
+ active,
+ disabled,
+ onClick,
+}: {
+ icon: React.ComponentType<{ className?: string }>;
+ label: string;
+ active?: boolean;
+ disabled?: boolean;
+ onClick?: () => void;
+}): JSX.Element {
+ return (
+
+
+
+ );
+}
+
+const headingButtons: Array<{
+ label: string;
+ value: string;
+ icon: React.ComponentType<{ className?: string }>;
+ level?: Level;
+}> = [
+ { label: "Paragraph", value: "paragraph", icon: SquarePen },
+ { label: "Heading 1", value: "h1", icon: Heading1, level: 1 },
+ { label: "Heading 2", value: "h2", icon: Heading2, level: 2 },
+ { label: "Heading 3", value: "h3", icon: Heading3, level: 3 },
+];
+
+const Toolbar = ({
+ editor,
+ onRequestImageUpload,
+ isUploadingImage,
+}: ToolbarProps): JSX.Element | null => {
+ const [activePopover, setActivePopover] = useState(null);
+
+ const popoverRef = useRef(null);
+
+ useEffect(() => {
+ if (!activePopover) {
+ return undefined;
+ }
+
+ const handleClick = (event: MouseEvent) => {
+ if (
+ popoverRef.current &&
+ !popoverRef.current.contains(event.target as Node)
+ ) {
+ setActivePopover(null);
+ }
+ };
+
+ const handleKeyDown = (event: KeyboardEvent) => {
+ if (event.key === "Escape") {
+ setActivePopover(null);
+ }
+ };
+
+ document.addEventListener("mousedown", handleClick);
+ document.addEventListener("keydown", handleKeyDown);
+
+ return () => {
+ document.removeEventListener("mousedown", handleClick);
+ document.removeEventListener("keydown", handleKeyDown);
+ };
+ }, [activePopover]);
+
+ if (!editor) {
+ return null;
+ }
+
+ const togglePopover = (type: PopoverType, onBeforeOpen?: () => void) => {
+ setActivePopover((current) => {
+ if (current === type) {
+ return null;
+ }
+
+ onBeforeOpen?.();
+ return type;
+ });
+ };
+
+ const toggleTablePopover = () => {
+ togglePopover("table");
+ };
+
+ const insertTable = () => {
+ editor
+ .chain()
+ .focus()
+ .insertTable({ rows: 3, cols: 3, withHeaderRow: true })
+ .run();
+ setActivePopover(null);
+ };
+
+ const addRowAfter = () => {
+ editor.chain().focus().addRowAfter().run();
+ setActivePopover(null);
+ };
+
+ const deleteRow = () => {
+ editor.chain().focus().deleteRow().run();
+ setActivePopover(null);
+ };
+
+ const addColumnAfter = () => {
+ editor.chain().focus().addColumnAfter().run();
+ setActivePopover(null);
+ };
+
+ const deleteColumn = () => {
+ editor.chain().focus().deleteColumn().run();
+ setActivePopover(null);
+ };
+
+ const deleteTable = () => {
+ editor.chain().focus().deleteTable().run();
+ setActivePopover(null);
+ };
+
+ const canInsertTable = editor
+ .can()
+ .chain()
+ .focus()
+ .insertTable({ rows: 3, cols: 3, withHeaderRow: true })
+ .run();
+ const canAddRow = editor.can().chain().focus().addRowAfter().run();
+ const canDeleteRow = editor.can().chain().focus().deleteRow().run();
+ const canAddColumn = editor.can().chain().focus().addColumnAfter().run();
+ const canDeleteColumn = editor.can().chain().focus().deleteColumn().run();
+ const canDeleteTable = editor.can().chain().focus().deleteTable().run();
+
+ return (
+
+
+
+
+ editor.chain().focus().undo().run()}
+ />
+ editor.chain().focus().redo().run()}
+ />
+
+
+ {headingButtons.map((button) => (
+ {
+ const chain = editor.chain().focus();
+ if (button.level) {
+ chain
+ .toggleHeading({
+ level: button.level,
+ })
+ .run();
+ } else {
+ chain.setParagraph().run();
+ }
+ }}
+ />
+ ))}
+
+
+
+ editor.chain().focus().toggleBold().run()
+ }
+ />
+
+ editor.chain().focus().toggleItalic().run()
+ }
+ />
+
+ editor
+ .chain()
+ .focus()
+ .toggleMark("underline")
+ .run()
+ }
+ />
+
+ editor.chain().focus().toggleStrike().run()
+ }
+ />
+
+ editor.chain().focus().toggleCode().run()
+ }
+ />
+ togglePopover("link")}
+ />
+
+
+
+ editor.chain().focus().toggleBulletList().run()
+ }
+ />
+
+ editor.chain().focus().toggleOrderedList().run()
+ }
+ />
+
+ editor.chain().focus().toggleBlockquote().run()
+ }
+ />
+
+ editor.chain().focus().setHorizontalRule().run()
+ }
+ />
+
+ editor.chain().focus().toggleCodeBlock().run()
+ }
+ />
+
+
+
+
+
+
+
+
+ {activePopover === "link" && (
+
setActivePopover(null)}
+ containerRef={popoverRef}
+ />
+ )}
+
+ {activePopover === "table" && (
+
+
+
+ Create 3×3 table
+
+
+
+ Add row
+
+
+
+ Delete row
+
+
+
+ Add column
+
+
+
+ Delete column
+
+
+
+ Remove table
+
+
+
+
+ )}
+
+ );
+};
+
+export default Toolbar;
diff --git a/packages/text-editor/src/types.tsx b/packages/text-editor/src/types.tsx
index fbea39090..219b4a9bc 100644
--- a/packages/text-editor/src/types.tsx
+++ b/packages/text-editor/src/types.tsx
@@ -1,11 +1,11 @@
-import type { CreateEditorStateProps } from "remirror";
-import type { RemirrorProps } from "@remirror/react";
+import type { JSONContent, Extensions } from "@tiptap/core";
+
+export type EditorJSONContent = JSONContent;
+export type EditorExtensions = Extensions;
export interface ReactEditorProps {
- stringHandler?: CreateEditorStateProps["stringHandler"];
- initialContent?: RemirrorProps["initialContent"];
- editable?: RemirrorProps["editable"];
- autoFocus?: RemirrorProps["autoFocus"];
- hooks?: RemirrorProps["hooks"];
+ initialContent?: JSONContent | string | null;
+ editable?: boolean;
+ autoFocus?: boolean;
placeholder?: string;
}
diff --git a/packages/text-editor/styles.css b/packages/text-editor/styles.css
new file mode 100644
index 000000000..72da29216
--- /dev/null
+++ b/packages/text-editor/styles.css
@@ -0,0 +1,165 @@
+.tiptap-editor {
+ display: flex;
+ flex-direction: column;
+ gap: 0.75rem;
+}
+
+.tiptap-editor .ProseMirror {
+ min-height: 12.5rem;
+ padding: 1rem;
+ border-radius: 0.5rem;
+ outline: none;
+ word-break: break-word;
+}
+
+/* .tiptap-editor .ProseMirror:focus-visible {
+ outline: 2px solid hsl(var(--primary));
+ outline-offset: 0;
+} */
+
+.tiptap-editor .ProseMirror p.is-editor-empty:first-child::before {
+ color: hsl(var(--muted-foreground));
+ content: attr(data-placeholder);
+ float: left;
+ height: 0;
+ pointer-events: none;
+}
+
+.tiptap-editor .ProseMirror a {
+ color: hsl(var(--primary));
+ text-decoration: underline;
+ text-decoration-thickness: 0.1em;
+ text-decoration-color: hsl(var(--primary));
+}
+
+.tiptap-editor .ProseMirror ul,
+.tiptap-editor .ProseMirror ol {
+ padding-left: 1.5rem;
+ margin: 0.75rem 0;
+}
+
+.tiptap-editor .ProseMirror ul li {
+ list-style: disc;
+}
+
+.tiptap-editor .ProseMirror ol li {
+ list-style: decimal;
+}
+
+.tiptap-editor .ProseMirror blockquote {
+ border-left: 3px solid hsl(var(--border));
+ margin: 0.75rem 0;
+ padding-left: 1rem;
+ color: hsl(var(--muted-foreground));
+ font-style: italic;
+}
+
+.tiptap-editor .ProseMirror h1,
+.tiptap-editor .ProseMirror h2,
+.tiptap-editor .ProseMirror h3,
+.tiptap-editor .ProseMirror h4,
+.tiptap-editor .ProseMirror h5,
+.tiptap-editor .ProseMirror h6 {
+ font-weight: 600;
+ line-height: 1.25;
+ margin: 1.5rem 0 0.75rem;
+}
+
+.tiptap-editor .ProseMirror h1 {
+ font-size: clamp(2rem, 3vw, 2.5rem);
+}
+
+.tiptap-editor .ProseMirror h2 {
+ font-size: clamp(1.75rem, 2.5vw, 2rem);
+}
+
+.tiptap-editor .ProseMirror h3 {
+ font-size: clamp(1.5rem, 2vw, 1.75rem);
+}
+
+.tiptap-editor .ProseMirror pre {
+ background-color: #0d0d0d;
+ border-radius: 0.5rem;
+ color: #fff;
+ font-family:
+ "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas,
+ "Liberation Mono", Menlo, monospace;
+ font-size: 0.875rem;
+ margin: 0.75rem 0;
+ padding: 1rem;
+ overflow-x: auto;
+}
+
+.tiptap-editor .ProseMirror pre code {
+ background: none;
+ color: inherit;
+ padding: 0;
+}
+
+.tiptap-editor .ProseMirror code {
+ background-color: hsl(var(--muted));
+ border-radius: 0.375rem;
+ padding: 0.125rem 0.375rem;
+ font-size: 0.875em;
+ font-family:
+ "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas,
+ "Liberation Mono", Menlo, monospace;
+}
+
+.tiptap-editor .ProseMirror hr {
+ border: none;
+ border-top: 1px solid hsl(var(--border));
+ margin: 1.5rem 0;
+}
+
+.tiptap-editor .ProseMirror table {
+ border-collapse: collapse;
+ border: 1px solid hsl(var(--border));
+ margin: 1rem 0;
+ width: 100%;
+ table-layout: fixed;
+}
+
+.tiptap-editor .ProseMirror table th,
+.tiptap-editor .ProseMirror table td {
+ border: 1px solid hsl(var(--border));
+ padding: 0.5rem;
+ vertical-align: top;
+}
+
+.tiptap-editor .ProseMirror table th {
+ background-color: hsl(var(--muted));
+ font-weight: 600;
+ text-align: left;
+}
+
+.tiptap-editor .ProseMirror img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ border-radius: 0.5rem;
+ margin: 1rem auto;
+}
+
+.tiptap-editor .ProseMirror iframe {
+ width: 100%;
+ aspect-ratio: 16 / 9;
+ border: 0;
+ border-radius: 0.75rem;
+ background-color: #000;
+ margin: 1.5rem 0;
+}
+
+.tiptap-editor .bubble-menu {
+ display: flex;
+ align-items: center;
+ gap: 0.375rem;
+ padding: 0.5rem;
+ border-radius: 0.5rem;
+ border: 1px solid hsl(var(--border));
+ background-color: hsl(var(--background));
+ box-shadow:
+ 0 10px 15px -3px rgba(15, 23, 42, 0.12),
+ 0 4px 6px -4px rgba(15, 23, 42, 0.04);
+ z-index: 2;
+}
diff --git a/packages/text-editor/tsconfig.json b/packages/text-editor/tsconfig.json
index 21785599c..92936881e 100644
--- a/packages/text-editor/tsconfig.json
+++ b/packages/text-editor/tsconfig.json
@@ -19,5 +19,5 @@
"react": ["./node_modules/@types/react"]
}
},
- "include": ["src/**/*"]
+ "include": ["src/**/*", "additional.d.ts"]
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 477ff10a5..a6225b0f0 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -222,6 +222,9 @@ importers:
'@courselit/page-primitives':
specifier: workspace:^
version: link:../../packages/page-primitives
+ '@courselit/text-editor':
+ specifier: workspace:^
+ version: link:../../packages/text-editor
'@courselit/utils':
specifier: workspace:^
version: link:../../packages/utils
@@ -819,9 +822,18 @@ importers:
'@courselit/page-primitives':
specifier: workspace:^
version: link:../page-primitives
+ '@courselit/text-editor':
+ specifier: workspace:^
+ version: link:../text-editor
'@courselit/utils':
specifier: workspace:^
version: link:../utils
+ '@tiptap/core':
+ specifier: ^3.0.0
+ version: 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/static-renderer':
+ specifier: ^3.10.7
+ version: 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
clsx:
specifier: ^2.1.1
version: 2.1.1
@@ -981,60 +993,69 @@ importers:
packages/text-editor:
dependencies:
- '@codemirror/language-data':
- specifier: ^6.5.1
- version: 6.5.1
- '@codemirror/state':
- specifier: ^6.5.2
- version: 6.5.2
- '@codemirror/theme-one-dark':
- specifier: ^6.1.2
- version: 6.1.2
'@courselit/common-models':
specifier: workspace:^
version: link:../common-models
'@courselit/utils':
specifier: workspace:^
version: link:../utils
- '@remirror/core':
- specifier: ^3.0.2
- version: 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/core-types':
+ '@floating-ui/dom':
+ specifier: ^1.6.0
+ version: 1.6.13
+ '@tiptap/core':
specifier: ^3.0.0
- version: 3.0.0(@remirror/pm@3.0.1)
- '@remirror/extension-codemirror6':
- specifier: ^2.0.2
- version: 2.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-react-tables':
- specifier: ^3.0.3
- version: 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/i18n':
+ version: 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/extension-bubble-menu':
+ specifier: ^3.10.4
+ version: 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ '@tiptap/extension-code-block-lowlight':
specifier: ^3.0.0
- version: 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm':
- specifier: ^3.0.1
- version: 3.0.1
- '@remirror/react':
- specifier: ^3.0.3
- version: 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-editors':
- specifier: ^2.0.3
- version: 2.0.3(@emotion/css@11.13.5)(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(prettier@3.5.3)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-ui':
- specifier: ^1.0.3
- version: 1.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(prettier@3.5.3)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- codemirror:
- specifier: ^6.0.2
- version: 6.0.2
- prosemirror-model:
- specifier: ^1.22.3
- version: 1.25.1
+ version: 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/extension-code-block@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)(highlight.js@11.11.1)(lowlight@2.9.0)
+ '@tiptap/extension-dropcursor':
+ specifier: ^3.0.0
+ version: 3.10.8(@tiptap/extensions@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))
+ '@tiptap/extension-gapcursor':
+ specifier: ^3.0.0
+ version: 3.10.8(@tiptap/extensions@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))
+ '@tiptap/extension-heading':
+ specifier: ^3.0.0
+ version: 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-highlight':
+ specifier: ^3.11.0
+ version: 3.11.0(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-image':
+ specifier: ^3.0.0
+ version: 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-link':
+ specifier: ^3.0.0
+ version: 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ '@tiptap/extension-placeholder':
+ specifier: ^3.0.0
+ version: 3.10.8(@tiptap/extensions@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))
+ '@tiptap/extension-table':
+ specifier: ^3.10.7
+ version: 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ '@tiptap/react':
+ specifier: ^3.0.0
+ version: 3.10.8(@floating-ui/dom@1.6.13)(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
+ '@tiptap/starter-kit':
+ specifier: ^3.0.0
+ version: 3.10.8
+ '@tiptap/static-renderer':
+ specifier: ^3.10.7
+ version: 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
+ highlight.js:
+ specifier: ^11.10.0
+ version: 11.11.1
+ lowlight:
+ specifier: ^2.9.0
+ version: 2.9.0
+ lucide-react:
+ specifier: ^0.544.0
+ version: 0.544.0(react@17.0.2)
react:
specifier: ^17.0.2
version: 17.0.2
- remirror:
- specifier: ^3.0.3
- version: 3.0.3(@remirror/extension-react-tables@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2))(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)(prettier@3.5.3)
devDependencies:
'@types/node':
specifier: ^18.8.0
@@ -1625,96 +1646,6 @@ packages:
'@changesets/write@0.4.0':
resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==}
- '@codemirror/autocomplete@6.18.6':
- resolution: {integrity: sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==}
-
- '@codemirror/commands@6.8.1':
- resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==}
-
- '@codemirror/lang-angular@0.1.4':
- resolution: {integrity: sha512-oap+gsltb/fzdlTQWD6BFF4bSLKcDnlxDsLdePiJpCVNKWXSTAbiiQeYI3UmES+BLAdkmIC1WjyztC1pi/bX4g==}
-
- '@codemirror/lang-cpp@6.0.2':
- resolution: {integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==}
-
- '@codemirror/lang-css@6.3.1':
- resolution: {integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==}
-
- '@codemirror/lang-go@6.0.1':
- resolution: {integrity: sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==}
-
- '@codemirror/lang-html@6.4.9':
- resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==}
-
- '@codemirror/lang-java@6.0.1':
- resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==}
-
- '@codemirror/lang-javascript@6.2.3':
- resolution: {integrity: sha512-8PR3vIWg7pSu7ur8A07pGiYHgy3hHj+mRYRCSG8q+mPIrl0F02rgpGv+DsQTHRTc30rydOsf5PZ7yjKFg2Ackw==}
-
- '@codemirror/lang-json@6.0.1':
- resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==}
-
- '@codemirror/lang-less@6.0.2':
- resolution: {integrity: sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==}
-
- '@codemirror/lang-liquid@6.2.3':
- resolution: {integrity: sha512-yeN+nMSrf/lNii3FJxVVEGQwFG0/2eDyH6gNOj+TGCa0hlNO4bhQnoO5ISnd7JOG+7zTEcI/GOoyraisFVY7jQ==}
-
- '@codemirror/lang-markdown@6.3.2':
- resolution: {integrity: sha512-c/5MYinGbFxYl4itE9q/rgN/sMTjOr8XL5OWnC+EaRMLfCbVUmmubTJfdgpfcSS2SCaT7b+Q+xi3l6CgoE+BsA==}
-
- '@codemirror/lang-php@6.0.1':
- resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==}
-
- '@codemirror/lang-python@6.2.0':
- resolution: {integrity: sha512-+oLTR88uLib84tvb4XmOBBq/dgrctvPXueP3Wjotu4zmHLM2KW2wfswJ6r1BKlfJNcGgdWX1AgUeGEf3E2H5LA==}
-
- '@codemirror/lang-rust@6.0.1':
- resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==}
-
- '@codemirror/lang-sass@6.0.2':
- resolution: {integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==}
-
- '@codemirror/lang-sql@6.8.0':
- resolution: {integrity: sha512-aGLmY4OwGqN3TdSx3h6QeA1NrvaYtF7kkoWR/+W7/JzB0gQtJ+VJxewlnE3+VImhA4WVlhmkJr109PefOOhjLg==}
-
- '@codemirror/lang-vue@0.1.3':
- resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==}
-
- '@codemirror/lang-wast@6.0.2':
- resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==}
-
- '@codemirror/lang-xml@6.1.0':
- resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==}
-
- '@codemirror/lang-yaml@6.1.2':
- resolution: {integrity: sha512-dxrfG8w5Ce/QbT7YID7mWZFKhdhsaTNOYjOkSIMt1qmC4VQnXSDSYVHHHn8k6kJUfIhtLo8t1JJgltlxWdsITw==}
-
- '@codemirror/language-data@6.5.1':
- resolution: {integrity: sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==}
-
- '@codemirror/language@6.11.0':
- resolution: {integrity: sha512-A7+f++LodNNc1wGgoRDTt78cOwWm9KVezApgjOMp1W4hM0898nsqBXwF+sbePE7ZRcjN7Sa1Z5m2oN27XkmEjQ==}
-
- '@codemirror/legacy-modes@6.5.1':
- resolution: {integrity: sha512-DJYQQ00N1/KdESpZV7jg9hafof/iBNp9h7TYo1SLMk86TWl9uDsVdho2dzd81K+v4retmK6mdC7WpuOQDytQqw==}
-
- '@codemirror/lint@6.8.5':
- resolution: {integrity: sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==}
-
- '@codemirror/search@6.5.10':
- resolution: {integrity: sha512-RMdPdmsrUf53pb2VwflKGHEe1XVM07hI7vV2ntgw1dmqhimpatSJKva4VA9h4TLUDOD4EIF02201oZurpnEFsg==}
-
- '@codemirror/state@6.5.2':
- resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==}
-
- '@codemirror/theme-one-dark@6.1.2':
- resolution: {integrity: sha512-F+sH0X16j/qFLMAfbciKTxVOwkdAS336b7AXTKOZhy8BR3eH/RelsnLgLFINrpST63mmN2OuwUt0W2ndUgYwUA==}
-
- '@codemirror/view@6.36.6':
- resolution: {integrity: sha512-uxugGLet+Nzp0Jcit8Hn3LypM8ioMLKTsdf8FRoT3HWvZtb9GhaWMe0Cc15rz90Ljab4YFJiAulmIVB74OY0IQ==}
-
'@cspotcode/source-map-support@0.8.1':
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
@@ -1825,45 +1756,18 @@ packages:
'@emotion/hash@0.9.2':
resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
- '@emotion/is-prop-valid@1.3.1':
- resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==}
-
'@emotion/memoize@0.9.0':
resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==}
- '@emotion/react@11.14.0':
- resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==}
- peerDependencies:
- '@types/react': '*'
- react: '>=16.8.0'
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
'@emotion/serialize@1.3.3':
resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==}
'@emotion/sheet@1.4.0':
resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==}
- '@emotion/styled@11.14.0':
- resolution: {integrity: sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==}
- peerDependencies:
- '@emotion/react': ^11.0.0-rc.0
- '@types/react': '*'
- react: '>=16.8.0'
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
'@emotion/unitless@0.10.0':
resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==}
- '@emotion/use-insertion-effect-with-fallbacks@1.2.0':
- resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==}
- peerDependencies:
- react: '>=16.8.0'
-
'@emotion/utils@1.4.2':
resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==}
@@ -2738,57 +2642,6 @@ packages:
'@kurkle/color@0.3.4':
resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==}
- '@lezer/common@1.2.3':
- resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==}
-
- '@lezer/cpp@1.1.3':
- resolution: {integrity: sha512-ykYvuFQKGsRi6IcE+/hCSGUhb/I4WPjd3ELhEblm2wS2cOznDFzO+ubK2c+ioysOnlZ3EduV+MVQFCPzAIoY3w==}
-
- '@lezer/css@1.1.11':
- resolution: {integrity: sha512-FuAnusbLBl1SEAtfN8NdShxYJiESKw9LAFysfea1T96jD3ydBn12oYjaSG1a04BQRIUd93/0D8e5CV1cUMkmQg==}
-
- '@lezer/go@1.0.0':
- resolution: {integrity: sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==}
-
- '@lezer/highlight@1.2.1':
- resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==}
-
- '@lezer/html@1.3.10':
- resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==}
-
- '@lezer/java@1.1.3':
- resolution: {integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==}
-
- '@lezer/javascript@1.5.1':
- resolution: {integrity: sha512-ATOImjeVJuvgm3JQ/bpo2Tmv55HSScE2MTPnKRMRIPx2cLhHGyX2VnqpHhtIV1tVzIjZDbcWQm+NCTF40ggZVw==}
-
- '@lezer/json@1.0.3':
- resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==}
-
- '@lezer/lr@1.4.2':
- resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==}
-
- '@lezer/markdown@1.4.2':
- resolution: {integrity: sha512-iYewCigG/517D0xJPQd7RGaCjZAFwROiH8T9h7OTtz0bRVtkxzFhGBFJ9JGKgBBs4uuo1cvxzyQ5iKhDLMcLUQ==}
-
- '@lezer/php@1.0.2':
- resolution: {integrity: sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==}
-
- '@lezer/python@1.1.18':
- resolution: {integrity: sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg==}
-
- '@lezer/rust@1.0.2':
- resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==}
-
- '@lezer/sass@1.0.7':
- resolution: {integrity: sha512-8HLlOkuX/SMHOggI2DAsXUw38TuURe+3eQ5hiuk9QmYOUyC55B1dYEIMkav5A4IELVaW4e1T4P9WRiI5ka4mdw==}
-
- '@lezer/xml@1.0.6':
- resolution: {integrity: sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==}
-
- '@lezer/yaml@1.0.3':
- resolution: {integrity: sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==}
-
'@linaria/core@4.2.10':
resolution: {integrity: sha512-S1W01W7L4SQnGpWzp8awyCpPIYUOEJ+OLjjXqKpIXOU+ozPwBt86Mjjdas9aZccVhNBWDja74cMCUAVp8yUpDQ==}
engines: {node: ^12.16.0 || >=13.7.0}
@@ -2805,18 +2658,6 @@ packages:
resolution: {integrity: sha512-tSpxA3Zn0DKJ2n/YBnYAgiDY+MNvkmzAHrD8R9PKrpGaZ+wz1jQEmE1vGn1cqh8dJyWK0NzPAA8sf1cqa+RmAg==}
engines: {node: ^12.16.0 || >=13.7.0}
- '@lingui/core@4.14.1':
- resolution: {integrity: sha512-3O6bnNzApWjb+jIdXa7G2VbrP6jZ5nfCeYSVloEYg6YFIfsQ3GunccK6I2nL80mWgr2qGP4VilGD+ODCeXHITA==}
- engines: {node: '>=16.0.0'}
-
- '@lingui/detect-locale@4.14.1':
- resolution: {integrity: sha512-w3sS+tVcZ8uDVJxLjHYArTjzUFK0NyMh2wukVGU52UO1WYjCCujf1DPboooIm5zeMquuTpa5XK017lnPJzB21w==}
- engines: {node: '>=16.0.0'}
-
- '@lingui/message-utils@4.14.1':
- resolution: {integrity: sha512-J6MzyTLNCzEnyR1Da188G81cRcQMbk/lyYnLWMzQjIELDX8bBBwNea91Sf5Zm+BB+ADWmmGTdUqRPAjDqT9Y5w==}
- engines: {node: '>=16.0.0'}
-
'@ljharb/has-package-exports-patterns@0.0.2':
resolution: {integrity: sha512-4/RWEeXDO6bocPONheFe6gX/oQdP/bEpv0oL4HqjPP5DCenBSt0mHgahppY49N0CpsaqffdwPq+TlX9CYOq2Dw==}
@@ -2826,12 +2667,6 @@ packages:
'@manypkg/get-packages@1.1.3':
resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
- '@marijn/find-cluster-break@1.0.2':
- resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==}
-
- '@messageformat/parser@5.1.1':
- resolution: {integrity: sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==}
-
'@mixmark-io/domino@2.2.0':
resolution: {integrity: sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==}
@@ -2868,83 +2703,6 @@ packages:
cpu: [x64]
os: [win32]
- '@mui/core-downloads-tracker@5.17.1':
- resolution: {integrity: sha512-OcZj+cs6EfUD39IoPBOgN61zf1XFVY+imsGoBDwXeSq2UHJZE3N59zzBOVjclck91Ne3e9gudONOeILvHCIhUA==}
-
- '@mui/material@5.17.1':
- resolution: {integrity: sha512-2B33kQf+GmPnrvXXweWAx+crbiUEsxCdCN979QDYnlH9ox4pd+0/IBriWLV+l6ORoBF60w39cWjFnJYGFdzXcw==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- '@emotion/react': ^11.5.0
- '@emotion/styled': ^11.3.0
- '@types/react': 18.3.7
- react: ^17.0.0 || ^18.0.0 || ^19.0.0
- react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
- peerDependenciesMeta:
- '@emotion/react':
- optional: true
- '@emotion/styled':
- optional: true
- '@types/react':
- optional: true
-
- '@mui/private-theming@5.17.1':
- resolution: {integrity: sha512-XMxU0NTYcKqdsG8LRmSoxERPXwMbp16sIXPcLVgLGII/bVNagX0xaheWAwFv8+zDK7tI3ajllkuD3GZZE++ICQ==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- '@types/react': 18.3.7
- react: ^17.0.0 || ^18.0.0 || ^19.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@mui/styled-engine@5.16.14':
- resolution: {integrity: sha512-UAiMPZABZ7p8mUW4akDV6O7N3+4DatStpXMZwPlt+H/dA0lt67qawN021MNND+4QTpjaiMYxbhKZeQcyWCbuKw==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- '@emotion/react': ^11.4.1
- '@emotion/styled': ^11.3.0
- react: ^17.0.0 || ^18.0.0 || ^19.0.0
- peerDependenciesMeta:
- '@emotion/react':
- optional: true
- '@emotion/styled':
- optional: true
-
- '@mui/system@5.17.1':
- resolution: {integrity: sha512-aJrmGfQpyF0U4D4xYwA6ueVtQcEMebET43CUmKMP7e7iFh3sMIF3sBR0l8Urb4pqx1CBjHAaWgB0ojpND4Q3Jg==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- '@emotion/react': ^11.5.0
- '@emotion/styled': ^11.3.0
- '@types/react': 18.3.7
- react: ^17.0.0 || ^18.0.0 || ^19.0.0
- peerDependenciesMeta:
- '@emotion/react':
- optional: true
- '@emotion/styled':
- optional: true
- '@types/react':
- optional: true
-
- '@mui/types@7.2.24':
- resolution: {integrity: sha512-3c8tRt/CbWZ+pEg7QpSwbdxOk36EfmhbKf6AGZsD1EcLDLTSZoxxJ86FVtcjxvjuhdyBiWKSTGZFaXCnidO2kw==}
- peerDependencies:
- '@types/react': 18.3.7
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
- '@mui/utils@5.17.1':
- resolution: {integrity: sha512-jEZ8FTqInt2WzxDV8bhImWBqeQRD99c/id/fq83H0ER9tFl+sfZlaAoCdznGvbSQQ9ividMxqSV2c7cC1vBcQg==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- '@types/react': 18.3.7
- react: ^17.0.0 || ^18.0.0 || ^19.0.0
- peerDependenciesMeta:
- '@types/react':
- optional: true
-
'@napi-rs/wasm-runtime@0.2.9':
resolution: {integrity: sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==}
@@ -3086,9 +2844,6 @@ packages:
'@polka/url@1.0.0-next.29':
resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
- '@popperjs/core@2.11.8':
- resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
-
'@preact/signals-core@1.8.0':
resolution: {integrity: sha512-OBvUsRZqNmjzCZXWLxkZfhcgT+Fk8DDcT/8vD6a1xhDemodyy87UJRJfASMuSD8FaAIeGgGm85ydXhm7lr4fyA==}
@@ -4195,11 +3950,6 @@ packages:
peerDependencies:
'@remirror/pm': ^3.0.1
- '@remirror/extension-codemirror6@2.0.2':
- resolution: {integrity: sha512-5+X8H+TSuITy196A6BFT8sHEtIMa4E9whYJvQM11ErPmtkI17uMjx94OtbUqkCN0clzOFtp0M1z1TM2o5BDWgw==}
- peerDependencies:
- '@remirror/pm': ^3.0.1
-
'@remirror/extension-collaboration@3.0.2':
resolution: {integrity: sha512-MuTkbpKiaRLyZOYJyt0x73LC5hQE0iSaLOaFBT0RmDGY7kQ2HjSumCAw3e/MoNmrF8GbpHOFmeOVVssbf6SEsw==}
peerDependencies:
@@ -4435,9 +4185,6 @@ packages:
peerDependencies:
'@remirror/pm': ^3.0.1
- '@remirror/i18n@3.0.0':
- resolution: {integrity: sha512-MFyHyjDl7N7vyLWfW4GEd5uEJCmtTytB0mznULrOe/83mEY+Zl/X4Tbt3IlKQas/v2R9Gi63wNrRBuMvkPylMg==}
-
'@remirror/icons@3.0.0':
resolution: {integrity: sha512-NOgd0ENWWlUOb8xH7xz3qpcW+OCVt0oxF2Lde1hOg/x67LyUbybofe6SwXpdx3TN8bdgSU5CzlNPeugGsGMdwg==}
@@ -4504,19 +4251,6 @@ packages:
'@types/react-dom':
optional: true
- '@remirror/react-editors@2.0.3':
- resolution: {integrity: sha512-4aYLixZ1HOLqI48JsU6lFmqxLEqJnnKIoJ3+Dat60OcmijUD1qb9fXudNVMMaxKyIDoNsbZxiXB13Cqvs5jL5g==}
- peerDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- react: ^16.14.0 || ^17 || ^18
- react-dom: ^16.14.0 || ^17 || ^18
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
'@remirror/react-hooks@3.0.3':
resolution: {integrity: sha512-Cf7qXF9H+QgA2tRngV5jfJhQ6SWEEC6G7/3JLGQOx2q6Wh/KAlAEol6hZfmJGM27ZR1H1IwKFQoUTHy7Dz0QtQ==}
peerDependencies:
@@ -4544,20 +4278,6 @@ packages:
'@types/react':
optional: true
- '@remirror/react-ui@1.0.3':
- resolution: {integrity: sha512-jiOvi5GcBKgRV/EF+/TtoUbzZavRBkSwqcweQk8dA7uh8+RIx8jhQlOYobEJQQBaS4MfO8IrFcLdHJMtuuLQCA==}
- peerDependencies:
- '@remirror/pm': ^3.0.1
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- react: ^16.14.0 || ^17 || ^18
- react-dom: ^16.14.0 || ^17 || ^18
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
'@remirror/react-utils@3.0.0':
resolution: {integrity: sha512-9v+Mhup4n4tajJEnqsTBJKvyC7kHwsuTRe5Z7NXKN1O5WOMJyT+sOfAis8cOn4oPco3adVBEvbm54JSIwZXQEA==}
peerDependencies:
@@ -4567,40 +4287,6 @@ packages:
'@types/react':
optional: true
- '@remirror/react@3.0.3':
- resolution: {integrity: sha512-6e6rd6rGBEUZWh6Ax1L24pWZA8aFmo8OmqAtSRQyGDnGaUw3/g6AQFY3l7YXbjDbC3WDAL617/x/KPmvBPIeug==}
- peerDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- react: ^16.14.0 || ^17 || ^18
- react-dom: ^16.14.0 || ^17 || ^18
- peerDependenciesMeta:
- '@types/react':
- optional: true
- '@types/react-dom':
- optional: true
-
- '@remirror/styles@3.0.0':
- resolution: {integrity: sha512-Q4B5mwwHZBpxH3Yn95MSxBlCuQgEn09OGwGFfBdeOaSFQGiqiWPQ/jFFGvJkSks3vn/jdn3o9ol4PhiNWxluoA==}
- peerDependencies:
- '@emotion/css': ^11.11.0
- '@emotion/react': ^11.11.0
- '@emotion/styled': ^11.11.0
- '@types/react': 18.3.7
- react: '>= 16.14.0'
- styled-components: ^6.1.0
- peerDependenciesMeta:
- '@emotion/css':
- optional: true
- '@emotion/react':
- optional: true
- '@emotion/styled':
- optional: true
- react:
- optional: true
- styled-components:
- optional: true
-
'@remirror/theme@3.0.0':
resolution: {integrity: sha512-TJkcpOV3iR8A80NjYczzsGcDfkBXR24cElH9vnuF57LUqZwsgX9QHfZG1QaBJIVy9Zl/hFWMBcSzQqj0+P4NnA==}
@@ -4959,69 +4645,256 @@ packages:
peerDependencies:
'@testing-library/dom': '>=7.21.4'
- '@tootallnate/once@2.0.0':
- resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
- engines: {node: '>= 10'}
+ '@tiptap/core@3.10.8':
+ resolution: {integrity: sha512-Kps4pl9O2fBrWaZkKemOaBBhOnEDiaBszCJIp2PKkW55ok1dsTWlwV6mFyywk9p8yjHEds6msqkngQokSpSwrQ==}
+ peerDependencies:
+ '@tiptap/pm': ^3.10.8
- '@tsconfig/node10@1.0.11':
- resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
+ '@tiptap/extension-blockquote@3.10.8':
+ resolution: {integrity: sha512-K5FC8mGDB5bElgndAcee4MMNQ6JKtyCfO2/x24LSUUVkocU3szZdVIrLf51PTHWvRwPuDtTJZjlDmCyJ2TOsqw==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
- '@tsconfig/node12@1.0.11':
- resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
+ '@tiptap/extension-bold@3.10.8':
+ resolution: {integrity: sha512-2HKJcxJUHNEAW78JC3FmjgqHQ6W66nHf3Uyvxkr4WPcmgZkAHV3kxQQjTDWP2U0IpylfnleaooWiHtNNk8/Qng==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
- '@tsconfig/node14@1.0.3':
- resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+ '@tiptap/extension-bubble-menu@3.10.8':
+ resolution: {integrity: sha512-4hq6x87w0UYjtgD1au9N34Fl4OHcn8RW1lpMOyCGl4d8dURoUNfMHHGCRpUvaAsBW64Eh4qTG0CJrDAPyXzqYQ==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+ '@tiptap/pm': ^3.10.8
- '@tsconfig/node16@1.0.4':
- resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+ '@tiptap/extension-bullet-list@3.10.8':
+ resolution: {integrity: sha512-VNY1/VBxNEj45w8L/eeI7C00XWW4Nd7Sk20vxLhmPFtXh7BuzzR7yviTEXjGUgwgNO2enFb+5Qi7bFLFjMR94g==}
+ peerDependencies:
+ '@tiptap/extension-list': ^3.10.8
- '@tybys/wasm-util@0.9.0':
- resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
+ '@tiptap/extension-code-block-lowlight@3.10.8':
+ resolution: {integrity: sha512-BGczlwXy/83axecHIubnYVL4wbt7dH6uhFPsI3kOrCovtsHFY2zWNrDmkHlPr+BlyGrvQ9LzISKrUIv99/PLwA==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+ '@tiptap/extension-code-block': ^3.10.8
+ '@tiptap/pm': ^3.10.8
+ highlight.js: ^11
+ lowlight: ^2 || ^3
- '@types/acorn@4.0.6':
- resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
+ '@tiptap/extension-code-block@3.10.8':
+ resolution: {integrity: sha512-/6/IftjAUXhRj3VWr4EiETKxrUS3CU8GHw7/TPTpJ79ddBSftjVs1nBQIlKqg6qG10D6fD1HbxvgTWXiE5FZQQ==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+ '@tiptap/pm': ^3.10.8
- '@types/aria-query@5.0.4':
- resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
+ '@tiptap/extension-code@3.10.8':
+ resolution: {integrity: sha512-QgM68sJfV4Wd7ip2gM9LOS382CZhkITR/PAOGzmKp2JrHYK7uoMoV92Wk3RVdiJfOLwNJ5rtZ+DKboW9dVzLDw==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
- '@types/babel__core@7.20.5':
- resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+ '@tiptap/extension-document@3.10.8':
+ resolution: {integrity: sha512-RJOD23zPSMFsSdV4vfC09zLvjzKQBN0JGVZ9yGGyWydnZkUo+ENlYJlu6P3YfCvgkFQ2qYgSGYC/19CTCiEaHQ==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
- '@types/babel__generator@7.27.0':
- resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
+ '@tiptap/extension-dropcursor@3.10.8':
+ resolution: {integrity: sha512-BP9P6IElQWVipNjj04eeSuo2z7EW1HL/bOPUa+VvcH7micuzFwQ4d2rhLIobsoDy3ULlOtYgyZDOYCY5dnlctQ==}
+ peerDependencies:
+ '@tiptap/extensions': ^3.10.8
- '@types/babel__template@7.4.4':
- resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+ '@tiptap/extension-floating-menu@3.10.8':
+ resolution: {integrity: sha512-3Zhsq2+Pu/7Q3gfQmR/+/5l0XZk2BKDujc6BR0IX/67Hzoo+en5O0BQdwekDeowEJn+FnHxxB9LOYNku4OF/Mg==}
+ peerDependencies:
+ '@floating-ui/dom': ^1.0.0
+ '@tiptap/core': ^3.10.8
+ '@tiptap/pm': ^3.10.8
- '@types/babel__traverse@7.20.7':
- resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==}
+ '@tiptap/extension-gapcursor@3.10.8':
+ resolution: {integrity: sha512-/6nmZI00NyaJ5IcjdGzHbYj5+cC/LS3MfpPWLlr10ISmUs/m9Ve605D/7S7lbCbz28GAV8MwaLjfvNERZYqCzQ==}
+ peerDependencies:
+ '@tiptap/extensions': ^3.10.8
- '@types/base-64@1.0.2':
- resolution: {integrity: sha512-uPgKMmM9fmn7I+Zi6YBqctOye4SlJsHKcisjHIMWpb2YKZRc36GpKyNuQ03JcT+oNXg1m7Uv4wU94EVltn8/cw==}
+ '@tiptap/extension-hard-break@3.10.8':
+ resolution: {integrity: sha512-olBa5MLPNGQksT8y3ILvEIed/hkb+dcKbnci4g7AXCmn2omUP6u6Dl306YOOO1hzd0CzjfNjlUVX5csWYjH3pw==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
- '@types/bcryptjs@2.4.6':
- resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==}
+ '@tiptap/extension-heading@3.10.8':
+ resolution: {integrity: sha512-P9It6F/W/jsixOg6FdKIbzsALDmI5mMccN5Ve60A2G9GNCmMttBNA4QTe39eLR9Puzj8TKg+xHTDhcg94MzSzA==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
- '@types/body-parser@1.19.5':
- resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
+ '@tiptap/extension-highlight@3.11.0':
+ resolution: {integrity: sha512-1Yzz77Nr4JB22WwAHKgfBsO+4fTaDdCsYVx9HDFkfGk6hliATwtNXvoi/7srfNjSpZzLUeqmPLjOhx3WS/hwtw==}
+ peerDependencies:
+ '@tiptap/core': ^3.11.0
- '@types/connect@3.4.38':
- resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+ '@tiptap/extension-horizontal-rule@3.10.8':
+ resolution: {integrity: sha512-NmorfyiSQabA9VwpPeoeYnuF/tSDemVLC++FLdKo1GdgZUmmmZUHgdpKn6TRsdbqWkuK13KyVpAjg+p38eFIOw==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+ '@tiptap/pm': ^3.10.8
- '@types/cookie@0.4.1':
- resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
+ '@tiptap/extension-image@3.10.8':
+ resolution: {integrity: sha512-Key9DoWw5St5pw5uOpQ5yk35Wi264pWTrpSTddHw0UZd2/+6MDG5BeTZSS4KcYSr3GsfWkLon3smSFKuPGcfyw==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
- '@types/d3-array@3.2.1':
- resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==}
+ '@tiptap/extension-italic@3.10.8':
+ resolution: {integrity: sha512-+V+QR7ZzyCpuxRppanvhdwwEj01kH0HEdBU7w5IP3tyQ+rMUFLMv7iT3tJMWvd9PcH3o15pl1DidP6ce0JUWsg==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
- '@types/d3-color@3.1.3':
- resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==}
+ '@tiptap/extension-link@3.10.8':
+ resolution: {integrity: sha512-8F7Az8jaPAjydt6Nk6DXcz6Lak0qV7InyjRMTDgumVHVsSY13RoJi159O/weexNUa0CgPDQv0s680UWpFf1hUw==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+ '@tiptap/pm': ^3.10.8
- '@types/d3-ease@3.0.2':
- resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==}
+ '@tiptap/extension-list-item@3.10.8':
+ resolution: {integrity: sha512-Z9E18uuN4rgEce6jOS1LULyWav9NjqztN/9j+jUXOrlnVwURaWoBfi1H8z28NimAzFOaKJKzVlp3KnIfGt+mEA==}
+ peerDependencies:
+ '@tiptap/extension-list': ^3.10.8
- '@types/d3-interpolate@3.0.4':
- resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==}
+ '@tiptap/extension-list-keymap@3.10.8':
+ resolution: {integrity: sha512-zrNXGP+9D+4M4bUowWBQdn3mMKWrciif2nTwB54EcYZ9vCUjgGvMzVuADdikClTbPtYNOQMIF1HbAu4hL1Cc1g==}
+ peerDependencies:
+ '@tiptap/extension-list': ^3.10.8
+
+ '@tiptap/extension-list@3.10.8':
+ resolution: {integrity: sha512-VwnHSfAjphMnBXkyEsCZ8K6ZXMESdoK/opSyPzPh4vRcLe6M5MDOsLfC51MvsfWEM2dR9XfqCxd0CYTqBvwP/g==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+ '@tiptap/pm': ^3.10.8
+
+ '@tiptap/extension-ordered-list@3.10.8':
+ resolution: {integrity: sha512-ZyK6C7ocs8D2OJi7k+kyMC6Zy5shKjyUtLan6bo9RpqkOiKNPKnjprzIyktLtRd+wo9A8czYUqddYRogHTabcg==}
+ peerDependencies:
+ '@tiptap/extension-list': ^3.10.8
+
+ '@tiptap/extension-paragraph@3.10.8':
+ resolution: {integrity: sha512-KhVIzwC51wHJ1FUbUjTwZaleKn5exdBbHSRyEsOR71udaR86yhTv93p1A6Y/dO0DLeKzbP2pujqK5eDbLSgeqQ==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+
+ '@tiptap/extension-placeholder@3.10.8':
+ resolution: {integrity: sha512-tyE9SOWXks9UVmlnvO7cZhIey7FHHZ3UjniVRUOtrdl/9h4QOrerNJI+ShsBY6oQSvijTc6OaqRTGTxDf0mkTA==}
+ peerDependencies:
+ '@tiptap/extensions': ^3.10.8
+
+ '@tiptap/extension-strike@3.10.8':
+ resolution: {integrity: sha512-Qp07IdioE4uZK6AnpuAuniIKNdByRHKu7Yt8XK3MDfIicQ0bGjZWFglVay5HYzL83MGHGQLaTCdoCQqbIKjCmw==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+
+ '@tiptap/extension-table@3.10.8':
+ resolution: {integrity: sha512-tvigSdbrHonb/6NJb3+Md3P3DHexgqCQmtUm3/qQGv14VGKmOoPeJpe9mB2m4UO4E9shSV9Mt0tbHiv2AkgWmQ==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+ '@tiptap/pm': ^3.10.8
+
+ '@tiptap/extension-text@3.10.8':
+ resolution: {integrity: sha512-dyadqItdphLAYPnxLal43mOcQr1biriCSh2S0KhLdb5sTV2HWsNxg7DrIdJZ7aRK0PXfBg9g+XF8euCbfq0iYA==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+
+ '@tiptap/extension-underline@3.10.8':
+ resolution: {integrity: sha512-eV8Myeb/8Fk/dRZK/mlKX3WelAbBwHUlkkCVVwKgTfRqRSpeu6vLjwI0RX5pNdWaTDUeHIhTzWWEZll+vms8lA==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+
+ '@tiptap/extensions@3.10.8':
+ resolution: {integrity: sha512-OLjQCbSFmVGNjcLKJ0fkEmOcJHSeRujc9A9jmdd/5crYc2VrKrjwvBLnFyS8WCb9E5OjXh8CNQdr+KzDXJaM9g==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+ '@tiptap/pm': ^3.10.8
+
+ '@tiptap/pm@3.10.8':
+ resolution: {integrity: sha512-KxrVb7Yx9it+4PxlefRPsS+aACp4abwgqA0QVSdZt0lCkp1PWsii0JVJGgdu70fRuN74yXo5GUp60yVb1/kXPQ==}
+
+ '@tiptap/react@3.10.8':
+ resolution: {integrity: sha512-24G/ao0nHxxsJHCsZTHcxmjcIomwx0iN5QQ93aj0VUFPKpE8MjMECmuxcVucas0gv717cXyXr0WrCrr+ebw3Qg==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+ '@tiptap/pm': ^3.10.8
+ '@types/react': 18.3.7
+ '@types/react-dom': 18.3.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ '@tiptap/starter-kit@3.10.8':
+ resolution: {integrity: sha512-en4XQ64QmK+5PDIXM6xinecp8Jdch5JjfbY/bpOeRBBzrCO8vqHHSINHhaQFwmc9nfuoMoyEfVWZjCWooD2L4Q==}
+
+ '@tiptap/static-renderer@3.10.8':
+ resolution: {integrity: sha512-1cKTsDv5bpe9bVWk7UHEk4M01aXFqgGotBIQbxE+wL8SBhwrY6u7vXgHnvtFwJvX8BIZUFWpdwHcon/eBzNy1Q==}
+ peerDependencies:
+ '@tiptap/core': ^3.10.8
+ '@tiptap/pm': ^3.10.8
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ '@tootallnate/once@2.0.0':
+ resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
+ engines: {node: '>= 10'}
+
+ '@tsconfig/node10@1.0.11':
+ resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
+
+ '@tsconfig/node12@1.0.11':
+ resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
+
+ '@tsconfig/node14@1.0.3':
+ resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+
+ '@tsconfig/node16@1.0.4':
+ resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+
+ '@tybys/wasm-util@0.9.0':
+ resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==}
+
+ '@types/acorn@4.0.6':
+ resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==}
+
+ '@types/aria-query@5.0.4':
+ resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==}
+
+ '@types/babel__core@7.20.5':
+ resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
+
+ '@types/babel__generator@7.27.0':
+ resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==}
+
+ '@types/babel__template@7.4.4':
+ resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==}
+
+ '@types/babel__traverse@7.20.7':
+ resolution: {integrity: sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==}
+
+ '@types/base-64@1.0.2':
+ resolution: {integrity: sha512-uPgKMmM9fmn7I+Zi6YBqctOye4SlJsHKcisjHIMWpb2YKZRc36GpKyNuQ03JcT+oNXg1m7Uv4wU94EVltn8/cw==}
+
+ '@types/bcryptjs@2.4.6':
+ resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==}
+
+ '@types/body-parser@1.19.5':
+ resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
+
+ '@types/connect@3.4.38':
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+
+ '@types/cookie@0.4.1':
+ resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==}
+
+ '@types/d3-array@3.2.1':
+ resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==}
+
+ '@types/d3-color@3.1.3':
+ resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==}
+
+ '@types/d3-ease@3.0.2':
+ resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==}
+
+ '@types/d3-interpolate@3.0.4':
+ resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==}
'@types/d3-path@3.1.1':
resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==}
@@ -5098,12 +4971,21 @@ packages:
'@types/json5@0.0.30':
resolution: {integrity: sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==}
+ '@types/linkify-it@5.0.0':
+ resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
+
+ '@types/markdown-it@14.1.2':
+ resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==}
+
'@types/marked@4.3.2':
resolution: {integrity: sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==}
'@types/mdast@3.0.15':
resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==}
+ '@types/mdurl@2.0.0':
+ resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
+
'@types/mime@1.3.5':
resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
@@ -5173,11 +5055,6 @@ packages:
'@types/react-dom@18.3.0':
resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
- '@types/react-transition-group@4.4.12':
- resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==}
- peerDependencies:
- '@types/react': 18.3.7
-
'@types/react@18.3.7':
resolution: {integrity: sha512-KUnDCJF5+AiZd8owLIeVHqmW9yM4sqmDVf2JRJiBMFkGvkoZ4/WyV2lL4zVsoinmRS/W3FeEdZLEWFRofnT2FQ==}
@@ -5219,6 +5096,9 @@ packages:
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+ '@types/use-sync-external-store@0.0.6':
+ resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==}
+
'@types/webidl-conversions@7.0.3':
resolution: {integrity: sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==}
@@ -5988,9 +5868,6 @@ packages:
resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
- codemirror@6.0.2:
- resolution: {integrity: sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==}
-
collect-v8-coverage@1.0.2:
resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==}
@@ -7014,6 +6891,9 @@ packages:
fastq@1.19.1:
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
+ fault@2.0.1:
+ resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
+
fb-watchman@2.0.2:
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
@@ -7103,6 +6983,10 @@ packages:
resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
engines: {node: '>= 6'}
+ format@0.2.2:
+ resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
+ engines: {node: '>=0.4.x'}
+
formdata-polyfill@4.0.10:
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
engines: {node: '>=12.20.0'}
@@ -7351,8 +7235,13 @@ packages:
hermes-parser@0.25.1:
resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==}
- hoist-non-react-statics@3.3.2:
- resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==}
+ highlight.js@11.11.1:
+ resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
+ engines: {node: '>=12.0.0'}
+
+ highlight.js@11.8.0:
+ resolution: {integrity: sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==}
+ engines: {node: '>=12.0.0'}
html-encoding-sniffer@3.0.0:
resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
@@ -7929,9 +7818,6 @@ packages:
js-base64@3.7.8:
resolution: {integrity: sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==}
- js-sha256@0.10.1:
- resolution: {integrity: sha512-5obBtsz9301ULlsgggLg542s/jqtddfOpV5KJc4hajc9JV8GeY2gZHSVpYBn4nWqAUTJ9v+xwtbJ1mIBgIH5Vw==}
-
js-stringify@1.0.2:
resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==}
@@ -8074,6 +7960,12 @@ packages:
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+ linkify-it@5.0.0:
+ resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
+
+ linkifyjs@4.3.2:
+ resolution: {integrity: sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==}
+
lint-staged@15.5.1:
resolution: {integrity: sha512-6m7u8mue4Xn6wK6gZvSCQwBvMBR36xfY24nF5bMTf2MHDYG6S3yhJuOgdYVw99hsjyDt2d4z168b3naI8+NWtQ==}
engines: {node: '>=18.12.0'}
@@ -8204,6 +8096,9 @@ packages:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
+ lowlight@2.9.0:
+ resolution: {integrity: sha512-OpcaUTCLmHuVuBcyNckKfH5B0oA4JUavb/M/8n9iAvanJYNQkrVm4pvyX0SUaqkBG4dnWHKt7p50B3ngAG2Rfw==}
+
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
@@ -8243,12 +8138,13 @@ packages:
make-error@1.3.6:
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
- make-plural@6.2.2:
- resolution: {integrity: sha512-8iTuFioatnTTmb/YJjywkVIHLjcwkFD9Ms0JpxjEm9Mo8eQYkh1z+55dwv4yc1jQ8ftVBxWQbihvZL1DfzGGWA==}
-
makeerror@1.0.12:
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+ markdown-it@14.1.0:
+ resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
+ hasBin: true
+
markdown-table@3.0.4:
resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==}
@@ -8321,6 +8217,9 @@ packages:
mdast-util-to-string@3.2.0:
resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==}
+ mdurl@2.0.0:
+ resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
+
media-typer@0.3.0:
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
engines: {node: '>= 0.6'}
@@ -8558,9 +8457,6 @@ packages:
resolution: {integrity: sha512-IxDxIUu42apE7oEknJK535xkQ6Gd7GKx/gNrNHY+vP4+ucVU2TOCWjVVW14Vc79y9DEEElzHDlTOuVNM8glUFA==}
engines: {node: '>=16.20.1'}
- moo@0.5.2:
- resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==}
-
mpath@0.9.0:
resolution: {integrity: sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==}
engines: {node: '>=4.0.0'}
@@ -9165,6 +9061,9 @@ packages:
property-information@6.5.0:
resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
+ prosemirror-changeset@2.3.1:
+ resolution: {integrity: sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==}
+
prosemirror-collab@1.3.1:
resolution: {integrity: sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==}
@@ -9186,6 +9085,12 @@ packages:
prosemirror-keymap@1.2.2:
resolution: {integrity: sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==}
+ prosemirror-markdown@1.13.2:
+ resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==}
+
+ prosemirror-menu@1.2.5:
+ resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==}
+
prosemirror-model@1.25.1:
resolution: {integrity: sha512-AUvbm7qqmpZa5d9fPKMvH1Q5bqYQvAZWOGRvxsB6iFLyycvC9MwNemNVjHVrWgjaoxAfY8XVg7DbvQ/qxvI9Eg==}
@@ -9199,6 +9104,9 @@ packages:
prosemirror-resizable-view@3.0.0:
resolution: {integrity: sha512-xIy2fU7B7z46oH8zW6aC0i4EhwieuW1HtWwwSJ8PB3dDq/AJGR7EBce+1Jn/Fmeu1zPd5CWoCJbvAlEs8cQV4A==}
+ prosemirror-schema-basic@1.2.4:
+ resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==}
+
prosemirror-schema-list@1.5.1:
resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==}
@@ -9274,6 +9182,10 @@ packages:
pug@3.0.3:
resolution: {integrity: sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==}
+ punycode.js@2.3.1:
+ resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
+ engines: {node: '>=6'}
+
punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
@@ -9351,9 +9263,6 @@ packages:
react-is@18.3.1:
resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
- react-is@19.1.0:
- resolution: {integrity: sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==}
-
react-remove-scroll-bar@2.3.8:
resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==}
engines: {node: '>=10'}
@@ -10009,9 +9918,6 @@ packages:
strnum@1.1.2:
resolution: {integrity: sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA==}
- style-mod@4.1.2:
- resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==}
-
styled-jsx@5.1.6:
resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==}
engines: {node: '>= 12.0.0'}
@@ -10395,6 +10301,9 @@ packages:
engines: {node: '>=14.17'}
hasBin: true
+ uc.micro@2.1.0:
+ resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
+
uglify-js@3.19.3:
resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
engines: {node: '>=0.8.0'}
@@ -10470,9 +10379,6 @@ packages:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
- unraw@3.0.0:
- resolution: {integrity: sha512-08/DA66UF65OlpUDIQtbJyrqTR0jTAlJ+jsnkQ4jxR7+K5g5YG1APZKQSMCE1vqqmD+2pv6+IdEjmopFatacvg==}
-
unrs-resolver@1.7.0:
resolution: {integrity: sha512-b76tVoT9KPniDY1GoYghDUQX20gjzXm/TONfHfgayLaiuo+oGyT9CsQkGCEJs+1/uryVBEOGOt3yYWDXbJhL7g==}
@@ -11887,251 +11793,6 @@ snapshots:
human-id: 4.1.1
prettier: 2.8.8
- '@codemirror/autocomplete@6.18.6':
- dependencies:
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- '@lezer/common': 1.2.3
-
- '@codemirror/commands@6.8.1':
- dependencies:
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- '@lezer/common': 1.2.3
-
- '@codemirror/lang-angular@0.1.4':
- dependencies:
- '@codemirror/lang-html': 6.4.9
- '@codemirror/lang-javascript': 6.2.3
- '@codemirror/language': 6.11.0
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@codemirror/lang-cpp@6.0.2':
- dependencies:
- '@codemirror/language': 6.11.0
- '@lezer/cpp': 1.1.3
-
- '@codemirror/lang-css@6.3.1':
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@lezer/common': 1.2.3
- '@lezer/css': 1.1.11
-
- '@codemirror/lang-go@6.0.1':
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@lezer/common': 1.2.3
- '@lezer/go': 1.0.0
-
- '@codemirror/lang-html@6.4.9':
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/lang-css': 6.3.1
- '@codemirror/lang-javascript': 6.2.3
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- '@lezer/common': 1.2.3
- '@lezer/css': 1.1.11
- '@lezer/html': 1.3.10
-
- '@codemirror/lang-java@6.0.1':
- dependencies:
- '@codemirror/language': 6.11.0
- '@lezer/java': 1.1.3
-
- '@codemirror/lang-javascript@6.2.3':
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/language': 6.11.0
- '@codemirror/lint': 6.8.5
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- '@lezer/common': 1.2.3
- '@lezer/javascript': 1.5.1
-
- '@codemirror/lang-json@6.0.1':
- dependencies:
- '@codemirror/language': 6.11.0
- '@lezer/json': 1.0.3
-
- '@codemirror/lang-less@6.0.2':
- dependencies:
- '@codemirror/lang-css': 6.3.1
- '@codemirror/language': 6.11.0
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@codemirror/lang-liquid@6.2.3':
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/lang-html': 6.4.9
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@codemirror/lang-markdown@6.3.2':
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/lang-html': 6.4.9
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- '@lezer/common': 1.2.3
- '@lezer/markdown': 1.4.2
-
- '@codemirror/lang-php@6.0.1':
- dependencies:
- '@codemirror/lang-html': 6.4.9
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@lezer/common': 1.2.3
- '@lezer/php': 1.0.2
-
- '@codemirror/lang-python@6.2.0':
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@lezer/common': 1.2.3
- '@lezer/python': 1.1.18
-
- '@codemirror/lang-rust@6.0.1':
- dependencies:
- '@codemirror/language': 6.11.0
- '@lezer/rust': 1.0.2
-
- '@codemirror/lang-sass@6.0.2':
- dependencies:
- '@codemirror/lang-css': 6.3.1
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@lezer/common': 1.2.3
- '@lezer/sass': 1.0.7
-
- '@codemirror/lang-sql@6.8.0':
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@codemirror/lang-vue@0.1.3':
- dependencies:
- '@codemirror/lang-html': 6.4.9
- '@codemirror/lang-javascript': 6.2.3
- '@codemirror/language': 6.11.0
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@codemirror/lang-wast@6.0.2':
- dependencies:
- '@codemirror/language': 6.11.0
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@codemirror/lang-xml@6.1.0':
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- '@lezer/common': 1.2.3
- '@lezer/xml': 1.0.6
-
- '@codemirror/lang-yaml@6.1.2':
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
- '@lezer/yaml': 1.0.3
-
- '@codemirror/language-data@6.5.1':
- dependencies:
- '@codemirror/lang-angular': 0.1.4
- '@codemirror/lang-cpp': 6.0.2
- '@codemirror/lang-css': 6.3.1
- '@codemirror/lang-go': 6.0.1
- '@codemirror/lang-html': 6.4.9
- '@codemirror/lang-java': 6.0.1
- '@codemirror/lang-javascript': 6.2.3
- '@codemirror/lang-json': 6.0.1
- '@codemirror/lang-less': 6.0.2
- '@codemirror/lang-liquid': 6.2.3
- '@codemirror/lang-markdown': 6.3.2
- '@codemirror/lang-php': 6.0.1
- '@codemirror/lang-python': 6.2.0
- '@codemirror/lang-rust': 6.0.1
- '@codemirror/lang-sass': 6.0.2
- '@codemirror/lang-sql': 6.8.0
- '@codemirror/lang-vue': 0.1.3
- '@codemirror/lang-wast': 6.0.2
- '@codemirror/lang-xml': 6.1.0
- '@codemirror/lang-yaml': 6.1.2
- '@codemirror/language': 6.11.0
- '@codemirror/legacy-modes': 6.5.1
-
- '@codemirror/language@6.11.0':
- dependencies:
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
- style-mod: 4.1.2
-
- '@codemirror/legacy-modes@6.5.1':
- dependencies:
- '@codemirror/language': 6.11.0
-
- '@codemirror/lint@6.8.5':
- dependencies:
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- crelt: 1.0.6
-
- '@codemirror/search@6.5.10':
- dependencies:
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- crelt: 1.0.6
-
- '@codemirror/state@6.5.2':
- dependencies:
- '@marijn/find-cluster-break': 1.0.2
-
- '@codemirror/theme-one-dark@6.1.2':
- dependencies:
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- '@lezer/highlight': 1.2.1
-
- '@codemirror/view@6.36.6':
- dependencies:
- '@codemirror/state': 6.5.2
- style-mod: 4.1.2
- w3c-keyname: 2.2.8
-
'@cspotcode/source-map-support@0.8.1':
dependencies:
'@jridgewell/trace-mapping': 0.3.9
@@ -12248,6 +11909,7 @@ snapshots:
stylis: 4.2.0
transitivePeerDependencies:
- supports-color
+ optional: true
'@emotion/cache@11.14.0':
dependencies:
@@ -12256,6 +11918,7 @@ snapshots:
'@emotion/utils': 1.4.2
'@emotion/weak-memoize': 0.4.0
stylis: 4.2.0
+ optional: true
'@emotion/css@11.13.5':
dependencies:
@@ -12266,30 +11929,13 @@ snapshots:
'@emotion/utils': 1.4.2
transitivePeerDependencies:
- supports-color
+ optional: true
- '@emotion/hash@0.9.2': {}
-
- '@emotion/is-prop-valid@1.3.1':
- dependencies:
- '@emotion/memoize': 0.9.0
-
- '@emotion/memoize@0.9.0': {}
+ '@emotion/hash@0.9.2':
+ optional: true
- '@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@emotion/babel-plugin': 11.13.5
- '@emotion/cache': 11.14.0
- '@emotion/serialize': 1.3.3
- '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@17.0.2)
- '@emotion/utils': 1.4.2
- '@emotion/weak-memoize': 0.4.0
- hoist-non-react-statics: 3.3.2
- react: 17.0.2
- optionalDependencies:
- '@types/react': 18.3.7
- transitivePeerDependencies:
- - supports-color
+ '@emotion/memoize@0.9.0':
+ optional: true
'@emotion/serialize@1.3.3':
dependencies:
@@ -12298,33 +11944,19 @@ snapshots:
'@emotion/unitless': 0.10.0
'@emotion/utils': 1.4.2
csstype: 3.1.3
+ optional: true
- '@emotion/sheet@1.4.0': {}
-
- '@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@emotion/babel-plugin': 11.13.5
- '@emotion/is-prop-valid': 1.3.1
- '@emotion/react': 11.14.0(@types/react@18.3.7)(react@17.0.2)
- '@emotion/serialize': 1.3.3
- '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@17.0.2)
- '@emotion/utils': 1.4.2
- react: 17.0.2
- optionalDependencies:
- '@types/react': 18.3.7
- transitivePeerDependencies:
- - supports-color
-
- '@emotion/unitless@0.10.0': {}
+ '@emotion/sheet@1.4.0':
+ optional: true
- '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@17.0.2)':
- dependencies:
- react: 17.0.2
+ '@emotion/unitless@0.10.0':
+ optional: true
- '@emotion/utils@1.4.2': {}
+ '@emotion/utils@1.4.2':
+ optional: true
- '@emotion/weak-memoize@0.4.0': {}
+ '@emotion/weak-memoize@0.4.0':
+ optional: true
'@esbuild/aix-ppc64@0.19.12':
optional: true
@@ -12548,12 +12180,6 @@ snapshots:
'@floating-ui/core': 1.6.9
'@floating-ui/utils': 0.2.9
- '@floating-ui/react-dom@2.1.2(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@floating-ui/dom': 1.6.13
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
-
'@floating-ui/react-dom@2.1.2(react-dom@19.2.0(react@18.3.1))(react@18.3.1)':
dependencies:
'@floating-ui/dom': 1.6.13
@@ -12566,14 +12192,6 @@ snapshots:
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
- '@floating-ui/react@0.24.8(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@floating-ui/react-dom': 2.1.2(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- aria-hidden: 1.2.4
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
- tabbable: 6.2.0
-
'@floating-ui/react@0.24.8(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@floating-ui/react-dom': 2.1.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
@@ -12610,10 +12228,6 @@ snapshots:
'@humanwhocodes/retry@0.4.3': {}
- '@icons/material@0.2.4(react@17.0.2)':
- dependencies:
- react: 17.0.2
-
'@icons/material@0.2.4(react@19.2.0)':
dependencies:
react: 19.2.0
@@ -13126,99 +12740,6 @@ snapshots:
'@kurkle/color@0.3.4': {}
- '@lezer/common@1.2.3': {}
-
- '@lezer/cpp@1.1.3':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/css@1.1.11':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/go@1.0.0':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/highlight@1.2.1':
- dependencies:
- '@lezer/common': 1.2.3
-
- '@lezer/html@1.3.10':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/java@1.1.3':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/javascript@1.5.1':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/json@1.0.3':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/lr@1.4.2':
- dependencies:
- '@lezer/common': 1.2.3
-
- '@lezer/markdown@1.4.2':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
-
- '@lezer/php@1.0.2':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/python@1.1.18':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/rust@1.0.2':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/sass@1.0.7':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/xml@1.0.6':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
- '@lezer/yaml@1.0.3':
- dependencies:
- '@lezer/common': 1.2.3
- '@lezer/highlight': 1.2.1
- '@lezer/lr': 1.4.2
-
'@linaria/core@4.2.10':
dependencies:
'@linaria/logger': 4.5.0
@@ -13259,19 +12780,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@lingui/core@4.14.1':
- dependencies:
- '@babel/runtime': 7.27.0
- '@lingui/message-utils': 4.14.1
- unraw: 3.0.0
-
- '@lingui/detect-locale@4.14.1': {}
-
- '@lingui/message-utils@4.14.1':
- dependencies:
- '@messageformat/parser': 5.1.1
- js-sha256: 0.10.1
-
'@ljharb/has-package-exports-patterns@0.0.2': {}
'@manypkg/find-root@1.1.0':
@@ -13290,12 +12798,6 @@ snapshots:
globby: 11.1.0
read-yaml-file: 1.1.0
- '@marijn/find-cluster-break@1.0.2': {}
-
- '@messageformat/parser@5.1.1':
- dependencies:
- moo: 0.5.2
-
'@mixmark-io/domino@2.2.0': {}
'@mongodb-js/saslprep@1.2.2':
@@ -13320,81 +12822,6 @@ snapshots:
'@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3':
optional: true
- '@mui/core-downloads-tracker@5.17.1': {}
-
- '@mui/material@5.17.1(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@mui/core-downloads-tracker': 5.17.1
- '@mui/system': 5.17.1(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)
- '@mui/types': 7.2.24(@types/react@18.3.7)
- '@mui/utils': 5.17.1(@types/react@18.3.7)(react@17.0.2)
- '@popperjs/core': 2.11.8
- '@types/react-transition-group': 4.4.12(@types/react@18.3.7)
- clsx: 2.1.1
- csstype: 3.1.3
- prop-types: 15.8.1
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
- react-is: 19.1.0
- react-transition-group: 4.4.5(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- optionalDependencies:
- '@emotion/react': 11.14.0(@types/react@18.3.7)(react@17.0.2)
- '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)
- '@types/react': 18.3.7
-
- '@mui/private-theming@5.17.1(@types/react@18.3.7)(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@mui/utils': 5.17.1(@types/react@18.3.7)(react@17.0.2)
- prop-types: 15.8.1
- react: 17.0.2
- optionalDependencies:
- '@types/react': 18.3.7
-
- '@mui/styled-engine@5.16.14(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@emotion/cache': 11.14.0
- csstype: 3.1.3
- prop-types: 15.8.1
- react: 17.0.2
- optionalDependencies:
- '@emotion/react': 11.14.0(@types/react@18.3.7)(react@17.0.2)
- '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)
-
- '@mui/system@5.17.1(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@mui/private-theming': 5.17.1(@types/react@18.3.7)(react@17.0.2)
- '@mui/styled-engine': 5.16.14(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(react@17.0.2)
- '@mui/types': 7.2.24(@types/react@18.3.7)
- '@mui/utils': 5.17.1(@types/react@18.3.7)(react@17.0.2)
- clsx: 2.1.1
- csstype: 3.1.3
- prop-types: 15.8.1
- react: 17.0.2
- optionalDependencies:
- '@emotion/react': 11.14.0(@types/react@18.3.7)(react@17.0.2)
- '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)
- '@types/react': 18.3.7
-
- '@mui/types@7.2.24(@types/react@18.3.7)':
- optionalDependencies:
- '@types/react': 18.3.7
-
- '@mui/utils@5.17.1(@types/react@18.3.7)(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@mui/types': 7.2.24(@types/react@18.3.7)
- '@types/prop-types': 15.7.14
- clsx: 2.1.1
- prop-types: 15.8.1
- react: 17.0.2
- react-is: 19.1.0
- optionalDependencies:
- '@types/react': 18.3.7
-
'@napi-rs/wasm-runtime@0.2.9':
dependencies:
'@emnapi/core': 1.4.3
@@ -13485,8 +12912,6 @@ snapshots:
'@polka/url@1.0.0-next.29': {}
- '@popperjs/core@2.11.8': {}
-
'@preact/signals-core@1.8.0': {}
'@preact/signals@1.3.2(preact@10.26.5)':
@@ -15170,24 +14595,6 @@ snapshots:
transitivePeerDependencies:
- jsdom
- '@remirror/core-utils@3.0.0(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core-constants': 3.0.0
- '@remirror/core-helpers': 4.0.0
- '@remirror/core-types': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@types/min-document': 2.19.2
- css-in-js-utils: 3.1.0
- get-dom-document: 0.1.3(jsdom@26.1.0)
- min-document: 2.19.0
- parenthesis: 3.1.8
- optionalDependencies:
- '@types/node': 18.19.87
- transitivePeerDependencies:
- - jsdom
-
'@remirror/core@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
@@ -15204,22 +14611,6 @@ snapshots:
- '@types/node'
- jsdom
- '@remirror/core@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core-constants': 3.0.0
- '@remirror/core-helpers': 4.0.0
- '@remirror/core-types': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/core-utils': 3.0.0(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/icons': 3.0.0
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- nanoevents: 5.1.13
- tiny-warning: 1.0.3
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
'@remirror/dom@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
@@ -15231,17 +14622,6 @@ snapshots:
- jsdom
- supports-color
- '@remirror/dom@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/pm': 3.0.1
- '@remirror/preset-core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
'@remirror/extension-annotation@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
@@ -15254,43 +14634,41 @@ snapshots:
- jsdom
- supports-color
- '@remirror/extension-annotation@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-bidi@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ '@types/direction': 1.0.0
+ direction: 1.0.4
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-bidi@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-blockquote@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@types/direction': 1.0.0
- direction: 1.0.4
+ '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
transitivePeerDependencies:
- '@types/node'
- jsdom
+ - supports-color
- '@remirror/extension-bidi@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-bold@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@types/direction': 1.0.0
- direction: 1.0.4
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-blockquote@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-callout@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
@@ -15302,19 +14680,24 @@ snapshots:
- jsdom
- supports-color
- '@remirror/extension-blockquote@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-code-block@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)(prettier@3.5.3)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
'@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
+ '@types/refractor': 3.4.1
+ refractor: 3.6.0
+ optionalDependencies:
+ prettier: 3.5.3
transitivePeerDependencies:
- '@types/node'
- jsdom
- supports-color
- '@remirror/extension-bold@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-code@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
@@ -15324,107 +14707,100 @@ snapshots:
- '@types/node'
- jsdom
- '@remirror/extension-bold@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-collaboration@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-callout@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-columns@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-callout@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-diff@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-code-block@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)(prettier@3.5.3)':
+ '@remirror/extension-doc@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- '@types/refractor': 3.4.1
- refractor: 3.6.0
- optionalDependencies:
- prettier: 3.5.3
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-code-block@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)(prettier@3.5.3)':
+ '@remirror/extension-drop-cursor@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- '@types/refractor': 3.4.1
- refractor: 3.6.0
- optionalDependencies:
- prettier: 3.5.3
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-code@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-embed@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ '@types/querystringify': 2.0.2
+ prosemirror-resizable-view: 3.0.0(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ querystringify: 2.2.0
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-code@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-emoji@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@ocavue/svgmoji-cjs': 0.1.1
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
+ emojibase: 6.1.0
+ emojibase-data: 6.2.0(emojibase@6.1.0)
+ emojibase-regex: 6.0.1
+ escape-string-regexp: 4.0.0
+ svgmoji: 3.2.0
transitivePeerDependencies:
- '@types/node'
- jsdom
+ - supports-color
- '@remirror/extension-codemirror6@2.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-entity-reference@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@codemirror/language': 6.11.0
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
+ - supports-color
- '@remirror/extension-collaboration@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-epic-mode@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
@@ -15434,57 +14810,59 @@ snapshots:
- '@types/node'
- jsdom
- '@remirror/extension-collaboration@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-events@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-columns@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-find@1.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
- '@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ '@types/string.prototype.matchall': 4.0.4
+ escape-string-regexp: 4.0.0
+ string.prototype.matchall: 4.0.12
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-columns@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-font-family@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-diff@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-font-size@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ round: 2.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-diff@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-gap-cursor@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-doc@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-hard-break@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
@@ -15494,17 +14872,17 @@ snapshots:
- '@types/node'
- jsdom
- '@remirror/extension-doc@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-heading@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-drop-cursor@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-history@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
@@ -15514,123 +14892,117 @@ snapshots:
- '@types/node'
- jsdom
- '@remirror/extension-drop-cursor@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-horizontal-rule@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-embed@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-image@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@types/querystringify': 2.0.2
+ '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
prosemirror-resizable-view: 3.0.0(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- querystringify: 2.2.0
transitivePeerDependencies:
- '@types/node'
- jsdom
+ - supports-color
- '@remirror/extension-embed@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-italic@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@types/querystringify': 2.0.2
- prosemirror-resizable-view: 3.0.0(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- querystringify: 2.2.0
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-emoji@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-link@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@ocavue/svgmoji-cjs': 0.1.1
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- emojibase: 6.1.0
- emojibase-data: 6.2.0(emojibase@6.1.0)
- emojibase-regex: 6.0.1
- escape-string-regexp: 4.0.0
- svgmoji: 3.2.0
+ extract-domain: 2.2.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-emoji@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-list@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@ocavue/svgmoji-cjs': 0.1.1
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
'@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- emojibase: 6.1.0
- emojibase-data: 6.2.0(emojibase@6.1.0)
- emojibase-regex: 6.0.1
- escape-string-regexp: 4.0.0
- svgmoji: 3.2.0
transitivePeerDependencies:
- '@types/node'
- jsdom
- supports-color
- '@remirror/extension-entity-reference@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-markdown@3.0.3(@remirror/extension-react-tables@3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ '@types/marked': 4.3.2
+ '@types/turndown': 5.0.5
+ marked: 4.3.0
+ turndown: 7.2.0
+ turndown-plugin-gfm: 1.0.2
+ optionalDependencies:
+ '@remirror/extension-react-tables': 3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-entity-reference@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-mention-atom@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
transitivePeerDependencies:
- '@types/node'
- jsdom
- supports-color
- '@remirror/extension-epic-mode@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-mention@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ escape-string-regexp: 4.0.0
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-epic-mode@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-node-formatting@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-events@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-paragraph@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
@@ -15640,763 +15012,169 @@ snapshots:
- '@types/node'
- jsdom
- '@remirror/extension-events@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-placeholder@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
transitivePeerDependencies:
- '@types/node'
- jsdom
+ - supports-color
- '@remirror/extension-find@1.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/pm': 3.0.1
- '@types/string.prototype.matchall': 4.0.4
- escape-string-regexp: 4.0.0
- string.prototype.matchall: 4.0.12
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-find@1.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/pm': 3.0.1
- '@types/string.prototype.matchall': 4.0.4
- escape-string-regexp: 4.0.0
- string.prototype.matchall: 4.0.12
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-font-family@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-font-family@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-font-size@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- round: 2.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-font-size@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- round: 2.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-gap-cursor@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-gap-cursor@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-hard-break@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-hard-break@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-heading@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-heading@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-history@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-history@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-horizontal-rule@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-horizontal-rule@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-image@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- prosemirror-resizable-view: 3.0.0(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-image@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- prosemirror-resizable-view: 3.0.0(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-italic@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-italic@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-link@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- extract-domain: 2.2.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-link@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- extract-domain: 2.2.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-list@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-list@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-markdown@3.0.3(@remirror/extension-react-tables@3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@types/marked': 4.3.2
- '@types/turndown': 5.0.5
- marked: 4.3.0
- turndown: 7.2.0
- turndown-plugin-gfm: 1.0.2
- optionalDependencies:
- '@remirror/extension-react-tables': 3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-markdown@3.0.3(@remirror/extension-react-tables@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2))(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@types/marked': 4.3.2
- '@types/turndown': 5.0.5
- marked: 4.3.0
- turndown: 7.2.0
- turndown-plugin-gfm: 1.0.2
- optionalDependencies:
- '@remirror/extension-react-tables': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-mention-atom@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-mention-atom@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-mention@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- escape-string-regexp: 4.0.0
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-mention@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- escape-string-regexp: 4.0.0
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-node-formatting@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-node-formatting@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-paragraph@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-paragraph@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-placeholder@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-placeholder@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-positioner@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- nanoevents: 5.1.13
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-positioner@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- nanoevents: 5.1.13
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-react-component@3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/core-constants': 3.0.0
- '@remirror/core-helpers': 4.0.0
- '@remirror/core-types': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/core-utils': 3.0.0(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- nanoevents: 5.1.13
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- optionalDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- optional: true
-
- '@remirror/extension-react-component@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/core-constants': 3.0.0
- '@remirror/core-helpers': 4.0.0
- '@remirror/core-types': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/core-utils': 3.0.0(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- nanoevents: 5.1.13
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
- optionalDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-react-tables@3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@emotion/css': 11.13.5
- '@linaria/core': 4.2.10
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/core-utils': 3.0.0(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-tables': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/icons': 3.0.0
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/react-components': 3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@remirror/react-core': 3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@remirror/react-hooks': 3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- optionalDependencies:
- react: 19.2.0
- react-dom: 19.2.0(react@19.2.0)
- transitivePeerDependencies:
- - '@types/node'
- - '@types/react'
- - '@types/react-dom'
- - jsdom
- - supports-color
- optional: true
-
- '@remirror/extension-react-tables@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@emotion/css': 11.13.5
- '@linaria/core': 4.2.10
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/core-utils': 3.0.0(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-tables': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/icons': 3.0.0
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/react-components': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-core': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-hooks': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- optionalDependencies:
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
- transitivePeerDependencies:
- - '@types/node'
- - '@types/react'
- - '@types/react-dom'
- - jsdom
- - supports-color
-
- '@remirror/extension-shortcuts@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-shortcuts@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-strike@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-strike@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-sub@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-sub@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-sup@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-sup@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
-
- '@remirror/extension-tables@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/extension-tables@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-positioner@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
'@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
+ nanoevents: 5.1.13
transitivePeerDependencies:
- '@types/node'
- jsdom
- supports-color
- '@remirror/extension-text-case@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-react-component@3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/core-constants': 3.0.0
+ '@remirror/core-helpers': 4.0.0
+ '@remirror/core-types': 3.0.0(@remirror/pm@3.0.1)
+ '@remirror/core-utils': 3.0.0(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ nanoevents: 5.1.13
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
+ optionalDependencies:
+ '@types/react': 18.3.7
+ '@types/react-dom': 18.3.0
transitivePeerDependencies:
- '@types/node'
- jsdom
+ optional: true
- '@remirror/extension-text-case@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-react-tables@3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@emotion/css': 11.13.5
+ '@linaria/core': 4.2.10
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/core-utils': 3.0.0(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-tables': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/icons': 3.0.0
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ '@remirror/react-components': 3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@remirror/react-core': 3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@remirror/react-hooks': 3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
+ optionalDependencies:
+ react: 19.2.0
+ react-dom: 19.2.0(react@19.2.0)
transitivePeerDependencies:
- '@types/node'
+ - '@types/react'
+ - '@types/react-dom'
- jsdom
+ - supports-color
+ optional: true
- '@remirror/extension-text-color@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-shortcuts@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- color2k: 2.0.3
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-text-color@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-strike@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- color2k: 2.0.3
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-text-highlight@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-sub@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
- '@remirror/extension-text-color': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-text-highlight@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-sup@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-text-color': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- - supports-color
- '@remirror/extension-text@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-tables@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
transitivePeerDependencies:
- '@types/node'
- jsdom
+ - supports-color
- '@remirror/extension-text@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-text-case@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-trailing-node@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-text-color@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
+ '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
+ color2k: 2.0.3
transitivePeerDependencies:
- '@types/node'
- jsdom
+ - supports-color
- '@remirror/extension-trailing-node@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-text-highlight@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
+ '@remirror/extension-text-color': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
+ - supports-color
- '@remirror/extension-underline@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-text@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
@@ -16406,17 +15184,17 @@ snapshots:
- '@types/node'
- jsdom
- '@remirror/extension-underline@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-trailing-node@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/extension-whitespace@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
+ '@remirror/extension-underline@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
'@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
@@ -16426,27 +15204,16 @@ snapshots:
- '@types/node'
- jsdom
- '@remirror/extension-whitespace@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
+ '@remirror/extension-whitespace@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
+ '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)
'@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
'@remirror/pm': 3.0.1
transitivePeerDependencies:
- '@types/node'
- jsdom
- '@remirror/i18n@3.0.0(@remirror/pm@3.0.1)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@lingui/core': 4.14.1
- '@lingui/detect-locale': 4.14.1
- '@remirror/core-helpers': 4.0.0
- '@remirror/core-types': 3.0.0(@remirror/pm@3.0.1)
- make-plural: 6.2.2
- transitivePeerDependencies:
- - '@remirror/pm'
-
'@remirror/icons@3.0.0':
dependencies:
'@babel/runtime': 7.27.0
@@ -16499,23 +15266,6 @@ snapshots:
- jsdom
- supports-color
- '@remirror/preset-core@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-doc': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-gap-cursor': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-history': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-paragraph': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-text': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
'@remirror/preset-formatting@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)':
dependencies:
'@babel/runtime': 7.27.0
@@ -16540,30 +15290,6 @@ snapshots:
- jsdom
- supports-color
- '@remirror/preset-formatting@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-bold': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-columns': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-font-size': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-heading': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-italic': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-node-formatting': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-strike': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-sub': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-sup': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-text-case': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-text-color': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-text-highlight': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-underline': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-whitespace': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/pm': 3.0.1
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
'@remirror/preset-react@3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/runtime': 7.27.0
@@ -16583,24 +15309,6 @@ snapshots:
- supports-color
optional: true
- '@remirror/preset-react@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-placeholder': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-react-component': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/pm': 3.0.1
- '@remirror/react-utils': 3.0.0(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@17.0.2)
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
- optionalDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
'@remirror/preset-wysiwyg@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(jsdom@26.1.0)(prettier@3.5.3)':
dependencies:
'@babel/runtime': 7.27.0
@@ -16633,38 +15341,6 @@ snapshots:
- prettier
- supports-color
- '@remirror/preset-wysiwyg@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)(prettier@3.5.3)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-bidi': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-blockquote': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-bold': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-code': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-code-block': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)(prettier@3.5.3)
- '@remirror/extension-drop-cursor': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-embed': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-find': 1.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-gap-cursor': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-hard-break': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-heading': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-horizontal-rule': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-image': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-italic': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-link': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-list': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-shortcuts': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-strike': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-trailing-node': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-underline': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/pm': 3.0.1
- '@remirror/preset-core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - prettier
- - supports-color
-
'@remirror/react-components@3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/runtime': 7.27.0
@@ -16695,35 +15371,6 @@ snapshots:
- supports-color
optional: true
- '@remirror/react-components@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@floating-ui/react': 0.24.8(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/icons': 3.0.0
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/react-core': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-hooks': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-utils': 3.0.0(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@17.0.2)
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- '@seznam/compose-react-refs': 1.0.6
- '@types/react-color': 3.0.13(@types/react@18.3.7)
- create-context-state: 2.0.3(@types/react@18.3.7)(react@17.0.2)
- match-sorter: 6.3.4
- multishift: 2.0.10(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@17.0.2)
- react: 17.0.2
- react-color: 2.19.3(react@17.0.2)
- react-dom: 19.2.0(react@17.0.2)
- optionalDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
'@remirror/react-core@3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/runtime': 7.27.0
@@ -16751,63 +15398,6 @@ snapshots:
- supports-color
optional: true
- '@remirror/react-core@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-react-component': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/pm': 3.0.1
- '@remirror/preset-core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/preset-react': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-renderer': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react@18.3.7)(jsdom@26.1.0)(react@17.0.2)
- '@remirror/react-utils': 3.0.0(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@17.0.2)
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- '@seznam/compose-react-refs': 1.0.6
- fast-deep-equal: 3.1.3
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
- resize-observer-polyfill: 1.5.1
- tiny-warning: 1.0.3
- optionalDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/react-editors@2.0.3(@emotion/css@11.13.5)(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(prettier@3.5.3)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core-helpers': 4.0.0
- '@remirror/extension-react-tables': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/i18n': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/react': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-ui': 1.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(prettier@3.5.3)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/styles': 3.0.0(@emotion/css@11.13.5)(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)
- '@svgmoji/noto': 3.2.0
- '@types/refractor': 3.4.1
- create-context-state: 2.0.3(@types/react@18.3.7)(react@17.0.2)
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
- refractor: 3.6.0
- remirror: 3.0.3(@remirror/extension-react-tables@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2))(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)(prettier@3.5.3)
- svgmoji: 3.2.0
- optionalDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- transitivePeerDependencies:
- - '@emotion/css'
- - '@emotion/react'
- - '@emotion/styled'
- - '@types/node'
- - jsdom
- - prettier
- - styled-components
- - supports-color
-
'@remirror/react-hooks@3.0.3(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/runtime': 7.27.0
@@ -16837,34 +15427,6 @@ snapshots:
- supports-color
optional: true
- '@remirror/react-hooks@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/core-constants': 3.0.0
- '@remirror/core-helpers': 4.0.0
- '@remirror/extension-emoji': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-history': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-mention': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-mention-atom': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/pm': 3.0.1
- '@remirror/react-core': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-utils': 3.0.0(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@17.0.2)
- multishift: 2.0.10(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@17.0.2)
- use-isomorphic-layout-effect: 1.2.0(@types/react@18.3.7)(react@17.0.2)
- use-previous: 1.2.0(@types/react@18.3.7)(react@17.0.2)
- optionalDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - supports-color
-
'@remirror/react-renderer@3.0.2(@remirror/pm@3.0.1)(@types/node@17.0.21)(@types/react@18.3.7)(jsdom@26.1.0)(react@19.2.0)':
dependencies:
'@babel/runtime': 7.27.0
@@ -16878,78 +15440,6 @@ snapshots:
- jsdom
optional: true
- '@remirror/react-renderer@3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react@18.3.7)(jsdom@26.1.0)(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- react: 17.0.2
- optionalDependencies:
- '@types/react': 18.3.7
- transitivePeerDependencies:
- - '@remirror/pm'
- - '@types/node'
- - jsdom
-
- '@remirror/react-ui@1.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(prettier@3.5.3)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@emotion/react': 11.14.0(@types/react@18.3.7)(react@17.0.2)
- '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)
- '@mui/material': 5.17.1(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@mui/system': 5.17.1(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-blockquote': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-bold': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-callout': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-code': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-code-block': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)(prettier@3.5.3)
- '@remirror/extension-columns': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-find': 1.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-font-size': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-heading': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-history': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-horizontal-rule': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-italic': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-list': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-node-formatting': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-strike': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-sub': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-sup': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-tables': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-text-color': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-underline': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-whitespace': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/icons': 3.0.0
- '@remirror/messages': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/pm': 3.0.1
- '@remirror/react-components': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-core': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-hooks': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
- optionalDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- transitivePeerDependencies:
- - '@types/node'
- - jsdom
- - prettier
- - supports-color
-
- '@remirror/react-utils@3.0.0(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core-constants': 3.0.0
- '@remirror/core-helpers': 4.0.0
- '@remirror/core-types': 3.0.0(@remirror/pm@3.0.1)
- react: 17.0.2
- optionalDependencies:
- '@types/react': 18.3.7
- transitivePeerDependencies:
- - '@remirror/pm'
-
'@remirror/react-utils@3.0.0(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@19.2.0)':
dependencies:
'@babel/runtime': 7.27.0
@@ -16958,44 +15448,10 @@ snapshots:
'@remirror/core-types': 3.0.0(@remirror/pm@3.0.1)
react: 19.2.0
optionalDependencies:
- '@types/react': 18.3.7
- transitivePeerDependencies:
- - '@remirror/pm'
- optional: true
-
- '@remirror/react@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/extension-placeholder': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-react-component': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/preset-react': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-components': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-core': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-hooks': 3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)
- '@remirror/react-renderer': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react@18.3.7)(jsdom@26.1.0)(react@17.0.2)
- '@remirror/react-utils': 3.0.0(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@17.0.2)
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
- optionalDependencies:
- '@types/react': 18.3.7
- '@types/react-dom': 18.3.0
- transitivePeerDependencies:
- - '@remirror/pm'
- - '@types/node'
- - jsdom
- - supports-color
-
- '@remirror/styles@3.0.0(@emotion/css@11.13.5)(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@emotion/styled@11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)':
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core-helpers': 4.0.0
- '@types/react': 18.3.7
- optionalDependencies:
- '@emotion/css': 11.13.5
- '@emotion/react': 11.14.0(@types/react@18.3.7)(react@17.0.2)
- '@emotion/styled': 11.14.0(@emotion/react@11.14.0(@types/react@18.3.7)(react@17.0.2))(@types/react@18.3.7)(react@17.0.2)
- react: 17.0.2
+ '@types/react': 18.3.7
+ transitivePeerDependencies:
+ - '@remirror/pm'
+ optional: true
'@remirror/theme@3.0.0(@remirror/pm@3.0.1)':
dependencies:
@@ -17079,7 +15535,8 @@ snapshots:
domhandler: 5.0.3
selderee: 0.11.0
- '@seznam/compose-react-refs@1.0.6': {}
+ '@seznam/compose-react-refs@1.0.6':
+ optional: true
'@shelf/jest-mongodb@5.2.2(@aws-sdk/credential-providers@3.797.0)(jest-environment-node@29.7.0)(mongodb@6.16.0(@aws-sdk/credential-providers@3.797.0)(socks@2.8.4))(socks@2.8.4)':
dependencies:
@@ -17495,6 +15952,221 @@ snapshots:
dependencies:
'@testing-library/dom': 10.4.0
+ '@tiptap/core@3.10.8(@tiptap/pm@3.10.8)':
+ dependencies:
+ '@tiptap/pm': 3.10.8
+
+ '@tiptap/extension-blockquote@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-bold@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-bubble-menu@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)':
+ dependencies:
+ '@floating-ui/dom': 1.6.13
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+
+ '@tiptap/extension-bullet-list@3.10.8(@tiptap/extension-list@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/extension-list': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-code-block-lowlight@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/extension-code-block@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)(highlight.js@11.11.1)(lowlight@2.9.0)':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/extension-code-block': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+ highlight.js: 11.11.1
+ lowlight: 2.9.0
+
+ '@tiptap/extension-code-block@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+
+ '@tiptap/extension-code@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-document@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-dropcursor@3.10.8(@tiptap/extensions@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/extensions': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-floating-menu@3.10.8(@floating-ui/dom@1.6.13)(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)':
+ dependencies:
+ '@floating-ui/dom': 1.6.13
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+ optional: true
+
+ '@tiptap/extension-gapcursor@3.10.8(@tiptap/extensions@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/extensions': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-hard-break@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-heading@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-highlight@3.11.0(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-horizontal-rule@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+
+ '@tiptap/extension-image@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-italic@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-link@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+ linkifyjs: 4.3.2
+
+ '@tiptap/extension-list-item@3.10.8(@tiptap/extension-list@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/extension-list': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-list-keymap@3.10.8(@tiptap/extension-list@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/extension-list': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-list@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+
+ '@tiptap/extension-ordered-list@3.10.8(@tiptap/extension-list@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/extension-list': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-paragraph@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-placeholder@3.10.8(@tiptap/extensions@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/extensions': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-strike@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-table@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+
+ '@tiptap/extension-text@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extension-underline@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+
+ '@tiptap/extensions@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+
+ '@tiptap/pm@3.10.8':
+ dependencies:
+ prosemirror-changeset: 2.3.1
+ prosemirror-collab: 1.3.1
+ prosemirror-commands: 1.7.1
+ prosemirror-dropcursor: 1.8.2
+ prosemirror-gapcursor: 1.3.2
+ prosemirror-history: 1.4.1
+ prosemirror-inputrules: 1.5.0
+ prosemirror-keymap: 1.2.2
+ prosemirror-markdown: 1.13.2
+ prosemirror-menu: 1.2.5
+ prosemirror-model: 1.25.1
+ prosemirror-schema-basic: 1.2.4
+ prosemirror-schema-list: 1.5.1
+ prosemirror-state: 1.4.3
+ prosemirror-tables: 1.7.1
+ prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.1)(prosemirror-state@1.4.3)(prosemirror-view@1.39.2)
+ prosemirror-transform: 1.10.4
+ prosemirror-view: 1.39.2
+
+ '@tiptap/react@3.10.8(@floating-ui/dom@1.6.13)(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)(@types/react-dom@18.3.0)(@types/react@18.3.7)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+ '@types/react': 18.3.7
+ '@types/react-dom': 18.3.0
+ '@types/use-sync-external-store': 0.0.6
+ fast-deep-equal: 3.1.3
+ react: 17.0.2
+ react-dom: 19.2.0(react@17.0.2)
+ use-sync-external-store: 1.5.0(react@17.0.2)
+ optionalDependencies:
+ '@tiptap/extension-bubble-menu': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ '@tiptap/extension-floating-menu': 3.10.8(@floating-ui/dom@1.6.13)(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ transitivePeerDependencies:
+ - '@floating-ui/dom'
+
+ '@tiptap/starter-kit@3.10.8':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/extension-blockquote': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-bold': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-bullet-list': 3.10.8(@tiptap/extension-list@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))
+ '@tiptap/extension-code': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-code-block': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ '@tiptap/extension-document': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-dropcursor': 3.10.8(@tiptap/extensions@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))
+ '@tiptap/extension-gapcursor': 3.10.8(@tiptap/extensions@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))
+ '@tiptap/extension-hard-break': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-heading': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-horizontal-rule': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ '@tiptap/extension-italic': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-link': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ '@tiptap/extension-list': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ '@tiptap/extension-list-item': 3.10.8(@tiptap/extension-list@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))
+ '@tiptap/extension-list-keymap': 3.10.8(@tiptap/extension-list@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))
+ '@tiptap/extension-ordered-list': 3.10.8(@tiptap/extension-list@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8))
+ '@tiptap/extension-paragraph': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-strike': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-text': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extension-underline': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))
+ '@tiptap/extensions': 3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+
+ '@tiptap/static-renderer@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ '@tiptap/static-renderer@3.10.8(@tiptap/core@3.10.8(@tiptap/pm@3.10.8))(@tiptap/pm@3.10.8)(react-dom@19.2.0(react@17.0.2))(react@17.0.2)':
+ dependencies:
+ '@tiptap/core': 3.10.8(@tiptap/pm@3.10.8)
+ '@tiptap/pm': 3.10.8
+ react: 17.0.2
+ react-dom: 19.2.0(react@17.0.2)
+
'@tootallnate/once@2.0.0': {}
'@tsconfig/node10@1.0.11': {}
@@ -17651,12 +16323,21 @@ snapshots:
'@types/json5@0.0.30': {}
+ '@types/linkify-it@5.0.0': {}
+
+ '@types/markdown-it@14.1.2':
+ dependencies:
+ '@types/linkify-it': 5.0.0
+ '@types/mdurl': 2.0.0
+
'@types/marked@4.3.2': {}
'@types/mdast@3.0.15':
dependencies:
'@types/unist': 2.0.11
+ '@types/mdurl@2.0.0': {}
+
'@types/mime@1.3.5': {}
'@types/min-document@2.19.2': {}
@@ -17699,7 +16380,8 @@ snapshots:
'@types/object.pick@1.3.4': {}
- '@types/parse-json@4.0.2': {}
+ '@types/parse-json@4.0.2':
+ optional: true
'@types/parse5@6.0.3': {}
@@ -17719,15 +16401,12 @@ snapshots:
dependencies:
'@types/react': 18.3.7
'@types/reactcss': 1.2.13(@types/react@18.3.7)
+ optional: true
'@types/react-dom@18.3.0':
dependencies:
'@types/react': 18.3.7
- '@types/react-transition-group@4.4.12(@types/react@18.3.7)':
- dependencies:
- '@types/react': 18.3.7
-
'@types/react@18.3.7':
dependencies:
'@types/prop-types': 15.7.14
@@ -17736,6 +16415,7 @@ snapshots:
'@types/reactcss@1.2.13(@types/react@18.3.7)':
dependencies:
'@types/react': 18.3.7
+ optional: true
'@types/refractor@3.4.1':
dependencies:
@@ -17768,6 +16448,8 @@ snapshots:
'@types/unist@3.0.3': {}
+ '@types/use-sync-external-store@0.0.6': {}
+
'@types/webidl-conversions@7.0.3': {}
'@types/whatwg-url@11.0.5':
@@ -18231,6 +16913,7 @@ snapshots:
'@babel/runtime': 7.27.0
'@types/throttle-debounce': 2.1.0
throttle-debounce: 3.0.1
+ optional: true
abab@2.0.6: {}
@@ -18627,6 +17310,7 @@ snapshots:
'@babel/runtime': 7.27.0
cosmiconfig: 7.1.0
resolve: 1.22.10
+ optional: true
babel-plugin-module-resolver@4.1.0:
dependencies:
@@ -18945,16 +17629,6 @@ snapshots:
co@4.6.0: {}
- codemirror@6.0.2:
- dependencies:
- '@codemirror/autocomplete': 6.18.6
- '@codemirror/commands': 6.8.1
- '@codemirror/language': 6.11.0
- '@codemirror/lint': 6.8.5
- '@codemirror/search': 6.5.10
- '@codemirror/state': 6.5.2
- '@codemirror/view': 6.36.6
-
collect-v8-coverage@1.0.2: {}
color-convert@2.0.1:
@@ -19015,7 +17689,8 @@ snapshots:
normalize-path: 3.0.0
readable-stream: 3.6.2
- compute-scroll-into-view@1.0.20: {}
+ compute-scroll-into-view@1.0.20:
+ optional: true
concat-map@0.0.1: {}
@@ -19030,7 +17705,8 @@ snapshots:
content-type@1.0.5: {}
- convert-source-map@1.9.0: {}
+ convert-source-map@1.9.0:
+ optional: true
convert-source-map@2.0.0: {}
@@ -19051,6 +17727,7 @@ snapshots:
parse-json: 5.2.0
path-type: 4.0.0
yaml: 1.10.2
+ optional: true
crc-32@1.2.2: {}
@@ -19059,13 +17736,6 @@ snapshots:
crc-32: 1.2.2
readable-stream: 3.6.2
- create-context-state@2.0.3(@types/react@18.3.7)(react@17.0.2):
- dependencies:
- '@babel/runtime': 7.27.0
- react: 17.0.2
- optionalDependencies:
- '@types/react': 18.3.7
-
create-context-state@2.0.3(@types/react@18.3.7)(react@19.2.0):
dependencies:
'@babel/runtime': 7.27.0
@@ -20139,6 +18809,10 @@ snapshots:
dependencies:
reusify: 1.1.0
+ fault@2.0.1:
+ dependencies:
+ format: 0.2.2
+
fb-watchman@2.0.2:
dependencies:
bser: 2.1.1
@@ -20187,7 +18861,8 @@ snapshots:
make-dir: 3.1.0
pkg-dir: 4.2.0
- find-root@1.1.0: {}
+ find-root@1.1.0:
+ optional: true
find-up@3.0.0:
dependencies:
@@ -20241,6 +18916,8 @@ snapshots:
es-set-tostringtag: 2.1.0
mime-types: 2.1.35
+ format@0.2.2: {}
+
formdata-polyfill@4.0.10:
dependencies:
fetch-blob: 3.2.0
@@ -20540,9 +19217,9 @@ snapshots:
dependencies:
hermes-estree: 0.25.1
- hoist-non-react-statics@3.3.2:
- dependencies:
- react-is: 16.13.1
+ highlight.js@11.11.1: {}
+
+ highlight.js@11.8.0: {}
html-encoding-sniffer@3.0.0:
dependencies:
@@ -21397,8 +20074,6 @@ snapshots:
js-base64@3.7.8: {}
- js-sha256@0.10.1: {}
-
js-stringify@1.0.2: {}
js-tokens@4.0.0: {}
@@ -21573,6 +20248,12 @@ snapshots:
lines-and-columns@1.2.4: {}
+ linkify-it@5.0.0:
+ dependencies:
+ uc.micro: 2.1.0
+
+ linkifyjs@4.3.2: {}
+
lint-staged@15.5.1:
dependencies:
chalk: 5.4.1
@@ -21623,7 +20304,8 @@ snapshots:
dependencies:
p-locate: 5.0.0
- lodash-es@4.17.21: {}
+ lodash-es@4.17.21:
+ optional: true
lodash._baseiteratee@4.7.0:
dependencies:
@@ -21706,12 +20388,22 @@ snapshots:
dependencies:
js-tokens: 4.0.0
+ lowlight@2.9.0:
+ dependencies:
+ '@types/hast': 2.3.10
+ fault: 2.0.1
+ highlight.js: 11.8.0
+
lru-cache@10.4.3: {}
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
+ lucide-react@0.544.0(react@17.0.2):
+ dependencies:
+ react: 17.0.2
+
lucide-react@0.544.0(react@18.3.1):
dependencies:
react: 18.3.1
@@ -21746,12 +20438,19 @@ snapshots:
make-error@1.3.6: {}
- make-plural@6.2.2: {}
-
makeerror@1.0.12:
dependencies:
tmpl: 1.0.5
+ markdown-it@14.1.0:
+ dependencies:
+ argparse: 2.0.1
+ entities: 4.5.0
+ linkify-it: 5.0.0
+ mdurl: 2.0.0
+ punycode.js: 2.3.1
+ uc.micro: 2.1.0
+
markdown-table@3.0.4: {}
marked@15.0.12: {}
@@ -21767,7 +20466,8 @@ snapshots:
dependencies:
escape-string-regexp: 4.0.0
- material-colors@1.2.6: {}
+ material-colors@1.2.6:
+ optional: true
math-intrinsics@1.1.0: {}
@@ -21897,6 +20597,8 @@ snapshots:
dependencies:
'@types/mdast': 3.0.15
+ mdurl@2.0.0: {}
+
media-typer@0.3.0: {}
medialit@0.1.0:
@@ -22277,8 +20979,6 @@ snapshots:
- socks
- supports-color
- moo@0.5.2: {}
-
mpath@0.9.0: {}
mquery@5.0.0:
@@ -22311,22 +21011,6 @@ snapshots:
optionalDependencies:
msgpackr-extract: 3.0.3
- multishift@2.0.10(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@17.0.2):
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core-helpers': 4.0.0
- '@remirror/core-types': 3.0.0(@remirror/pm@3.0.1)
- '@seznam/compose-react-refs': 1.0.6
- a11y-status: 2.0.2
- compute-scroll-into-view: 1.0.20
- react: 17.0.2
- tiny-warning: 1.0.3
- w3c-keyname: 2.2.8
- optionalDependencies:
- '@types/react': 18.3.7
- transitivePeerDependencies:
- - '@remirror/pm'
-
multishift@2.0.10(@remirror/pm@3.0.1)(@types/react@18.3.7)(react@19.2.0):
dependencies:
'@babel/runtime': 7.27.0
@@ -22946,6 +21630,10 @@ snapshots:
property-information@6.5.0: {}
+ prosemirror-changeset@2.3.1:
+ dependencies:
+ prosemirror-transform: 1.10.4
+
prosemirror-collab@1.3.1:
dependencies:
prosemirror-state: 1.4.3
@@ -22986,6 +21674,19 @@ snapshots:
prosemirror-state: 1.4.3
w3c-keyname: 2.2.8
+ prosemirror-markdown@1.13.2:
+ dependencies:
+ '@types/markdown-it': 14.1.2
+ markdown-it: 14.1.0
+ prosemirror-model: 1.25.1
+
+ prosemirror-menu@1.2.5:
+ dependencies:
+ crelt: 1.0.6
+ prosemirror-commands: 1.7.1
+ prosemirror-history: 1.4.1
+ prosemirror-state: 1.4.3
+
prosemirror-model@1.25.1:
dependencies:
orderedmap: 2.1.1
@@ -23012,17 +21713,9 @@ snapshots:
- '@types/node'
- jsdom
- prosemirror-resizable-view@3.0.0(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0):
+ prosemirror-schema-basic@1.2.4:
dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core-helpers': 4.0.0
- '@remirror/core-utils': 3.0.0(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
prosemirror-model: 1.25.1
- prosemirror-view: 1.39.2
- transitivePeerDependencies:
- - '@remirror/pm'
- - '@types/node'
- - jsdom
prosemirror-schema-list@1.5.1:
dependencies:
@@ -23151,6 +21844,8 @@ snapshots:
pug-runtime: 3.0.1
pug-strip-comments: 2.0.0
+ punycode.js@2.3.1: {}
+
punycode@2.3.1: {}
pure-rand@6.1.0: {}
@@ -23191,17 +21886,6 @@ snapshots:
chart.js: 4.4.9
react: 19.2.0
- react-color@2.19.3(react@17.0.2):
- dependencies:
- '@icons/material': 0.2.4(react@17.0.2)
- lodash: 4.17.21
- lodash-es: 4.17.21
- material-colors: 1.2.6
- prop-types: 15.8.1
- react: 17.0.2
- reactcss: 1.2.3(react@17.0.2)
- tinycolor2: 1.6.0
-
react-color@2.19.3(react@19.2.0):
dependencies:
'@icons/material': 0.2.4(react@19.2.0)
@@ -23247,8 +21931,6 @@ snapshots:
react-is@18.3.1: {}
- react-is@19.1.0: {}
-
react-remove-scroll-bar@2.3.8(@types/react@18.3.7)(react@18.3.1):
dependencies:
react: 18.3.1
@@ -23311,15 +21993,6 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.7
- react-transition-group@4.4.5(react-dom@19.2.0(react@17.0.2))(react@17.0.2):
- dependencies:
- '@babel/runtime': 7.27.0
- dom-helpers: 5.2.1
- loose-envify: 1.4.0
- prop-types: 15.8.1
- react: 17.0.2
- react-dom: 19.2.0(react@17.0.2)
-
react-transition-group@4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
'@babel/runtime': 7.27.0
@@ -23340,11 +22013,6 @@ snapshots:
react@19.2.0: {}
- reactcss@1.2.3(react@17.0.2):
- dependencies:
- lodash: 4.17.21
- react: 17.0.2
-
reactcss@1.2.3(react@19.2.0):
dependencies:
lodash: 4.17.21
@@ -23590,79 +22258,6 @@ snapshots:
- jsdom
- supports-color
- remirror@3.0.3(@remirror/extension-react-tables@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2))(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)(prettier@3.5.3):
- dependencies:
- '@babel/runtime': 7.27.0
- '@remirror/core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/core-constants': 3.0.0
- '@remirror/core-helpers': 4.0.0
- '@remirror/core-types': 3.0.0(@remirror/pm@3.0.1)
- '@remirror/core-utils': 3.0.0(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/dom': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-annotation': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-bidi': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-blockquote': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-bold': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-callout': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-code': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-code-block': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)(prettier@3.5.3)
- '@remirror/extension-collaboration': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-columns': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-diff': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-doc': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-drop-cursor': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-embed': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-emoji': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-entity-reference': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-epic-mode': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-events': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-find': 1.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-font-family': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-font-size': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-gap-cursor': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-hard-break': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-heading': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-history': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-horizontal-rule': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-image': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-italic': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-link': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-list': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-markdown': 3.0.3(@remirror/extension-react-tables@3.0.3(@remirror/pm@3.0.1)(@types/node@18.19.87)(@types/react-dom@18.3.0)(@types/react@18.3.7)(jsdom@26.1.0)(react-dom@19.2.0(react@17.0.2))(react@17.0.2))(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-mention': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-mention-atom': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-node-formatting': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-paragraph': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-placeholder': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-positioner': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-shortcuts': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-strike': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-sub': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-sup': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-tables': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-text': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-text-case': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-text-color': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-text-highlight': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-trailing-node': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-underline': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/extension-whitespace': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/icons': 3.0.0
- '@remirror/pm': 3.0.1
- '@remirror/preset-core': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/preset-formatting': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)
- '@remirror/preset-wysiwyg': 3.0.2(@remirror/pm@3.0.1)(@types/node@18.19.87)(jsdom@26.1.0)(prettier@3.5.3)
- '@remirror/theme': 3.0.0(@remirror/pm@3.0.1)
- '@types/refractor': 3.4.1
- refractor: 3.6.0
- optionalDependencies:
- prettier: 3.5.3
- transitivePeerDependencies:
- - '@remirror/extension-react-tables'
- - '@types/node'
- - jsdom
- - supports-color
-
remove-accents@0.5.0: {}
require-directory@2.1.1: {}
@@ -23671,7 +22266,8 @@ snapshots:
reselect@4.1.8: {}
- resize-observer-polyfill@1.5.1: {}
+ resize-observer-polyfill@1.5.1:
+ optional: true
resolve-cwd@3.0.0:
dependencies:
@@ -24119,7 +22715,8 @@ snapshots:
buffer-from: 1.1.2
source-map: 0.6.1
- source-map@0.5.7: {}
+ source-map@0.5.7:
+ optional: true
source-map@0.6.1: {}
@@ -24294,8 +22891,6 @@ snapshots:
strnum@1.1.2:
optional: true
- style-mod@4.1.2: {}
-
styled-jsx@5.1.6(@babel/core@7.26.10)(babel-plugin-macros@3.1.0)(react@18.3.1):
dependencies:
client-only: 0.0.1
@@ -24312,7 +22907,8 @@ snapshots:
'@babel/core': 7.26.10
babel-plugin-macros: 3.1.0
- stylis@4.2.0: {}
+ stylis@4.2.0:
+ optional: true
sucrase@3.35.0:
dependencies:
@@ -24364,7 +22960,8 @@ snapshots:
'@pkgr/core': 0.1.2
tslib: 2.8.1
- tabbable@6.2.0: {}
+ tabbable@6.2.0:
+ optional: true
tailwind-merge@2.6.0: {}
@@ -24513,7 +23110,8 @@ snapshots:
tiny-warning@1.0.3: {}
- tinycolor2@1.6.0: {}
+ tinycolor2@1.6.0:
+ optional: true
tinyglobby@0.2.13:
dependencies:
@@ -24907,6 +23505,8 @@ snapshots:
typescript@5.9.3: {}
+ uc.micro@2.1.0: {}
+
uglify-js@3.19.3:
optional: true
@@ -25001,8 +23601,6 @@ snapshots:
unpipe@1.0.0: {}
- unraw@3.0.0: {}
-
unrs-resolver@1.7.0:
dependencies:
napi-postinstall: 0.1.6
@@ -25054,12 +23652,6 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.7
- use-isomorphic-layout-effect@1.2.0(@types/react@18.3.7)(react@17.0.2):
- dependencies:
- react: 17.0.2
- optionalDependencies:
- '@types/react': 18.3.7
-
use-isomorphic-layout-effect@1.2.0(@types/react@18.3.7)(react@19.2.0):
dependencies:
react: 19.2.0
@@ -25067,13 +23659,6 @@ snapshots:
'@types/react': 18.3.7
optional: true
- use-previous@1.2.0(@types/react@18.3.7)(react@17.0.2):
- dependencies:
- react: 17.0.2
- use-isomorphic-layout-effect: 1.2.0(@types/react@18.3.7)(react@17.0.2)
- transitivePeerDependencies:
- - '@types/react'
-
use-previous@1.2.0(@types/react@18.3.7)(react@19.2.0):
dependencies:
react: 19.2.0
@@ -25098,6 +23683,10 @@ snapshots:
optionalDependencies:
'@types/react': 18.3.7
+ use-sync-external-store@1.5.0(react@17.0.2):
+ dependencies:
+ react: 17.0.2
+
use-sync-external-store@1.5.0(react@18.3.1):
dependencies:
react: 18.3.1