From 4ed09a3feb37f283c4bf4927c1ece95fccde715f Mon Sep 17 00:00:00 2001 From: "Abdullah." <125115953+mabdullahabaid@users.noreply.github.com> Date: Fri, 27 Feb 2026 13:16:49 +0500 Subject: [PATCH] Upgrade blocknote dependencies from 0.31.1 to 0.47.0. (#18207) This PR pgrades all BlockNote packages (@blocknote/core, @blocknote/react, @blocknote/mantine, @blocknote/server-util, @blocknote/xl-docx-exporter, @blocknote/xl-pdf-exporter) to 0.47.0 and adapts the codebase to the new API. ### Changes - Dependency upgrades: Bumped all BlockNote packages to 0.47.0, added required Mantine v8 peer dependencies, removed unnecessary prosemirror resolutions - Formatting toolbar: Replaced the manual reimplementation of FormattingToolbarController (which handled visibility, positioning, portal rendering, text-alignment-based placement, and a dangerouslySetInnerHTML transition trick) with BlockNote's built-in FormattingToolbarController. The toolbar buttons themselves are unchanged. - Side menu: Replaced manual drag handle menu positioning and rendering (DashboardBlockDragHandleMenu, DashboardBlockColorPicker, and their floating configs) with BlockNote's built-in SideMenuController, DragHandleButton, and DragHandleMenu components. Deleted 4 files that became dead code. - Extension API migration: Replaced deprecated editor.suggestionMenus and editor.formattingToolbar APIs with the new extension system (SuggestionMenu, useExtensionState, editor.getExtension()) - Slash menu fixes: Filtered out BlockNote's new default "File" item (added in 0.47) to avoid duplicates with our custom one; added icon mappings for new block types (Toggle List, Divider, Toggle Headings, Headings 4-6) - Server-side: Switched @blocknote/server-util to dynamic import() to handle ESM-only transitive dependencies in CJS context --- package.json | 2 - packages/twenty-front/package.json | 12 +- .../utils/exportBlockNoteEditorToDocx.ts | 12 +- .../blocknote-editor/blocks/FileBlock.tsx | 4 +- .../modules/blocknote-editor/blocks/Schema.ts | 2 +- .../components/BlockEditor.tsx | 2 +- .../BlockEditorDropdownFocusEffect.tsx | 46 +- .../components/CustomAddBlockItem.tsx | 30 +- .../components/CustomSideMenu.tsx | 19 +- .../components/CustomSlashMenu.tsx | 2 +- .../blocknote-editor/utils/getSlashMenu.ts | 25 +- .../components/DashboardBlockColorPicker.tsx | 99 -- .../DashboardBlockDragHandleMenu.tsx | 174 --- .../components/DashboardEditorSideMenu.tsx | 206 ++- .../components/DashboardFormattingToolbar.tsx | 207 +-- .../DashboardFormattingToolbarColorButton.tsx | 23 +- .../components/DashboardsBlockEditor.tsx | 9 +- .../StandaloneRichTextEditorContent.tsx | 16 +- .../constants/ColorPickerFloatingConfig.ts | 4 - .../constants/DragHandleMenuFloatingConfig.ts | 3 - .../utils/getDashboardSlashMenu.ts | 9 + packages/twenty-server/package.json | 2 +- .../utils/transform-rich-text-v2.util.ts | 23 +- .../display/icon/components/TablerIcons.ts | 3 + packages/twenty-ui/src/display/index.ts | 3 + yarn.lock | 1134 +++++++++-------- 26 files changed, 851 insertions(+), 1220 deletions(-) delete mode 100644 packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardBlockColorPicker.tsx delete mode 100644 packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardBlockDragHandleMenu.tsx delete mode 100644 packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/constants/ColorPickerFloatingConfig.ts delete mode 100644 packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/constants/DragHandleMenuFloatingConfig.ts diff --git a/package.json b/package.json index 4727fba7f1..5ddf6436a9 100644 --- a/package.json +++ b/package.json @@ -201,8 +201,6 @@ "type-fest": "4.10.1", "typescript": "5.9.2", "graphql-redis-subscriptions/ioredis": "^5.6.0", - "prosemirror-view": "1.40.0", - "prosemirror-transform": "1.10.4", "@lingui/core": "5.1.2", "@types/qs": "6.9.16" }, diff --git a/packages/twenty-front/package.json b/packages/twenty-front/package.json index d5d786d87a..72bfa6293d 100644 --- a/packages/twenty-front/package.json +++ b/packages/twenty-front/package.json @@ -31,10 +31,10 @@ "dependencies": { "@ai-sdk/react": "3.0.99", "@apollo/client": "^3.7.17", - "@blocknote/mantine": "^0.31.1", - "@blocknote/react": "^0.31.1", - "@blocknote/xl-docx-exporter": "^0.31.1", - "@blocknote/xl-pdf-exporter": "^0.31.1", + "@blocknote/mantine": "0.47.0", + "@blocknote/react": "0.47.0", + "@blocknote/xl-docx-exporter": "0.47.0", + "@blocknote/xl-pdf-exporter": "0.47.0", "@calcom/embed-react": "^1.5.3", "@cyntler/react-doc-viewer": "^1.17.0", "@dagrejs/dagre": "^1.1.2", @@ -46,6 +46,9 @@ "@lingui/core": "^5.1.2", "@lingui/detect-locale": "^5.2.0", "@lingui/react": "^5.1.2", + "@mantine/core": "^8.3.11", + "@mantine/hooks": "^8.3.11", + "@mantine/utils": "^6.0.22", "@monaco-editor/react": "^4.7.0", "@nivo/core": "^0.99.0", "@nivo/line": "^0.99.0", @@ -78,7 +81,6 @@ "buffer": "^6.0.3", "cron-parser": "5.1.1", "date-fns": "^2.30.0", - "docx": "^9.1.0", "file-saver": "^2.0.5", "graphiql": "^3.1.1", "graphql": "16.8.1", diff --git a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/utils/exportBlockNoteEditorToDocx.ts b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/utils/exportBlockNoteEditorToDocx.ts index f41776280b..2b2308c04c 100644 --- a/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/utils/exportBlockNoteEditorToDocx.ts +++ b/packages/twenty-front/src/modules/action-menu/actions/record-actions/single-record/utils/exportBlockNoteEditorToDocx.ts @@ -1,26 +1,16 @@ import { type BlockNoteEditor } from '@blocknote/core'; - import { docxDefaultSchemaMappings, DOCXExporter, } from '@blocknote/xl-docx-exporter'; -import { Buffer } from 'buffer'; -import { Packer } from 'docx'; import { saveAs } from 'file-saver'; export const exportBlockNoteEditorToDocx = async ( editor: BlockNoteEditor, filename: string, ) => { - // Polyfill needed for exportBlockNoteEditorToDocX - if (typeof window !== 'undefined') { - window.Buffer = Buffer; - } - const exporter = new DOCXExporter(editor.schema, docxDefaultSchemaMappings); - const docxDocument = await exporter.toDocxJsDocument(editor.document); - - const blob = await Packer.toBlob(docxDocument); + const blob = await exporter.toBlob(editor.document); saveAs(blob, `${filename}.docx`); }; diff --git a/packages/twenty-front/src/modules/blocknote-editor/blocks/FileBlock.tsx b/packages/twenty-front/src/modules/blocknote-editor/blocks/FileBlock.tsx index 0a5a3e1437..a2c93dbe4a 100644 --- a/packages/twenty-front/src/modules/blocknote-editor/blocks/FileBlock.tsx +++ b/packages/twenty-front/src/modules/blocknote-editor/blocks/FileBlock.tsx @@ -42,10 +42,10 @@ export const FileBlock = createReactBlockSpec( type: 'file', propSchema: { url: { - default: '' as string, + default: '', }, name: { - default: '' as string, + default: '', }, fileCategory: { default: 'OTHER' as AttachmentFileCategory, diff --git a/packages/twenty-front/src/modules/blocknote-editor/blocks/Schema.ts b/packages/twenty-front/src/modules/blocknote-editor/blocks/Schema.ts index 3868774960..dd8c322894 100644 --- a/packages/twenty-front/src/modules/blocknote-editor/blocks/Schema.ts +++ b/packages/twenty-front/src/modules/blocknote-editor/blocks/Schema.ts @@ -10,7 +10,7 @@ import { MentionInlineContent } from '@/blocknote-editor/blocks/MentionInlineCon export const BLOCK_SCHEMA = BlockNoteSchema.create({ blockSpecs: { ...defaultBlockSpecs, - file: FileBlock, + file: FileBlock(), }, inlineContentSpecs: { ...defaultInlineContentSpecs, diff --git a/packages/twenty-front/src/modules/blocknote-editor/components/BlockEditor.tsx b/packages/twenty-front/src/modules/blocknote-editor/components/BlockEditor.tsx index a836b162c0..ebab4264f7 100644 --- a/packages/twenty-front/src/modules/blocknote-editor/components/BlockEditor.tsx +++ b/packages/twenty-front/src/modules/blocknote-editor/components/BlockEditor.tsx @@ -1,4 +1,4 @@ -import { filterSuggestionItems } from '@blocknote/core'; +import { filterSuggestionItems } from '@blocknote/core/extensions'; import { BlockNoteView } from '@blocknote/mantine'; import { SuggestionMenuController } from '@blocknote/react'; import { useTheme } from '@emotion/react'; diff --git a/packages/twenty-front/src/modules/blocknote-editor/components/BlockEditorDropdownFocusEffect.tsx b/packages/twenty-front/src/modules/blocknote-editor/components/BlockEditorDropdownFocusEffect.tsx index b301171045..05e15020c0 100644 --- a/packages/twenty-front/src/modules/blocknote-editor/components/BlockEditorDropdownFocusEffect.tsx +++ b/packages/twenty-front/src/modules/blocknote-editor/components/BlockEditorDropdownFocusEffect.tsx @@ -1,18 +1,16 @@ -import { type BLOCK_SCHEMA } from '@/blocknote-editor/blocks/Schema'; +import { SuggestionMenu } from '@blocknote/core/extensions'; +import { useExtensionState } from '@blocknote/react'; +import { useStore } from 'jotai'; +import { useCallback, useState } from 'react'; + import { isSlashMenuOpenComponentState } from '@/blocknote-editor/states/isSlashMenuOpenComponentState'; import { useGoBackToPreviousDropdownFocusId } from '@/ui/layout/dropdown/hooks/useGoBackToPreviousDropdownFocusId'; import { useSetActiveDropdownFocusIdAndMemorizePrevious } from '@/ui/layout/dropdown/hooks/useSetFocusedDropdownIdAndMemorizePrevious'; import { useAtomComponentStateCallbackState } from '@/ui/utilities/state/jotai/hooks/useAtomComponentStateCallbackState'; -import { useStore } from 'jotai'; -import { useCallback } from 'react'; -export type BlockEditorDropdownFocusEffectProps = { - editor: typeof BLOCK_SCHEMA.BlockNoteEditor; -}; +export const BlockEditorDropdownFocusEffect = () => { + const [prevShowing, setPrevShowing] = useState(null); -export const BlockEditorDropdownFocusEffect = ({ - editor, -}: BlockEditorDropdownFocusEffectProps) => { const isSlashMenuOpenState = useAtomComponentStateCallbackState( isSlashMenuOpenComponentState, ); @@ -25,30 +23,21 @@ export const BlockEditorDropdownFocusEffect = ({ const store = useStore(); - const updateCallBack = useCallback( - (event: any) => { - const eventWantsToOpen = event.show === true; + const suggestionState = useExtensionState(SuggestionMenu); + const isSlashMenuShowing = + suggestionState?.show === true && suggestionState?.triggerCharacter === '/'; + + const syncSlashMenuState = useCallback( + (showing: boolean) => { const isAlreadyOpen = store.get(isSlashMenuOpenState); - const shouldOpen = eventWantsToOpen && !isAlreadyOpen; - - if (shouldOpen) { + if (showing && isAlreadyOpen !== true) { setActiveDropdownFocusIdAndMemorizePrevious('custom-slash-menu'); store.set(isSlashMenuOpenState, true); - return; - } - - const eventWantsToClose = event.show === false; - - const isAlreadyClosed = !isAlreadyOpen; - - const shouldClose = eventWantsToClose && !isAlreadyClosed; - - if (shouldClose) { + } else if (!showing && isAlreadyOpen === true) { goBackToPreviousDropdownFocusId(); store.set(isSlashMenuOpenState, false); - return; } }, [ @@ -59,7 +48,10 @@ export const BlockEditorDropdownFocusEffect = ({ ], ); - editor.suggestionMenus.on('update /', updateCallBack); + if (prevShowing !== isSlashMenuShowing) { + setPrevShowing(isSlashMenuShowing); + syncSlashMenuState(isSlashMenuShowing); + } return <>; }; diff --git a/packages/twenty-front/src/modules/blocknote-editor/components/CustomAddBlockItem.tsx b/packages/twenty-front/src/modules/blocknote-editor/components/CustomAddBlockItem.tsx index 9b35ee64e9..f47783ee19 100644 --- a/packages/twenty-front/src/modules/blocknote-editor/components/CustomAddBlockItem.tsx +++ b/packages/twenty-front/src/modules/blocknote-editor/components/CustomAddBlockItem.tsx @@ -1,42 +1,36 @@ import { type BLOCK_SCHEMA } from '@/blocknote-editor/blocks/Schema'; - -import { useComponentsContext } from '@blocknote/react'; +import { SuggestionMenu } from '@blocknote/core/extensions'; +import { useBlockNoteEditor, useComponentsContext } from '@blocknote/react'; type CustomAddBlockItemProps = { editor: typeof BLOCK_SCHEMA.BlockNoteEditor; - children: React.ReactNode; // Adding the children prop + children: React.ReactNode; }; -type ContentItem = { - type: string; - text: string; - styles: any; -}; export const CustomAddBlockItem = ({ editor, children, }: CustomAddBlockItemProps) => { const Components = useComponentsContext(); + const blockNoteEditor = useBlockNoteEditor(); if (!Components) { return null; } const handleClick = () => { - const blockIdentifier = editor.getTextCursorPosition().block; - const currentBlockContent = blockIdentifier?.content as - | Array - | undefined; + const currentBlock = blockNoteEditor.getTextCursorPosition().block; + const blockContent = currentBlock?.content; - const [firstElement] = currentBlockContent || []; + const isEmpty = Array.isArray(blockContent) && blockContent.length === 0; - if (firstElement === undefined) { - editor.openSuggestionMenu('/'); - } else { - editor.openSuggestionMenu('/'); - editor.sideMenu.unfreezeMenu(); + if (isEmpty) { + editor.setTextCursorPosition(currentBlock); } + + blockNoteEditor.getExtension(SuggestionMenu)?.openSuggestionMenu('/'); }; + return ( {children} diff --git a/packages/twenty-front/src/modules/blocknote-editor/components/CustomSideMenu.tsx b/packages/twenty-front/src/modules/blocknote-editor/components/CustomSideMenu.tsx index 385af83ee4..9b5bee249b 100644 --- a/packages/twenty-front/src/modules/blocknote-editor/components/CustomSideMenu.tsx +++ b/packages/twenty-front/src/modules/blocknote-editor/components/CustomSideMenu.tsx @@ -25,15 +25,11 @@ export const CustomSideMenu = ({ editor }: CustomSideMenuProps) => { const { t } = useLingui(); return ( ( - // eslint-disable-next-line react/jsx-props-no-spreading - + sideMenu={() => ( + ( - // eslint-disable-next-line react/jsx-props-no-spreading - + dragHandleMenu={() => ( + { Variant="normal" /> - {/* eslint-disable-next-line react/jsx-props-no-spreading */} - + - {/* eslint-disable-next-line react/jsx-props-no-spreading */} - - {' '} + { if (!placement.startsWith('top')) return 0; diff --git a/packages/twenty-front/src/modules/blocknote-editor/utils/getSlashMenu.ts b/packages/twenty-front/src/modules/blocknote-editor/utils/getSlashMenu.ts index aa0dd04312..f8a5194443 100644 --- a/packages/twenty-front/src/modules/blocknote-editor/utils/getSlashMenu.ts +++ b/packages/twenty-front/src/modules/blocknote-editor/utils/getSlashMenu.ts @@ -1,6 +1,6 @@ import { getDefaultReactSlashMenuItems } from '@blocknote/react'; -import { type SuggestionItem } from '@/blocknote-editor/components/CustomSlashMenu'; +import { type SuggestionItem } from '@/blocknote-editor/types/types'; import { type BLOCK_SCHEMA } from '@/blocknote-editor/blocks/Schema'; import { @@ -11,10 +11,15 @@ import { IconH1, IconH2, IconH3, + IconH4, + IconH5, + IconH6, IconHeadphones, IconList, IconListCheck, + IconListDetails, IconListNumbers, + IconMinus, IconMoodSmile, IconPhoto, IconPilcrow, @@ -26,6 +31,14 @@ const Icons: Record = { 'Heading 1': IconH1, 'Heading 2': IconH2, 'Heading 3': IconH3, + 'Heading 4': IconH4, + 'Heading 5': IconH5, + 'Heading 6': IconH6, + 'Toggle Heading 1': IconH1, + 'Toggle Heading 2': IconH2, + 'Toggle Heading 3': IconH3, + 'Toggle List': IconListDetails, + Divider: IconMinus, Quote: IconBlockquote, 'Numbered List': IconListNumbers, 'Bullet List': IconList, @@ -41,10 +54,12 @@ const Icons: Record = { export const getSlashMenu = (editor: typeof BLOCK_SCHEMA.BlockNoteEditor) => { const items: SuggestionItem[] = [ - ...getDefaultReactSlashMenuItems(editor).map((x) => ({ - ...x, - Icon: Icons[x.title], - })), + ...getDefaultReactSlashMenuItems(editor) + .filter((item) => item.title !== 'File') + .map((x) => ({ + ...x, + Icon: Icons[x.title], + })), { title: 'File', aliases: ['file', 'folder'], diff --git a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardBlockColorPicker.tsx b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardBlockColorPicker.tsx deleted file mode 100644 index 793957ba7e..0000000000 --- a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardBlockColorPicker.tsx +++ /dev/null @@ -1,99 +0,0 @@ -import { type Block } from '@blocknote/core'; -import { - autoUpdate, - flip, - offset, - shift, - useFloating, -} from '@floating-ui/react'; -import { useRef } from 'react'; -import { createPortal } from 'react-dom'; - -import { DashboardColorSelectionMenu } from '@/page-layout/widgets/standalone-rich-text/components/DashboardColorSelectionMenu'; -import { COLOR_PICKER_FLOATING_CONFIG } from '@/page-layout/widgets/standalone-rich-text/constants/ColorPickerFloatingConfig'; -import { type BlockNoteColor } from '@/page-layout/widgets/standalone-rich-text/types/BlockNoteColor'; -import { extractColorFromProps } from '@/page-layout/widgets/standalone-rich-text/utils/extractColorFromProps'; -import { OverlayContainer } from '@/ui/layout/overlay/components/OverlayContainer'; -import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; - -type DashboardBlockColorPickerProps = { - block: Block; - anchorElement: HTMLElement | null; - onClose: () => void; - onColorSelect: ( - textColor: BlockNoteColor | undefined, - backgroundColor: string | undefined, - ) => void; -}; - -const COLOR_PICKER_CLICK_OUTSIDE_ID = 'color-picker-click-outside'; - -export const DashboardBlockColorPicker = ({ - block, - anchorElement, - onClose, - onColorSelect, -}: DashboardBlockColorPickerProps) => { - const menuRef = useRef(null); - - const currentTextColor = extractColorFromProps(block.props, 'text'); - const currentBackgroundColor = extractColorFromProps( - block.props, - 'background', - ); - - const { refs, floatingStyles } = useFloating({ - placement: 'right-start', - whileElementsMounted: autoUpdate, - elements: { - reference: anchorElement, - }, - middleware: [ - offset(COLOR_PICKER_FLOATING_CONFIG.offsetFromMenuItem), - flip(), - shift({ - padding: COLOR_PICKER_FLOATING_CONFIG.boundaryPadding, - }), - ], - }); - - useListenClickOutside({ - refs: [menuRef], - excludedClickOutsideIds: [COLOR_PICKER_CLICK_OUTSIDE_ID], - callback: onClose, - listenerId: 'dashboard-block-color-picker', - }); - - const handleTextColorSelect = (color: BlockNoteColor) => { - onColorSelect(color, undefined); - }; - - const handleBackgroundColorSelect = (color: BlockNoteColor) => { - onColorSelect(undefined, color); - }; - - return ( - <> - {createPortal( - { - refs.setFloating(node); - (menuRef as React.MutableRefObject).current = - node; - }} - style={floatingStyles} - className="bn-ui-container" - data-click-outside-id={COLOR_PICKER_CLICK_OUTSIDE_ID} - > - - , - document.body, - )} - - ); -}; diff --git a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardBlockDragHandleMenu.tsx b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardBlockDragHandleMenu.tsx deleted file mode 100644 index d2d6f822b6..0000000000 --- a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardBlockDragHandleMenu.tsx +++ /dev/null @@ -1,174 +0,0 @@ -import { type Block } from '@blocknote/core'; -import styled from '@emotion/styled'; -import { - autoUpdate, - flip, - offset, - shift, - useFloating, -} from '@floating-ui/react'; -import { useLingui } from '@lingui/react/macro'; -import { useRef, useState } from 'react'; -import { createPortal } from 'react-dom'; -import { IconColorSwatch, IconPlus, IconTrash } from 'twenty-ui/display'; -import { MenuItem } from 'twenty-ui/navigation'; - -import { DashboardBlockColorPicker } from '@/page-layout/widgets/standalone-rich-text/components/DashboardBlockColorPicker'; -import { type DASHBOARD_BLOCK_SCHEMA } from '@/page-layout/widgets/standalone-rich-text/constants/DashboardBlockSchema'; -import { DRAG_HANDLE_MENU_FLOATING_CONFIG } from '@/page-layout/widgets/standalone-rich-text/constants/DragHandleMenuFloatingConfig'; -import { DropdownContent } from '@/ui/layout/dropdown/components/DropdownContent'; -import { DropdownMenuItemsContainer } from '@/ui/layout/dropdown/components/DropdownMenuItemsContainer'; -import { OverlayContainer } from '@/ui/layout/overlay/components/OverlayContainer'; -import { useListenClickOutside } from '@/ui/utilities/pointer-event/hooks/useListenClickOutside'; -import { isDefined } from 'twenty-shared/utils'; - -type DashboardBlockDragHandleMenuProps = { - editor: typeof DASHBOARD_BLOCK_SCHEMA.BlockNoteEditor; - block: Block; - anchorElement: HTMLElement | null; - boundaryElement?: HTMLElement | null; - onClose: () => void; -}; - -const DRAG_HANDLE_MENU_CLICK_OUTSIDE_ID = 'drag-handle-menu-click-outside'; - -const StyledColorMenuItem = styled.div` - position: relative; -`; - -export const DashboardBlockDragHandleMenu = ({ - editor, - block, - anchorElement, - boundaryElement, - onClose, -}: DashboardBlockDragHandleMenuProps) => { - const { t } = useLingui(); - const menuRef = useRef(null); - const [showColorPicker, setShowColorPicker] = useState(false); - const [colorMenuItemElement, setColorMenuItemElement] = - useState(null); - - const { refs, floatingStyles } = useFloating({ - placement: 'right-start', - whileElementsMounted: autoUpdate, - elements: { - reference: anchorElement, - }, - middleware: [ - offset(DRAG_HANDLE_MENU_FLOATING_CONFIG.offsetFromAnchor), - flip({ - boundary: boundaryElement ?? undefined, - }), - shift({ - boundary: boundaryElement ?? undefined, - }), - ], - }); - - useListenClickOutside({ - refs: [menuRef], - excludedClickOutsideIds: [DRAG_HANDLE_MENU_CLICK_OUTSIDE_ID], - callback: () => { - if (!showColorPicker) { - onClose(); - } - }, - listenerId: 'portaled-drag-handle-menu', - }); - - const handleAddBlock = () => { - const insertedBlocks = editor.insertBlocks( - [{ type: 'paragraph' }], - block, - 'after', - ); - - const insertedBlock = insertedBlocks[0]; - if (isDefined(insertedBlock)) { - editor.setTextCursorPosition(insertedBlock); - } - - editor.openSuggestionMenu('/'); - onClose(); - }; - - const handleDelete = () => { - editor.removeBlocks([block]); - onClose(); - }; - - const handleColorClick = () => { - setShowColorPicker(true); - }; - - const handleColorPickerClose = () => { - setShowColorPicker(false); - }; - - const handleColorSelect = ( - textColor: string | undefined, - backgroundColor: string | undefined, - ) => { - editor.updateBlock(block, { - props: { - ...(isDefined(textColor) && { textColor }), - ...(isDefined(backgroundColor) && { backgroundColor }), - }, - }); - setShowColorPicker(false); - onClose(); - }; - - return ( - <> - {createPortal( - { - refs.setFloating(node); - (menuRef as React.MutableRefObject).current = - node; - }} - style={floatingStyles} - className="bn-ui-container" - data-click-outside-id={DRAG_HANDLE_MENU_CLICK_OUTSIDE_ID} - > - - - - - - - - - - , - document.body, - )} - - {showColorPicker && isDefined(colorMenuItemElement) && ( - - )} - - ); -}; diff --git a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx index d5ef423bf6..617b4186a4 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardEditorSideMenu.tsx @@ -1,153 +1,107 @@ -import { useBlockNoteEditor, useUIPluginState } from '@blocknote/react'; -import { useTheme } from '@emotion/react'; +import { SuggestionMenu } from '@blocknote/core/extensions'; +import { + BlockColorsItem, + DragHandleButton, + DragHandleMenu, + RemoveBlockItem, + SideMenu, + SideMenuController, + useBlockNoteEditor, + useComponentsContext, +} from '@blocknote/react'; import styled from '@emotion/styled'; -import { autoUpdate, useFloating } from '@floating-ui/react'; -import { useState } from 'react'; -import { createPortal } from 'react-dom'; -import { IconGripVertical } from 'twenty-ui/display'; - -import { DashboardBlockDragHandleMenu } from '@/page-layout/widgets/standalone-rich-text/components/DashboardBlockDragHandleMenu'; -import { type DASHBOARD_BLOCK_SCHEMA } from '@/page-layout/widgets/standalone-rich-text/constants/DashboardBlockSchema'; -import { RootStackingContextZIndices } from '@/ui/layout/constants/RootStackingContextZIndices'; +import { useLingui } from '@lingui/react/macro'; +import { IconColorSwatch, IconPlus, IconTrash } from 'twenty-ui/display'; import { isDefined } from 'twenty-shared/utils'; +import { CustomSideMenuOptions } from '@/blocknote-editor/components/CustomSideMenuOptions'; +import { type DASHBOARD_BLOCK_SCHEMA } from '@/page-layout/widgets/standalone-rich-text/constants/DashboardBlockSchema'; + type DashboardEditorSideMenuProps = { editor: typeof DASHBOARD_BLOCK_SCHEMA.BlockNoteEditor; - boundaryElement?: HTMLElement | null; }; -const StyledSideMenuContainer = styled.div` - display: flex; - z-index: ${RootStackingContextZIndices.DropdownPortalBelowModal}; -`; - -const StyledDragHandleContainerWrapper = styled.div` - width: 20px; - height: 100%; - display: flex; - justify-content: center; - align-items: center; -`; - -const StyledDragHandleContainer = styled.div` - align-items: center; - cursor: grab; - display: flex; - height: 24px; - justify-content: center; - width: 18px; - - border-radius: ${({ theme }) => theme.border.radius.sm}; - color: ${({ theme }) => theme.font.color.light}; - - &:hover { - background: ${({ theme }) => theme.background.transparent.secondary}; - backdrop-filter: ${({ theme }) => theme.blur.medium}; - color: ${({ theme }) => theme.font.color.primary}; - box-shadow: ${({ theme }) => theme.boxShadow.light}, - ${({ theme }) => theme.boxShadow.strong}; - } - - &:active { - cursor: grabbing; - } -`; - const StyledDivToCreateGap = styled.div` width: ${({ theme }) => theme.spacing(2)}; `; -export const DashboardEditorSideMenu = ({ +const DashboardAddBlockItem = ({ editor, - boundaryElement, -}: DashboardEditorSideMenuProps) => { + children, +}: { + editor: typeof DASHBOARD_BLOCK_SCHEMA.BlockNoteEditor; + children: React.ReactNode; +}) => { + const Components = useComponentsContext(); const blockNoteEditor = useBlockNoteEditor(); - const theme = useTheme(); - const [isMenuOpen, setIsMenuOpen] = useState(false); - const [dragHandleElement, setDragHandleElement] = - useState(null); - const state = useUIPluginState( - blockNoteEditor.sideMenu.onUpdate.bind(blockNoteEditor.sideMenu), - ); - - const virtualReference = isDefined(state?.referencePos) - ? { getBoundingClientRect: () => state.referencePos } - : null; - - const { refs, floatingStyles } = useFloating({ - placement: 'left-start', - whileElementsMounted: autoUpdate, - elements: { - reference: virtualReference, - }, - }); - - if (!state?.show || !isDefined(virtualReference)) { + if (!Components) { return null; } const handleClick = () => { - blockNoteEditor.sideMenu.freezeMenu(); - setIsMenuOpen(true); - }; + const currentBlock = blockNoteEditor.getTextCursorPosition().block; - const handleDragStart = (event: React.DragEvent) => { - blockNoteEditor.sideMenu.blockDragStart( - { - dataTransfer: event.dataTransfer, - clientY: event.clientY, - }, - state.block, + const insertedBlocks = editor.insertBlocks( + [{ type: 'paragraph' }], + currentBlock, + 'after', ); - }; - const handleDragEnd = () => { - blockNoteEditor.sideMenu.blockDragEnd(); - }; + const insertedBlock = insertedBlocks[0]; + if (isDefined(insertedBlock)) { + editor.setTextCursorPosition(insertedBlock); + } - const handleCloseMenu = () => { - setIsMenuOpen(false); - blockNoteEditor.sideMenu.unfreezeMenu(); + blockNoteEditor.getExtension(SuggestionMenu)?.openSuggestionMenu('/'); }; return ( - <> - {createPortal( - - - - - - - - , - document.body, - )} - - {isMenuOpen && ( - - )} - + + {children} + + ); +}; + +export const DashboardEditorSideMenu = ({ + editor, +}: DashboardEditorSideMenuProps) => { + const { t } = useLingui(); + + return ( + ( + + ( + + + + + + + + + + + + )} + /> + + + )} + /> ); }; diff --git a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardFormattingToolbar.tsx b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardFormattingToolbar.tsx index 72cde41844..ede1566b59 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardFormattingToolbar.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardFormattingToolbar.tsx @@ -1,21 +1,14 @@ -import { type DefaultProps } from '@blocknote/core'; import { BasicTextStyleButton, BlockTypeSelect, CreateLinkButton, FormattingToolbar, + FormattingToolbarController, NestBlockButton, TextAlignButton, UnnestBlockButton, - useBlockNoteEditor, - useEditorContentOrSelectionChange, - useUIElementPositioning, - useUIPluginState, } from '@blocknote/react'; -import { useTheme } from '@emotion/react'; -import { flip, FloatingPortal, offset, shift } from '@floating-ui/react'; -import { useMemo, useRef, useState } from 'react'; -import { isDefined } from 'twenty-shared/utils'; +import { flip, offset, shift } from '@floating-ui/react'; import { DashboardFormattingToolbarColorButton } from '@/page-layout/widgets/standalone-rich-text/components/DashboardFormattingToolbarColorButton'; import { FORMATTING_TOOLBAR_FLOATING_CONFIG } from '@/page-layout/widgets/standalone-rich-text/constants/FormattingToolbarFloatingConfig'; @@ -28,163 +21,59 @@ const StyledToolbarContainer = styled.div` } `; -const textAlignmentToPlacement = ( - textAlignment: DefaultProps['textAlignment'], -) => { - switch (textAlignment) { - case 'left': - return 'top-start'; - case 'center': - return 'top'; - case 'right': - return 'top-end'; - default: - return 'top-start'; - } -}; - type DashboardFormattingToolbarProps = { boundaryElement?: HTMLElement | null; }; -// This is a copy of the BlockNote's FormattingToolbarController component with customizations. export const DashboardFormattingToolbar = ({ boundaryElement, }: DashboardFormattingToolbarProps) => { - // eslint-disable-next-line twenty/no-state-useref - const toolbarContainerRef = useRef(null); - const editor = useBlockNoteEditor(); - const theme = useTheme(); - const colorScheme = theme.name === 'light' ? 'light' : 'dark'; - - const [placement, setPlacement] = useState<'top-start' | 'top' | 'top-end'>( - () => { - const block = editor.getTextCursorPosition().block; - - if (!('textAlignment' in block.props)) { - return 'top-start'; - } - - return textAlignmentToPlacement( - block.props.textAlignment as DefaultProps['textAlignment'], - ); - }, - ); - - useEditorContentOrSelectionChange(() => { - const block = editor.getTextCursorPosition().block; - - if (!('textAlignment' in block.props)) { - setPlacement('top-start'); - } else { - setPlacement( - textAlignmentToPlacement( - block.props.textAlignment as DefaultProps['textAlignment'], - ), - ); - } - }, editor); - - const state = useUIPluginState( - editor.formattingToolbar.onUpdate.bind(editor.formattingToolbar), - ); - - const isNodeSelection = - editor.prosemirrorView?.state.selection.toJSON().type === 'node'; - - const shouldShow = (state?.show && !isNodeSelection) || false; - - const { isMounted, ref, style, getFloatingProps } = useUIElementPositioning( - shouldShow, - state?.referencePos || null, - 3000, - { - placement, - middleware: [ - offset(FORMATTING_TOOLBAR_FLOATING_CONFIG.offsetFromSelection), - shift({ - boundary: boundaryElement ?? undefined, - padding: FORMATTING_TOOLBAR_FLOATING_CONFIG.boundaryPadding, - }), - flip({ - boundary: boundaryElement ?? undefined, - }), - ], - onOpenChange: (open) => { - if (!open) { - editor.formattingToolbar.closeMenu(); - editor.focus(); - } - }, - }, - ); - - const combinedRef = useMemo( - () => (node: HTMLDivElement | null) => { - toolbarContainerRef.current = node; - if (typeof ref === 'function') { - ref(node); - } - }, - [ref], - ); - - if (!isMounted || !isDefined(state)) { - return null; - } - - if (!shouldShow && isDefined(toolbarContainerRef.current)) { - return ( - - - - ); - } - return ( - - - - - - - - - - - - - - - - - - + + ( + + + + + + + + + + + + + + + )} + floatingUIOptions={{ + useFloatingOptions: { + middleware: [ + offset(FORMATTING_TOOLBAR_FLOATING_CONFIG.offsetFromSelection), + shift({ + boundary: boundaryElement ?? undefined, + padding: FORMATTING_TOOLBAR_FLOATING_CONFIG.boundaryPadding, + }), + flip({ + boundary: boundaryElement ?? undefined, + }), + ], + }, + }} + /> + ); }; diff --git a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardFormattingToolbarColorButton.tsx b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardFormattingToolbarColorButton.tsx index a5f7987e43..c2c9d81f97 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardFormattingToolbarColorButton.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardFormattingToolbarColorButton.tsx @@ -1,7 +1,4 @@ -import { - useBlockNoteEditor, - useEditorContentOrSelectionChange, -} from '@blocknote/react'; +import { useActiveStyles, useBlockNoteEditor } from '@blocknote/react'; import styled from '@emotion/styled'; import { autoUpdate, @@ -47,18 +44,12 @@ export const DashboardFormattingToolbarColorButton = () => { const menuRef = useRef(null); const [isOpen, setIsOpen] = useState(false); - const [currentTextColor, setCurrentTextColor] = - useState('default'); - const [currentBackgroundColor, setCurrentBackgroundColor] = - useState('default'); - - useEditorContentOrSelectionChange(() => { - const activeStyles = editor.getActiveStyles(); - setCurrentTextColor(extractColorFromProps(activeStyles, 'text')); - setCurrentBackgroundColor( - extractColorFromProps(activeStyles, 'background'), - ); - }, editor); + const activeStyles = useActiveStyles(editor); + const currentTextColor = extractColorFromProps(activeStyles, 'text'); + const currentBackgroundColor = extractColorFromProps( + activeStyles, + 'background', + ); const { refs, floatingStyles } = useFloating({ placement: 'bottom-start', diff --git a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardsBlockEditor.tsx b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardsBlockEditor.tsx index f834c60160..47ef02e371 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardsBlockEditor.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/DashboardsBlockEditor.tsx @@ -1,4 +1,4 @@ -import { filterSuggestionItems } from '@blocknote/core'; +import { filterSuggestionItems } from '@blocknote/core/extensions'; import { BlockNoteView } from '@blocknote/mantine'; import { SuggestionMenuController } from '@blocknote/react'; import { useTheme } from '@emotion/react'; @@ -25,7 +25,7 @@ type DashboardsBlockEditorProps = { }; // TODO: Refactor these BlockNote CSS overrides - some may be dead code now that we have custom components -// (DashboardBlockDragHandleMenu, DashboardEditorSideMenu, DashboardColorSelectionMenu). +// (DashboardEditorSideMenu, DashboardColorSelectionMenu). // Test removing each selector and move necessary styles to appropriate components. // eslint-disable-next-line twenty/no-hardcoded-colors const StyledEditor = styled.div` @@ -183,10 +183,7 @@ export const DashboardsBlockEditor = ({ {!readonly && ( <> - + { diff --git a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/StandaloneRichTextEditorContent.tsx b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/StandaloneRichTextEditorContent.tsx index 0753d0f8be..6b3905b360 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/StandaloneRichTextEditorContent.tsx +++ b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/components/StandaloneRichTextEditorContent.tsx @@ -1,4 +1,4 @@ -import { useCallback, useMemo } from 'react'; +import { useCallback, useState } from 'react'; import { type Attachment } from '@/activities/files/types/Attachment'; import { useUpdatePageLayoutWidget } from '@/page-layout/hooks/useUpdatePageLayoutWidget'; @@ -68,16 +68,14 @@ export const StandaloneRichTextEditorContent = ({ store, ]); - const initialContent = useMemo( - () => filterSupportedBlocks(parseInitialBlocknote(currentBody)), - [currentBody], + const [initialContent] = useState(() => + filterSupportedBlocks(parseInitialBlocknote(currentBody)), ); const editor = useCreateBlockNote({ initialContent, domAttributes: { editor: { class: 'editor' } }, schema: DASHBOARD_BLOCK_SCHEMA, - sideMenuDetection: 'editor', placeholders: { default: t`Enter text or type '/' for commands`, }, @@ -115,7 +113,7 @@ export const StandaloneRichTextEditorContent = ({ handleAttachmentSync(newStringifiedBody, currentBody); }; - const handleBlockEditorFocus = useCallback(() => { + const handleBlockEditorFocus = () => { pushFocusItemToFocusStack({ component: { instanceId: widget.id, @@ -124,14 +122,14 @@ export const StandaloneRichTextEditorContent = ({ focusId: widget.id, globalHotkeysConfig: BLOCK_EDITOR_GLOBAL_HOTKEYS_CONFIG, }); - }, [pushFocusItemToFocusStack, widget.id]); + }; - const handleBlockEditorBlur = useCallback(() => { + const handleBlockEditorBlur = () => { handlePersistBody.flush(); removeFocusItemFromFocusStackById({ focusId: widget.id, }); - }, [handlePersistBody, removeFocusItemFromFocusStackById, widget.id]); + }; return ( <> diff --git a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/constants/ColorPickerFloatingConfig.ts b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/constants/ColorPickerFloatingConfig.ts deleted file mode 100644 index 829c4167fb..0000000000 --- a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/constants/ColorPickerFloatingConfig.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const COLOR_PICKER_FLOATING_CONFIG = { - offsetFromMenuItem: 4, - boundaryPadding: 8, -}; diff --git a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/constants/DragHandleMenuFloatingConfig.ts b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/constants/DragHandleMenuFloatingConfig.ts deleted file mode 100644 index 11785d867d..0000000000 --- a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/constants/DragHandleMenuFloatingConfig.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const DRAG_HANDLE_MENU_FLOATING_CONFIG = { - offsetFromAnchor: 4, -}; diff --git a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/utils/getDashboardSlashMenu.ts b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/utils/getDashboardSlashMenu.ts index affccfbc20..96b1eafdff 100644 --- a/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/utils/getDashboardSlashMenu.ts +++ b/packages/twenty-front/src/modules/page-layout/widgets/standalone-rich-text/utils/getDashboardSlashMenu.ts @@ -9,6 +9,9 @@ import { IconH1, IconH2, IconH3, + IconH4, + IconH5, + IconH6, IconList, IconListCheck, IconListNumbers, @@ -21,6 +24,12 @@ const Icons: Record = { 'Heading 1': IconH1, 'Heading 2': IconH2, 'Heading 3': IconH3, + 'Heading 4': IconH4, + 'Heading 5': IconH5, + 'Heading 6': IconH6, + 'Toggle Heading 1': IconH1, + 'Toggle Heading 2': IconH2, + 'Toggle Heading 3': IconH3, Quote: IconBlockquote, 'Numbered List': IconListNumbers, 'Bullet List': IconList, diff --git a/packages/twenty-server/package.json b/packages/twenty-server/package.json index 4b02b8023a..3d2f004f6e 100644 --- a/packages/twenty-server/package.json +++ b/packages/twenty-server/package.json @@ -30,7 +30,7 @@ "@aws-sdk/credential-providers": "3.998.0", "@azure/msal-node": "^3.8.4", "@babel/preset-env": "7.26.9", - "@blocknote/server-util": "^0.31.1", + "@blocknote/server-util": "^0.47.0", "@clickhouse/client": "^1.11.0", "@dagrejs/dagre": "^1.1.2", "@e2b/code-interpreter": "^1.0.4", diff --git a/packages/twenty-server/src/engine/core-modules/record-transformer/utils/transform-rich-text-v2.util.ts b/packages/twenty-server/src/engine/core-modules/record-transformer/utils/transform-rich-text-v2.util.ts index 02c5da32af..f7bc387fd1 100644 --- a/packages/twenty-server/src/engine/core-modules/record-transformer/utils/transform-rich-text-v2.util.ts +++ b/packages/twenty-server/src/engine/core-modules/record-transformer/utils/transform-rich-text-v2.util.ts @@ -5,19 +5,28 @@ import { } from 'twenty-shared/types'; import { isDefined } from 'twenty-shared/utils'; +import type { ServerBlockNoteEditor } from '@blocknote/server-util'; + // Reuse a single ServerBlockNoteEditor across all calls to avoid // the cost of dynamic import resolution + instance creation (~90ms) on every transform. -// eslint-disable-next-line @typescript-eslint/no-explicit-any -let cachedServerBlockNoteEditor: any = null; +let cachedServerBlockNoteEditor: ServerBlockNoteEditor | null = null; -const getServerBlockNoteEditor = async () => { - if (!cachedServerBlockNoteEditor) { - const { ServerBlockNoteEditor } = await import('@blocknote/server-util'); +// SWC compiles import() to require() in CJS mode, which breaks ESM-only +// transitive dependencies in @blocknote/core. Native import() resolves +// the ESM bundle path where the full chain works. +const nativeImport = new Function('specifier', 'return import(specifier)'); - cachedServerBlockNoteEditor = ServerBlockNoteEditor.create(); +const getServerBlockNoteEditor = async (): Promise => { + if (cachedServerBlockNoteEditor) { + return cachedServerBlockNoteEditor; } - return cachedServerBlockNoteEditor; + const module = await nativeImport('@blocknote/server-util'); + const editor: ServerBlockNoteEditor = module.ServerBlockNoteEditor.create(); + + cachedServerBlockNoteEditor = editor; + + return editor; }; export const transformRichTextV2Value = async ( diff --git a/packages/twenty-ui/src/display/icon/components/TablerIcons.ts b/packages/twenty-ui/src/display/icon/components/TablerIcons.ts index 6f9a011f4c..f423511e43 100644 --- a/packages/twenty-ui/src/display/icon/components/TablerIcons.ts +++ b/packages/twenty-ui/src/display/icon/components/TablerIcons.ts @@ -200,6 +200,9 @@ export { IconH1, IconH2, IconH3, + IconH4, + IconH5, + IconH6, IconHandClick, IconHandMove, IconHeadphones, diff --git a/packages/twenty-ui/src/display/index.ts b/packages/twenty-ui/src/display/index.ts index b691e9a26f..9c4e254a5c 100644 --- a/packages/twenty-ui/src/display/index.ts +++ b/packages/twenty-ui/src/display/index.ts @@ -275,6 +275,9 @@ export { IconH1, IconH2, IconH3, + IconH4, + IconH5, + IconH6, IconHandClick, IconHandMove, IconHeadphones, diff --git a/yarn.lock b/yarn.lock index 4d4686bf58..72010a4dc0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -53,14 +53,14 @@ __metadata: linkType: hard "@ai-sdk/anthropic@npm:^3.0.46": - version: 3.0.46 - resolution: "@ai-sdk/anthropic@npm:3.0.46" + version: 3.0.47 + resolution: "@ai-sdk/anthropic@npm:3.0.47" dependencies: "@ai-sdk/provider": "npm:3.0.8" "@ai-sdk/provider-utils": "npm:4.0.15" peerDependencies: zod: ^3.25.76 || ^4.1.8 - checksum: 10c0/00b20d3ec8c9948c28603be4261f67c257dbd5469e60c325dd38f559079175464da81cdb25afb0e9bdcc1de7e7179bca6142fd561bc0add645f0468cf8ca761c + checksum: 10c0/5ef89958b11c06ea107980e645a01b1b1b81392fde5dcdab1d4752c52bed52adfb570567fa02543333c1b2ae38c11bcdad05f6b201ecd3a6a0072525f4de935e languageName: node linkType: hard @@ -78,14 +78,14 @@ __metadata: linkType: hard "@ai-sdk/google@npm:^3.0.30": - version: 3.0.30 - resolution: "@ai-sdk/google@npm:3.0.30" + version: 3.0.31 + resolution: "@ai-sdk/google@npm:3.0.31" dependencies: "@ai-sdk/provider": "npm:3.0.8" "@ai-sdk/provider-utils": "npm:4.0.15" peerDependencies: zod: ^3.25.76 || ^4.1.8 - checksum: 10c0/b90eb00b3a85b3e17d648c01d5d5cc3289a737a84ef6f6b3249ffdce2ffe0ed48120b682ba040f341193ac8e48ebedead06fd22f0596774def1dd62fb551c9b8 + checksum: 10c0/dbf8ea1cbc876e03dde6a355f14c2bd08186b76586ac3454c4829b708af9c280ff7cd28699cec3170b26ec71db47c4ebf73a06f6a9322a2e7ddbb1f0a4a58737 languageName: node linkType: hard @@ -126,14 +126,14 @@ __metadata: linkType: hard "@ai-sdk/openai@npm:^3.0.30": - version: 3.0.30 - resolution: "@ai-sdk/openai@npm:3.0.30" + version: 3.0.34 + resolution: "@ai-sdk/openai@npm:3.0.34" dependencies: "@ai-sdk/provider": "npm:3.0.8" "@ai-sdk/provider-utils": "npm:4.0.15" peerDependencies: zod: ^3.25.76 || ^4.1.8 - checksum: 10c0/db37c8a41c043145bd80e51ec452442fde29a56d65631eca37e3b7b6555588ff772a5c2eb314610a4bd0ba211a12fae8ef38977336d3b0f5f44a6ab58ab99f7d + checksum: 10c0/c490681ac4552b53ba51efcbfd0cf2f867ad215b85e3bb2818a3133fdf89ebb27f9d336115887bf9747e0bffe27d8563589920771e839aa46b49abf8a3c85d5b languageName: node linkType: hard @@ -196,15 +196,15 @@ __metadata: linkType: hard "@ai-sdk/xai@npm:^3.0.57": - version: 3.0.57 - resolution: "@ai-sdk/xai@npm:3.0.57" + version: 3.0.59 + resolution: "@ai-sdk/xai@npm:3.0.59" dependencies: "@ai-sdk/openai-compatible": "npm:2.0.30" "@ai-sdk/provider": "npm:3.0.8" "@ai-sdk/provider-utils": "npm:4.0.15" peerDependencies: zod: ^3.25.76 || ^4.1.8 - checksum: 10c0/9d5823aade5453bb5ff0d96bcf668b7c6d6a94dc5a764120fc38b9eef0d1b87a613ebdfc4c920efa16d3e218a04b1827bd801bef1fd09414e97a3d63ad2459cd + checksum: 10c0/88bb697ee92e46308c037f7d2647eb580f7dba8dbbf459f50b5edbc0a28d02e133042678bbedf74d7aede47d933b6a37c1a14f9f91b9b5b62de8e08a73112957 languageName: node linkType: hard @@ -1819,7 +1819,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": +"@babel/code-frame@npm:^7.23.5": version: 7.29.0 resolution: "@babel/code-frame@npm:7.29.0" dependencies: @@ -1909,19 +1909,6 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.29.0": - version: 7.29.1 - resolution: "@babel/generator@npm:7.29.1" - dependencies: - "@babel/parser": "npm:^7.29.0" - "@babel/types": "npm:^7.29.0" - "@jridgewell/gen-mapping": "npm:^0.3.12" - "@jridgewell/trace-mapping": "npm:^0.3.28" - jsesc: "npm:^3.0.2" - checksum: 10c0/349086e6876258ef3fb2823030fee0f6c0eb9c3ebe35fc572e16997f8c030d765f636ddc6299edae63e760ea6658f8ee9a2edfa6d6b24c9a80c917916b973551 - languageName: node - linkType: hard - "@babel/helper-annotate-as-pure@npm:^7.24.7, @babel/helper-annotate-as-pure@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" @@ -1931,15 +1918,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.27.1, @babel/helper-annotate-as-pure@npm:^7.27.3": - version: 7.27.3 - resolution: "@babel/helper-annotate-as-pure@npm:7.27.3" - dependencies: - "@babel/types": "npm:^7.27.3" - checksum: 10c0/94996ce0a05b7229f956033e6dcd69393db2b0886d0db6aff41e704390402b8cdcca11f61449cb4f86cfd9e61b5ad3a73e4fa661eeed7846b125bd1c33dbc633 - languageName: node - linkType: hard - "@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9, @babel/helper-compilation-targets@npm:^7.26.5, @babel/helper-compilation-targets@npm:^7.27.2": version: 7.27.2 resolution: "@babel/helper-compilation-targets@npm:7.27.2" @@ -2025,16 +2003,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/helper-module-imports@npm:7.28.6" - dependencies: - "@babel/traverse": "npm:^7.28.6" - "@babel/types": "npm:^7.28.6" - checksum: 10c0/b49d8d8f204d9dbfd5ac70c54e533e5269afb3cea966a9d976722b13e9922cc773a653405f53c89acb247d5aebdae4681d631a3ae3df77ec046b58da76eda2ac - languageName: node - linkType: hard - "@babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0, @babel/helper-module-transforms@npm:^7.27.3": version: 7.27.3 resolution: "@babel/helper-module-transforms@npm:7.27.3" @@ -2077,13 +2045,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/helper-plugin-utils@npm:7.28.6" - checksum: 10c0/3f5f8acc152fdbb69a84b8624145ff4f9b9f6e776cb989f9f968f8606eb7185c5c3cfcf3ba08534e37e1e0e1c118ac67080610333f56baa4f7376c99b5f1143d - languageName: node - linkType: hard - "@babel/helper-remap-async-to-generator@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" @@ -2201,17 +2162,6 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/parser@npm:7.29.0" - dependencies: - "@babel/types": "npm:^7.29.0" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/333b2aa761264b91577a74bee86141ef733f9f9f6d4fc52548e4847dc35dfbf821f58c46832c637bfa761a6d9909d6a68f7d1ed59e17e4ffbb958dc510c17b62 - languageName: node - linkType: hard - "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" @@ -2466,17 +2416,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-syntax-jsx@npm:7.28.6" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/b98fc3cd75e4ca3d5ca1162f610c286e14ede1486e0d297c13a5eb0ac85680ac9656d17d348bddd9160a54d797a08cea5eaac02b9330ddebb7b26732b7b99fb5 - languageName: node - linkType: hard - "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -3060,7 +2999,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.0.0": +"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-display-name@npm:7.25.9" dependencies: @@ -3071,29 +3010,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/plugin-transform-react-display-name@npm:7.28.0" +"@babel/plugin-transform-react-jsx-development@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/plugin-transform-react-jsx": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f5f86d2ad92be3e962158f344c2e385e23e2dfae7c8c7dc32138fb2cc46f63f5e50386c9f6c6fc16dbf1792c7bb650ad92c18203d0c2c0bd875bc28b0b80ef30 + checksum: 10c0/c0b92ff9eb029620abf320ff74aae182cea87524723d740fb48a4373d0d16bddf5edbe1116e7ba341332a5337e55c2ceaee8b8cad5549e78af7f4b3cfe77debb languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.27.1" - dependencies: - "@babel/plugin-transform-react-jsx": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/eb8c4b6a79dc5c49b41e928e2037e1ee0bbfa722e4fd74c0b7c0d11103c82c2c25c434000e1b051d534c7261ab5c92b6d1e85313bf1b26e37db3f051ae217b58 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.0.0": +"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-transform-react-jsx@npm:7.25.9" dependencies: @@ -3108,30 +3036,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.27.1": - version: 7.28.6 - resolution: "@babel/plugin-transform-react-jsx@npm:7.28.6" +"@babel/plugin-transform-react-pure-annotations@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.3" - "@babel/helper-module-imports": "npm:^7.28.6" - "@babel/helper-plugin-utils": "npm:^7.28.6" - "@babel/plugin-syntax-jsx": "npm:^7.28.6" - "@babel/types": "npm:^7.28.6" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/cc75b9bb3997751df6cf7e86afe1b3fa33130b5031a412f6f12cc5faec083650fe852de0af5ec8f88d3588cc3428a3f514d3bc1f423d26f8b014cc5dff9f15a7 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-pure-annotations@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.27.1" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/34bc090f4a7e460d82a851971b4d0f32e4bb519bafb927154f4174506283fe02b0f471fc20655c6050a8bf7b748bfa31c7e8f7d688849476d8266623554fbb28 + checksum: 10c0/7c8eac04644ad19dcd71bb8e949b0ae22b9e548fa4a58e545d3d0342f647fb89db7f8789a7c5b8074d478ce6d3d581eaf47dd4b36027e16fd68211c383839abc languageName: node linkType: hard @@ -3410,18 +3323,18 @@ __metadata: linkType: hard "@babel/preset-react@npm:^7.14.5, @babel/preset-react@npm:^7.18.6, @babel/preset-react@npm:^7.26.3": - version: 7.28.5 - resolution: "@babel/preset-react@npm:7.28.5" + version: 7.26.3 + resolution: "@babel/preset-react@npm:7.26.3" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-validator-option": "npm:^7.27.1" - "@babel/plugin-transform-react-display-name": "npm:^7.28.0" - "@babel/plugin-transform-react-jsx": "npm:^7.27.1" - "@babel/plugin-transform-react-jsx-development": "npm:^7.27.1" - "@babel/plugin-transform-react-pure-annotations": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/plugin-transform-react-display-name": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx-development": "npm:^7.25.9" + "@babel/plugin-transform-react-pure-annotations": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0d785e708ff301f4102bd4738b77e550e32f981e54dfd3de1191b4d68306bbb934d2d465fc78a6bc22fff0a6b3ce3195a53984f52755c4349e7264c7e01e8c7c + checksum: 10c0/b470dcba11032ef6c832066f4af5c75052eaed49feb0f445227231ef1b5c42aacd6e216988c0bd469fd5728cd27b6b059ca307c9ecaa80c6bb5da4bf1c833e12 languageName: node linkType: hard @@ -3489,17 +3402,6 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/template@npm:7.28.6" - dependencies: - "@babel/code-frame": "npm:^7.28.6" - "@babel/parser": "npm:^7.28.6" - "@babel/types": "npm:^7.28.6" - checksum: 10c0/66d87225ed0bc77f888181ae2d97845021838c619944877f7c4398c6748bcf611f216dfd6be74d39016af502bca876e6ce6873db3c49e4ac354c56d34d57e9f5 - languageName: node - linkType: hard - "@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.23.5, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.5, @babel/traverse@npm:^7.26.8, @babel/traverse@npm:^7.26.9, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.28.0": version: 7.28.0 resolution: "@babel/traverse@npm:7.28.0" @@ -3530,21 +3432,6 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.28.6": - version: 7.29.0 - resolution: "@babel/traverse@npm:7.29.0" - dependencies: - "@babel/code-frame": "npm:^7.29.0" - "@babel/generator": "npm:^7.29.0" - "@babel/helper-globals": "npm:^7.28.0" - "@babel/parser": "npm:^7.29.0" - "@babel/template": "npm:^7.28.6" - "@babel/types": "npm:^7.29.0" - debug: "npm:^4.3.1" - checksum: 10c0/f63ef6e58d02a9fbf3c0e2e5f1c877da3e0bc57f91a19d2223d53e356a76859cbaf51171c9211c71816d94a0e69efa2732fd27ffc0e1bbc84b636e60932333eb - languageName: node - linkType: hard - "@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.2, @babel/types@npm:^7.21.3, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.5, @babel/types@npm:^7.25.9, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.0, @babel/types@npm:^7.28.2, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.28.2 resolution: "@babel/types@npm:7.28.2" @@ -3565,16 +3452,6 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0": - version: 7.29.0 - resolution: "@babel/types@npm:7.29.0" - dependencies: - "@babel/helper-string-parser": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.28.5" - checksum: 10c0/23cc3466e83bcbfab8b9bd0edaafdb5d4efdb88b82b3be6728bbade5ba2f0996f84f63b1c5f7a8c0d67efded28300898a5f930b171bb40b311bca2029c4e9b4f - languageName: node - linkType: hard - "@bcoe/v8-coverage@npm:^0.2.3": version: 0.2.3 resolution: "@bcoe/v8-coverage@npm:0.2.3" @@ -3589,142 +3466,170 @@ __metadata: languageName: node linkType: hard -"@blocknote/core@npm:0.31.1": - version: 0.31.1 - resolution: "@blocknote/core@npm:0.31.1" +"@blocknote/core@npm:0.47.0": + version: 0.47.0 + resolution: "@blocknote/core@npm:0.47.0" dependencies: "@emoji-mart/data": "npm:^1.2.1" - "@shikijs/types": "npm:3.2.1" - "@tiptap/core": "npm:^2.12.0" - "@tiptap/extension-bold": "npm:^2.11.5" - "@tiptap/extension-code": "npm:^2.11.5" - "@tiptap/extension-gapcursor": "npm:^2.11.5" - "@tiptap/extension-history": "npm:^2.11.5" - "@tiptap/extension-horizontal-rule": "npm:^2.11.5" - "@tiptap/extension-italic": "npm:^2.11.5" - "@tiptap/extension-link": "npm:^2.11.5" - "@tiptap/extension-paragraph": "npm:^2.11.5" - "@tiptap/extension-strike": "npm:^2.11.5" - "@tiptap/extension-table-cell": "npm:^2.11.5" - "@tiptap/extension-table-header": "npm:^2.11.5" - "@tiptap/extension-text": "npm:^2.11.5" - "@tiptap/extension-underline": "npm:^2.11.5" - "@tiptap/pm": "npm:^2.12.0" + "@handlewithcare/prosemirror-inputrules": "npm:^0.1.4" + "@shikijs/types": "npm:^3" + "@tanstack/store": "npm:^0.7.7" + "@tiptap/core": "npm:^3.13.0" + "@tiptap/extension-bold": "npm:^3.13.0" + "@tiptap/extension-code": "npm:^3.13.0" + "@tiptap/extension-horizontal-rule": "npm:^3.13.0" + "@tiptap/extension-italic": "npm:^3.13.0" + "@tiptap/extension-link": "npm:^3.13.0" + "@tiptap/extension-paragraph": "npm:^3.13.0" + "@tiptap/extension-strike": "npm:^3.13.0" + "@tiptap/extension-text": "npm:^3.13.0" + "@tiptap/extension-underline": "npm:^3.13.0" + "@tiptap/extensions": "npm:^3.13.0" + "@tiptap/pm": "npm:^3.13.0" emoji-mart: "npm:^5.6.0" + fast-deep-equal: "npm:^3.1.3" hast-util-from-dom: "npm:^5.0.1" - prosemirror-dropcursor: "npm:^1.8.1" + prosemirror-dropcursor: "npm:^1.8.2" prosemirror-highlight: "npm:^0.13.0" - prosemirror-model: "npm:^1.25.1" - prosemirror-state: "npm:^1.4.3" - prosemirror-tables: "npm:^1.6.4" - prosemirror-transform: "npm:^1.10.4" - prosemirror-view: "npm:^1.38.1" + prosemirror-model: "npm:^1.25.4" + prosemirror-state: "npm:^1.4.4" + prosemirror-tables: "npm:^1.8.3" + prosemirror-transform: "npm:^1.10.5" + prosemirror-view: "npm:^1.41.4" rehype-format: "npm:^5.0.1" rehype-parse: "npm:^9.0.1" - rehype-remark: "npm:^10.0.0" + rehype-remark: "npm:^10.0.1" rehype-stringify: "npm:^10.0.1" remark-gfm: "npm:^4.0.1" remark-parse: "npm:^11.0.0" - remark-rehype: "npm:^11.1.1" + remark-rehype: "npm:^11.1.2" remark-stringify: "npm:^11.0.0" unified: "npm:^11.0.5" + unist-util-visit: "npm:^5.0.0" uuid: "npm:^8.3.2" - y-prosemirror: "npm:^1.3.4" + y-prosemirror: "npm:^1.3.7" y-protocols: "npm:^1.0.6" - yjs: "npm:^13.6.15" + yjs: "npm:^13.6.27" peerDependencies: - "@hocuspocus/provider": ^2.15.2 + "@hocuspocus/provider": ^2.15.2 || ^3.0.0 peerDependenciesMeta: "@hocuspocus/provider": optional: true - checksum: 10c0/0739958b0906586c4fc6cc29b156edff372a4e3f14c9b4829312a41e68191b330e84e132c625f36a51c900966c588ef7f78bde8c366b65c9ff68fde65505ad3d + checksum: 10c0/f8cd173a9d002dce8a52bafbfafc398fa8f31d982150c46d53d9ca32235f7613242374918e879880f7268e215975b343cfecd15810edb8df745735c4cf8226e5 languageName: node linkType: hard -"@blocknote/mantine@npm:^0.31.1": - version: 0.31.1 - resolution: "@blocknote/mantine@npm:0.31.1" +"@blocknote/mantine@npm:0.47.0": + version: 0.47.0 + resolution: "@blocknote/mantine@npm:0.47.0" dependencies: - "@blocknote/core": "npm:0.31.1" - "@blocknote/react": "npm:0.31.1" - "@mantine/core": "npm:^7.10.1" - "@mantine/hooks": "npm:^7.10.1" - "@mantine/utils": "npm:^6.0.21" - react-icons: "npm:^5.2.1" + "@blocknote/core": "npm:0.47.0" + "@blocknote/react": "npm:0.47.0" + react-icons: "npm:^5.5.0" peerDependencies: + "@mantine/core": ^8.3.11 + "@mantine/hooks": ^8.3.11 + "@mantine/utils": ^6.0.22 react: ^18.0 || ^19.0 || >= 19.0.0-rc react-dom: ^18.0 || ^19.0 || >= 19.0.0-rc - checksum: 10c0/c06e080ca6fd49227a8b931765f77ae550f142107c4cabd3e2f7405c5fdc4b65fccbcbfb4ad89219afa328bf30180fbee6a31a142c8fc3594afdcba3c14aa2b2 + checksum: 10c0/73ff0236a35c80a9336cbae33e618fc08fd5c8a57712e82f22186acf546f0feff38fa65e384cae354680597d8eaaf44a523101760f1d757e03163be073993ce4 languageName: node linkType: hard -"@blocknote/react@npm:0.31.1, @blocknote/react@npm:^0.31.1": - version: 0.31.1 - resolution: "@blocknote/react@npm:0.31.1" +"@blocknote/react@npm:0.47.0": + version: 0.47.0 + resolution: "@blocknote/react@npm:0.47.0" dependencies: - "@blocknote/core": "npm:0.31.1" + "@blocknote/core": "npm:0.47.0" "@emoji-mart/data": "npm:^1.2.1" - "@floating-ui/react": "npm:^0.26.4" - "@tiptap/core": "npm:^2.12.0" - "@tiptap/pm": "npm:^2.12.0" - "@tiptap/react": "npm:^2.12.0" + "@floating-ui/react": "npm:^0.27.16" + "@floating-ui/utils": "npm:0.2.10" + "@tanstack/react-store": "npm:0.7.7" + "@tiptap/core": "npm:^3.13.0" + "@tiptap/pm": "npm:^3.13.0" + "@tiptap/react": "npm:^3.13.0" + "@types/use-sync-external-store": "npm:1.5.0" emoji-mart: "npm:^5.6.0" + fast-deep-equal: "npm:^3.1.3" lodash.merge: "npm:^4.6.2" - react-icons: "npm:^5.2.1" + react-icons: "npm:^5.5.0" + use-sync-external-store: "npm:1.6.0" peerDependencies: react: ^18.0 || ^19.0 || >= 19.0.0-rc react-dom: ^18.0 || ^19.0 || >= 19.0.0-rc - checksum: 10c0/5e83e65c9c85b885153f557c469344554d6e47d860b1a34e7832f48305d1ee4db56d50abb6d006d1fd56da849be712ac00e5c79f5b5f5319d259e07352f3de0b + checksum: 10c0/f8fb2270ddb0195e269e93ad93eeda14df54219dd1bcbf63dbe4e502638db64058c47ede7cc157ad27a977c7d0d2d007a63373cdb15c3660d054a201614a80b8 languageName: node linkType: hard -"@blocknote/server-util@npm:^0.31.1": - version: 0.31.1 - resolution: "@blocknote/server-util@npm:0.31.1" +"@blocknote/server-util@npm:^0.47.0": + version: 0.47.0 + resolution: "@blocknote/server-util@npm:0.47.0" dependencies: - "@blocknote/core": "npm:0.31.1" - "@blocknote/react": "npm:0.31.1" - "@tiptap/core": "npm:^2.12.0" - "@tiptap/pm": "npm:^2.12.0" + "@blocknote/core": "npm:0.47.0" + "@blocknote/react": "npm:0.47.0" + "@tiptap/core": "npm:^3.13.0" + "@tiptap/pm": "npm:^3.13.0" jsdom: "npm:^25.0.1" - y-prosemirror: "npm:^1.3.4" + y-prosemirror: "npm:^1.3.7" y-protocols: "npm:^1.0.6" - yjs: "npm:^13.6.15" + yjs: "npm:^13.6.27" peerDependencies: react: ^18.0 || ^19.0 || >= 19.0.0-rc react-dom: ^18.0 || ^19.0 || >= 19.0.0-rc - checksum: 10c0/85989a4cbcce2bc5dfbdae1e763a8f8d351bf41e64cf6f2666c23f8d41fea4eedce5bc8db99a29fca252e659649bd8882c50067d61f12853049786fc6f5ac1f1 + checksum: 10c0/daed113cf341968024fa5086c029bd20a75df29d847a76208024dfb740de73db27e12fc43b706d14c322095c7dd529984d44f0742cfc979bedd3a43b63b976d7 languageName: node linkType: hard -"@blocknote/xl-docx-exporter@npm:^0.31.1": - version: 0.31.1 - resolution: "@blocknote/xl-docx-exporter@npm:0.31.1" +"@blocknote/xl-docx-exporter@npm:0.47.0": + version: 0.47.0 + resolution: "@blocknote/xl-docx-exporter@npm:0.47.0" dependencies: - "@blocknote/core": "npm:0.31.1" + "@blocknote/core": "npm:0.47.0" + "@blocknote/xl-multi-column": "npm:0.47.0" buffer: "npm:^6.0.3" - docx: "npm:^9.0.2" - image-meta: "npm:^0.2.1" + docx: "npm:^9.5.1" + image-meta: "npm:^0.2.2" peerDependencies: react: ^18.0 || ^19.0 || >= 19.0.0-rc react-dom: ^18.0 || ^19.0 || >= 19.0.0-rc - checksum: 10c0/59ff00a404cd1bd160cf41c250ab623b096522018d681a6edf5140e675758a7af54ce81a775d5d8f4994c5245262c7b1a20beb400112aae2d23c34fae3541529 + checksum: 10c0/eb0753fbfdbf5ca9cb430e8051106a24219788198814da0ffaba13141f9b8fe47c771587277d7c73f6693c621d2c305457332e728c58aaabf0e68fca3e240183 languageName: node linkType: hard -"@blocknote/xl-pdf-exporter@npm:^0.31.1": - version: 0.31.1 - resolution: "@blocknote/xl-pdf-exporter@npm:0.31.1" +"@blocknote/xl-multi-column@npm:0.47.0": + version: 0.47.0 + resolution: "@blocknote/xl-multi-column@npm:0.47.0" dependencies: - "@blocknote/core": "npm:0.31.1" - "@blocknote/react": "npm:0.31.1" + "@blocknote/core": "npm:0.47.0" + "@blocknote/react": "npm:0.47.0" + "@tiptap/core": "npm:^3.13.0" + prosemirror-model: "npm:^1.25.4" + prosemirror-state: "npm:^1.4.4" + prosemirror-tables: "npm:^1.8.3" + prosemirror-transform: "npm:^1.10.5" + prosemirror-view: "npm:^1.41.4" + react-icons: "npm:^5.5.0" + peerDependencies: + react: ^18.0 || ^19.0 || >= 19.0.0-rc + react-dom: ^18.0 || ^19.0 || >= 19.0.0-rc + checksum: 10c0/821160caefef3a2cdcaf6f381e3a5718f578927b234d4eda7800f2dc72c0cefb4a74249b13f727b198a058cc2c220fbed939c737ac1a45a1c2eaebbe3129ef2d + languageName: node + linkType: hard + +"@blocknote/xl-pdf-exporter@npm:0.47.0": + version: 0.47.0 + resolution: "@blocknote/xl-pdf-exporter@npm:0.47.0" + dependencies: + "@blocknote/core": "npm:0.47.0" + "@blocknote/react": "npm:0.47.0" + "@blocknote/xl-multi-column": "npm:0.47.0" "@react-pdf/renderer": "npm:^4.3.0" buffer: "npm:^6.0.3" - docx: "npm:^9.0.2" + docx: "npm:^9.5.1" peerDependencies: react: ^18.0 || ^19.0 || >= 19.0.0-rc react-dom: ^18.0 || ^19.0 || >= 19.0.0-rc - checksum: 10c0/d89a47028f8f2567618aba8b318fcb8a74c10bcbc7c5d94a0911f3942198eb11f5c4a032c01b307171b64fe006b03fe96750892e716e15c35b7540c4e819386e + checksum: 10c0/3d53f2b96dd58423445092a319f174b215721b16a85362eb5f1b2cf328308031923935c4f98debdaf8a2650c9aad1c7723139b39bb208d0a78a7c3105c192826 languageName: node linkType: hard @@ -4472,22 +4377,22 @@ __metadata: linkType: hard "@emotion/styled@npm:^11.11.0": - version: 11.14.1 - resolution: "@emotion/styled@npm:11.14.1" + version: 11.13.0 + resolution: "@emotion/styled@npm:11.13.0" dependencies: "@babel/runtime": "npm:^7.18.3" - "@emotion/babel-plugin": "npm:^11.13.5" + "@emotion/babel-plugin": "npm:^11.12.0" "@emotion/is-prop-valid": "npm:^1.3.0" - "@emotion/serialize": "npm:^1.3.3" - "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.2.0" - "@emotion/utils": "npm:^1.4.2" + "@emotion/serialize": "npm:^1.3.0" + "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.1.0" + "@emotion/utils": "npm:^1.4.0" peerDependencies: "@emotion/react": ^11.0.0-rc.0 react: ">=16.8.0" peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/2bbf8451df49c967e41fbcf8111a7f6dafe6757f0cc113f2f6e287206c45ac1d54dc8a95a483b7c0cee8614b8a8d08155bded6453d6721de1f8cc8d5b9216963 + checksum: 10c0/5e2cc85c8a2f6e7bd012731cf0b6da3aef5906225e87e8d4a5c19da50572e24d9aaf92615aa36aa863f0fe6b62a121033356e1cad62617c48bfdaa2c3cf0d8a4 languageName: node linkType: hard @@ -6022,6 +5927,18 @@ __metadata: languageName: node linkType: hard +"@floating-ui/react-dom@npm:^2.1.7": + version: 2.1.7 + resolution: "@floating-ui/react-dom@npm:2.1.7" + dependencies: + "@floating-ui/dom": "npm:^1.7.5" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10c0/3ef4a53ac93d2757e7995ce0313b3c14c5c5c66f2cb893256cc70c74713ff1c192f88a1bde02e2f50e951a7a3d8513b14611a4dbcc2d313def1f7003f7296dba + languageName: node + linkType: hard + "@floating-ui/react@npm:^0.24.0, @floating-ui/react@npm:^0.24.3": version: 0.24.8 resolution: "@floating-ui/react@npm:0.24.8" @@ -6036,7 +5953,7 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react@npm:^0.26.2, @floating-ui/react@npm:^0.26.4, @floating-ui/react@npm:^0.26.9": +"@floating-ui/react@npm:^0.26.2": version: 0.26.22 resolution: "@floating-ui/react@npm:0.26.22" dependencies: @@ -6050,7 +5967,21 @@ __metadata: languageName: node linkType: hard -"@floating-ui/utils@npm:^0.2.10": +"@floating-ui/react@npm:^0.27.16": + version: 0.27.18 + resolution: "@floating-ui/react@npm:0.27.18" + dependencies: + "@floating-ui/react-dom": "npm:^2.1.7" + "@floating-ui/utils": "npm:^0.2.10" + tabbable: "npm:^6.0.0" + peerDependencies: + react: ">=17.0.0" + react-dom: ">=17.0.0" + checksum: 10c0/d480aeeb6f9495bc85e3ddf037d400e88c0c960c0bad3af6fb8cb1931eef6602e493a6174be98d1baa8edcd7e84fe68d5b1afffd28ae0d32f4dbdb44fa8001fc + languageName: node + linkType: hard + +"@floating-ui/utils@npm:0.2.10, @floating-ui/utils@npm:^0.2.10": version: 0.2.10 resolution: "@floating-ui/utils@npm:0.2.10" checksum: 10c0/e9bc2a1730ede1ee25843937e911ab6e846a733a4488623cd353f94721b05ec2c9ec6437613a2ac9379a94c2fd40c797a2ba6fa1df2716f5ce4aa6ddb1cf9ea4 @@ -7287,6 +7218,20 @@ __metadata: languageName: node linkType: hard +"@handlewithcare/prosemirror-inputrules@npm:^0.1.4": + version: 0.1.4 + resolution: "@handlewithcare/prosemirror-inputrules@npm:0.1.4" + dependencies: + prosemirror-history: "npm:^1.4.1" + prosemirror-transform: "npm:^1.0.0" + peerDependencies: + prosemirror-model: ^1.0.0 + prosemirror-state: ^1.0.0 + prosemirror-view: ^1.0.0 + checksum: 10c0/639545966a73b9bfe45a2baef20e318d27fdb7614dff8e5d9defc2c4e20fafcb437a7c496d0c14c2daff74a20130d284ce84a33c67fd5dc621c8358a0ab9fc44 + languageName: node + linkType: hard + "@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": version: 9.3.0 resolution: "@hapi/hoek@npm:9.3.0" @@ -10334,34 +10279,34 @@ __metadata: languageName: node linkType: hard -"@mantine/core@npm:^7.10.1": - version: 7.12.0 - resolution: "@mantine/core@npm:7.12.0" +"@mantine/core@npm:^8.3.11": + version: 8.3.15 + resolution: "@mantine/core@npm:8.3.15" dependencies: - "@floating-ui/react": "npm:^0.26.9" + "@floating-ui/react": "npm:^0.27.16" clsx: "npm:^2.1.1" - react-number-format: "npm:^5.3.1" - react-remove-scroll: "npm:^2.5.7" - react-textarea-autosize: "npm:8.5.3" - type-fest: "npm:^4.12.0" + react-number-format: "npm:^5.4.4" + react-remove-scroll: "npm:^2.7.1" + react-textarea-autosize: "npm:8.5.9" + type-fest: "npm:^4.41.0" peerDependencies: - "@mantine/hooks": 7.12.0 - react: ^18.2.0 - react-dom: ^18.2.0 - checksum: 10c0/afd39a0202375aa709bf8e147326cabee65eaa8cd8a9c70830377f5f2612de58e0812837a4064ce346950e1406a5cd02147cac591f0f043ff2b464c69628004d + "@mantine/hooks": 8.3.15 + react: ^18.x || ^19.x + react-dom: ^18.x || ^19.x + checksum: 10c0/e43a55ecd7fa8b69834cf86d6fa44ee4e2718eb1d477e9456e9b49017c48175766d6cf7bbb9b136a136320b6f7d27c4a9b86d2cd1d7cfa33ef406ee446866140 languageName: node linkType: hard -"@mantine/hooks@npm:^7.10.1": - version: 7.12.0 - resolution: "@mantine/hooks@npm:7.12.0" +"@mantine/hooks@npm:^8.3.11": + version: 8.3.15 + resolution: "@mantine/hooks@npm:8.3.15" peerDependencies: - react: ^18.2.0 - checksum: 10c0/f6004a2cb78c82d4cce2a576430021cd4caa84709714fa3e4aac35250aa61953ca65de0a72b6489665688a2731b2b052b1fb3dc872d592d7ec84c22d6e1d6fea + react: ^18.x || ^19.x + checksum: 10c0/e4b8af33243fbf5a09385874b8c0349acd8992b3b1d19551e22d5574b09f8871ec62c2254a48529c81e84b25a48888b38f98c1aec4d3ec0cfc47600c689e9327 languageName: node linkType: hard -"@mantine/utils@npm:^6.0.21": +"@mantine/utils@npm:^6.0.22": version: 6.0.22 resolution: "@mantine/utils@npm:6.0.22" peerDependencies: @@ -20150,21 +20095,21 @@ __metadata: languageName: node linkType: hard -"@sentry-internal/browser-utils@npm:10.40.0": - version: 10.40.0 - resolution: "@sentry-internal/browser-utils@npm:10.40.0" +"@sentry-internal/browser-utils@npm:10.27.0": + version: 10.27.0 + resolution: "@sentry-internal/browser-utils@npm:10.27.0" dependencies: - "@sentry/core": "npm:10.40.0" - checksum: 10c0/9801776fad1c7e9690823588d978631dad4e66fd5e8eab934e9e508306e7d6d149982d6270e00687d62c96255dabb930871f841f7674ab273ead19c1b38bb700 + "@sentry/core": "npm:10.27.0" + checksum: 10c0/9b6760be5829ee8a16aa85b7b3c01c9ee3372008c4efa3b15f97596abd3f8a1f5f6fa0545734f3dffa4c210948c7c069b69911aa86193734060b332adf6404e5 languageName: node linkType: hard -"@sentry-internal/feedback@npm:10.40.0": - version: 10.40.0 - resolution: "@sentry-internal/feedback@npm:10.40.0" +"@sentry-internal/feedback@npm:10.27.0": + version: 10.27.0 + resolution: "@sentry-internal/feedback@npm:10.27.0" dependencies: - "@sentry/core": "npm:10.40.0" - checksum: 10c0/8694d99adef186c6e93c9b48638391cefbf3a6414ef9ad5bd250740fbc69685b0fb6362734446ee5473b3f82177b4ae72c228ee9dc6f5b07bd423c8eaf8419db + "@sentry/core": "npm:10.27.0" + checksum: 10c0/7fb6050c79db849943f3015aad6238a97de6154aef60d8762f3f839daf7c8fa0bea4e72764ecac4367bc87c7a6f89200a11c47043013d866cba4d9bedb2ca618 languageName: node linkType: hard @@ -20179,36 +20124,36 @@ __metadata: languageName: node linkType: hard -"@sentry-internal/replay-canvas@npm:10.40.0": - version: 10.40.0 - resolution: "@sentry-internal/replay-canvas@npm:10.40.0" +"@sentry-internal/replay-canvas@npm:10.27.0": + version: 10.27.0 + resolution: "@sentry-internal/replay-canvas@npm:10.27.0" dependencies: - "@sentry-internal/replay": "npm:10.40.0" - "@sentry/core": "npm:10.40.0" - checksum: 10c0/c1f359945eb1dfdbe37053b67a25cd2f241cd6370b24679bc32512e14af4dc3bd92c9663dbca5e66e206f7633dcb1bf521d989ef8f25e7faa998a3ee84ba1c46 + "@sentry-internal/replay": "npm:10.27.0" + "@sentry/core": "npm:10.27.0" + checksum: 10c0/85c4d1f8fc010ae4107a7b5f00878e50d694782f7c2689d0604cff2c8be0089f6c0b791c54b4964515f20f292e791fcece0da16f1731992754e6d92bb5f66314 languageName: node linkType: hard -"@sentry-internal/replay@npm:10.40.0": - version: 10.40.0 - resolution: "@sentry-internal/replay@npm:10.40.0" +"@sentry-internal/replay@npm:10.27.0": + version: 10.27.0 + resolution: "@sentry-internal/replay@npm:10.27.0" dependencies: - "@sentry-internal/browser-utils": "npm:10.40.0" - "@sentry/core": "npm:10.40.0" - checksum: 10c0/ce7bf12b12360caabccfe60cc0bc6c96cef151a2897fb2d2fa645d845ff812457df72cd8d16bd167ae5ccdf9a8932905be435f2b473d7b0efa6c106837412fbf + "@sentry-internal/browser-utils": "npm:10.27.0" + "@sentry/core": "npm:10.27.0" + checksum: 10c0/161a78f6f26320266f33546f8697f7e2a9e1abd9157dee7562e6755cc48b04a97b36eab0d04c9ac7d52359125f8125fb91a40eff8137065b33161eaeaa24d981 languageName: node linkType: hard -"@sentry/browser@npm:10.40.0": - version: 10.40.0 - resolution: "@sentry/browser@npm:10.40.0" +"@sentry/browser@npm:10.27.0": + version: 10.27.0 + resolution: "@sentry/browser@npm:10.27.0" dependencies: - "@sentry-internal/browser-utils": "npm:10.40.0" - "@sentry-internal/feedback": "npm:10.40.0" - "@sentry-internal/replay": "npm:10.40.0" - "@sentry-internal/replay-canvas": "npm:10.40.0" - "@sentry/core": "npm:10.40.0" - checksum: 10c0/4a383bf7d47640d0b5d14e39da3ebd35c88c93b048df13849eea22316f6ee44caf6221005fe87776eb9957219f50702e07f11213d405af1095acdab7fb62bbdb + "@sentry-internal/browser-utils": "npm:10.27.0" + "@sentry-internal/feedback": "npm:10.27.0" + "@sentry-internal/replay": "npm:10.27.0" + "@sentry-internal/replay-canvas": "npm:10.27.0" + "@sentry/core": "npm:10.27.0" + checksum: 10c0/172847414dd243fd710368c40664cbb92fdcc4de39231cef4aa2c997c7ca5d39093dbb1c87ed35fe64a118848609e51c9250d6e81460c947ecc462045cdd7b21 languageName: node linkType: hard @@ -20226,13 +20171,6 @@ __metadata: languageName: node linkType: hard -"@sentry/core@npm:10.40.0": - version: 10.40.0 - resolution: "@sentry/core@npm:10.40.0" - checksum: 10c0/76dc283cda98ae854be63a1836ea77abaf2a3db88b592ae086982e89d2a9d163b5e92819cbf3005bffc459a56ca90b0f71cc908cce7c55e147606b111a4dbb8a - languageName: node - linkType: hard - "@sentry/core@npm:8.55.0": version: 8.55.0 resolution: "@sentry/core@npm:8.55.0" @@ -20428,14 +20366,15 @@ __metadata: linkType: hard "@sentry/react@npm:^10.27.0": - version: 10.40.0 - resolution: "@sentry/react@npm:10.40.0" + version: 10.27.0 + resolution: "@sentry/react@npm:10.27.0" dependencies: - "@sentry/browser": "npm:10.40.0" - "@sentry/core": "npm:10.40.0" + "@sentry/browser": "npm:10.27.0" + "@sentry/core": "npm:10.27.0" + hoist-non-react-statics: "npm:^3.3.2" peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - checksum: 10c0/f7efc5b58d43ed96c37e0dcbfee9cc0d6cb75370d0e88d434a2cf4fdea51b8adffc9b6db8258339d7f5ba16920231ad44488933d9e15e8b8fb420aeacf83922e + checksum: 10c0/d6e9153ab3b0cfa94a7708149b4b9ac46832d88243a34f4e0a848e7660b3c7285ceb748f63bc0491f22b53c2b5d9f502968fd7559f0c802dd438513fc4a47093 languageName: node linkType: hard @@ -20532,13 +20471,13 @@ __metadata: languageName: node linkType: hard -"@shikijs/types@npm:3.2.1": - version: 3.2.1 - resolution: "@shikijs/types@npm:3.2.1" +"@shikijs/types@npm:^3": + version: 3.22.0 + resolution: "@shikijs/types@npm:3.22.0" dependencies: "@shikijs/vscode-textmate": "npm:^10.0.2" "@types/hast": "npm:^3.0.4" - checksum: 10c0/3380fde198d466a8771137b7ca3d4756a54d7d24c6e65f852737472a280c12c07f2123b9ad3d7eb2edec86d8d2c53bc207abe0fc0c7f78d337e52e742dc34edf + checksum: 10c0/68e5bb1827609fc026cba5a88442f41dd948f68fc4f23de0912ef2498944116471b543a5f40ab4ff2c2056399873c755fe717185fd4f8c928002fba934bd3a7b languageName: node linkType: hard @@ -22552,6 +22491,19 @@ __metadata: languageName: node linkType: hard +"@tanstack/react-store@npm:0.7.7": + version: 0.7.7 + resolution: "@tanstack/react-store@npm:0.7.7" + dependencies: + "@tanstack/store": "npm:0.7.7" + use-sync-external-store: "npm:^1.5.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/12f5119492503aeac0bb45fc41bda140630ccbb6b5b92ebc5dbc1bf0e32728820dbb9455821850aa87bdc15793d4efbf98fa0ff04bb85363fe4d77c03547f13e + languageName: node + linkType: hard + "@tanstack/react-virtual@npm:^3.0.0-beta.60": version: 3.8.4 resolution: "@tanstack/react-virtual@npm:3.8.4" @@ -22564,6 +22516,13 @@ __metadata: languageName: node linkType: hard +"@tanstack/store@npm:0.7.7, @tanstack/store@npm:^0.7.7": + version: 0.7.7 + resolution: "@tanstack/store@npm:0.7.7" + checksum: 10c0/bf90fa957bd97336d7dbc0d7b87379b5fe4baea030efef8a93fe4e49ac1c8bc929247d1a9f84b16a1642e386b67fe53be14df8d5415efdf85f83733ccdf8877a + languageName: node + linkType: hard + "@tanstack/virtual-core@npm:3.13.2": version: 3.13.2 resolution: "@tanstack/virtual-core@npm:3.13.2" @@ -22658,12 +22617,12 @@ __metadata: languageName: node linkType: hard -"@tiptap/core@npm:^2.12.0": - version: 2.12.0 - resolution: "@tiptap/core@npm:2.12.0" +"@tiptap/core@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/core@npm:3.20.0" peerDependencies: - "@tiptap/pm": ^2.7.0 - checksum: 10c0/d2d781c9356dd8fb6339ec09f6abaa9140b2e122f28d1c6c1e3a1d39f546d9af34156720970bfb252bf805c0ce2930e7af078da6e4a9ada20f34976b0aae1504 + "@tiptap/pm": ^3.20.0 + checksum: 10c0/e0379521c5066f88aad207e66fb6a768f1f4b0313c4ec19db53bc839646b33128b7eed4e29a26598060cd319b8273f3ccfdc2e5079a03eafefc1fc9ce2862c1e languageName: node linkType: hard @@ -22676,24 +22635,24 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-bold@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-bold@npm:2.12.0" +"@tiptap/extension-bold@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/extension-bold@npm:3.20.0" peerDependencies: - "@tiptap/core": ^2.7.0 - checksum: 10c0/3bf20002e8f31044d6d1ed33876ebfd191e8e6e8e244c03ab17c5d52223441603697dbbda03a512b8ffc7826084bf80a7bc049333d45bc3cfb005cdc413fd762 + "@tiptap/core": ^3.20.0 + checksum: 10c0/e07c50414aef8b0b02040e1a4f6ce2494e2087980de9b19b73463f61ed96ccc446ff311afd1582686336d8428b0e0e3b0bb1a6287c85fbc3592d967d17267388 languageName: node linkType: hard -"@tiptap/extension-bubble-menu@npm:^2.12.0": - version: 2.12.0 - resolution: "@tiptap/extension-bubble-menu@npm:2.12.0" +"@tiptap/extension-bubble-menu@npm:^3.20.0": + version: 3.20.0 + resolution: "@tiptap/extension-bubble-menu@npm:3.20.0" dependencies: - tippy.js: "npm:^6.3.7" + "@floating-ui/dom": "npm:^1.0.0" peerDependencies: - "@tiptap/core": ^2.7.0 - "@tiptap/pm": ^2.7.0 - checksum: 10c0/f60a8a0ae08c849b9b2b6f83049909ffec011c5ee64316ce99ba4496854a70c98746713c60836e189ea6b5dcdc0a7404ce25b46c4a52ea948b2b18c4cafc5219 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 + checksum: 10c0/c9d435ebe7236165e0b3e5594d96950f06145ffcfcaaa0bcfc65c3bf4e833952ad2f02d3959c9ff4e7162c77ef8b565535a0fba2e061afe74784cc49e0c6ced8 languageName: node linkType: hard @@ -22709,12 +22668,12 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-code@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-code@npm:2.12.0" +"@tiptap/extension-code@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/extension-code@npm:3.20.0" peerDependencies: - "@tiptap/core": ^2.7.0 - checksum: 10c0/749c2d39a9fe00ba1ed59083f5dc1a2b5a053943b13e18528444d3c9146002d437d00da4762c93f5b9e1e3eee210c78ad7f07e9e50391f27013a63fe13cca790 + "@tiptap/core": ^3.20.0 + checksum: 10c0/41b555b102b1f9412adedc7a722f8dd244993e14fb4dfb4201b1595ab90dc54d98e6327883a3f74ada4d77b388685027c1fd770d6e818a095597f57b6c9fcd83 languageName: node linkType: hard @@ -22727,15 +22686,14 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-floating-menu@npm:^2.12.0": - version: 2.12.0 - resolution: "@tiptap/extension-floating-menu@npm:2.12.0" - dependencies: - tippy.js: "npm:^6.3.7" +"@tiptap/extension-floating-menu@npm:^3.20.0": + version: 3.20.0 + resolution: "@tiptap/extension-floating-menu@npm:3.20.0" peerDependencies: - "@tiptap/core": ^2.7.0 - "@tiptap/pm": ^2.7.0 - checksum: 10c0/e11fa42e765d5db699a99c84b3ef58b802814166437225b971b027ab5baaa3482507c568256e72b022f02e8c1068a03a6ca95f38ae73bdaa855b7a10b15c4a5e + "@floating-ui/dom": ^1.0.0 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 + checksum: 10c0/69ff4b552772c71261abbb5f0cda9d972fd688717c8ad989cfa349f48a781a7fb9912b28d74fa5f2ee901a8c02e837cb6c6e4027cf8d435bf007267773acd7cb languageName: node linkType: hard @@ -22750,16 +22708,6 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-gapcursor@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-gapcursor@npm:2.12.0" - peerDependencies: - "@tiptap/core": ^2.7.0 - "@tiptap/pm": ^2.7.0 - checksum: 10c0/c40191fb9f1c4f4161ce54a66e9bbece598c5c81cb2f21280312cd49fb7fab32f6982e7c6695be1860dd1b52301738494a6e7328a2b9ef140c620aadf40274ac - languageName: node - linkType: hard - "@tiptap/extension-hard-break@npm:3.4.2": version: 3.4.2 resolution: "@tiptap/extension-hard-break@npm:3.4.2" @@ -22778,23 +22726,13 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-history@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-history@npm:2.12.0" +"@tiptap/extension-horizontal-rule@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/extension-horizontal-rule@npm:3.20.0" peerDependencies: - "@tiptap/core": ^2.7.0 - "@tiptap/pm": ^2.7.0 - checksum: 10c0/4a174c475b34eb958cc382b665be830254845575b636e46f2a4887e197205bbec6e874e0d63a9fdfbbe97d30996e40ee6aee7606a3d9b251f9b7d62b21554674 - languageName: node - linkType: hard - -"@tiptap/extension-horizontal-rule@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-horizontal-rule@npm:2.12.0" - peerDependencies: - "@tiptap/core": ^2.7.0 - "@tiptap/pm": ^2.7.0 - checksum: 10c0/12db7ede3e58e80ebe41f911c791b37b2b8b0a2f3bae90ec96fb3362d059a71cd2fac61f0c79ff1db30f101a78d4980aad7c60c741d9a7413b155fb6304c3ab0 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 + checksum: 10c0/40c7b3e77987b5892cbfb8fce065eb92d007c00a682b83d3f404f6c75679b468850bbf3a09b6ffbc7a375ebc33406f2f81a068b74394886c91bbcb5f688c1ede languageName: node linkType: hard @@ -22816,12 +22754,12 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-italic@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-italic@npm:2.12.0" +"@tiptap/extension-italic@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/extension-italic@npm:3.20.0" peerDependencies: - "@tiptap/core": ^2.7.0 - checksum: 10c0/329ee4add2808124278a49cc44f92593fad1a25d848ce8d4307cdc2ccd4521c604da4c802cc6c49d95f3e2ddfad4fa68fffa43499c8ff038abc92f1e502299c5 + "@tiptap/core": ^3.20.0 + checksum: 10c0/682b772a6921751688a1703e89df1f2739f1f6ca136aa92e633d3801a73e2613c7816ef55ba09edf3be5ada5653a414cc77118cd6d6795832020f221bdf249c9 languageName: node linkType: hard @@ -22837,15 +22775,15 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-link@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-link@npm:2.12.0" +"@tiptap/extension-link@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/extension-link@npm:3.20.0" dependencies: - linkifyjs: "npm:^4.2.0" + linkifyjs: "npm:^4.3.2" peerDependencies: - "@tiptap/core": ^2.7.0 - "@tiptap/pm": ^2.7.0 - checksum: 10c0/73a20ac527e67be1a331a7390f914eb7382b7fcd744805ac24da58d156a840a0aabcd35bc9a23db3ddb9429d8a0ea0cdc87e271606076457196ace49babe03e1 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 + checksum: 10c0/11cb90bd5620fe2b3fe94db6b3569fd445d88ebdfa887c36e6342a9cb9c10c5afa532ff558df7421de65df63d02e48566918d929cdb1f3896cfab8373891a33b languageName: node linkType: hard @@ -22868,12 +22806,12 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-paragraph@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-paragraph@npm:2.12.0" +"@tiptap/extension-paragraph@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/extension-paragraph@npm:3.20.0" peerDependencies: - "@tiptap/core": ^2.7.0 - checksum: 10c0/34ad63814334913af1aeecfbcafde327b333df6433f5582b957f7ab0aebfbfb34e5403d95ff868616b2922301ed8bb148d1eea8e6dc4e23b81abe18f4b376c47 + "@tiptap/core": ^3.20.0 + checksum: 10c0/0c751b30e07ad63f2e53c3f29b6b82cd3c41bbf85b0a034816636401ccfecb44d6f66a3eea6b003d9b2346732aa1c823865d2660572fc8df7599b66ed5590463 languageName: node linkType: hard @@ -22886,30 +22824,12 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-strike@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-strike@npm:2.12.0" +"@tiptap/extension-strike@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/extension-strike@npm:3.20.0" peerDependencies: - "@tiptap/core": ^2.7.0 - checksum: 10c0/b949eff6db6a8bcfbec8e4f6f653b678125969077392f2452d6b6fe7e0104d2106e2cd3ea925b8229322b9951865b22e6ef48e0869a5ce755e764114882ba4d2 - languageName: node - linkType: hard - -"@tiptap/extension-table-cell@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-table-cell@npm:2.12.0" - peerDependencies: - "@tiptap/core": ^2.7.0 - checksum: 10c0/019f9ded0143c142ad9132d38ba3f22545af6bb2145f704a2cbfe91c9baddd9d395a08cc75508cdb7434632ca2ae0c93cbe2d7f16d0dad4407de473ac9887e52 - languageName: node - linkType: hard - -"@tiptap/extension-table-header@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-table-header@npm:2.12.0" - peerDependencies: - "@tiptap/core": ^2.7.0 - checksum: 10c0/2d6cd00367514452d35a3a668cf987e3f51f305b39d0fd8e1d1712c16e0d6896f7959ebef6ed54aa0b9a72f7c39b1d1cdd230a7cf80e6f26c69caefa93f624db + "@tiptap/core": ^3.20.0 + checksum: 10c0/b829416287919d38bb5a88443ccc202fde2852f632b2e31664538017f4c762406094b5a6fd0d2d77eebba988674a2ffd0644c74e96273d4ca15653ec916d7407 languageName: node linkType: hard @@ -22922,12 +22842,12 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-text@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-text@npm:2.12.0" +"@tiptap/extension-text@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/extension-text@npm:3.20.0" peerDependencies: - "@tiptap/core": ^2.7.0 - checksum: 10c0/5e6905be1d59c7939de4da6eb2601cfdf7bb29bd11d96cb34a8c17fc99c1ae75deb3d7e9549935502ca5110b5de9b387d8f9129ff7e22dc6403b0b9d9029045b + "@tiptap/core": ^3.20.0 + checksum: 10c0/8bbea62613ed3958524d5087cdf27794421f597148c3b862c30ea33bb55ba23684f4a50696a2d43367d9bd9049faa61f2080b22e06054e16b7e74f31cf76a877 languageName: node linkType: hard @@ -22940,12 +22860,12 @@ __metadata: languageName: node linkType: hard -"@tiptap/extension-underline@npm:^2.11.5": - version: 2.12.0 - resolution: "@tiptap/extension-underline@npm:2.12.0" +"@tiptap/extension-underline@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/extension-underline@npm:3.20.0" peerDependencies: - "@tiptap/core": ^2.7.0 - checksum: 10c0/b00460567545e92501e29647dadd973091a892f14f813838ca9023a144c6e8f6d9571de47e025fed32bb48c75197e81941c34aee9d4402c67ebf718a9c084c07 + "@tiptap/core": ^3.20.0 + checksum: 10c0/ddef69bac180766fd70933b6b5e51fcc4d446dd548fae9fc2b81bc4b058d749138f5d2d61b6e502483304e4241c3167e2455f4481d9b03c652036d48249df90b languageName: node linkType: hard @@ -22959,9 +22879,19 @@ __metadata: languageName: node linkType: hard -"@tiptap/pm@npm:^2.12.0": - version: 2.12.0 - resolution: "@tiptap/pm@npm:2.12.0" +"@tiptap/extensions@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/extensions@npm:3.20.0" + peerDependencies: + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 + checksum: 10c0/21d31c0ae65568339f2ea1508ac0cb7a02be307e23628f2bfcaa77fca7e0010585e46cde39232ecd226f45753ed33b5736d57c6bee433a0d1d136566032bb38e + languageName: node + linkType: hard + +"@tiptap/pm@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/pm@npm:3.20.0" dependencies: prosemirror-changeset: "npm:^2.3.0" prosemirror-collab: "npm:^1.3.1" @@ -22973,15 +22903,15 @@ __metadata: prosemirror-keymap: "npm:^1.2.2" prosemirror-markdown: "npm:^1.13.1" prosemirror-menu: "npm:^1.2.4" - prosemirror-model: "npm:^1.23.0" + prosemirror-model: "npm:^1.24.1" prosemirror-schema-basic: "npm:^1.2.3" - prosemirror-schema-list: "npm:^1.4.1" + prosemirror-schema-list: "npm:^1.5.0" prosemirror-state: "npm:^1.4.3" prosemirror-tables: "npm:^1.6.4" prosemirror-trailing-node: "npm:^3.0.0" prosemirror-transform: "npm:^1.10.2" - prosemirror-view: "npm:^1.37.0" - checksum: 10c0/b64b19a627a74901c5c397d36c04162b8e223835f4d8ea1ce71be4b222337434e6553699189d1e0ae856ba60a06c8b28bb30ff9e21cfc05dac8a3ec2f6376fde + prosemirror-view: "npm:^1.38.1" + checksum: 10c0/e9e04a7450d72fdf61d777b670461c881d04386fd05e04cc278fa697f58a87bc010ff2f5fee956e9434b6f559df547e828b5f67dc2023b9e443cc2702458571d languageName: node linkType: hard @@ -23010,21 +22940,28 @@ __metadata: languageName: node linkType: hard -"@tiptap/react@npm:^2.12.0": - version: 2.12.0 - resolution: "@tiptap/react@npm:2.12.0" +"@tiptap/react@npm:^3.13.0": + version: 3.20.0 + resolution: "@tiptap/react@npm:3.20.0" dependencies: - "@tiptap/extension-bubble-menu": "npm:^2.12.0" - "@tiptap/extension-floating-menu": "npm:^2.12.0" + "@tiptap/extension-bubble-menu": "npm:^3.20.0" + "@tiptap/extension-floating-menu": "npm:^3.20.0" "@types/use-sync-external-store": "npm:^0.0.6" - fast-deep-equal: "npm:^3" - use-sync-external-store: "npm:^1" + fast-equals: "npm:^5.3.3" + use-sync-external-store: "npm:^1.4.0" peerDependencies: - "@tiptap/core": ^2.7.0 - "@tiptap/pm": ^2.7.0 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 + "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 + "@types/react-dom": ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 - checksum: 10c0/f9769e35bf3c09e5bc5a01322041506319431005952d50b048355ab8009eee519090f5407cd428fe498aab7310b006c5523716364dfdbb6992a739c6373a8a8f + dependenciesMeta: + "@tiptap/extension-bubble-menu": + optional: true + "@tiptap/extension-floating-menu": + optional: true + checksum: 10c0/17a5d4f12e9f348b584da2336f822b5f7c5c4a0bc009da4ddabd76dd8c7453aa01b5a94adf22805da9c78dd80a81704ca924b4f4a26ac5922e89ba839364d133 languageName: node linkType: hard @@ -24508,7 +24445,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.5.5, @types/node@npm:^22.7.5": +"@types/node@npm:^22.5.5": version: 22.18.1 resolution: "@types/node@npm:22.18.1" dependencies: @@ -24517,6 +24454,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^25.2.3": + version: 25.3.0 + resolution: "@types/node@npm:25.3.0" + dependencies: + undici-types: "npm:~7.18.0" + checksum: 10c0/7b2b18c9d68047157367fc2f786d4f166d22dc0ad9f82331ca02fb16f2f391854123dbe604dcb938cda119c87051e4bb71dcb9ece44a579f483a6f96d4bd41de + languageName: node + linkType: hard + "@types/nodemailer@npm:^7.0.3": version: 7.0.9 resolution: "@types/nodemailer@npm:7.0.9" @@ -25018,6 +24964,13 @@ __metadata: languageName: node linkType: hard +"@types/use-sync-external-store@npm:1.5.0": + version: 1.5.0 + resolution: "@types/use-sync-external-store@npm:1.5.0" + checksum: 10c0/59790cc055c693b510c7c25bf326ce3faef103b0bce47da18e72d3d796618ea6339da432e4359fa6b28f920e0b0265c317bbe129d5fe50e8941f59a5138a96f3 + languageName: node + linkType: hard + "@types/use-sync-external-store@npm:^0.0.3": version: 0.0.3 resolution: "@types/use-sync-external-store@npm:0.0.3" @@ -34125,17 +34078,17 @@ __metadata: languageName: node linkType: hard -"docx@npm:^9.0.2, docx@npm:^9.1.0": - version: 9.1.0 - resolution: "docx@npm:9.1.0" +"docx@npm:^9.5.1": + version: 9.6.0 + resolution: "docx@npm:9.6.0" dependencies: - "@types/node": "npm:^22.7.5" + "@types/node": "npm:^25.2.3" hash.js: "npm:^1.1.7" jszip: "npm:^3.10.1" - nanoid: "npm:^5.0.4" + nanoid: "npm:^5.1.3" xml: "npm:^1.0.1" xml-js: "npm:^1.6.8" - checksum: 10c0/e16201b36dd40eef4dba8ed0cf1d7be24236c74279831ec0e14e91b2aac3d7ba7f9959a7e3e0694a30ccde240cd31ced40510fd152fde0c0a0544c0cae576dbc + checksum: 10c0/4ec8e00966276898468bb111721a9548327a4adf47d042d77d33d9f9d25998a86302900f327e52b5797c31a8b64db037afeb5bfb312930112861824a45100919 languageName: node linkType: hard @@ -36909,7 +36862,7 @@ __metadata: languageName: node linkType: hard -"fast-deep-equal@npm:^3, fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 @@ -36930,6 +36883,13 @@ __metadata: languageName: node linkType: hard +"fast-equals@npm:^5.3.3": + version: 5.4.0 + resolution: "fast-equals@npm:5.4.0" + checksum: 10c0/4fdce3a8f814e78af7296ca4ebe82f4765074a6dfe557ee98c18f5d2958c3de59025fbff7556d65f250165ccef424d37f9952ee159400f8ebe5f2edb704ec80e + languageName: node + linkType: hard + "fast-fifo@npm:^1.2.0, fast-fifo@npm:^1.3.2": version: 1.3.2 resolution: "fast-fifo@npm:1.3.2" @@ -40154,10 +40114,10 @@ __metadata: languageName: node linkType: hard -"image-meta@npm:^0.2.1": - version: 0.2.1 - resolution: "image-meta@npm:0.2.1" - checksum: 10c0/c8a100b666663ad53ffe95c22647e79802d6eac6dfa3e1a00e4cf034129b4a13e7861b5c5a7cee46604a45a9e0c8ed91e73233c7bf9f48fbece5f0300ef6912c +"image-meta@npm:^0.2.2": + version: 0.2.2 + resolution: "image-meta@npm:0.2.2" + checksum: 10c0/4c821b9f09e5117f4aab2864e07d8aea9e1079a432f2d93ec79aafbdc4fbd164451388bb6d6c0a1f1e3b5b5838e42533b0feedba05fab2e1a6c0242c559ca40b languageName: node linkType: hard @@ -44111,7 +44071,20 @@ __metadata: languageName: node linkType: hard -"lib0@npm:^0.2.100, lib0@npm:^0.2.85, lib0@npm:^0.2.88, lib0@npm:^0.2.99": +"lib0@npm:^0.2.109": + version: 0.2.117 + resolution: "lib0@npm:0.2.117" + dependencies: + isomorphic.js: "npm:^0.2.4" + bin: + 0ecdsa-generate-keypair: bin/0ecdsa-generate-keypair.js + 0gentesthtml: bin/gentesthtml.js + 0serve: bin/0serve.js + checksum: 10c0/d1b9205890d5d0cbd95ffdb0d6df6f9fd2c315b89e195fc9b015f3778046fb34bc12e94205ccf410a3073b836444045dcef6671fa2f6d5a7f70ebf8b6b0c0616 + languageName: node + linkType: hard + +"lib0@npm:^0.2.85, lib0@npm:^0.2.88, lib0@npm:^0.2.99": version: 0.2.108 resolution: "lib0@npm:0.2.108" dependencies: @@ -44237,7 +44210,7 @@ __metadata: languageName: node linkType: hard -"linkifyjs@npm:^4.1.3, linkifyjs@npm:^4.2.0, linkifyjs@npm:^4.3.2": +"linkifyjs@npm:^4.1.3, linkifyjs@npm:^4.3.2": version: 4.3.2 resolution: "linkifyjs@npm:4.3.2" checksum: 10c0/1a85e6b368304a4417567fe5e38651681e3e82465590836942d1b4f3c834cc35532898eb1e2479f6337d9144b297d418eb708b6be8ed0b3dc3954a3588e07971 @@ -47053,7 +47026,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^5.0.1, nanoid@npm:^5.0.4, nanoid@npm:^5.0.7, nanoid@npm:^5.0.9": +"nanoid@npm:^5.0.1, nanoid@npm:^5.0.7, nanoid@npm:^5.0.9": version: 5.1.3 resolution: "nanoid@npm:5.1.3" bin: @@ -47062,6 +47035,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^5.1.3": + version: 5.1.6 + resolution: "nanoid@npm:5.1.6" + bin: + nanoid: bin/nanoid.js + checksum: 10c0/27b5b055ad8332cf4f0f9f6e2a494aa7e5ded89df4cab8c8490d4eabefe72c4423971d2745d22002868b1d50576a5e42b7b05214733b19f576382323282dd26e + languageName: node + linkType: hard + "napi-build-utils@npm:^1.0.1": version: 1.0.2 resolution: "napi-build-utils@npm:1.0.2" @@ -50961,14 +50943,14 @@ __metadata: languageName: node linkType: hard -"prosemirror-dropcursor@npm:^1.8.1": - version: 1.8.1 - resolution: "prosemirror-dropcursor@npm:1.8.1" +"prosemirror-dropcursor@npm:^1.8.1, prosemirror-dropcursor@npm:^1.8.2": + version: 1.8.2 + resolution: "prosemirror-dropcursor@npm:1.8.2" dependencies: prosemirror-state: "npm:^1.0.0" prosemirror-transform: "npm:^1.1.0" prosemirror-view: "npm:^1.1.0" - checksum: 10c0/2948cac48efb32757b212bd7cc5a50697ea6c3f6e4cd7752a2696c56b758fa0a16a5a6e288174a649544a0260a6b70d29e0fcb8839a05926c1c3a02f8de03aed + checksum: 10c0/c3d9e456a64fecc77a6e6a0350116598550dee8cb55f74e8b66fdb26150c48340ddd1f43184134b24d0f2e710b6879ff6ec72c215dc618a6a673320a91c90478 languageName: node linkType: hard @@ -51045,13 +51027,13 @@ __metadata: languageName: node linkType: hard -"prosemirror-keymap@npm:^1.0.0, prosemirror-keymap@npm:^1.2.1, prosemirror-keymap@npm:^1.2.2": - version: 1.2.2 - resolution: "prosemirror-keymap@npm:1.2.2" +"prosemirror-keymap@npm:^1.0.0, prosemirror-keymap@npm:^1.2.1, prosemirror-keymap@npm:^1.2.2, prosemirror-keymap@npm:^1.2.3": + version: 1.2.3 + resolution: "prosemirror-keymap@npm:1.2.3" dependencies: prosemirror-state: "npm:^1.0.0" w3c-keyname: "npm:^2.2.0" - checksum: 10c0/7aa28c731e00962c90c91361a3c9f7000f960870a1300f7477da8afa8fd1b9cce0b3b7ca483aaa5832fd0bf88b5ff081defc184592997b08980b9ab67eeddcb7 + checksum: 10c0/0ec2f8bd9b608d0e6a0cdab1d66f9a6b41edcff0239b32ccca1018a0733e52448e4758218a2d472fb8c33c1609426dc6bad4944b28c1c3d509a83201a23035e9 languageName: node linkType: hard @@ -51078,12 +51060,12 @@ __metadata: languageName: node linkType: hard -"prosemirror-model@npm:^1.0.0, prosemirror-model@npm:^1.19.0, prosemirror-model@npm:^1.20.0, prosemirror-model@npm:^1.21.0, prosemirror-model@npm:^1.23.0, prosemirror-model@npm:^1.25.0, prosemirror-model@npm:^1.25.1": - version: 1.25.1 - resolution: "prosemirror-model@npm:1.25.1" +"prosemirror-model@npm:^1.0.0, prosemirror-model@npm:^1.19.0, prosemirror-model@npm:^1.20.0, prosemirror-model@npm:^1.21.0, prosemirror-model@npm:^1.24.1, prosemirror-model@npm:^1.25.4": + version: 1.25.4 + resolution: "prosemirror-model@npm:1.25.4" dependencies: orderedmap: "npm:^2.0.0" - checksum: 10c0/0974fec71f1d0fcfaa5c0350864dcdbfd95092a026460bbc96208c7b8d84f86444504cb746fd558009102a7debbde32c35d9d98da97382ad729ccaeaef729131 + checksum: 10c0/5ba99a235497df3452c0e2dfb71ee05d898fb9cb539c2a92583524fc4f337d8abab5c6b49b3af242c86327ea27cce41c7169a1e0c7bb4f7ef1502b311bd00cfc languageName: node linkType: hard @@ -51096,38 +51078,38 @@ __metadata: languageName: node linkType: hard -"prosemirror-schema-list@npm:^1.4.1": - version: 1.4.1 - resolution: "prosemirror-schema-list@npm:1.4.1" +"prosemirror-schema-list@npm:^1.5.0": + version: 1.5.1 + resolution: "prosemirror-schema-list@npm:1.5.1" dependencies: prosemirror-model: "npm:^1.0.0" prosemirror-state: "npm:^1.0.0" prosemirror-transform: "npm:^1.7.3" - checksum: 10c0/61c664bea2343b13db47d4f5d86dafb453f0102f7b85fa8ad0432e9c7ef5d14134ceb275ff3419cf2be85d4a7fb9e6974945f2b4b652d0cf3a3aca586f5e0838 + checksum: 10c0/e6fd27446bc90556a9797f6ca0cb54e7db53cc7c20fbf633b7d0f4709c45accfa2f3a0f6575fe47aa83cb75781a9b773198d236a44db9d8eef2802a1501e4301 languageName: node linkType: hard -"prosemirror-state@npm:^1.0.0, prosemirror-state@npm:^1.2.2, prosemirror-state@npm:^1.4.2, prosemirror-state@npm:^1.4.3": - version: 1.4.3 - resolution: "prosemirror-state@npm:1.4.3" +"prosemirror-state@npm:^1.0.0, prosemirror-state@npm:^1.2.2, prosemirror-state@npm:^1.4.2, prosemirror-state@npm:^1.4.3, prosemirror-state@npm:^1.4.4": + version: 1.4.4 + resolution: "prosemirror-state@npm:1.4.4" dependencies: prosemirror-model: "npm:^1.0.0" prosemirror-transform: "npm:^1.0.0" prosemirror-view: "npm:^1.27.0" - checksum: 10c0/e34dc9b1a6b23c23265569b2c246aaef4a61353a5fd33e933b62528917603382271d9f7d5212094e8928dee9bb4827e25a583104d43745e6ab3b8cbde12170f5 + checksum: 10c0/1428636a37c127afe0d11a4f4eb44d75a7f16717940405082bd16fa4c28cfeef9375d49f48e411e5f0fa26f3e5798af7f270edc9bc9b0e647df8bb79983bcd59 languageName: node linkType: hard -"prosemirror-tables@npm:^1.3.4, prosemirror-tables@npm:^1.6.4": - version: 1.7.1 - resolution: "prosemirror-tables@npm:1.7.1" +"prosemirror-tables@npm:^1.3.4, prosemirror-tables@npm:^1.6.4, prosemirror-tables@npm:^1.8.3": + version: 1.8.5 + resolution: "prosemirror-tables@npm:1.8.5" dependencies: - prosemirror-keymap: "npm:^1.2.2" - prosemirror-model: "npm:^1.25.0" - prosemirror-state: "npm:^1.4.3" - prosemirror-transform: "npm:^1.10.3" - prosemirror-view: "npm:^1.39.1" - checksum: 10c0/4e7f3993fe4f81582afa7845030d372acfc332c48bb04e952ed78204b3e8ee86e4f0ea7a146cbf1574c2e873b4643619ca4d88aa92f60793315c3c1e181d6812 + prosemirror-keymap: "npm:^1.2.3" + prosemirror-model: "npm:^1.25.4" + prosemirror-state: "npm:^1.4.4" + prosemirror-transform: "npm:^1.10.5" + prosemirror-view: "npm:^1.41.4" + checksum: 10c0/d6e8cd9d333987ce6492202d5f815b268bb9a722d81456628eff999444d44fa97e8a801a5a20a44e678892f37053f314885d5a03e1df834653e3ea455f0f9290 languageName: node linkType: hard @@ -51145,23 +51127,23 @@ __metadata: languageName: node linkType: hard -"prosemirror-transform@npm:1.10.4": - version: 1.10.4 - resolution: "prosemirror-transform@npm:1.10.4" +"prosemirror-transform@npm:^1.0.0, prosemirror-transform@npm:^1.1.0, prosemirror-transform@npm:^1.10.2, prosemirror-transform@npm:^1.10.5, prosemirror-transform@npm:^1.7.1, prosemirror-transform@npm:^1.7.3": + version: 1.11.0 + resolution: "prosemirror-transform@npm:1.11.0" dependencies: prosemirror-model: "npm:^1.21.0" - checksum: 10c0/01a7b79d8e2bf61b3414f60f8790a19f2cebb85a2050f64594cbff54f62d5c5f56160a66bbfa089462239189b4667952ede738e68b9e154a3505845720230a1c + checksum: 10c0/07f5b4ff6c0e05f7f68fbb067d0f4a2030242c4d2312b0b979bb7553059d80c13b3e86e8f4ba71a5a7352fa8c4c4a1fd4ba3dfbf73efed94631b5a53915fbe89 languageName: node linkType: hard -"prosemirror-view@npm:1.40.0": - version: 1.40.0 - resolution: "prosemirror-view@npm:1.40.0" +"prosemirror-view@npm:^1.0.0, prosemirror-view@npm:^1.1.0, prosemirror-view@npm:^1.27.0, prosemirror-view@npm:^1.30.2, prosemirror-view@npm:^1.31.0, prosemirror-view@npm:^1.38.1, prosemirror-view@npm:^1.41.4": + version: 1.41.6 + resolution: "prosemirror-view@npm:1.41.6" dependencies: prosemirror-model: "npm:^1.20.0" prosemirror-state: "npm:^1.0.0" prosemirror-transform: "npm:^1.1.0" - checksum: 10c0/9fde9b415b9beeeda823acc170871f420f8e8646be83d9af5b9b5c124419d9a4b5c1293d9536dd06910b6154a001401d79cdc57a902fb7a0ea19501966f8dfdd + checksum: 10c0/a0dd304cabf11deb5b396c3568cf0ea39dcddc71b1834924a9a08bca73ce148779a8d66859f90acdeb8d5e68b3aaf1c0adbbc343af80840683c27f43596bdade languageName: node linkType: hard @@ -51815,12 +51797,12 @@ __metadata: languageName: node linkType: hard -"react-icons@npm:^5.2.1": - version: 5.2.1 - resolution: "react-icons@npm:5.2.1" +"react-icons@npm:^5.5.0": + version: 5.5.0 + resolution: "react-icons@npm:5.5.0" peerDependencies: react: "*" - checksum: 10c0/9d52b975afaf27dab07dcaefd50497ba43cc57076fc26ccac5142965e01c7fd0c503a62ea31c3bb710e0b2959a4620c2fed12c3c86960ad8ceb63de7f0085f3a + checksum: 10c0/a24309bfc993c19cbcbfc928157e53a137851822779977b9588f6dd41ffc4d11ebc98b447f4039b0d309a858f0a42980f6bfb4477fb19f9f2d1bc2e190fcf79c languageName: node linkType: hard @@ -51908,15 +51890,13 @@ __metadata: languageName: node linkType: hard -"react-number-format@npm:^5.3.1": - version: 5.4.0 - resolution: "react-number-format@npm:5.4.0" - dependencies: - prop-types: "npm:^15.7.2" +"react-number-format@npm:^5.4.4": + version: 5.4.4 + resolution: "react-number-format@npm:5.4.4" peerDependencies: - react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - checksum: 10c0/19785cbf7fcb6db7e34d29136ac8daf1708b46bba2a38e2e8851a65bd1e9c6463b13c31f17de156afbf681da43a2934565be9d8955aec23084a19a8d45f79149 + react: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/e55cd16d9f7379a717e77d519db06ed455cc2df9842cd23499b60bc2ba1179df580742e27867a4ae84e0d308b18c0773b7e8943f9162e853f97bd194d15b0de7 languageName: node linkType: hard @@ -52061,7 +52041,7 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll-bar@npm:^2.3.4, react-remove-scroll-bar@npm:^2.3.6": +"react-remove-scroll-bar@npm:^2.3.4": version: 2.3.6 resolution: "react-remove-scroll-bar@npm:2.3.6" dependencies: @@ -52077,6 +52057,22 @@ __metadata: languageName: node linkType: hard +"react-remove-scroll-bar@npm:^2.3.7": + version: 2.3.8 + resolution: "react-remove-scroll-bar@npm:2.3.8" + dependencies: + react-style-singleton: "npm:^2.2.2" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/9a0675c66cbb52c325bdbfaed80987a829c4504cefd8ff2dd3b6b3afc9a1500b8ec57b212e92c1fb654396d07bbe18830a8146fe77677d2a29ce40b5e1f78654 + languageName: node + linkType: hard + "react-remove-scroll@npm:2.5.7": version: 2.5.7 resolution: "react-remove-scroll@npm:2.5.7" @@ -52096,22 +52092,22 @@ __metadata: languageName: node linkType: hard -"react-remove-scroll@npm:^2.5.7": - version: 2.5.10 - resolution: "react-remove-scroll@npm:2.5.10" +"react-remove-scroll@npm:^2.7.1": + version: 2.7.2 + resolution: "react-remove-scroll@npm:2.7.2" dependencies: - react-remove-scroll-bar: "npm:^2.3.6" - react-style-singleton: "npm:^2.2.1" + react-remove-scroll-bar: "npm:^2.3.7" + react-style-singleton: "npm:^2.2.3" tslib: "npm:^2.1.0" - use-callback-ref: "npm:^1.3.0" - use-sidecar: "npm:^1.1.2" + use-callback-ref: "npm:^1.3.3" + use-sidecar: "npm:^1.1.3" peerDependencies: - "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: "@types/react": optional: true - checksum: 10c0/5057ebf11cf6b7a9126087c37be56f08bb96065906d871e7715f94caf74d980e01df8ad074e049d9d2f40d2946e50c14bd3c77966bcf4bf1d53ca303ecc64955 + checksum: 10c0/b5f3315bead75e72853f492c0b51ba8fb4fa09a4534d7fc42d6fcd59ca3e047cf213279ffc1e35b337e314ef5a04cb2b12544c85e0078802271731c27c09e5aa languageName: node linkType: hard @@ -52182,7 +52178,36 @@ __metadata: languageName: node linkType: hard -"react-textarea-autosize@npm:8.5.3, react-textarea-autosize@npm:^8.4.1": +"react-style-singleton@npm:^2.2.2, react-style-singleton@npm:^2.2.3": + version: 2.2.3 + resolution: "react-style-singleton@npm:2.2.3" + dependencies: + get-nonce: "npm:^1.0.0" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/841938ff16d16a6b76895f4cb2e1fea957e5fe3b30febbf03a54892dae1c9153f2383e231dea0b3ba41192ad2f2849448fa859caccd288943bce32639e971bee + languageName: node + linkType: hard + +"react-textarea-autosize@npm:8.5.9": + version: 8.5.9 + resolution: "react-textarea-autosize@npm:8.5.9" + dependencies: + "@babel/runtime": "npm:^7.20.13" + use-composed-ref: "npm:^1.3.0" + use-latest: "npm:^1.2.1" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/3a924db59259a6e3b834dcddc12a8661b43dcdaa1b43c41c732e0548bb2761e9a53dbc6db4e0d9e237728b4869e42c25e5417408b0391aec290c90874733a09f + languageName: node + linkType: hard + +"react-textarea-autosize@npm:^8.4.1": version: 8.5.3 resolution: "react-textarea-autosize@npm:8.5.3" dependencies: @@ -52861,7 +52886,7 @@ __metadata: languageName: node linkType: hard -"rehype-remark@npm:^10.0.0": +"rehype-remark@npm:^10.0.1": version: 10.0.1 resolution: "rehype-remark@npm:10.0.1" dependencies: @@ -52988,7 +53013,7 @@ __metadata: languageName: node linkType: hard -"remark-rehype@npm:^11.0.0, remark-rehype@npm:^11.1.0, remark-rehype@npm:^11.1.1": +"remark-rehype@npm:^11.0.0, remark-rehype@npm:^11.1.0, remark-rehype@npm:^11.1.2": version: 11.1.2 resolution: "remark-rehype@npm:11.1.2" dependencies: @@ -57694,10 +57719,10 @@ __metadata: dependencies: "@ai-sdk/react": "npm:3.0.99" "@apollo/client": "npm:^3.7.17" - "@blocknote/mantine": "npm:^0.31.1" - "@blocknote/react": "npm:^0.31.1" - "@blocknote/xl-docx-exporter": "npm:^0.31.1" - "@blocknote/xl-pdf-exporter": "npm:^0.31.1" + "@blocknote/mantine": "npm:0.47.0" + "@blocknote/react": "npm:0.47.0" + "@blocknote/xl-docx-exporter": "npm:0.47.0" + "@blocknote/xl-pdf-exporter": "npm:0.47.0" "@calcom/embed-react": "npm:^1.5.3" "@cyntler/react-doc-viewer": "npm:^1.17.0" "@dagrejs/dagre": "npm:^1.1.2" @@ -57712,6 +57737,9 @@ __metadata: "@lingui/react": "npm:^5.1.2" "@lingui/swc-plugin": "npm:^5.11.0" "@lingui/vite-plugin": "npm:^5.1.2" + "@mantine/core": "npm:^8.3.11" + "@mantine/hooks": "npm:^8.3.11" + "@mantine/utils": "npm:^6.0.22" "@monaco-editor/react": "npm:^4.7.0" "@nivo/core": "npm:^0.99.0" "@nivo/line": "npm:^0.99.0" @@ -57753,7 +57781,6 @@ __metadata: buffer: "npm:^6.0.3" cron-parser: "npm:5.1.1" date-fns: "npm:^2.30.0" - docx: "npm:^9.1.0" eslint: "npm:^9.32.0" eslint-config-prettier: "npm:^9.1.0" eslint-plugin-import: "npm:^2.31.0" @@ -57898,7 +57925,7 @@ __metadata: "@aws-sdk/credential-providers": "npm:3.998.0" "@azure/msal-node": "npm:^3.8.4" "@babel/preset-env": "npm:7.26.9" - "@blocknote/server-util": "npm:^0.31.1" + "@blocknote/server-util": "npm:^0.47.0" "@clickhouse/client": "npm:^1.11.0" "@dagrejs/dagre": "npm:^1.1.2" "@e2b/code-interpreter": "npm:^1.0.4" @@ -58862,6 +58889,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~7.18.0": + version: 7.18.2 + resolution: "undici-types@npm:7.18.2" + checksum: 10c0/85a79189113a238959d7a647368e4f7c5559c3a404ebdb8fc4488145ce9426fcd82252a844a302798dfc0e37e6fb178ff481ed03bc4caf634c5757d9ef43521d + languageName: node + linkType: hard + "undici@npm:^5.18.0": version: 5.29.0 resolution: "undici@npm:5.29.0" @@ -59610,6 +59644,21 @@ __metadata: languageName: node linkType: hard +"use-callback-ref@npm:^1.3.3": + version: 1.3.3 + resolution: "use-callback-ref@npm:1.3.3" + dependencies: + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/f887488c6e6075cdad4962979da1714b217bcb1ee009a9e57ce9a844bcfc4c3a99e93983dfc2e5af9e0913824d24e730090ff255e902c516dcb58d2d3837e01c + languageName: node + linkType: hard + "use-composed-ref@npm:^1.3.0": version: 1.3.0 resolution: "use-composed-ref@npm:1.3.0" @@ -59679,6 +59728,22 @@ __metadata: languageName: node linkType: hard +"use-sidecar@npm:^1.1.3": + version: 1.1.3 + resolution: "use-sidecar@npm:1.1.3" + dependencies: + detect-node-es: "npm:^1.1.0" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/161599bf921cfaa41c85d2b01c871975ee99260f3e874c2d41c05890d41170297bdcf314bc5185e7a700de2034ac5b888e3efc8e9f35724f4918f53538d717c9 + languageName: node + linkType: hard + "use-sync-external-store@npm:1.2.0": version: 1.2.0 resolution: "use-sync-external-store@npm:1.2.0" @@ -59688,16 +59753,7 @@ __metadata: languageName: node linkType: hard -"use-sync-external-store@npm:^1, use-sync-external-store@npm:^1.0.0, use-sync-external-store@npm:^1.2.0, use-sync-external-store@npm:^1.4.0": - version: 1.5.0 - resolution: "use-sync-external-store@npm:1.5.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - checksum: 10c0/1b8663515c0be34fa653feb724fdcce3984037c78dd4a18f68b2c8be55cc1a1084c578d5b75f158d41b5ddffc2bf5600766d1af3c19c8e329bb20af2ec6f52f4 - languageName: node - linkType: hard - -"use-sync-external-store@npm:^1.5.0": +"use-sync-external-store@npm:1.6.0, use-sync-external-store@npm:^1.5.0": version: 1.6.0 resolution: "use-sync-external-store@npm:1.6.0" peerDependencies: @@ -59706,6 +59762,15 @@ __metadata: languageName: node linkType: hard +"use-sync-external-store@npm:^1.0.0, use-sync-external-store@npm:^1.2.0, use-sync-external-store@npm:^1.4.0": + version: 1.5.0 + resolution: "use-sync-external-store@npm:1.5.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 10c0/1b8663515c0be34fa653feb724fdcce3984037c78dd4a18f68b2c8be55cc1a1084c578d5b75f158d41b5ddffc2bf5600766d1af3c19c8e329bb20af2ec6f52f4 + languageName: node + linkType: hard + "util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" @@ -61329,18 +61394,18 @@ __metadata: languageName: node linkType: hard -"y-prosemirror@npm:^1.2.2, y-prosemirror@npm:^1.3.4": - version: 1.3.5 - resolution: "y-prosemirror@npm:1.3.5" +"y-prosemirror@npm:^1.2.2, y-prosemirror@npm:^1.3.7": + version: 1.3.7 + resolution: "y-prosemirror@npm:1.3.7" dependencies: - lib0: "npm:^0.2.100" + lib0: "npm:^0.2.109" peerDependencies: prosemirror-model: ^1.7.1 prosemirror-state: ^1.2.3 prosemirror-view: ^1.9.10 y-protocols: ^1.0.1 yjs: ^13.5.38 - checksum: 10c0/34a43664133520300ea23488a90ecddace3583c05f22c8f523abbb46b9eb621e887d198ceb1475a1962ccba7436048daf0dbc60c3324982c557b93ede4e6700c + checksum: 10c0/4f544af2be316b28cc25f12ed5d1658b34eb9b6194479cafadd63074baf890c0fb6688dc67a7ec9d869187676ce72c1efed220f002e84418f5fbf790c5060d5f languageName: node linkType: hard @@ -61580,7 +61645,7 @@ __metadata: languageName: node linkType: hard -"yjs@npm:^13.6.11, yjs@npm:^13.6.15": +"yjs@npm:^13.6.11": version: 13.6.27 resolution: "yjs@npm:13.6.27" dependencies: @@ -61589,6 +61654,15 @@ __metadata: languageName: node linkType: hard +"yjs@npm:^13.6.27": + version: 13.6.29 + resolution: "yjs@npm:13.6.29" + dependencies: + lib0: "npm:^0.2.99" + checksum: 10c0/f300786ea63deac8a83e85598707ab9542e0a90b72fc0a1bcc77a58e618799de531ba4f85bcf349e647ad9e72bc4186edf50c4ecf67c8144cd53d3ac80d27351 + languageName: node + linkType: hard + "yn@npm:3.1.1": version: 3.1.1 resolution: "yn@npm:3.1.1"