payload-richtext-tiptap 0.0.8 → 0.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/fields/TiptapEditor/Components.js +1 -1
- package/dist/src/fields/TiptapEditor/Components.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Iframe/menus/IframeMenu.js +2 -2
- package/dist/src/fields/TiptapEditor/extensions/Iframe/menus/IframeMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/ImageBlock.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/ImageBlock.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockMenu.js +3 -3
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js +3 -3
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/index.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/insideLinks.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/insideLinks.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/InsideLinksMenu.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/InsideLinksMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/index.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/ColumnsMenu.js +2 -2
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/ColumnsMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/index.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js +3 -3
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/SlashCommand.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SlashCommand/SlashCommand.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/FacebookEmbed.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/FacebookEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Facebook/facebook.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/InstagramEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Instagram/instagram.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/LinkedinEmbed.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/LinkedinEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Linkedin/linkedin.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/TiktokEmbed.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/TiktokEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Tiktok/tiktok.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/TwitterEmbed.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/TwitterEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Twitter/twitter.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/YoutubeEmbed.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/YoutubeEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/Youtube/youtube.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/SocialMediaMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/index.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableColumn/index.js +3 -3
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableColumn/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableRow/index.js +3 -3
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/TableRow/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/index.d.ts +2 -2
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/index.js +2 -2
- package/dist/src/fields/TiptapEditor/extensions/Table/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +6 -6
- package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.js +3 -3
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorHeader.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorInfo.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorInfo.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/components/EditorInfo.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/BlockEditor/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js +1 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.js +6 -6
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/ContentItemMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/ContentItemMenu/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.js +3 -3
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/LinkMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/LinkMenu/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js +9 -9
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/TextMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.js +4 -4
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ContentTypePicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditIframeLinkPopover.js +3 -3
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditIframeLinkPopover.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditLinkPopover.js +3 -3
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/EditLinkPopover.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js +4 -4
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js +4 -4
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/SocialMediaPopover.js +3 -3
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/SocialMediaPopover.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.js +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-completion-command.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js +5 -5
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuContentTypes.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuContentTypes.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/hooks/useTextmenuContentTypes.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/TextMenu/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/index.d.ts +3 -3
- package/dist/src/fields/TiptapEditor/features/menus/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/menus/index.js +3 -3
- package/dist/src/fields/TiptapEditor/features/menus/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js +6 -6
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.js +4 -4
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/Colorpicker.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/Colorpicker/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/IframeLinkEditorPanel/IframeLinkEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.js +2 -2
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/InsideLinksEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/InsideLinksEditorPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.js +4 -4
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/LinkEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkEditorPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.js +4 -4
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/LinkPreviewPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/LinkPreviewPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js +2 -2
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/SocialMediaEditorPanel.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/SocialMediaEditorPanel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/index.d.ts +3 -3
- package/dist/src/fields/TiptapEditor/features/panels/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/panels/index.js +3 -3
- package/dist/src/fields/TiptapEditor/features/panels/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Button/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Button/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Button/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Button/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Dropdown/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Dropdown/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Dropdown/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Dropdown/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Loader/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Loader/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Loader/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Loader/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Panel/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Panel/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.js +2 -2
- package/dist/src/fields/TiptapEditor/features/ui/PopoverMenu.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Spinner/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Spinner/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Spinner/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Spinner/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Textarea/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Textarea/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Textarea/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Textarea/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toggle/index.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toggle/index.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toggle/index.js +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toggle/index.js.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toolbar.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toolbar.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/features/ui/Toolbar.js +3 -3
- package/dist/src/fields/TiptapEditor/features/ui/Toolbar.js.map +1 -1
- package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js +1 -1
- package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js.map +1 -1
- package/dist/src/fields/TiptapEditor/index.js +1 -1
- package/dist/src/fields/TiptapEditor/index.js.map +1 -1
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -12,7 +12,7 @@ import React, { useCallback, useEffect, useState } from "react";
|
|
|
12
12
|
// import { BlockEditor } from './features/BlockEditor'
|
|
13
13
|
import { useField } from "@payloadcms/ui/forms/useField";
|
|
14
14
|
import { useLocale } from "@payloadcms/ui/providers/Locale";
|
|
15
|
-
import { BlockEditor } from "./features/BlockEditor/BlockEditor.
|
|
15
|
+
import { BlockEditor } from "./features/BlockEditor/BlockEditor.js";
|
|
16
16
|
const useDarkmode = ()=>{
|
|
17
17
|
const [isDarkMode, setIsDarkMode] = useState(typeof window !== "undefined" ? document.documentElement.getAttribute("data-theme") === "dark" : false);
|
|
18
18
|
useEffect(()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/fields/TiptapEditor/Components.tsx"],"sourcesContent":["\"use client\";\nimport React, { useCallback, useEffect, useState } from \"react\";\n\n// import 'cal-sans'\n\n// import '@fontsource/inter/100.css'\n// import '@fontsource/inter/200.css'\n// import '@fontsource/inter/300.css'\n// import '@fontsource/inter/400.css'\n// import '@fontsource/inter/500.css'\n// import '@fontsource/inter/600.css'\n// import '@fontsource/inter/700.css'\n// import { BlockEditor } from './features/BlockEditor'\nimport { useField } from \"@payloadcms/ui/forms/useField\";\nimport { useLocale } from \"@payloadcms/ui/providers/Locale\";\nimport { BlockEditor } from \"./features/BlockEditor/BlockEditor.
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/TiptapEditor/Components.tsx"],"sourcesContent":["\"use client\";\nimport React, { useCallback, useEffect, useState } from \"react\";\n\n// import 'cal-sans'\n\n// import '@fontsource/inter/100.css'\n// import '@fontsource/inter/200.css'\n// import '@fontsource/inter/300.css'\n// import '@fontsource/inter/400.css'\n// import '@fontsource/inter/500.css'\n// import '@fontsource/inter/600.css'\n// import '@fontsource/inter/700.css'\n// import { BlockEditor } from './features/BlockEditor'\nimport { useField } from \"@payloadcms/ui/forms/useField\";\nimport { useLocale } from \"@payloadcms/ui/providers/Locale\";\nimport { BlockEditor } from \"./features/BlockEditor/BlockEditor.js\";\nimport { CustomComponent, JSONField, ServerProps } from \"payload\";\n\ntype Props = JSONField & ServerProps;\n\nconst useDarkmode = () => {\n const [isDarkMode, setIsDarkMode] = useState<boolean>(\n typeof window !== \"undefined\"\n ? document.documentElement.getAttribute(\"data-theme\") === \"dark\"\n : false\n );\n\n useEffect(() => {\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handleChange = () => setIsDarkMode(mediaQuery.matches);\n mediaQuery.addEventListener(\"change\", handleChange);\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n }, []);\n\n useEffect(() => {\n document.documentElement.classList.toggle(\"dark\", isDarkMode);\n }, [isDarkMode]);\n\n const toggleDarkMode = useCallback(\n () => setIsDarkMode((isDark) => !isDark),\n []\n );\n const lightMode = useCallback(() => setIsDarkMode(false), []);\n const darkMode = useCallback(() => setIsDarkMode(true), []);\n\n return {\n isDarkMode,\n toggleDarkMode,\n lightMode,\n darkMode,\n };\n};\n\nexport const EditorComponent: CustomComponent = (props) => {\n const { value, setValue } = useField<any>({\n path: props.name,\n });\n\n useDarkmode();\n const hasCollab = false;\n // const { i18n } = useTranslation()\n\n const { code } = useLocale();\n return (\n <div\n lang={code}\n className=\"content-field content-field-disabled\"\n style={{ width: \"100%\", height: \"100%\", overflow: \"visible\" }}\n >\n {/* {DarkModeSwitcher} */}\n {/* <FieldLabel label={props?.label ?? capitalize(props?.name) ?? ''} /> */}\n <BlockEditor\n hasCollab={hasCollab}\n content={value}\n handleChange={(value) => {\n setValue(value);\n }}\n />\n </div>\n );\n};\n"],"names":["React","useCallback","useEffect","useState","useField","useLocale","BlockEditor","useDarkmode","isDarkMode","setIsDarkMode","window","document","documentElement","getAttribute","mediaQuery","matchMedia","handleChange","matches","addEventListener","removeEventListener","classList","toggle","toggleDarkMode","isDark","lightMode","darkMode","EditorComponent","props","value","setValue","path","name","hasCollab","code","div","lang","className","style","width","height","overflow","content"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AACA,OAAOA,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAEhE,oBAAoB;AAEpB,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,qCAAqC;AACrC,uDAAuD;AACvD,SAASC,QAAQ,QAAQ,gCAAgC;AACzD,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,WAAW,QAAQ,wCAAwC;AAKpE,MAAMC,cAAc;IAClB,MAAM,CAACC,YAAYC,cAAc,GAAGN,SAClC,OAAOO,WAAW,cACdC,SAASC,eAAe,CAACC,YAAY,CAAC,kBAAkB,SACxD;IAGNX,UAAU;QACR,MAAMY,aAAaJ,OAAOK,UAAU,CAAC;QACrC,MAAMC,eAAe,IAAMP,cAAcK,WAAWG,OAAO;QAC3DH,WAAWI,gBAAgB,CAAC,UAAUF;QACtC,OAAO,IAAMF,WAAWK,mBAAmB,CAAC,UAAUH;IACxD,GAAG,EAAE;IAELd,UAAU;QACRS,SAASC,eAAe,CAACQ,SAAS,CAACC,MAAM,CAAC,QAAQb;IACpD,GAAG;QAACA;KAAW;IAEf,MAAMc,iBAAiBrB,YACrB,IAAMQ,cAAc,CAACc,SAAW,CAACA,SACjC,EAAE;IAEJ,MAAMC,YAAYvB,YAAY,IAAMQ,cAAc,QAAQ,EAAE;IAC5D,MAAMgB,WAAWxB,YAAY,IAAMQ,cAAc,OAAO,EAAE;IAE1D,OAAO;QACLD;QACAc;QACAE;QACAC;IACF;AACF;AAEA,OAAO,MAAMC,kBAAmC,CAACC;IAC/C,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGzB,SAAc;QACxC0B,MAAMH,MAAMI,IAAI;IAClB;IAEAxB;IACA,MAAMyB,YAAY;IAClB,oCAAoC;IAEpC,MAAM,EAAEC,IAAI,EAAE,GAAG5B;IACjB,qBACE,KAAC6B;QACCC,MAAMF;QACNG,WAAU;QACVC,OAAO;YAAEC,OAAO;YAAQC,QAAQ;YAAQC,UAAU;QAAU;kBAI5D,cAAA,KAAClC;YACC0B,WAAWA;YACXS,SAASb;YACTZ,cAAc,CAACY;gBACbC,SAASD;YACX;;;AAIR,EAAE"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { BubbleMenu as BaseBubbleMenu } from "@tiptap/react";
|
|
3
3
|
import React, { useCallback } from "react";
|
|
4
|
-
import { EditIframeLinkPopover } from "../../../features/menus/TextMenu/components/EditIframeLinkPopover.
|
|
5
|
-
import { Toolbar } from "../../../features/ui/Toolbar.
|
|
4
|
+
import { EditIframeLinkPopover } from "../../../features/menus/TextMenu/components/EditIframeLinkPopover.js";
|
|
5
|
+
import { Toolbar } from "../../../features/ui/Toolbar.js";
|
|
6
6
|
import { getRenderContainer } from "../../../lib/utils/index.js";
|
|
7
7
|
export const IframeMenu = ({ editor, appendTo })=>{
|
|
8
8
|
const getReferenceClientRect = useCallback(()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/Iframe/menus/IframeMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu } from \"@tiptap/react\";\nimport React, { useCallback } from \"react\";\nimport { sticky } from \"tippy.js\";\nimport { v4 as uuid } from \"uuid\";\n\nimport { EditIframeLinkPopover } from \"../../../features/menus/TextMenu/components/EditIframeLinkPopover.
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/Iframe/menus/IframeMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu } from \"@tiptap/react\";\nimport React, { useCallback } from \"react\";\nimport { sticky } from \"tippy.js\";\nimport { v4 as uuid } from \"uuid\";\n\nimport { EditIframeLinkPopover } from \"../../../features/menus/TextMenu/components/EditIframeLinkPopover.js\";\nimport { MenuProps } from \"../../../features/menus/types.js\";\nimport { Toolbar } from \"../../../features/ui/Toolbar.js\";\nimport { getRenderContainer } from \"../../../lib/utils/index.js\";\n\nexport const IframeMenu = ({ editor, appendTo }: MenuProps) => {\n const getReferenceClientRect = useCallback(() => {\n const renderContainer = getRenderContainer(editor, \"iframe\");\n const rect =\n renderContainer?.getBoundingClientRect() ||\n new DOMRect(-1000, -1000, 0, 0);\n\n return rect;\n }, [editor]);\n\n const shouldShow = useCallback(() => {\n const isIframe = editor.isActive(\"iframe\");\n return isIframe;\n }, [editor]);\n\n const onHtml = useCallback(\n (html: string) => editor.chain().focus().setHtml(html).run(),\n [editor]\n );\n return (\n <BaseBubbleMenu\n editor={editor}\n pluginKey={`iframeMenu`}\n shouldShow={shouldShow}\n tippyOptions={{ popperOptions: { placement: \"top-start\" } }}\n updateDelay={100}\n >\n <Toolbar.Wrapper>\n <Toolbar.Button\n type=\"button\"\n tooltip=\"Sidebar left\"\n active={true}\n // onClick={onColumnLeft}\n >\n <EditIframeLinkPopover\n onSetLink={onHtml}\n initialSrcLink={editor?.getAttributes(\"iframe\")?.editorValue ?? \"\"}\n />\n </Toolbar.Button>\n </Toolbar.Wrapper>\n </BaseBubbleMenu>\n );\n};\n\nexport default IframeMenu;\n"],"names":["BubbleMenu","BaseBubbleMenu","React","useCallback","EditIframeLinkPopover","Toolbar","getRenderContainer","IframeMenu","editor","appendTo","getReferenceClientRect","renderContainer","rect","getBoundingClientRect","DOMRect","shouldShow","isIframe","isActive","onHtml","html","chain","focus","setHtml","run","pluginKey","tippyOptions","popperOptions","placement","updateDelay","Wrapper","Button","type","tooltip","active","onSetLink","initialSrcLink","getAttributes","editorValue"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,cAAcC,cAAc,QAAQ,gBAAgB;AAC7D,OAAOC,SAASC,WAAW,QAAQ,QAAQ;AAI3C,SAASC,qBAAqB,QAAQ,uEAAuE;AAE7G,SAASC,OAAO,QAAQ,kCAAkC;AAC1D,SAASC,kBAAkB,QAAQ,8BAA8B;AAEjE,OAAO,MAAMC,aAAa,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAa;IACxD,MAAMC,yBAAyBP,YAAY;QACzC,MAAMQ,kBAAkBL,mBAAmBE,QAAQ;QACnD,MAAMI,OACJD,iBAAiBE,2BACjB,IAAIC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG;QAE/B,OAAOF;IACT,GAAG;QAACJ;KAAO;IAEX,MAAMO,aAAaZ,YAAY;QAC7B,MAAMa,WAAWR,OAAOS,QAAQ,CAAC;QACjC,OAAOD;IACT,GAAG;QAACR;KAAO;IAEX,MAAMU,SAASf,YACb,CAACgB,OAAiBX,OAAOY,KAAK,GAAGC,KAAK,GAAGC,OAAO,CAACH,MAAMI,GAAG,IAC1D;QAACf;KAAO;IAEV,qBACE,KAACP;QACCO,QAAQA;QACRgB,WAAW,CAAC,UAAU,CAAC;QACvBT,YAAYA;QACZU,cAAc;YAAEC,eAAe;gBAAEC,WAAW;YAAY;QAAE;QAC1DC,aAAa;kBAEb,cAAA,KAACvB,QAAQwB,OAAO;sBACd,cAAA,KAACxB,QAAQyB,MAAM;gBACbC,MAAK;gBACLC,SAAQ;gBACRC,QAAQ;0BAGR,cAAA,KAAC7B;oBACC8B,WAAWhB;oBACXiB,gBAAgB3B,QAAQ4B,cAAc,WAAWC,eAAe;;;;;AAM5E,EAAE;AAEF,eAAe9B,WAAW"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNodeViewRenderer } from "@tiptap/react";
|
|
2
2
|
import { mergeAttributes } from "@tiptap/core";
|
|
3
|
-
import { ImageBlockView } from "./components/ImageBlockView.
|
|
3
|
+
import { ImageBlockView } from "./components/ImageBlockView.js";
|
|
4
4
|
import { Image } from "../Image/Image.js";
|
|
5
5
|
export const ImageBlock = Image.extend({
|
|
6
6
|
name: "imageBlock",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/ImageBlock/ImageBlock.ts"],"sourcesContent":["import { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { mergeAttributes, Range } from \"@tiptap/core\";\n\nimport { ImageBlockView } from \"./components/ImageBlockView.
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/ImageBlock/ImageBlock.ts"],"sourcesContent":["import { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { mergeAttributes, Range } from \"@tiptap/core\";\n\nimport { ImageBlockView } from \"./components/ImageBlockView.js\";\nimport { Image } from \"../Image/Image.js\";\n\ndeclare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n imageBlock: {\n setImageBlock: (attributes: { src: string }) => ReturnType;\n setImageBlockAt: (attributes: {\n src: string;\n pos: number | Range;\n }) => ReturnType;\n setImageBlockAlign: (align: \"left\" | \"center\" | \"right\") => ReturnType;\n setImageBlockWidth: (width: number) => ReturnType;\n };\n }\n}\n\nexport const ImageBlock = Image.extend({\n name: \"imageBlock\",\n\n group: \"block\",\n\n defining: true,\n\n isolating: true,\n\n addAttributes() {\n return {\n src: {\n default: \"\",\n parseHTML: (element) => element.getAttribute(\"src\"),\n renderHTML: (attributes) => ({\n src: attributes.src,\n }),\n },\n width: {\n default: \"100%\",\n parseHTML: (element) => element.getAttribute(\"data-width\"),\n renderHTML: (attributes) => ({\n \"data-width\": attributes.width,\n }),\n },\n align: {\n default: \"center\",\n parseHTML: (element) => element.getAttribute(\"data-align\"),\n renderHTML: (attributes) => ({\n \"data-align\": attributes.align,\n }),\n },\n alt: {\n default: undefined,\n parseHTML: (element) => element.getAttribute(\"alt\"),\n renderHTML: (attributes) => ({\n alt: attributes.alt,\n }),\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'img[src*=\"tiptap.dev\"]:not([src^=\"data:\"]), img[src*=\"windows.net\"]:not([src^=\"data:\"])',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"img\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes),\n ];\n },\n\n addCommands() {\n return {\n setImageBlock:\n (attrs) =>\n ({ commands }) => {\n return commands.insertContent({\n type: \"imageBlock\",\n attrs: { src: attrs.src },\n });\n },\n\n setImageBlockAt:\n (attrs) =>\n ({ commands }) => {\n return commands.insertContentAt(attrs.pos, {\n type: \"imageBlock\",\n attrs: { src: attrs.src },\n });\n },\n\n setImageBlockAlign:\n (align) =>\n ({ commands }) =>\n commands.updateAttributes(\"imageBlock\", { align }),\n\n setImageBlockWidth:\n (width) =>\n ({ commands }) =>\n commands.updateAttributes(\"imageBlock\", {\n width: `${Math.max(0, Math.min(100, width))}%`,\n }),\n };\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(ImageBlockView);\n },\n});\n\nexport default ImageBlock;\n"],"names":["ReactNodeViewRenderer","mergeAttributes","ImageBlockView","Image","ImageBlock","extend","name","group","defining","isolating","addAttributes","src","default","parseHTML","element","getAttribute","renderHTML","attributes","width","align","alt","undefined","tag","HTMLAttributes","options","addCommands","setImageBlock","attrs","commands","insertContent","type","setImageBlockAt","insertContentAt","pos","setImageBlockAlign","updateAttributes","setImageBlockWidth","Math","max","min","addNodeView"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,qBAAqB,QAAQ,gBAAgB;AACtD,SAASC,eAAe,QAAe,eAAe;AAEtD,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SAASC,KAAK,QAAQ,oBAAoB;AAgB1C,OAAO,MAAMC,aAAaD,MAAME,MAAM,CAAC;IACrCC,MAAM;IAENC,OAAO;IAEPC,UAAU;IAEVC,WAAW;IAEXC;QACE,OAAO;YACLC,KAAK;gBACHC,SAAS;gBACTC,WAAW,CAACC,UAAYA,QAAQC,YAAY,CAAC;gBAC7CC,YAAY,CAACC,aAAgB,CAAA;wBAC3BN,KAAKM,WAAWN,GAAG;oBACrB,CAAA;YACF;YACAO,OAAO;gBACLN,SAAS;gBACTC,WAAW,CAACC,UAAYA,QAAQC,YAAY,CAAC;gBAC7CC,YAAY,CAACC,aAAgB,CAAA;wBAC3B,cAAcA,WAAWC,KAAK;oBAChC,CAAA;YACF;YACAC,OAAO;gBACLP,SAAS;gBACTC,WAAW,CAACC,UAAYA,QAAQC,YAAY,CAAC;gBAC7CC,YAAY,CAACC,aAAgB,CAAA;wBAC3B,cAAcA,WAAWE,KAAK;oBAChC,CAAA;YACF;YACAC,KAAK;gBACHR,SAASS;gBACTR,WAAW,CAACC,UAAYA,QAAQC,YAAY,CAAC;gBAC7CC,YAAY,CAACC,aAAgB,CAAA;wBAC3BG,KAAKH,WAAWG,GAAG;oBACrB,CAAA;YACF;QACF;IACF;IAEAP;QACE,OAAO;YACL;gBACES,KAAK;YACP;SACD;IACH;IAEAN,YAAW,EAAEO,cAAc,EAAE;QAC3B,OAAO;YACL;YACAtB,gBAAgB,IAAI,CAACuB,OAAO,CAACD,cAAc,EAAEA;SAC9C;IACH;IAEAE;QACE,OAAO;YACLC,eACE,CAACC,QACD,CAAC,EAAEC,QAAQ,EAAE;oBACX,OAAOA,SAASC,aAAa,CAAC;wBAC5BC,MAAM;wBACNH,OAAO;4BAAEhB,KAAKgB,MAAMhB,GAAG;wBAAC;oBAC1B;gBACF;YAEFoB,iBACE,CAACJ,QACD,CAAC,EAAEC,QAAQ,EAAE;oBACX,OAAOA,SAASI,eAAe,CAACL,MAAMM,GAAG,EAAE;wBACzCH,MAAM;wBACNH,OAAO;4BAAEhB,KAAKgB,MAAMhB,GAAG;wBAAC;oBAC1B;gBACF;YAEFuB,oBACE,CAACf,QACD,CAAC,EAAES,QAAQ,EAAE,GACXA,SAASO,gBAAgB,CAAC,cAAc;wBAAEhB;oBAAM;YAEpDiB,oBACE,CAAClB,QACD,CAAC,EAAEU,QAAQ,EAAE,GACXA,SAASO,gBAAgB,CAAC,cAAc;wBACtCjB,OAAO,CAAC,EAAEmB,KAAKC,GAAG,CAAC,GAAGD,KAAKE,GAAG,CAAC,KAAKrB,QAAQ,CAAC,CAAC;oBAChD;QACN;IACF;IAEAsB;QACE,OAAOxC,sBAAsBE;IAC/B;AACF,GAAG;AAEH,eAAeE,WAAW"}
|
|
@@ -4,10 +4,10 @@ import { useCallback, useRef } from "react";
|
|
|
4
4
|
import { sticky } from "tippy.js";
|
|
5
5
|
import { v4 as uuid } from "uuid";
|
|
6
6
|
import { AlignHorizontalDistributeCenter, AlignHorizontalDistributeEnd, AlignHorizontalDistributeStart } from "lucide-react";
|
|
7
|
-
import { Icon } from "../../../features/ui/Icon.
|
|
8
|
-
import { Toolbar } from "../../../features/ui/Toolbar.
|
|
7
|
+
import { Icon } from "../../../features/ui/Icon.js";
|
|
8
|
+
import { Toolbar } from "../../../features/ui/Toolbar.js";
|
|
9
9
|
import { getRenderContainer } from "../../../lib/utils/index.js";
|
|
10
|
-
import { ImageBlockWidth } from "./ImageBlockWidth.
|
|
10
|
+
import { ImageBlockWidth } from "./ImageBlockWidth.js";
|
|
11
11
|
export const ImageBlockMenu = ({ editor, appendTo })=>{
|
|
12
12
|
const menuRef = useRef(null);
|
|
13
13
|
const tippyInstance = useRef(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu } from \"@tiptap/react\";\nimport { ReactNode, useCallback, useRef } from \"react\";\nimport { Instance, sticky } from \"tippy.js\";\nimport { v4 as uuid } from \"uuid\";\n\nimport {\n AlignHorizontalDistributeCenter,\n AlignHorizontalDistributeEnd,\n AlignHorizontalDistributeStart,\n} from \"lucide-react\";\nimport { MenuProps } from \"../../../features/menus/types.js\";\nimport { Icon } from \"../../../features/ui/Icon.
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu } from \"@tiptap/react\";\nimport { ReactNode, useCallback, useRef } from \"react\";\nimport { Instance, sticky } from \"tippy.js\";\nimport { v4 as uuid } from \"uuid\";\n\nimport {\n AlignHorizontalDistributeCenter,\n AlignHorizontalDistributeEnd,\n AlignHorizontalDistributeStart,\n} from \"lucide-react\";\nimport { MenuProps } from \"../../../features/menus/types.js\";\nimport { Icon } from \"../../../features/ui/Icon.js\";\nimport { Toolbar } from \"../../../features/ui/Toolbar.js\";\nimport { getRenderContainer } from \"../../../lib/utils/index.js\";\nimport { ImageBlockWidth } from \"./ImageBlockWidth.js\";\n\nexport const ImageBlockMenu = ({ editor, appendTo }: MenuProps): ReactNode => {\n const menuRef = useRef<HTMLDivElement>(null);\n const tippyInstance = useRef<Instance | null>(null);\n\n const getReferenceClientRect = useCallback(() => {\n const renderContainer = getRenderContainer(editor, \"node-imageBlock\");\n const rect =\n renderContainer?.getBoundingClientRect() ||\n new DOMRect(-1000, -1000, 0, 0);\n\n return rect;\n }, [editor]);\n\n const shouldShow = useCallback(() => {\n const isActive = editor.isActive(\"imageBlock\");\n\n return isActive;\n }, [editor]);\n\n const onAlignImageLeft = useCallback(() => {\n editor\n .chain()\n .focus(undefined, { scrollIntoView: false })\n .setImageBlockAlign(\"left\")\n .run();\n }, [editor]);\n\n const onAlignImageCenter = useCallback(() => {\n editor\n .chain()\n .focus(undefined, { scrollIntoView: false })\n .setImageBlockAlign(\"center\")\n .run();\n }, [editor]);\n\n const onAlignImageRight = useCallback(() => {\n editor\n .chain()\n .focus(undefined, { scrollIntoView: false })\n .setImageBlockAlign(\"right\")\n .run();\n }, [editor]);\n\n const onWidthChange = useCallback(\n (value: number) => {\n editor\n .chain()\n .focus(undefined, { scrollIntoView: false })\n .setImageBlockWidth(value)\n .run();\n },\n [editor]\n );\n\n return (\n <BaseBubbleMenu\n editor={editor}\n pluginKey={`imageBlockMenu-${uuid()}`}\n shouldShow={shouldShow}\n updateDelay={0}\n tippyOptions={{\n offset: [0, 8],\n popperOptions: {\n modifiers: [{ name: \"flip\", enabled: false }],\n },\n getReferenceClientRect,\n onCreate: (instance: Instance) => {\n tippyInstance.current = instance;\n },\n appendTo: () => {\n return appendTo?.current;\n },\n plugins: [sticky],\n sticky: \"popper\",\n }}\n >\n <Toolbar.Wrapper shouldShowContent={shouldShow()} ref={menuRef}>\n <Toolbar.Button\n type=\"button\"\n tooltip=\"Align image left\"\n active={editor.isActive(\"imageBlock\", { align: \"left\" })}\n onClick={onAlignImageLeft}\n >\n <Icon icon={AlignHorizontalDistributeStart} />\n </Toolbar.Button>\n <Toolbar.Button\n type=\"button\"\n tooltip=\"Align image center\"\n active={editor.isActive(\"imageBlock\", { align: \"center\" })}\n onClick={onAlignImageCenter}\n >\n <Icon icon={AlignHorizontalDistributeCenter} />\n </Toolbar.Button>\n <Toolbar.Button\n type=\"button\"\n tooltip=\"Align image right\"\n active={editor.isActive(\"imageBlock\", { align: \"right\" })}\n onClick={onAlignImageRight}\n >\n <Icon icon={AlignHorizontalDistributeEnd} />\n </Toolbar.Button>\n <Toolbar.Divider />\n <ImageBlockWidth\n onChange={onWidthChange}\n value={parseInt(editor.getAttributes(\"imageBlock\").width)}\n />\n </Toolbar.Wrapper>\n </BaseBubbleMenu>\n );\n};\n\nexport default ImageBlockMenu;\n"],"names":["BubbleMenu","BaseBubbleMenu","useCallback","useRef","sticky","v4","uuid","AlignHorizontalDistributeCenter","AlignHorizontalDistributeEnd","AlignHorizontalDistributeStart","Icon","Toolbar","getRenderContainer","ImageBlockWidth","ImageBlockMenu","editor","appendTo","menuRef","tippyInstance","getReferenceClientRect","renderContainer","rect","getBoundingClientRect","DOMRect","shouldShow","isActive","onAlignImageLeft","chain","focus","undefined","scrollIntoView","setImageBlockAlign","run","onAlignImageCenter","onAlignImageRight","onWidthChange","value","setImageBlockWidth","pluginKey","updateDelay","tippyOptions","offset","popperOptions","modifiers","name","enabled","onCreate","instance","current","plugins","Wrapper","shouldShowContent","ref","Button","type","tooltip","active","align","onClick","icon","Divider","onChange","parseInt","getAttributes","width"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Node, ReactNodeViewRenderer } from "@tiptap/react";
|
|
2
|
-
import { ImageUpload as ImageUploadComponent } from "./view/ImageUpload.
|
|
2
|
+
import { ImageUpload as ImageUploadComponent } from "./view/ImageUpload.js";
|
|
3
3
|
export const ImageUpload = Node.create({
|
|
4
4
|
name: "imageUpload",
|
|
5
5
|
isolating: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.ts"],"sourcesContent":["import { Node, ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { ImageUpload as ImageUploadComponent } from \"./view/ImageUpload.
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/ImageUpload.ts"],"sourcesContent":["import { Node, ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { ImageUpload as ImageUploadComponent } from \"./view/ImageUpload.js\";\n\ndeclare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n imageUpload: {\n setImageUpload: () => ReturnType;\n };\n }\n}\n\nexport const ImageUpload = Node.create({\n name: \"imageUpload\",\n\n isolating: true,\n\n defining: true,\n\n group: \"block\",\n\n draggable: true,\n\n selectable: true,\n\n inline: false,\n\n parseHTML() {\n return [\n {\n tag: `div[data-type=\"${this.name}\"]`,\n },\n ];\n },\n\n renderHTML() {\n return [\"div\", { \"data-type\": this.name }];\n },\n\n addCommands() {\n return {\n setImageUpload:\n () =>\n ({ commands }) =>\n commands.insertContent(`<div data-type=\"${this.name}\"></div>`),\n };\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(ImageUploadComponent);\n },\n});\n\nexport default ImageUpload;\n"],"names":["Node","ReactNodeViewRenderer","ImageUpload","ImageUploadComponent","create","name","isolating","defining","group","draggable","selectable","inline","parseHTML","tag","renderHTML","addCommands","setImageUpload","commands","insertContent","addNodeView"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,IAAI,EAAEC,qBAAqB,QAAQ,gBAAgB;AAC5D,SAASC,eAAeC,oBAAoB,QAAQ,wBAAwB;AAU5E,OAAO,MAAMD,cAAcF,KAAKI,MAAM,CAAC;IACrCC,MAAM;IAENC,WAAW;IAEXC,UAAU;IAEVC,OAAO;IAEPC,WAAW;IAEXC,YAAY;IAEZC,QAAQ;IAERC;QACE,OAAO;YACL;gBACEC,KAAK,CAAC,eAAe,EAAE,IAAI,CAACR,IAAI,CAAC,EAAE,CAAC;YACtC;SACD;IACH;IAEAS;QACE,OAAO;YAAC;YAAO;gBAAE,aAAa,IAAI,CAACT,IAAI;YAAC;SAAE;IAC5C;IAEAU;QACE,OAAO;YACLC,gBACE,IACA,CAAC,EAAEC,QAAQ,EAAE,GACXA,SAASC,aAAa,CAAC,CAAC,gBAAgB,EAAE,IAAI,CAACb,IAAI,CAAC,QAAQ,CAAC;QACnE;IACF;IAEAc;QACE,OAAOlB,sBAAsBE;IAC/B;AACF,GAAG;AAEH,eAAeD,YAAY"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Image, Upload } from "lucide-react";
|
|
3
3
|
import { useCallback } from "react";
|
|
4
|
-
import { Button } from "../../../features/ui/Button/Button.
|
|
5
|
-
import { Icon } from "../../../features/ui/Icon.
|
|
6
|
-
import { Spinner } from "../../../features/ui/Spinner/Spinner.
|
|
4
|
+
import { Button } from "../../../features/ui/Button/Button.js";
|
|
5
|
+
import { Icon } from "../../../features/ui/Icon.js";
|
|
6
|
+
import { Spinner } from "../../../features/ui/Spinner/Spinner.js";
|
|
7
7
|
import { cn } from "../../../lib/utils/index.js";
|
|
8
8
|
import { useDropZone, useFileUpload, useUploader } from "./hooks.js";
|
|
9
9
|
export const ImageUploader = ({ onUpload })=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.tsx"],"sourcesContent":["import { Image, Upload } from \"lucide-react\";\nimport { ChangeEvent, useCallback } from \"react\";\nimport { Button } from \"../../../features/ui/Button/Button.
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.tsx"],"sourcesContent":["import { Image, Upload } from \"lucide-react\";\nimport { ChangeEvent, useCallback } from \"react\";\nimport { Button } from \"../../../features/ui/Button/Button.js\";\nimport { Icon } from \"../../../features/ui/Icon.js\";\nimport { Spinner } from \"../../../features/ui/Spinner/Spinner.js\";\nimport { cn } from \"../../../lib/utils/index.js\";\nimport { useDropZone, useFileUpload, useUploader } from \"./hooks.js\";\nexport const ImageUploader = ({\n onUpload,\n}: {\n onUpload: (url: string) => void;\n}) => {\n const { loading, uploadFile } = useUploader({ onUpload });\n const { handleUploadClick, ref } = useFileUpload();\n const { draggedInside, onDrop, onDragEnter, onDragLeave } = useDropZone({\n uploader: uploadFile,\n });\n\n const onFileChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) =>\n e.target.files ? uploadFile() : null,\n [uploadFile]\n );\n\n if (loading) {\n return (\n <div className=\"flex items-center justify-center p-8 rounded-lg min-h-[10rem] bg-opacity-80\">\n <Spinner className=\"text-neutral-500\" size={1.5} />\n </div>\n );\n }\n\n const wrapperClass = cn(\n \"flex flex-col items-center justify-center px-8 py-10 rounded-lg bg-opacity-80\",\n draggedInside && \"bg-neutral-100\"\n );\n\n return (\n <div\n className={wrapperClass}\n onDrop={onDrop}\n onDragOver={onDragEnter}\n onDragLeave={onDragLeave}\n contentEditable={false}\n >\n <Icon\n icon={Image}\n className=\"w-12 h-12 mb-4 text-black dark:text-white opacity-20\"\n />\n <div className=\"flex flex-col items-center justify-center gap-2\">\n <div className=\"text-sm font-medium text-center text-neutral-400 dark:text-neutral-500\">\n {draggedInside ? \"Drop image here\" : \"Drag and drop or\"}\n </div>\n <div>\n <Button\n type=\"button\"\n disabled={draggedInside}\n onClick={handleUploadClick}\n variant=\"primary\"\n buttonSize=\"small\"\n >\n <Icon icon={Upload} />\n Upload an image\n </Button>\n </div>\n </div>\n <input\n className=\"w-0 h-0 overflow-hidden opacity-0\"\n ref={ref}\n type=\"file\"\n accept=\".jpg,.jpeg,.png,.webp,.gif\"\n onChange={onFileChange}\n />\n </div>\n );\n};\n\nexport default ImageUploader;\n"],"names":["Image","Upload","useCallback","Button","Icon","Spinner","cn","useDropZone","useFileUpload","useUploader","ImageUploader","onUpload","loading","uploadFile","handleUploadClick","ref","draggedInside","onDrop","onDragEnter","onDragLeave","uploader","onFileChange","e","target","files","div","className","size","wrapperClass","onDragOver","contentEditable","icon","type","disabled","onClick","variant","buttonSize","input","accept","onChange"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,KAAK,EAAEC,MAAM,QAAQ,eAAe;AAC7C,SAAsBC,WAAW,QAAQ,QAAQ;AACjD,SAASC,MAAM,QAAQ,wCAAwC;AAC/D,SAASC,IAAI,QAAQ,+BAA+B;AACpD,SAASC,OAAO,QAAQ,0CAA0C;AAClE,SAASC,EAAE,QAAQ,8BAA8B;AACjD,SAASC,WAAW,EAAEC,aAAa,EAAEC,WAAW,QAAQ,aAAa;AACrE,OAAO,MAAMC,gBAAgB,CAAC,EAC5BC,QAAQ,EAGT;IACC,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAE,GAAGJ,YAAY;QAAEE;IAAS;IACvD,MAAM,EAAEG,iBAAiB,EAAEC,GAAG,EAAE,GAAGP;IACnC,MAAM,EAAEQ,aAAa,EAAEC,MAAM,EAAEC,WAAW,EAAEC,WAAW,EAAE,GAAGZ,YAAY;QACtEa,UAAUP;IACZ;IAEA,MAAMQ,eAAenB,YACnB,CAACoB,IACCA,EAAEC,MAAM,CAACC,KAAK,GAAGX,eAAe,MAClC;QAACA;KAAW;IAGd,IAAID,SAAS;QACX,qBACE,KAACa;YAAIC,WAAU;sBACb,cAAA,KAACrB;gBAAQqB,WAAU;gBAAmBC,MAAM;;;IAGlD;IAEA,MAAMC,eAAetB,GACnB,iFACAU,iBAAiB;IAGnB,qBACE,MAACS;QACCC,WAAWE;QACXX,QAAQA;QACRY,YAAYX;QACZC,aAAaA;QACbW,iBAAiB;;0BAEjB,KAAC1B;gBACC2B,MAAM/B;gBACN0B,WAAU;;0BAEZ,MAACD;gBAAIC,WAAU;;kCACb,KAACD;wBAAIC,WAAU;kCACZV,gBAAgB,oBAAoB;;kCAEvC,KAACS;kCACC,cAAA,MAACtB;4BACC6B,MAAK;4BACLC,UAAUjB;4BACVkB,SAASpB;4BACTqB,SAAQ;4BACRC,YAAW;;8CAEX,KAAChC;oCAAK2B,MAAM9B;;gCAAU;;;;;;0BAK5B,KAACoC;gBACCX,WAAU;gBACVX,KAAKA;gBACLiB,MAAK;gBACLM,QAAO;gBACPC,UAAUlB;;;;AAIlB,EAAE;AAEF,eAAeX,cAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./ImageUpload.
|
|
1
|
+
export * from "./ImageUpload.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/view/index.tsx"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/view/index.tsx"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/view/index.tsx"],"sourcesContent":["export * from \"./ImageUpload.
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/ImageUpload/view/index.tsx"],"sourcesContent":["export * from \"./ImageUpload.js\";\n"],"names":[],"rangeMappings":"","mappings":"AAAA,cAAc,mBAAmB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Node, mergeAttributes } from "@tiptap/core";
|
|
2
2
|
import { ReactNodeViewRenderer } from "@tiptap/react";
|
|
3
|
-
import InsideLinksComponent from "./InsideLinksComponent.
|
|
3
|
+
import InsideLinksComponent from "./InsideLinksComponent.js";
|
|
4
4
|
export const InsideLinks = Node.create({
|
|
5
5
|
name: "insideLinks",
|
|
6
6
|
group: "block",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/InsideLinks/insideLinks.ts"],"sourcesContent":["declare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n insideLinks: {\n /**\n * Add an image\n */\n\n insertInsideLinks: ({\n thumbnail,\n title,\n id,\n type,\n url,\n }: {\n thumbnail?: string;\n title?: string;\n id?: string;\n type?: string;\n url?: string;\n }) => ReturnType;\n };\n }\n}\n\nimport { Node, mergeAttributes } from \"@tiptap/core\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport InsideLinksComponent from \"./InsideLinksComponent.
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/InsideLinks/insideLinks.ts"],"sourcesContent":["declare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n insideLinks: {\n /**\n * Add an image\n */\n\n insertInsideLinks: ({\n thumbnail,\n title,\n id,\n type,\n url,\n }: {\n thumbnail?: string;\n title?: string;\n id?: string;\n type?: string;\n url?: string;\n }) => ReturnType;\n };\n }\n}\n\nimport { Node, mergeAttributes } from \"@tiptap/core\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport InsideLinksComponent from \"./InsideLinksComponent.js\";\n\nexport const InsideLinks = Node.create({\n name: \"insideLinks\",\n\n group: \"block\",\n content: \"inline*\",\n draggable: true,\n\n // content: 'inline*',\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"insideLinks\"]',\n },\n ];\n },\n\n addAttributes() {\n return {\n thumbnail: { default: null },\n title: { default: null },\n id: { default: null },\n type: { default: null },\n url: { default: null },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n \"Mod-Enter\": () => {\n return this.editor\n .chain()\n .insertContentAt(this.editor.state.selection.head, {\n type: this.type.name,\n })\n .focus()\n .run();\n },\n };\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\n \"div\",\n mergeAttributes(HTMLAttributes, { \"data-type\": \"insideLinks\" }),\n 0,\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(InsideLinksComponent);\n },\n\n addCommands() {\n return {\n insertInsideLinks:\n ({\n thumbnail,\n title,\n id,\n type,\n url,\n }: {\n thumbnail?: string;\n title?: string;\n id?: string;\n type?: string;\n url?: string;\n }) =>\n ({ commands, state }) => {\n return commands.insertContent({\n type: \"insideLinks\",\n attrs: {\n thumbnail,\n title,\n id,\n type,\n url,\n },\n });\n },\n };\n },\n});\n\nfunction isValidHttpUrl(string: string) {\n let url;\n\n try {\n url = new URL(string);\n } catch (_) {\n return false;\n }\n\n return url.protocol === \"http:\" || url.protocol === \"https:\";\n}\n"],"names":["Node","mergeAttributes","ReactNodeViewRenderer","InsideLinksComponent","InsideLinks","create","name","group","content","draggable","parseHTML","tag","addAttributes","thumbnail","default","title","id","type","url","addKeyboardShortcuts","editor","chain","insertContentAt","state","selection","head","focus","run","renderHTML","HTMLAttributes","addNodeView","addCommands","insertInsideLinks","commands","insertContent","attrs","isValidHttpUrl","string","URL","_","protocol"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAwBA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AACrD,SAASC,qBAAqB,QAAQ,gBAAgB;AACtD,OAAOC,0BAA0B,4BAA4B;AAE7D,OAAO,MAAMC,cAAcJ,KAAKK,MAAM,CAAC;IACrCC,MAAM;IAENC,OAAO;IACPC,SAAS;IACTC,WAAW;IAEX,sBAAsB;IAEtBC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC;QACE,OAAO;YACLC,WAAW;gBAAEC,SAAS;YAAK;YAC3BC,OAAO;gBAAED,SAAS;YAAK;YACvBE,IAAI;gBAAEF,SAAS;YAAK;YACpBG,MAAM;gBAAEH,SAAS;YAAK;YACtBI,KAAK;gBAAEJ,SAAS;YAAK;QACvB;IACF;IAEAK;QACE,OAAO;YACL,aAAa;gBACX,OAAO,IAAI,CAACC,MAAM,CACfC,KAAK,GACLC,eAAe,CAAC,IAAI,CAACF,MAAM,CAACG,KAAK,CAACC,SAAS,CAACC,IAAI,EAAE;oBACjDR,MAAM,IAAI,CAACA,IAAI,CAACX,IAAI;gBACtB,GACCoB,KAAK,GACLC,GAAG;YACR;QACF;IACF;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YACL;YACA5B,gBAAgB4B,gBAAgB;gBAAE,aAAa;YAAc;YAC7D;SACD;IACH;IAEAC;QACE,OAAO5B,sBAAsBC;IAC/B;IAEA4B;QACE,OAAO;YACLC,mBACE,CAAC,EACCnB,SAAS,EACTE,KAAK,EACLC,EAAE,EACFC,IAAI,EACJC,GAAG,EAOJ,GACD,CAAC,EAAEe,QAAQ,EAAEV,KAAK,EAAE;oBAClB,OAAOU,SAASC,aAAa,CAAC;wBAC5BjB,MAAM;wBACNkB,OAAO;4BACLtB;4BACAE;4BACAC;4BACAC;4BACAC;wBACF;oBACF;gBACF;QACJ;IACF;AACF,GAAG;AAEH,SAASkB,eAAeC,MAAc;IACpC,IAAInB;IAEJ,IAAI;QACFA,MAAM,IAAIoB,IAAID;IAChB,EAAE,OAAOE,GAAG;QACV,OAAO;IACT;IAEA,OAAOrB,IAAIsB,QAAQ,KAAK,WAAWtB,IAAIsB,QAAQ,KAAK;AACtD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { BubbleMenu as BaseBubbleMenu } from "@tiptap/react";
|
|
3
3
|
import { useCallback } from "react";
|
|
4
|
-
import { InsideLinksEditorPanel } from "../../../features/panels/InsideLinksEditorPanel/index.
|
|
4
|
+
import { InsideLinksEditorPanel } from "../../../features/panels/InsideLinksEditorPanel/index.js";
|
|
5
5
|
export const InsideLinksMenu = ({ editor, appendTo })=>{
|
|
6
6
|
const shouldShow = useCallback(()=>{
|
|
7
7
|
const isInsideLinks = editor.isActive("insideLinks");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/InsideLinks/menus/InsideLinksMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu } from \"@tiptap/react\";\nimport { useCallback } from \"react\";\n\nimport { MenuProps } from \"../../../features/menus/types.js\";\nimport { InsideLinksEditorPanel } from \"../../../features/panels/InsideLinksEditorPanel/index.
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/InsideLinks/menus/InsideLinksMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu } from \"@tiptap/react\";\nimport { useCallback } from \"react\";\n\nimport { MenuProps } from \"../../../features/menus/types.js\";\nimport { InsideLinksEditorPanel } from \"../../../features/panels/InsideLinksEditorPanel/index.js\";\n\nexport const InsideLinksMenu = ({ editor, appendTo }: MenuProps) => {\n const shouldShow = useCallback(() => {\n const isInsideLinks = editor.isActive(\"insideLinks\");\n return isInsideLinks;\n }, [editor]);\n\n const onRelationshipSelect = useCallback(\n ({\n id,\n type,\n thumbnail,\n title,\n url,\n }: {\n id: string;\n type: string;\n thumbnail: string;\n title: string;\n url: string;\n }) => {\n editor\n .chain()\n .focus()\n .insertInsideLinks({ id, type, thumbnail, title, url })\n .run();\n },\n [editor]\n );\n\n return (\n <BaseBubbleMenu\n editor={editor}\n pluginKey={`socialMediaMenu`}\n shouldShow={shouldShow}\n tippyOptions={{\n popperOptions: { placement: \"bottom\" },\n placement: \"bottom\",\n // appendTo: () => {\n // return appendTo?.current\n // },\n }}\n updateDelay={100}\n >\n <p>Inside Links</p>\n <InsideLinksEditorPanel\n onRelationshipSelect={onRelationshipSelect}\n onCancel={() => {\n editor.chain().blur().run();\n }}\n />\n {/* <SocialMediaPopover onSetLink={onHtml} initialSrcLink={''} /> */}\n {/* \n <Toolbar.Wrapper>\n <to\n <Toolbar.Button\n type=\"button\"\n tooltip=\"Sidebar left\"\n active={true}\n // onClick={onColumnLeft}\n >\n <SocialMediaPopover onSetLink={onHtml} initialSrcLink={''} />\n </Toolbar.Button>\n </Toolbar.Wrapper> */}\n </BaseBubbleMenu>\n );\n};\n\nexport default InsideLinksMenu;\n"],"names":["BubbleMenu","BaseBubbleMenu","useCallback","InsideLinksEditorPanel","InsideLinksMenu","editor","appendTo","shouldShow","isInsideLinks","isActive","onRelationshipSelect","id","type","thumbnail","title","url","chain","focus","insertInsideLinks","run","pluginKey","tippyOptions","popperOptions","placement","updateDelay","p","onCancel","blur"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,cAAcC,cAAc,QAAQ,gBAAgB;AAC7D,SAASC,WAAW,QAAQ,QAAQ;AAGpC,SAASC,sBAAsB,QAAQ,2DAA2D;AAElG,OAAO,MAAMC,kBAAkB,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAa;IAC7D,MAAMC,aAAaL,YAAY;QAC7B,MAAMM,gBAAgBH,OAAOI,QAAQ,CAAC;QACtC,OAAOD;IACT,GAAG;QAACH;KAAO;IAEX,MAAMK,uBAAuBR,YAC3B,CAAC,EACCS,EAAE,EACFC,IAAI,EACJC,SAAS,EACTC,KAAK,EACLC,GAAG,EAOJ;QACCV,OACGW,KAAK,GACLC,KAAK,GACLC,iBAAiB,CAAC;YAAEP;YAAIC;YAAMC;YAAWC;YAAOC;QAAI,GACpDI,GAAG;IACR,GACA;QAACd;KAAO;IAGV,qBACE,MAACJ;QACCI,QAAQA;QACRe,WAAW,CAAC,eAAe,CAAC;QAC5Bb,YAAYA;QACZc,cAAc;YACZC,eAAe;gBAAEC,WAAW;YAAS;YACrCA,WAAW;QAIb;QACAC,aAAa;;0BAEb,KAACC;0BAAE;;0BACH,KAACtB;gBACCO,sBAAsBA;gBACtBgB,UAAU;oBACRrB,OAAOW,KAAK,GAAGW,IAAI,GAAGR,GAAG;gBAC3B;;;;AAiBR,EAAE;AAEF,eAAef,gBAAgB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./InsideLinksMenu.
|
|
1
|
+
export * from "./InsideLinksMenu.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/InsideLinks/menus/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/InsideLinks/menus/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/InsideLinks/menus/index.ts"],"sourcesContent":["export * from \"./InsideLinksMenu.
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/InsideLinks/menus/index.ts"],"sourcesContent":["export * from \"./InsideLinksMenu.js\";\n"],"names":[],"rangeMappings":"","mappings":"AAAA,cAAc,uBAAuB"}
|
|
@@ -4,8 +4,8 @@ import { useCallback } from "react";
|
|
|
4
4
|
import { sticky } from "tippy.js";
|
|
5
5
|
import { v4 as uuid } from "uuid";
|
|
6
6
|
import { Columns2, PanelLeft, PanelRight } from "lucide-react";
|
|
7
|
-
import { Icon } from "../../../features/ui/Icon.
|
|
8
|
-
import { Toolbar } from "../../../features/ui/Toolbar.
|
|
7
|
+
import { Icon } from "../../../features/ui/Icon.js";
|
|
8
|
+
import { Toolbar } from "../../../features/ui/Toolbar.js";
|
|
9
9
|
import { getRenderContainer } from "../../../lib/utils/index.js";
|
|
10
10
|
import { ColumnLayout } from "../Columns.js";
|
|
11
11
|
export const ColumnsMenu = ({ editor, appendTo })=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/MultiColumn/menus/ColumnsMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu } from \"@tiptap/react\";\nimport { useCallback } from \"react\";\nimport { sticky } from \"tippy.js\";\nimport { v4 as uuid } from \"uuid\";\n\nimport { Columns2, PanelLeft, PanelRight } from \"lucide-react\";\nimport { MenuProps } from \"../../../features/menus/types.js\";\nimport { Icon } from \"../../../features/ui/Icon.
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/MultiColumn/menus/ColumnsMenu.tsx"],"sourcesContent":["import { BubbleMenu as BaseBubbleMenu } from \"@tiptap/react\";\nimport { useCallback } from \"react\";\nimport { sticky } from \"tippy.js\";\nimport { v4 as uuid } from \"uuid\";\n\nimport { Columns2, PanelLeft, PanelRight } from \"lucide-react\";\nimport { MenuProps } from \"../../../features/menus/types.js\";\nimport { Icon } from \"../../../features/ui/Icon.js\";\nimport { Toolbar } from \"../../../features/ui/Toolbar.js\";\nimport { getRenderContainer } from \"../../../lib/utils/index.js\";\nimport { ColumnLayout } from \"../Columns.js\";\n\nexport const ColumnsMenu = ({ editor, appendTo }: MenuProps) => {\n const getReferenceClientRect = useCallback(() => {\n const renderContainer = getRenderContainer(editor, \"columns\");\n const rect =\n renderContainer?.getBoundingClientRect() ||\n new DOMRect(-1000, -1000, 0, 0);\n\n return rect;\n }, [editor]);\n\n const shouldShow = useCallback(() => {\n const isColumns = editor.isActive(\"columns\");\n return isColumns;\n }, [editor]);\n\n const onColumnLeft = useCallback(() => {\n editor.chain().focus().setLayout(ColumnLayout.SidebarLeft).run();\n }, [editor]);\n\n const onColumnRight = useCallback(() => {\n editor.chain().focus().setLayout(ColumnLayout.SidebarRight).run();\n }, [editor]);\n\n const onColumnTwo = useCallback(() => {\n editor.chain().focus().setLayout(ColumnLayout.TwoColumn).run();\n }, [editor]);\n\n return (\n <BaseBubbleMenu\n editor={editor}\n pluginKey={`columnsMenu-${uuid()}`}\n shouldShow={shouldShow}\n updateDelay={0}\n tippyOptions={{\n offset: [0, 8],\n popperOptions: {\n modifiers: [{ name: \"flip\", enabled: false }],\n },\n getReferenceClientRect,\n appendTo: () => appendTo?.current,\n plugins: [sticky],\n sticky: \"popper\",\n }}\n >\n <Toolbar.Wrapper>\n <Toolbar.Button\n type=\"button\"\n tooltip=\"Sidebar left\"\n active={editor.isActive(\"columns\", {\n layout: ColumnLayout.SidebarLeft,\n })}\n onClick={onColumnLeft}\n >\n <Icon icon={PanelLeft} />\n </Toolbar.Button>\n <Toolbar.Button\n type=\"button\"\n tooltip=\"Two columns\"\n active={editor.isActive(\"columns\", {\n layout: ColumnLayout.TwoColumn,\n })}\n onClick={onColumnTwo}\n >\n <Icon icon={Columns2} />\n </Toolbar.Button>\n <Toolbar.Button\n type=\"button\"\n tooltip=\"Sidebar right\"\n active={editor.isActive(\"columns\", {\n layout: ColumnLayout.SidebarRight,\n })}\n onClick={onColumnRight}\n >\n <Icon icon={PanelRight} />\n </Toolbar.Button>\n </Toolbar.Wrapper>\n </BaseBubbleMenu>\n );\n};\n\nexport default ColumnsMenu;\n"],"names":["BubbleMenu","BaseBubbleMenu","useCallback","sticky","v4","uuid","Columns2","PanelLeft","PanelRight","Icon","Toolbar","getRenderContainer","ColumnLayout","ColumnsMenu","editor","appendTo","getReferenceClientRect","renderContainer","rect","getBoundingClientRect","DOMRect","shouldShow","isColumns","isActive","onColumnLeft","chain","focus","setLayout","SidebarLeft","run","onColumnRight","SidebarRight","onColumnTwo","TwoColumn","pluginKey","updateDelay","tippyOptions","offset","popperOptions","modifiers","name","enabled","current","plugins","Wrapper","Button","type","tooltip","active","layout","onClick","icon"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAAA,SAASA,cAAcC,cAAc,QAAQ,gBAAgB;AAC7D,SAASC,WAAW,QAAQ,QAAQ;AACpC,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,MAAMC,IAAI,QAAQ,OAAO;AAElC,SAASC,QAAQ,EAAEC,SAAS,EAAEC,UAAU,QAAQ,eAAe;AAE/D,SAASC,IAAI,QAAQ,+BAA+B;AACpD,SAASC,OAAO,QAAQ,kCAAkC;AAC1D,SAASC,kBAAkB,QAAQ,8BAA8B;AACjE,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,OAAO,MAAMC,cAAc,CAAC,EAAEC,MAAM,EAAEC,QAAQ,EAAa;IACzD,MAAMC,yBAAyBd,YAAY;QACzC,MAAMe,kBAAkBN,mBAAmBG,QAAQ;QACnD,MAAMI,OACJD,iBAAiBE,2BACjB,IAAIC,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG;QAE/B,OAAOF;IACT,GAAG;QAACJ;KAAO;IAEX,MAAMO,aAAanB,YAAY;QAC7B,MAAMoB,YAAYR,OAAOS,QAAQ,CAAC;QAClC,OAAOD;IACT,GAAG;QAACR;KAAO;IAEX,MAAMU,eAAetB,YAAY;QAC/BY,OAAOW,KAAK,GAAGC,KAAK,GAAGC,SAAS,CAACf,aAAagB,WAAW,EAAEC,GAAG;IAChE,GAAG;QAACf;KAAO;IAEX,MAAMgB,gBAAgB5B,YAAY;QAChCY,OAAOW,KAAK,GAAGC,KAAK,GAAGC,SAAS,CAACf,aAAamB,YAAY,EAAEF,GAAG;IACjE,GAAG;QAACf;KAAO;IAEX,MAAMkB,cAAc9B,YAAY;QAC9BY,OAAOW,KAAK,GAAGC,KAAK,GAAGC,SAAS,CAACf,aAAaqB,SAAS,EAAEJ,GAAG;IAC9D,GAAG;QAACf;KAAO;IAEX,qBACE,KAACb;QACCa,QAAQA;QACRoB,WAAW,CAAC,YAAY,EAAE7B,OAAO,CAAC;QAClCgB,YAAYA;QACZc,aAAa;QACbC,cAAc;YACZC,QAAQ;gBAAC;gBAAG;aAAE;YACdC,eAAe;gBACbC,WAAW;oBAAC;wBAAEC,MAAM;wBAAQC,SAAS;oBAAM;iBAAE;YAC/C;YACAzB;YACAD,UAAU,IAAMA,UAAU2B;YAC1BC,SAAS;gBAACxC;aAAO;YACjBA,QAAQ;QACV;kBAEA,cAAA,MAACO,QAAQkC,OAAO;;8BACd,KAAClC,QAAQmC,MAAM;oBACbC,MAAK;oBACLC,SAAQ;oBACRC,QAAQlC,OAAOS,QAAQ,CAAC,WAAW;wBACjC0B,QAAQrC,aAAagB,WAAW;oBAClC;oBACAsB,SAAS1B;8BAET,cAAA,KAACf;wBAAK0C,MAAM5C;;;8BAEd,KAACG,QAAQmC,MAAM;oBACbC,MAAK;oBACLC,SAAQ;oBACRC,QAAQlC,OAAOS,QAAQ,CAAC,WAAW;wBACjC0B,QAAQrC,aAAaqB,SAAS;oBAChC;oBACAiB,SAASlB;8BAET,cAAA,KAACvB;wBAAK0C,MAAM7C;;;8BAEd,KAACI,QAAQmC,MAAM;oBACbC,MAAK;oBACLC,SAAQ;oBACRC,QAAQlC,OAAOS,QAAQ,CAAC,WAAW;wBACjC0B,QAAQrC,aAAamB,YAAY;oBACnC;oBACAmB,SAASpB;8BAET,cAAA,KAACrB;wBAAK0C,MAAM3C;;;;;;AAKtB,EAAE;AAEF,eAAeK,YAAY"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from "./ColumnsMenu.
|
|
1
|
+
export * from "./ColumnsMenu.js";
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/MultiColumn/menus/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/fields/TiptapEditor/extensions/MultiColumn/menus/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/MultiColumn/menus/index.ts"],"sourcesContent":["export * from \"./ColumnsMenu.
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/fields/TiptapEditor/extensions/MultiColumn/menus/index.ts"],"sourcesContent":["export * from \"./ColumnsMenu.js\";\n"],"names":[],"rangeMappings":"","mappings":"AAAA,cAAc,mBAAmB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef } from "react";
|
|
3
|
-
import { Icon } from "../../features/ui/Icon.
|
|
3
|
+
import { Icon } from "../../features/ui/Icon.js";
|
|
4
4
|
import { cn } from "../../lib/utils/index.js";
|
|
5
5
|
export const CommandButton = /*#__PURE__*/ forwardRef(({ active, icon, onClick, title }, ref)=>{
|
|
6
6
|
const wrapperClass = cn("flex text-neutral-500 items-center text-xs font-semibold justify-start p-1.5 gap-2 rounded", !active && "bg-transparent hover:bg-neutral-50 hover:text-black", active && "bg-neutral-100 text-black hover:bg-neutral-100");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.tsx"],"sourcesContent":["import { LucideIcon } from \"lucide-react\";\nimport { forwardRef } from \"react\";\nimport { Icon } from \"../../features/ui/Icon.
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/CommandButton.tsx"],"sourcesContent":["import { LucideIcon } from \"lucide-react\";\nimport { forwardRef } from \"react\";\nimport { Icon } from \"../../features/ui/Icon.js\";\nimport { cn } from \"../../lib/utils/index.js\";\n\nexport type CommandButtonProps = {\n active?: boolean;\n description: string;\n icon: LucideIcon;\n onClick: () => void;\n title: string;\n};\n\nexport const CommandButton = forwardRef<HTMLButtonElement, CommandButtonProps>(\n ({ active, icon, onClick, title }, ref) => {\n const wrapperClass = cn(\n \"flex text-neutral-500 items-center text-xs font-semibold justify-start p-1.5 gap-2 rounded\",\n !active && \"bg-transparent hover:bg-neutral-50 hover:text-black\",\n active && \"bg-neutral-100 text-black hover:bg-neutral-100\"\n );\n\n return (\n <button\n type=\"button\"\n ref={ref}\n onClick={onClick}\n className={wrapperClass}\n >\n <Icon icon={icon} className=\"w-3 h-3\" />\n <div className=\"flex flex-col items-start justify-start\">\n <div className=\"text-sm font-medium\">{title}</div>\n </div>\n </button>\n );\n }\n);\n\nCommandButton.displayName = \"CommandButton\";\n"],"names":["forwardRef","Icon","cn","CommandButton","active","icon","onClick","title","ref","wrapperClass","button","type","className","div","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AACA,SAASA,UAAU,QAAQ,QAAQ;AACnC,SAASC,IAAI,QAAQ,4BAA4B;AACjD,SAASC,EAAE,QAAQ,2BAA2B;AAU9C,OAAO,MAAMC,8BAAgBH,WAC3B,CAAC,EAAEI,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAEC,KAAK,EAAE,EAAEC;IACjC,MAAMC,eAAeP,GACnB,8FACA,CAACE,UAAU,uDACXA,UAAU;IAGZ,qBACE,MAACM;QACCC,MAAK;QACLH,KAAKA;QACLF,SAASA;QACTM,WAAWH;;0BAEX,KAACR;gBAAKI,MAAMA;gBAAMO,WAAU;;0BAC5B,KAACC;gBAAID,WAAU;0BACb,cAAA,KAACC;oBAAID,WAAU;8BAAuBL;;;;;AAI9C,GACA;AAEFJ,cAAcW,WAAW,GAAG"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
3
|
-
import { DropdownButton } from "../../features/ui/Dropdown/Dropdown.
|
|
4
|
-
import { Surface } from "../../features/ui/Surface.
|
|
5
|
-
import { Icon } from "../../features/ui/Icon.
|
|
3
|
+
import { DropdownButton } from "../../features/ui/Dropdown/Dropdown.js";
|
|
4
|
+
import { Surface } from "../../features/ui/Surface.js";
|
|
5
|
+
import { Icon } from "../../features/ui/Icon.js";
|
|
6
6
|
export const MenuList = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
7
7
|
const scrollContainer = useRef(null);
|
|
8
8
|
const activeItem = useRef(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/MenuList.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { DropdownButton } from \"../../features/ui/Dropdown/Dropdown.
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/SlashCommand/MenuList.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { DropdownButton } from \"../../features/ui/Dropdown/Dropdown.js\";\nimport { Surface } from \"../../features/ui/Surface.js\";\nimport { Command, MenuListProps } from \"./types.js\";\n\nimport { Icon } from \"../../features/ui/Icon.js\";\n\nexport const MenuList = React.forwardRef((props: MenuListProps, ref) => {\n const scrollContainer = useRef<HTMLDivElement>(null);\n const activeItem = useRef<HTMLButtonElement>(null);\n const [selectedGroupIndex, setSelectedGroupIndex] = useState(0);\n const [selectedCommandIndex, setSelectedCommandIndex] = useState(0);\n\n // Anytime the groups change, i.e. the user types to narrow it down, we want to\n // reset the current selection to the first menu item\n useEffect(() => {\n setSelectedGroupIndex(0);\n setSelectedCommandIndex(0);\n }, [props.items]);\n\n const selectItem = useCallback(\n (groupIndex: number, commandIndex: number) => {\n const command = props.items[groupIndex].commands[commandIndex];\n props.command(command);\n },\n [props]\n );\n\n React.useImperativeHandle(ref, () => ({\n onKeyDown: ({ event }: { event: React.KeyboardEvent }) => {\n if (event.key === \"ArrowDown\") {\n if (!props.items.length) {\n return false;\n }\n\n const commands = props.items[selectedGroupIndex].commands;\n\n let newCommandIndex = selectedCommandIndex + 1;\n let newGroupIndex = selectedGroupIndex;\n\n if (commands.length - 1 < newCommandIndex) {\n newCommandIndex = 0;\n newGroupIndex = selectedGroupIndex + 1;\n }\n\n if (props.items.length - 1 < newGroupIndex) {\n newGroupIndex = 0;\n }\n\n setSelectedCommandIndex(newCommandIndex);\n setSelectedGroupIndex(newGroupIndex);\n\n return true;\n }\n\n if (event.key === \"ArrowUp\") {\n if (!props.items.length) {\n return false;\n }\n\n let newCommandIndex = selectedCommandIndex - 1;\n let newGroupIndex = selectedGroupIndex;\n\n if (newCommandIndex < 0) {\n newGroupIndex = selectedGroupIndex - 1;\n newCommandIndex =\n props.items[newGroupIndex]?.commands.length - 1 || 0;\n }\n\n if (newGroupIndex < 0) {\n newGroupIndex = props.items.length - 1;\n newCommandIndex = props.items[newGroupIndex].commands.length - 1;\n }\n\n setSelectedCommandIndex(newCommandIndex);\n setSelectedGroupIndex(newGroupIndex);\n\n return true;\n }\n\n if (event.key === \"Enter\") {\n if (\n !props.items.length ||\n selectedGroupIndex === -1 ||\n selectedCommandIndex === -1\n ) {\n return false;\n }\n\n selectItem(selectedGroupIndex, selectedCommandIndex);\n\n return true;\n }\n\n return false;\n },\n }));\n\n useEffect(() => {\n if (activeItem.current && scrollContainer.current) {\n const offsetTop = activeItem.current.offsetTop;\n const offsetHeight = activeItem.current.offsetHeight;\n\n scrollContainer.current.scrollTop = offsetTop - offsetHeight;\n }\n }, [selectedCommandIndex, selectedGroupIndex]);\n\n const createCommandClickHandler = useCallback(\n (groupIndex: number, commandIndex: number) => {\n return () => {\n selectItem(groupIndex, commandIndex);\n };\n },\n [selectItem]\n );\n\n if (!props.items.length) {\n return null;\n }\n\n return (\n <Surface\n ref={scrollContainer}\n className=\"text-black max-h-[min(80vh,24rem)] overflow-auto flex-wrap mb-8 p-2\"\n >\n <div className=\"grid grid-cols-1 gap-0.5\">\n {props.items.map((group, groupIndex: number) => (\n <React.Fragment key={`${group.title}-wrapper`}>\n <div\n className=\"text-neutral-500 text-[0.65rem] col-[1/-1] mx-2 mt-4 font-semibold tracking-wider select-none uppercase first:mt-0.5\"\n key={`${group.title}`}\n >\n {group.title}\n </div>\n {group.commands.map((command: Command, commandIndex: number) => (\n <DropdownButton\n key={`${command.label}`}\n isActive={\n selectedGroupIndex === groupIndex &&\n selectedCommandIndex === commandIndex\n }\n onClick={createCommandClickHandler(groupIndex, commandIndex)}\n >\n <Icon icon={command.icon} className=\"mr-1\" />\n {command.label}\n </DropdownButton>\n ))}\n </React.Fragment>\n ))}\n </div>\n </Surface>\n );\n});\n\nMenuList.displayName = \"MenuList\";\n\nexport default MenuList;\n"],"names":["React","useCallback","useEffect","useRef","useState","DropdownButton","Surface","Icon","MenuList","forwardRef","props","ref","scrollContainer","activeItem","selectedGroupIndex","setSelectedGroupIndex","selectedCommandIndex","setSelectedCommandIndex","items","selectItem","groupIndex","commandIndex","command","commands","useImperativeHandle","onKeyDown","event","key","length","newCommandIndex","newGroupIndex","current","offsetTop","offsetHeight","scrollTop","createCommandClickHandler","className","div","map","group","Fragment","title","isActive","onClick","icon","label","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import Suggestion from "@tiptap/suggestion";
|
|
|
4
4
|
import { PluginKey } from "@tiptap/pm/state";
|
|
5
5
|
import tippy from "tippy.js";
|
|
6
6
|
import { GROUPS } from "./groups.js";
|
|
7
|
-
import { MenuList } from "./MenuList.
|
|
7
|
+
import { MenuList } from "./MenuList.js";
|
|
8
8
|
const extensionName = "slashCommand";
|
|
9
9
|
let popup;
|
|
10
10
|
export const SlashCommand = Extension.create({
|