payload-richtext-tiptap 0.0.122 → 0.0.124
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/article-custom.css +1 -0
- package/dist/src/body/ArticleBody.d.ts +8 -0
- package/dist/src/body/ArticleBody.d.ts.map +1 -0
- package/dist/src/body/ArticleBody.js +34 -0
- package/dist/src/body/ArticleBody.js.map +1 -0
- package/dist/src/body/StandardArticle.d.ts +6 -0
- package/dist/src/body/StandardArticle.d.ts.map +1 -0
- package/dist/src/body/StandardArticle.js +94 -0
- package/dist/src/body/StandardArticle.js.map +1 -0
- package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockView.js +0 -1
- package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockView.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.js +0 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockView.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js +1 -0
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUpload.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js +0 -1
- package/dist/src/fields/TiptapEditor/extensions/ImageUpload/view/ImageUploader.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.js +0 -1
- package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.js +1 -2
- package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.js +0 -2
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbed.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.d.ts.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.js +0 -1
- package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockView.js +0 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockView.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockViewClientside.js +1 -2
- package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockViewClientside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/FacebookServerside.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/FacebookServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/InstagramServerside.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/InstagramServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/RenderEmbedClientSide.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/RenderEmbedClientSide.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TiktokServerside.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TiktokServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.js.map +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.js +1 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.js.map +1 -1
- package/dist/src/fonts/font.ar.js +22 -0
- package/dist/src/fonts/font.ar.js.map +1 -0
- package/dist/src/fonts/font.en.js +147 -0
- package/dist/src/fonts/font.en.js.map +1 -0
- package/dist/src/fonts/font.fa.js +23 -0
- package/dist/src/fonts/font.fa.js.map +1 -0
- package/dist/src/fonts/font.ps.js +23 -0
- package/dist/src/fonts/font.ps.js.map +1 -0
- package/dist/src/fonts/font.ur.js +23 -0
- package/dist/src/fonts/font.ur.js.map +1 -0
- package/dist/src/fonts/fonts/arima/Arima-Bold.ttf +0 -0
- package/dist/src/fonts/fonts/arima/Arima-ExtraLight.ttf +0 -0
- package/dist/src/fonts/fonts/arima/Arima-Light.ttf +0 -0
- package/dist/src/fonts/fonts/arima/Arima-Medium.ttf +0 -0
- package/dist/src/fonts/fonts/arima/Arima-Regular.ttf +0 -0
- package/dist/src/fonts/fonts/arima/Arima-SemiBold.ttf +0 -0
- package/dist/src/fonts/fonts/arima/Arima-Thin.ttf +0 -0
- package/dist/src/fonts/fonts/libre/LibreBodoni-Bold.ttf +0 -0
- package/dist/src/fonts/fonts/libre/LibreBodoni-BoldItalic.ttf +0 -0
- package/dist/src/fonts/fonts/libre/LibreBodoni-Italic.ttf +0 -0
- package/dist/src/fonts/fonts/libre/LibreBodoni-Medium.ttf +0 -0
- package/dist/src/fonts/fonts/libre/LibreBodoni-MediumItalic.ttf +0 -0
- package/dist/src/fonts/fonts/libre/LibreBodoni-Regular.ttf +0 -0
- package/dist/src/fonts/fonts/libre/LibreBodoni-SemiBold.ttf +0 -0
- package/dist/src/fonts/fonts/libre/LibreBodoni-SemiBoldItalic.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-Bold.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-BoldItalic.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-ExtraBold.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-ExtraBoldItalic.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-ExtraLight.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-ExtraLightItalic.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-Italic.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-Light.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-LightItalic.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-Medium.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-MediumItalic.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-Regular.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-SemiBold.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-SemiBoldItalic.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-Thin.ttf +0 -0
- package/dist/src/fonts/fonts/notoserif/NotoSerif-ThinItalic.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-Black.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-BlackItalic.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-Bold.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-BoldItalic.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-ExtraBold.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-ExtraBoldItalic.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-Italic.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-Medium.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-MediumItalic.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-Regular.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-SemiBold.ttf +0 -0
- package/dist/src/fonts/fonts/playfair/PlayfairDisplay-SemiBoldItalic.ttf +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-black.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-blackitalic.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-bold.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-bolditalic.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-heavy.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-heavyitalic.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-light.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-lightitalic.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-medium.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-mediumitalic.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-regular.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-regularitalic.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-semibold.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-semibolditalic.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-thin.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-thinitalic.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-ultralight.woff2 +0 -0
- package/dist/src/fonts/fonts/sf/sf-pro-display-ultralightitalic.woff2 +0 -0
- package/dist/src/fonts/fonts/trt/TRT-Bold.woff2 +0 -0
- package/dist/src/fonts/fonts/trt/TRT-BoldItalic.woff2 +0 -0
- package/dist/src/fonts/fonts/trt/TRT-Light.woff2 +0 -0
- package/dist/src/fonts/fonts/trt/TRT-LightItalic.woff2 +0 -0
- package/dist/src/fonts/fonts/trt/TRT-Medium.woff2 +0 -0
- package/dist/src/fonts/fonts/trt/TRT-MediumItalic.woff2 +0 -0
- package/dist/src/fonts/fonts/trt/TRT-Regular.woff2 +0 -0
- package/dist/src/fonts/fonts/trt/TRT-RegularItalic.woff2 +0 -0
- package/dist/src/fonts/fonts/vazirmatn/Vazirmatn-Black.ttf +0 -0
- package/dist/src/fonts/fonts/vazirmatn/Vazirmatn-Bold.ttf +0 -0
- package/dist/src/fonts/fonts/vazirmatn/Vazirmatn-ExtraBold.ttf +0 -0
- package/dist/src/fonts/fonts/vazirmatn/Vazirmatn-ExtraLight.ttf +0 -0
- package/dist/src/fonts/fonts/vazirmatn/Vazirmatn-Light.ttf +0 -0
- package/dist/src/fonts/fonts/vazirmatn/Vazirmatn-Medium.ttf +0 -0
- package/dist/src/fonts/fonts/vazirmatn/Vazirmatn-Regular.ttf +0 -0
- package/dist/src/fonts/fonts/vazirmatn/Vazirmatn-SemiBold.ttf +0 -0
- package/dist/src/fonts/fonts/vazirmatn/Vazirmatn-Thin.ttf +0 -0
- package/dist/src/globals.css +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/styles.css +1 -3213
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -3
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts +0 -10
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts.map +0 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js +0 -55
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map +0 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.d.ts +0 -2
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.d.ts.map +0 -1
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js +0 -3
- package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js.map +0 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/ContentEmbedSupport.d.ts +0 -4
- package/dist/src/fields/TiptapEditor/extensions/serverside/ContentEmbedSupport.d.ts.map +0 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/ContentEmbedSupport.js +0 -148
- package/dist/src/fields/TiptapEditor/extensions/serverside/ContentEmbedSupport.js.map +0 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.d.ts +0 -2
- package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.d.ts.map +0 -1
- package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.js +0 -35
- package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.js.map +0 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.d.ts +0 -8
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.d.ts.map +0 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js +0 -32
- package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js.map +0 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.d.ts +0 -2
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.d.ts.map +0 -1
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.js +0 -3
- package/dist/src/fields/TiptapEditor/features/Sidebar/index.js.map +0 -1
- package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.d.ts +0 -8
- package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.d.ts.map +0 -1
- package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.js +0 -57
- package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.js.map +0 -1
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.d.ts +0 -2
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.d.ts.map +0 -1
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js +0 -3
- package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js.map +0 -1
- package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/tiptap.schema.d.ts +0 -847
- package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/tiptap.schema.d.ts.map +0 -1
- package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/tiptap.schema.js +0 -88
- package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/tiptap.schema.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payload-richtext-tiptap",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.124",
|
|
4
4
|
"description": "Rich text tiptap for Payload CMS",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"payload",
|
|
@@ -27,8 +27,9 @@
|
|
|
27
27
|
"dist/**/*"
|
|
28
28
|
],
|
|
29
29
|
"scripts": {
|
|
30
|
-
"build": "pnpm build:css && pnpm build:types && pnpm build:swc",
|
|
31
|
-
"build:
|
|
30
|
+
"build": "pnpm build:css && pnpm build:types && pnpm build:swc && pnpm build:fonts",
|
|
31
|
+
"build:fonts": "copyfiles -u 1 src/fonts/fonts/**/* dist/src/",
|
|
32
|
+
"build:css": "tailwindcss build -i src/styles.scss -o dist/src/styles.css --minify && tailwindcss build -i src/styles/article-custom.css -o dist/src/article-custom.css --minify && tailwindcss build -i src/styles/globals.css -o dist/src/globals.css --minify",
|
|
32
33
|
"build:swc": "swc ./src -d ./dist/src --config-file .swcrc --strip-leading-paths",
|
|
33
34
|
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
34
35
|
"clean": "rimraf {dist,*.tsbuildinfo}",
|
|
@@ -50,6 +51,7 @@
|
|
|
50
51
|
"@svgr/webpack": "^8.1.0",
|
|
51
52
|
"@tailwindcss/aspect-ratio": "^0.4.2",
|
|
52
53
|
"@tailwindcss/forms": "^0.5.7",
|
|
54
|
+
"@tailwindcss/line-clamp": "^0.4.4",
|
|
53
55
|
"@tailwindcss/typography": "^0.5.14",
|
|
54
56
|
"@tippyjs/react": "^4.2.6",
|
|
55
57
|
"@tiptap-pro/extension-drag-handle": "^2.10.11",
|
|
@@ -122,6 +124,7 @@
|
|
|
122
124
|
"react-textarea-autosize": "^8.5.3",
|
|
123
125
|
"sass": "^1.77.8",
|
|
124
126
|
"tailwind-merge": "^1.14.0",
|
|
127
|
+
"tailwind-scrollbar": "^4.0.0",
|
|
125
128
|
"tailwindcss-animate": "^1.0.7",
|
|
126
129
|
"tippy.js": "^6.3.7",
|
|
127
130
|
"tiptap-markdown": "^0.8.10",
|
package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Node } from "@tiptap/core";
|
|
2
|
-
declare module "@tiptap/core" {
|
|
3
|
-
interface Commands<ReturnType> {
|
|
4
|
-
tableOfContentsNode: {
|
|
5
|
-
insertTableOfContents: () => ReturnType;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
export declare const TableOfContentsNode: Node<any, any>;
|
|
10
|
-
//# sourceMappingURL=TableOfContentsNode.d.ts.map
|
package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableOfContentsNode.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAyB,MAAM,cAAc,CAAC;AAgB3D,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,mBAAmB,EAAE;YACnB,qBAAqB,EAAE,MAAM,UAAU,CAAC;SACzC,CAAC;KACH;CACF;AAED,eAAO,MAAM,mBAAmB,gBAmC9B,CAAC"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { Node } from "@tiptap/core";
|
|
4
|
-
import { NodeViewWrapper, ReactNodeViewRenderer } from "@tiptap/react";
|
|
5
|
-
import { TableOfContents } from "../../features/TableOfContents/index.js";
|
|
6
|
-
const TableOfNodeContent = (props)=>{
|
|
7
|
-
const { editor } = props;
|
|
8
|
-
return /*#__PURE__*/ _jsx(NodeViewWrapper, {
|
|
9
|
-
children: /*#__PURE__*/ _jsx("div", {
|
|
10
|
-
className: "p-2 -m-2 rounded-lg",
|
|
11
|
-
contentEditable: false,
|
|
12
|
-
children: /*#__PURE__*/ _jsx(TableOfContents, {
|
|
13
|
-
editor: editor
|
|
14
|
-
})
|
|
15
|
-
})
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
export const TableOfContentsNode = Node.create({
|
|
19
|
-
name: "tableOfContentsNode",
|
|
20
|
-
group: "block",
|
|
21
|
-
atom: true,
|
|
22
|
-
selectable: true,
|
|
23
|
-
draggable: true,
|
|
24
|
-
inline: false,
|
|
25
|
-
parseHTML () {
|
|
26
|
-
return [
|
|
27
|
-
{
|
|
28
|
-
tag: 'div[data-type="table-of-content"]'
|
|
29
|
-
}
|
|
30
|
-
];
|
|
31
|
-
},
|
|
32
|
-
renderHTML ({ HTMLAttributes }) {
|
|
33
|
-
return [
|
|
34
|
-
"div",
|
|
35
|
-
{
|
|
36
|
-
...HTMLAttributes,
|
|
37
|
-
"data-type": "table-of-content"
|
|
38
|
-
}
|
|
39
|
-
];
|
|
40
|
-
},
|
|
41
|
-
addNodeView () {
|
|
42
|
-
return ReactNodeViewRenderer(TableOfNodeContent);
|
|
43
|
-
},
|
|
44
|
-
addCommands () {
|
|
45
|
-
return {
|
|
46
|
-
insertTableOfContents: ()=>({ commands })=>{
|
|
47
|
-
return commands.insertContent({
|
|
48
|
-
type: this.name
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
//# sourceMappingURL=TableOfContentsNode.js.map
|
package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.tsx"],"sourcesContent":["import React from \"react\";\nimport { Node, NodeViewRendererProps } from \"@tiptap/core\";\nimport { NodeViewWrapper, ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { TableOfContents } from \"../../features/TableOfContents/index.js\";\n\nconst TableOfNodeContent = (props: NodeViewRendererProps) => {\n const { editor } = props;\n\n return (\n <NodeViewWrapper>\n <div className=\"p-2 -m-2 rounded-lg\" contentEditable={false}>\n <TableOfContents editor={editor} />\n </div>\n </NodeViewWrapper>\n );\n};\n\ndeclare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n tableOfContentsNode: {\n insertTableOfContents: () => ReturnType;\n };\n }\n}\n\nexport const TableOfContentsNode = Node.create({\n name: \"tableOfContentsNode\",\n group: \"block\",\n atom: true,\n selectable: true,\n draggable: true,\n inline: false,\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"table-of-content\"]',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"div\", { ...HTMLAttributes, \"data-type\": \"table-of-content\" }];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(TableOfNodeContent);\n },\n\n addCommands() {\n return {\n insertTableOfContents:\n () =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n });\n },\n };\n },\n});\n"],"names":["React","Node","NodeViewWrapper","ReactNodeViewRenderer","TableOfContents","TableOfNodeContent","props","editor","div","className","contentEditable","TableOfContentsNode","create","name","group","atom","selectable","draggable","inline","parseHTML","tag","renderHTML","HTMLAttributes","addNodeView","addCommands","insertTableOfContents","commands","insertContent","type"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,QAA+B,eAAe;AAC3D,SAASC,eAAe,EAAEC,qBAAqB,QAAQ,gBAAgB;AACvE,SAASC,eAAe,QAAQ,0CAA0C;AAE1E,MAAMC,qBAAqB,CAACC;IAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGD;IAEnB,qBACE,KAACJ;kBACC,cAAA,KAACM;YAAIC,WAAU;YAAsBC,iBAAiB;sBACpD,cAAA,KAACN;gBAAgBG,QAAQA;;;;AAIjC;AAUA,OAAO,MAAMI,sBAAsBV,KAAKW,MAAM,CAAC;IAC7CC,MAAM;IACNC,OAAO;IACPC,MAAM;IACNC,YAAY;IACZC,WAAW;IACXC,QAAQ;IAERC;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC,YAAW,EAAEC,cAAc,EAAE;QAC3B,OAAO;YAAC;YAAO;gBAAE,GAAGA,cAAc;gBAAE,aAAa;YAAmB;SAAE;IACxE;IAEAC;QACE,OAAOpB,sBAAsBE;IAC/B;IAEAmB;QACE,OAAO;YACLC,uBACE,IACA,CAAC,EAAEC,QAAQ,EAAE;oBACX,OAAOA,SAASC,aAAa,CAAC;wBAC5BC,MAAM,IAAI,CAACf,IAAI;oBACjB;gBACF;QACJ;IACF;AACF,GAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/TableOfContentsNode/index.ts"],"sourcesContent":["export * from \"./TableOfContentsNode.js\";\n"],"names":[],"mappings":"AAAA,cAAc,2BAA2B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ContentEmbedSupport.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/ContentEmbedSupport.tsx"],"names":[],"mappings":"AAgJA,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE;;CAAA,+BAwB3C"}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { Portal } from "@radix-ui/react-portal";
|
|
4
|
-
import Image from "next/image.js";
|
|
5
|
-
import { memo, useEffect, useState } from "react";
|
|
6
|
-
import { FacebookEmbed, InstagramEmbed, LinkedInEmbed, TikTokEmbed, XEmbed, YouTubeEmbed } from "react-social-media-embed";
|
|
7
|
-
import { cn } from "../../lib/utils/index.js";
|
|
8
|
-
import VideoBlockViewClientside from "../VideoBlock/components/VideoBlockViewClientside.js";
|
|
9
|
-
import { SocialMediaEmbedServerside } from "../SocialMedia/SocialMediaEmbedServerside.js";
|
|
10
|
-
import InsideLinksComponent from "../InsideLinks/InsideLinksComponent.js";
|
|
11
|
-
const renderContent = (content)=>{
|
|
12
|
-
switch(content.type){
|
|
13
|
-
case "twitter":
|
|
14
|
-
if (!checkIfValidLink(content.attrs.url)) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
return /*#__PURE__*/ _jsx(SocialMediaEmbedServerside, {
|
|
18
|
-
children: /*#__PURE__*/ _jsx(XEmbed, {
|
|
19
|
-
url: content.attrs.url || "",
|
|
20
|
-
width: 325
|
|
21
|
-
})
|
|
22
|
-
});
|
|
23
|
-
case "youtube":
|
|
24
|
-
if (!checkIfValidLink(content.attrs.url)) {
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
return /*#__PURE__*/ _jsx(SocialMediaEmbedServerside, {
|
|
28
|
-
children: /*#__PURE__*/ _jsx(YouTubeEmbed, {
|
|
29
|
-
url: content.attrs.url || ""
|
|
30
|
-
})
|
|
31
|
-
});
|
|
32
|
-
case "instagram":
|
|
33
|
-
if (!checkIfValidLink(content.attrs.url)) {
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
return /*#__PURE__*/ _jsx(SocialMediaEmbedServerside, {
|
|
37
|
-
children: /*#__PURE__*/ _jsx(InstagramEmbed, {
|
|
38
|
-
className: "max-w-[328px]",
|
|
39
|
-
url: content.attrs.url || "",
|
|
40
|
-
width: 328,
|
|
41
|
-
captioned: true
|
|
42
|
-
})
|
|
43
|
-
});
|
|
44
|
-
case "tiktok":
|
|
45
|
-
if (!checkIfValidLink(content.attrs.url)) {
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
return /*#__PURE__*/ _jsx(SocialMediaEmbedServerside, {
|
|
49
|
-
children: /*#__PURE__*/ _jsx(TikTokEmbed, {
|
|
50
|
-
className: "max-w-[328px]",
|
|
51
|
-
url: content.attrs.url || "",
|
|
52
|
-
width: 328
|
|
53
|
-
})
|
|
54
|
-
});
|
|
55
|
-
case "imageBlock":
|
|
56
|
-
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
57
|
-
children: [
|
|
58
|
-
/*#__PURE__*/ _jsx("div", {
|
|
59
|
-
className: cn("relative object-cover", {
|
|
60
|
-
"aspect-video": !content.attrs.height
|
|
61
|
-
}),
|
|
62
|
-
style: {
|
|
63
|
-
width: content.attrs.width || "100%",
|
|
64
|
-
...content.attrs.height ? {
|
|
65
|
-
height: content.attrs.height
|
|
66
|
-
} : {}
|
|
67
|
-
},
|
|
68
|
-
children: /*#__PURE__*/ _jsx(Image, {
|
|
69
|
-
className: "rounded",
|
|
70
|
-
src: content.attrs.src,
|
|
71
|
-
alt: content.attrs.alt || content.attrs.caption,
|
|
72
|
-
fill: true
|
|
73
|
-
})
|
|
74
|
-
}),
|
|
75
|
-
content.attrs?.caption ? /*#__PURE__*/ _jsx("p", {
|
|
76
|
-
className: cn("tiptap-image-caption", "pt-2 font-sf text-sm font-light text-grey-7 mx-6 sm:mx-0 line-clamp-2"),
|
|
77
|
-
children: content.attrs?.caption
|
|
78
|
-
}) : null
|
|
79
|
-
]
|
|
80
|
-
});
|
|
81
|
-
case "videoBlock":
|
|
82
|
-
// @ts-ignore
|
|
83
|
-
return /*#__PURE__*/ _jsx(VideoBlockViewClientside, {
|
|
84
|
-
node: content
|
|
85
|
-
});
|
|
86
|
-
case "facebook":
|
|
87
|
-
return /*#__PURE__*/ _jsx(SocialMediaEmbedServerside, {
|
|
88
|
-
children: /*#__PURE__*/ _jsx(FacebookEmbed, {
|
|
89
|
-
url: content.attrs.url || "",
|
|
90
|
-
width: 550
|
|
91
|
-
})
|
|
92
|
-
});
|
|
93
|
-
case "linkedin":
|
|
94
|
-
if (!checkIfValidLink(content.attrs.url)) {
|
|
95
|
-
return null;
|
|
96
|
-
}
|
|
97
|
-
return /*#__PURE__*/ _jsx(SocialMediaEmbedServerside, {
|
|
98
|
-
children: /*#__PURE__*/ _jsx(LinkedInEmbed, {
|
|
99
|
-
url: content.attrs.url || "",
|
|
100
|
-
width: 325,
|
|
101
|
-
height: 570
|
|
102
|
-
})
|
|
103
|
-
});
|
|
104
|
-
case "insideLinks":
|
|
105
|
-
return /*#__PURE__*/ _jsx(InsideLinksComponent, {
|
|
106
|
-
...content
|
|
107
|
-
});
|
|
108
|
-
case "iframe":
|
|
109
|
-
return /*#__PURE__*/ _jsx(SocialMediaEmbedServerside, {
|
|
110
|
-
children: /*#__PURE__*/ _jsx("div", {
|
|
111
|
-
className: "iframe-wrapper",
|
|
112
|
-
children: /*#__PURE__*/ _jsx("iframe", {
|
|
113
|
-
src: content?.attrs?.src ?? "",
|
|
114
|
-
allowFullScreen: true
|
|
115
|
-
})
|
|
116
|
-
})
|
|
117
|
-
});
|
|
118
|
-
default:
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
const CustomPortal = /*#__PURE__*/ memo(({ content, ...props })=>{
|
|
123
|
-
useEffect(()=>{}, []);
|
|
124
|
-
return /*#__PURE__*/ _jsx(Portal, {
|
|
125
|
-
...props,
|
|
126
|
-
children: renderContent(content)
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
function checkIfValidLink(link) {
|
|
130
|
-
return typeof link === "string";
|
|
131
|
-
}
|
|
132
|
-
export function ContentEmbedSupport({ body }) {
|
|
133
|
-
const [mounted, setMounted] = useState(false);
|
|
134
|
-
useEffect(()=>{
|
|
135
|
-
setMounted(true);
|
|
136
|
-
}, []);
|
|
137
|
-
if (!mounted) return null;
|
|
138
|
-
return /*#__PURE__*/ _jsx(_Fragment, {
|
|
139
|
-
children: body.content.filter((content)=>content?.attrs?.["data-id"]).map((content)=>{
|
|
140
|
-
return /*#__PURE__*/ _jsx(CustomPortal, {
|
|
141
|
-
container: document?.querySelector(`[data-id='${content.attrs["data-id"]}']`),
|
|
142
|
-
content: content
|
|
143
|
-
}, `embed-content-${content.attrs["data-id"]}-${content.attrs.key}`);
|
|
144
|
-
})
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
//# sourceMappingURL=ContentEmbedSupport.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/ContentEmbedSupport.tsx"],"sourcesContent":["\"use client\";\n\nimport { Portal } from \"@radix-ui/react-portal\";\nimport Image from \"next/image.js\";\nimport { ComponentProps, memo, useEffect, useState } from \"react\";\nimport {\n FacebookEmbed,\n InstagramEmbed,\n LinkedInEmbed,\n TikTokEmbed,\n XEmbed,\n YouTubeEmbed,\n} from \"react-social-media-embed\";\nimport { cn } from \"../../lib/utils/index.js\";\nimport VideoBlockViewClientside from \"../VideoBlock/components/VideoBlockViewClientside.js\";\nimport { SocialMediaEmbedServerside } from \"../SocialMedia/SocialMediaEmbedServerside.js\";\nimport InsideLinksComponent from \"../InsideLinks/InsideLinksComponent.js\";\n\nconst renderContent = (content) => {\n switch (content.type) {\n case \"twitter\":\n if (!checkIfValidLink(content.attrs.url)) {\n return null;\n }\n return (\n <SocialMediaEmbedServerside>\n <XEmbed url={content.attrs.url || \"\"} width={325} />\n </SocialMediaEmbedServerside>\n );\n case \"youtube\":\n if (!checkIfValidLink(content.attrs.url)) {\n return null;\n }\n return (\n <SocialMediaEmbedServerside>\n <YouTubeEmbed url={content.attrs.url || \"\"} />\n </SocialMediaEmbedServerside>\n );\n case \"instagram\":\n if (!checkIfValidLink(content.attrs.url)) {\n return null;\n }\n return (\n <SocialMediaEmbedServerside>\n <InstagramEmbed\n className=\"max-w-[328px]\"\n url={content.attrs.url || \"\"}\n width={328}\n captioned\n />\n </SocialMediaEmbedServerside>\n );\n case \"tiktok\":\n if (!checkIfValidLink(content.attrs.url)) {\n return null;\n }\n return (\n <SocialMediaEmbedServerside>\n <TikTokEmbed\n className=\"max-w-[328px]\"\n url={content.attrs.url || \"\"}\n width={328}\n />\n </SocialMediaEmbedServerside>\n );\n case \"imageBlock\":\n return (\n <>\n <div\n className={cn(\"relative object-cover\", {\n \"aspect-video\": !content.attrs.height,\n })}\n style={{\n width: content.attrs.width || \"100%\",\n ...(content.attrs.height ? { height: content.attrs.height } : {}),\n }}\n >\n {/* @ts-ignore */}\n <Image\n className=\"rounded\"\n src={content.attrs.src}\n alt={content.attrs.alt || content.attrs.caption}\n fill\n />\n </div>\n {content.attrs?.caption ? (\n <p\n className={cn(\n \"tiptap-image-caption\",\n \"pt-2 font-sf text-sm font-light text-grey-7 mx-6 sm:mx-0 line-clamp-2\"\n )}\n >\n {content.attrs?.caption}\n </p>\n ) : null}\n </>\n );\n case \"videoBlock\":\n // @ts-ignore\n return <VideoBlockViewClientside node={content} />;\n case \"facebook\":\n return (\n <SocialMediaEmbedServerside>\n <FacebookEmbed url={content.attrs.url || \"\"} width={550} />\n </SocialMediaEmbedServerside>\n );\n case \"linkedin\":\n if (!checkIfValidLink(content.attrs.url)) {\n return null;\n }\n return (\n <SocialMediaEmbedServerside>\n <LinkedInEmbed\n url={content.attrs.url || \"\"}\n width={325}\n height={570}\n />\n </SocialMediaEmbedServerside>\n );\n case \"insideLinks\":\n return <InsideLinksComponent {...content} />;\n case \"iframe\":\n return (\n <SocialMediaEmbedServerside>\n <div className=\"iframe-wrapper\">\n <iframe src={content?.attrs?.src ?? \"\"} allowFullScreen={true} />\n </div>\n </SocialMediaEmbedServerside>\n );\n default:\n return null;\n }\n};\n\nconst CustomPortal = memo(\n ({ content, ...props }: ComponentProps<typeof Portal>) => {\n useEffect(() => {}, []);\n return <Portal {...props}>{renderContent(content)}</Portal>;\n }\n);\n\nfunction checkIfValidLink(link: string) {\n return typeof link === \"string\";\n}\nexport function ContentEmbedSupport({ body }) {\n const [mounted, setMounted] = useState(false);\n useEffect(() => {\n setMounted(true);\n }, []);\n\n if (!mounted) return null;\n return (\n <>\n {body.content\n .filter((content) => content?.attrs?.[\"data-id\"])\n .map((content) => {\n return (\n <CustomPortal\n key={`embed-content-${content.attrs[\"data-id\"]}-${content.attrs.key}`}\n container={document?.querySelector(\n `[data-id='${content.attrs[\"data-id\"]}']`\n )}\n content={content}\n />\n );\n })}\n </>\n );\n}\n"],"names":["Portal","Image","memo","useEffect","useState","FacebookEmbed","InstagramEmbed","LinkedInEmbed","TikTokEmbed","XEmbed","YouTubeEmbed","cn","VideoBlockViewClientside","SocialMediaEmbedServerside","InsideLinksComponent","renderContent","content","type","checkIfValidLink","attrs","url","width","className","captioned","div","height","style","src","alt","caption","fill","p","node","iframe","allowFullScreen","CustomPortal","props","link","ContentEmbedSupport","body","mounted","setMounted","filter","map","container","document","querySelector","key"],"mappings":"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"}
|
package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAppendIdToClientsideBlocks.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.ts"],"names":[],"mappings":"AAeA,wBAAgB,0BAA0B,CAAC,IAAI,KAAA,OAqB9C"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
const FILTERED_ARTICLE = [
|
|
2
|
-
"imageUpload"
|
|
3
|
-
];
|
|
4
|
-
const SOCIAL_MEDIA = [
|
|
5
|
-
"twitter",
|
|
6
|
-
"youtube",
|
|
7
|
-
"facebook",
|
|
8
|
-
"instagram",
|
|
9
|
-
"linkedin",
|
|
10
|
-
"tiktok",
|
|
11
|
-
"imageBlock",
|
|
12
|
-
"videoBlock",
|
|
13
|
-
"insideLink"
|
|
14
|
-
];
|
|
15
|
-
export function appendIdToClientsideBlocks(body) {
|
|
16
|
-
if (!body) return body;
|
|
17
|
-
return {
|
|
18
|
-
...body,
|
|
19
|
-
content: body?.content?.filter((c)=>!FILTERED_ARTICLE.includes(c.type))?.map((block, index)=>{
|
|
20
|
-
if (SOCIAL_MEDIA.includes(block.type)) {
|
|
21
|
-
return {
|
|
22
|
-
...block,
|
|
23
|
-
attrs: {
|
|
24
|
-
...block.attrs,
|
|
25
|
-
"data-id": index,
|
|
26
|
-
key: Math.random()
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
return block;
|
|
31
|
-
})
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
//# sourceMappingURL=useAppendIdToClientsideBlocks.js.map
|
package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.ts"],"sourcesContent":["import { useCallback } from \"react\";\n\nconst FILTERED_ARTICLE = [\"imageUpload\"];\n\nconst SOCIAL_MEDIA = [\n \"twitter\",\n \"youtube\",\n \"facebook\",\n \"instagram\",\n \"linkedin\",\n \"tiktok\",\n \"imageBlock\",\n \"videoBlock\",\n \"insideLink\",\n];\nexport function appendIdToClientsideBlocks(body) {\n if (!body) return body;\n return {\n ...body,\n content: body?.content\n ?.filter((c) => !FILTERED_ARTICLE.includes(c.type))\n ?.map((block, index) => {\n if (SOCIAL_MEDIA.includes(block.type)) {\n return {\n ...block,\n attrs: {\n ...block.attrs,\n \"data-id\": index,\n key: Math.random(),\n },\n };\n }\n\n return block;\n }),\n };\n}\n"],"names":["FILTERED_ARTICLE","SOCIAL_MEDIA","appendIdToClientsideBlocks","body","content","filter","c","includes","type","map","block","index","attrs","key","Math","random"],"mappings":"AAEA,MAAMA,mBAAmB;IAAC;CAAc;AAExC,MAAMC,eAAe;IACnB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AACD,OAAO,SAASC,2BAA2BC,IAAI;IAC7C,IAAI,CAACA,MAAM,OAAOA;IAClB,OAAO;QACL,GAAGA,IAAI;QACPC,SAASD,MAAMC,SACXC,OAAO,CAACC,IAAM,CAACN,iBAAiBO,QAAQ,CAACD,EAAEE,IAAI,IAC/CC,IAAI,CAACC,OAAOC;YACZ,IAAIV,aAAaM,QAAQ,CAACG,MAAMF,IAAI,GAAG;gBACrC,OAAO;oBACL,GAAGE,KAAK;oBACRE,OAAO;wBACL,GAAGF,MAAME,KAAK;wBACd,WAAWD;wBACXE,KAAKC,KAAKC,MAAM;oBAClB;gBACF;YACF;YAEA,OAAOL;QACT;IACJ;AACF"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { Editor } from "@tiptap/react";
|
|
3
|
-
export declare const Sidebar: React.MemoExoticComponent<({ editor, isOpen, onClose, }: {
|
|
4
|
-
editor: Editor;
|
|
5
|
-
isOpen?: boolean;
|
|
6
|
-
onClose: () => void;
|
|
7
|
-
}) => React.JSX.Element>;
|
|
8
|
-
//# sourceMappingURL=Sidebar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/Sidebar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAIvC,eAAO,MAAM,OAAO,2DAKf;IACD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,uBA2BF,CAAC"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import React from "react";
|
|
4
|
-
import { memo, useCallback } from "react";
|
|
5
|
-
import { TableOfContents } from "../TableOfContents/index.js";
|
|
6
|
-
import { cn } from "../../lib/utils/index.js";
|
|
7
|
-
export const Sidebar = /*#__PURE__*/ memo(({ editor, isOpen, onClose })=>{
|
|
8
|
-
const handlePotentialClose = useCallback(()=>{
|
|
9
|
-
if (window.innerWidth < 1024) {
|
|
10
|
-
onClose();
|
|
11
|
-
}
|
|
12
|
-
}, [
|
|
13
|
-
onClose
|
|
14
|
-
]);
|
|
15
|
-
const windowClassName = cn("absolute top-0 left-0 bg-white lg:bg-white/30 lg:backdrop-blur-xl h-full lg:h-auto lg:relative z-[999] w-0 duration-300 transition-all", "dark:bg-black lg:dark:bg-black/30", !isOpen && "border-r-transparent", isOpen && "w-80 border-r border-r-neutral-200 dark:border-r-neutral-800");
|
|
16
|
-
return /*#__PURE__*/ _jsx("div", {
|
|
17
|
-
className: windowClassName,
|
|
18
|
-
children: /*#__PURE__*/ _jsx("div", {
|
|
19
|
-
className: "w-full h-full overflow-hidden",
|
|
20
|
-
children: /*#__PURE__*/ _jsx("div", {
|
|
21
|
-
className: "w-full h-full p-2 overflow-auto",
|
|
22
|
-
children: /*#__PURE__*/ _jsx(TableOfContents, {
|
|
23
|
-
onItemClick: handlePotentialClose,
|
|
24
|
-
editor: editor
|
|
25
|
-
})
|
|
26
|
-
})
|
|
27
|
-
})
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
Sidebar.displayName = "TableOfContentSidepanel";
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=Sidebar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/Sidebar.tsx"],"sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { memo, useCallback } from \"react\";\nimport { Editor } from \"@tiptap/react\";\nimport { TableOfContents } from \"../TableOfContents/index.js\";\nimport { cn } from \"../../lib/utils/index.js\";\n\nexport const Sidebar = memo(\n ({\n editor,\n isOpen,\n onClose,\n }: {\n editor: Editor;\n isOpen?: boolean;\n onClose: () => void;\n }) => {\n const handlePotentialClose = useCallback(() => {\n if (window.innerWidth < 1024) {\n onClose();\n }\n }, [onClose]);\n\n const windowClassName = cn(\n \"absolute top-0 left-0 bg-white lg:bg-white/30 lg:backdrop-blur-xl h-full lg:h-auto lg:relative z-[999] w-0 duration-300 transition-all\",\n \"dark:bg-black lg:dark:bg-black/30\",\n !isOpen && \"border-r-transparent\",\n isOpen && \"w-80 border-r border-r-neutral-200 dark:border-r-neutral-800\"\n );\n\n return (\n <div className={windowClassName}>\n <div className=\"w-full h-full overflow-hidden\">\n <div className=\"w-full h-full p-2 overflow-auto\">\n <TableOfContents\n onItemClick={handlePotentialClose}\n editor={editor}\n />\n </div>\n </div>\n </div>\n );\n }\n);\n\nSidebar.displayName = \"TableOfContentSidepanel\";\n"],"names":["React","memo","useCallback","TableOfContents","cn","Sidebar","editor","isOpen","onClose","handlePotentialClose","window","innerWidth","windowClassName","div","className","onItemClick","displayName"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,IAAI,EAAEC,WAAW,QAAQ,QAAQ;AAE1C,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAASC,EAAE,QAAQ,2BAA2B;AAE9C,OAAO,MAAMC,wBAAUJ,KACrB,CAAC,EACCK,MAAM,EACNC,MAAM,EACNC,OAAO,EAKR;IACC,MAAMC,uBAAuBP,YAAY;QACvC,IAAIQ,OAAOC,UAAU,GAAG,MAAM;YAC5BH;QACF;IACF,GAAG;QAACA;KAAQ;IAEZ,MAAMI,kBAAkBR,GACtB,0IACA,qCACA,CAACG,UAAU,wBACXA,UAAU;IAGZ,qBACE,KAACM;QAAIC,WAAWF;kBACd,cAAA,KAACC;YAAIC,WAAU;sBACb,cAAA,KAACD;gBAAIC,WAAU;0BACb,cAAA,KAACX;oBACCY,aAAaN;oBACbH,QAAQA;;;;;AAMpB,GACA;AAEFD,QAAQW,WAAW,GAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/index.tsx"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/Sidebar/index.tsx"],"sourcesContent":["export * from \"./Sidebar.js\";\n"],"names":[],"mappings":"AAAA,cAAc,eAAe"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { Editor as CoreEditor } from "@tiptap/core";
|
|
3
|
-
export type TableOfContentsProps = {
|
|
4
|
-
editor: CoreEditor;
|
|
5
|
-
onItemClick?: () => void;
|
|
6
|
-
};
|
|
7
|
-
export declare const TableOfContents: React.MemoExoticComponent<({ editor, onItemClick }: TableOfContentsProps) => React.JSX.Element>;
|
|
8
|
-
//# sourceMappingURL=TableOfContents.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableOfContents.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/TableOfContents.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAOpD,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,eAAe,sDACA,oBAAoB,uBAoD/C,CAAC"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { memo, useEffect, useState } from "react";
|
|
4
|
-
import { cn } from "../../lib/utils/index.js";
|
|
5
|
-
// import { toTranslationKey } from '@/languages'
|
|
6
|
-
import { useTranslation } from "@payloadcms/ui/providers/Translation";
|
|
7
|
-
export const TableOfContents = /*#__PURE__*/ memo(({ editor, onItemClick })=>{
|
|
8
|
-
const [data, setData] = useState(null);
|
|
9
|
-
useEffect(()=>{
|
|
10
|
-
const handler = ({ editor: currentEditor })=>{
|
|
11
|
-
setData({
|
|
12
|
-
...currentEditor.extensionStorage.tableOfContents
|
|
13
|
-
});
|
|
14
|
-
};
|
|
15
|
-
handler({
|
|
16
|
-
editor
|
|
17
|
-
});
|
|
18
|
-
editor.on("update", handler);
|
|
19
|
-
editor.on("selectionUpdate", handler);
|
|
20
|
-
return ()=>{
|
|
21
|
-
editor.off("update", handler);
|
|
22
|
-
editor.off("selectionUpdate", handler);
|
|
23
|
-
};
|
|
24
|
-
}, [
|
|
25
|
-
editor
|
|
26
|
-
]);
|
|
27
|
-
const { i18n } = useTranslation();
|
|
28
|
-
return /*#__PURE__*/ _jsxs("div", {
|
|
29
|
-
lang: i18n.language,
|
|
30
|
-
children: [
|
|
31
|
-
/*#__PURE__*/ _jsx("div", {
|
|
32
|
-
className: "mb-2 text-xs font-semibold uppercase text-neutral-500 dark:text-neutral-400"
|
|
33
|
-
}),
|
|
34
|
-
data && data.content.length > 0 ? /*#__PURE__*/ _jsx("div", {
|
|
35
|
-
className: "flex flex-col gap-1",
|
|
36
|
-
children: data.content.map((item)=>/*#__PURE__*/ _jsxs("a", {
|
|
37
|
-
href: `#${item.id}`,
|
|
38
|
-
style: {
|
|
39
|
-
marginLeft: `${1 * item.level - 1}rem`
|
|
40
|
-
},
|
|
41
|
-
onClick: onItemClick,
|
|
42
|
-
className: cn("block font-medium text-neutral-500 dark:text-neutral-300 p-1 rounded bg-opacity-10 text-sm hover:text-neutral-800 transition-all hover:bg-black hover:bg-opacity-5 truncate w-full", item.isActive && "text-neutral-800 bg-neutral-100 dark:text-neutral-100 dark:bg-neutral-900"),
|
|
43
|
-
children: [
|
|
44
|
-
item.itemIndex,
|
|
45
|
-
". ",
|
|
46
|
-
item.textContent
|
|
47
|
-
]
|
|
48
|
-
}, item.id))
|
|
49
|
-
}) : /*#__PURE__*/ _jsx("div", {
|
|
50
|
-
className: "text-sm text-neutral-500"
|
|
51
|
-
})
|
|
52
|
-
]
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
TableOfContents.displayName = "TableOfContents";
|
|
56
|
-
|
|
57
|
-
//# sourceMappingURL=TableOfContents.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/TableOfContents.tsx"],"sourcesContent":["import React from \"react\";\nimport { Editor as CoreEditor } from \"@tiptap/core\";\nimport { memo, useEffect, useState } from \"react\";\nimport { TableOfContentsStorage } from \"@tiptap-pro/extension-table-of-contents\";\nimport { cn } from \"../../lib/utils/index.js\";\n// import { toTranslationKey } from '@/languages'\nimport { useTranslation } from \"@payloadcms/ui/providers/Translation\";\n\nexport type TableOfContentsProps = {\n editor: CoreEditor;\n onItemClick?: () => void;\n};\n\nexport const TableOfContents = memo(\n ({ editor, onItemClick }: TableOfContentsProps) => {\n const [data, setData] = useState<TableOfContentsStorage | null>(null);\n\n useEffect(() => {\n const handler = ({ editor: currentEditor }: { editor: CoreEditor }) => {\n setData({ ...currentEditor.extensionStorage.tableOfContents });\n };\n\n handler({ editor });\n\n editor.on(\"update\", handler);\n editor.on(\"selectionUpdate\", handler);\n\n return () => {\n editor.off(\"update\", handler);\n editor.off(\"selectionUpdate\", handler);\n };\n }, [editor]);\n const { i18n } = useTranslation();\n\n return (\n <div lang={i18n.language}>\n <div className=\"mb-2 text-xs font-semibold uppercase text-neutral-500 dark:text-neutral-400\">\n {/* {toTranslationKey('table_of_contents')}Table of Contents */}\n </div>\n {data && data.content.length > 0 ? (\n <div className=\"flex flex-col gap-1\">\n {data.content.map((item) => (\n <a\n key={item.id}\n href={`#${item.id}`}\n style={{ marginLeft: `${1 * item.level - 1}rem` }}\n onClick={onItemClick}\n className={cn(\n \"block font-medium text-neutral-500 dark:text-neutral-300 p-1 rounded bg-opacity-10 text-sm hover:text-neutral-800 transition-all hover:bg-black hover:bg-opacity-5 truncate w-full\",\n item.isActive &&\n \"text-neutral-800 bg-neutral-100 dark:text-neutral-100 dark:bg-neutral-900\"\n )}\n >\n {item.itemIndex}. {item.textContent}\n </a>\n ))}\n </div>\n ) : (\n <div className=\"text-sm text-neutral-500\">\n {/* Start adding headlines to your document */}\n {/* {toTranslationKey(\"start_adding_headlines_to_your_document\")} */}\n </div>\n )}\n </div>\n );\n }\n);\n\nTableOfContents.displayName = \"TableOfContents\";\n"],"names":["React","memo","useEffect","useState","cn","useTranslation","TableOfContents","editor","onItemClick","data","setData","handler","currentEditor","extensionStorage","tableOfContents","on","off","i18n","div","lang","language","className","content","length","map","item","a","href","id","style","marginLeft","level","onClick","isActive","itemIndex","textContent","displayName"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAE1B,SAASC,IAAI,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAQ;AAElD,SAASC,EAAE,QAAQ,2BAA2B;AAC9C,iDAAiD;AACjD,SAASC,cAAc,QAAQ,uCAAuC;AAOtE,OAAO,MAAMC,gCAAkBL,KAC7B,CAAC,EAAEM,MAAM,EAAEC,WAAW,EAAwB;IAC5C,MAAM,CAACC,MAAMC,QAAQ,GAAGP,SAAwC;IAEhED,UAAU;QACR,MAAMS,UAAU,CAAC,EAAEJ,QAAQK,aAAa,EAA0B;YAChEF,QAAQ;gBAAE,GAAGE,cAAcC,gBAAgB,CAACC,eAAe;YAAC;QAC9D;QAEAH,QAAQ;YAAEJ;QAAO;QAEjBA,OAAOQ,EAAE,CAAC,UAAUJ;QACpBJ,OAAOQ,EAAE,CAAC,mBAAmBJ;QAE7B,OAAO;YACLJ,OAAOS,GAAG,CAAC,UAAUL;YACrBJ,OAAOS,GAAG,CAAC,mBAAmBL;QAChC;IACF,GAAG;QAACJ;KAAO;IACX,MAAM,EAAEU,IAAI,EAAE,GAAGZ;IAEjB,qBACE,MAACa;QAAIC,MAAMF,KAAKG,QAAQ;;0BACtB,KAACF;gBAAIG,WAAU;;YAGdZ,QAAQA,KAAKa,OAAO,CAACC,MAAM,GAAG,kBAC7B,KAACL;gBAAIG,WAAU;0BACZZ,KAAKa,OAAO,CAACE,GAAG,CAAC,CAACC,qBACjB,MAACC;wBAECC,MAAM,CAAC,CAAC,EAAEF,KAAKG,EAAE,CAAC,CAAC;wBACnBC,OAAO;4BAAEC,YAAY,CAAC,EAAE,IAAIL,KAAKM,KAAK,GAAG,EAAE,GAAG,CAAC;wBAAC;wBAChDC,SAASxB;wBACTa,WAAWjB,GACT,sLACAqB,KAAKQ,QAAQ,IACX;;4BAGHR,KAAKS,SAAS;4BAAC;4BAAGT,KAAKU,WAAW;;uBAV9BV,KAAKG,EAAE;+BAelB,KAACV;gBAAIG,WAAU;;;;AAOvB,GACA;AAEFf,gBAAgB8B,WAAW,GAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/index.tsx"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/TableOfContents/index.tsx"],"sourcesContent":["export * from \"./TableOfContents.js\";\n"],"names":[],"mappings":"AAAA,cAAc,uBAAuB"}
|