payload-richtext-tiptap 0.0.109 → 0.0.110

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.
Files changed (95) hide show
  1. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/AudioBlock.js.map +1 -1
  2. package/dist/src/fields/TiptapEditor/extensions/AudioBlock/components/AudioBlockMenu.js.map +1 -1
  3. package/dist/src/fields/TiptapEditor/extensions/FontSize/FontSize.js.map +1 -1
  4. package/dist/src/fields/TiptapEditor/extensions/Heading/Heading.js.map +1 -1
  5. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/ImageBlock.js.map +1 -1
  6. package/dist/src/fields/TiptapEditor/extensions/ImageBlock/components/ImageBlockMenu.js.map +1 -1
  7. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLink.client.js.map +1 -1
  8. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.d.ts +1 -1
  9. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.d.ts.map +1 -1
  10. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.js +3 -2
  11. package/dist/src/fields/TiptapEditor/extensions/InsideLinks/InsideLinksComponent.js.map +1 -1
  12. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js +3 -3
  13. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/Columns.js.map +1 -1
  14. package/dist/src/fields/TiptapEditor/extensions/MultiColumn/menus/ColumnsMenu.js.map +1 -1
  15. package/dist/src/fields/TiptapEditor/extensions/SlashCommand/MenuList.js.map +1 -1
  16. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.js +1 -1
  17. package/dist/src/fields/TiptapEditor/extensions/SocialMedia/SocialMediaEmbedServerside.js.map +1 -1
  18. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/VideoBlock.js.map +1 -1
  19. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockMenu.js.map +1 -1
  20. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockViewClientside.d.ts +2 -1
  21. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockViewClientside.d.ts.map +1 -1
  22. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockViewClientside.js +2 -1
  23. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/VideoBlockViewClientside.js.map +1 -1
  24. package/dist/src/fields/TiptapEditor/extensions/VideoBlock/components/videojs/quality-selector/events.d.ts.map +1 -1
  25. package/dist/src/fields/TiptapEditor/extensions/extension-kit.d.ts +1 -1
  26. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.d.ts +4 -0
  27. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.d.ts.map +1 -0
  28. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js +29 -0
  29. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentInlineRenderer.js.map +1 -0
  30. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSideRenderer.d.ts +4 -0
  31. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSideRenderer.d.ts.map +1 -0
  32. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSideRenderer.js +29 -0
  33. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSideRenderer.js.map +1 -0
  34. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSidebarRenderer.d.ts +5 -0
  35. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSidebarRenderer.d.ts.map +1 -0
  36. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSidebarRenderer.js +43 -0
  37. package/dist/src/fields/TiptapEditor/extensions/serverside/EmbedContentSidebarRenderer.js.map +1 -0
  38. package/dist/src/fields/TiptapEditor/extensions/serverside/FacebookServerside.js.map +1 -1
  39. package/dist/src/fields/TiptapEditor/extensions/serverside/InstagramServerside.js.map +1 -1
  40. package/dist/src/fields/TiptapEditor/extensions/serverside/LinkedinServerside.js.map +1 -1
  41. package/dist/src/fields/TiptapEditor/extensions/serverside/RenderEmbedClientSide.d.ts +2 -0
  42. package/dist/src/fields/TiptapEditor/extensions/serverside/RenderEmbedClientSide.d.ts.map +1 -0
  43. package/dist/src/fields/TiptapEditor/extensions/serverside/{ContentEmbedSupport.js → RenderEmbedClientSide.js} +5 -30
  44. package/dist/src/fields/TiptapEditor/extensions/serverside/RenderEmbedClientSide.js.map +1 -0
  45. package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js +32 -3
  46. package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js.map +1 -1
  47. package/dist/src/fields/TiptapEditor/extensions/serverside/TiktokServerside.js.map +1 -1
  48. package/dist/src/fields/TiptapEditor/extensions/serverside/TwitterBlockServerside.js.map +1 -1
  49. package/dist/src/fields/TiptapEditor/extensions/serverside/YouTubeServerside.js.map +1 -1
  50. package/dist/src/fields/TiptapEditor/extensions/serverside/index.d.ts +4 -2
  51. package/dist/src/fields/TiptapEditor/extensions/serverside/index.d.ts.map +1 -1
  52. package/dist/src/fields/TiptapEditor/extensions/serverside/index.js +4 -2
  53. package/dist/src/fields/TiptapEditor/extensions/serverside/index.js.map +1 -1
  54. package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendRequiredBlocksMarkerClient.d.ts +2 -0
  55. package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendRequiredBlocksMarkerClient.d.ts.map +1 -0
  56. package/dist/src/fields/TiptapEditor/extensions/serverside/{useAppendIdToClientsideBlocks.js → useAppendRequiredBlocksMarkerClient.js} +6 -4
  57. package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendRequiredBlocksMarkerClient.js.map +1 -0
  58. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontFamilyPicker.js.map +1 -1
  59. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/FontSizePicker.js.map +1 -1
  60. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.js.map +1 -1
  61. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/utils.js.map +1 -1
  62. package/dist/src/fields/TiptapEditor/hooks/useBlockEditor.js.map +1 -1
  63. package/dist/src/fields/TiptapEditor/lib/utils/cssVar.js.map +1 -1
  64. package/dist/tsconfig.tsbuildinfo +1 -1
  65. package/package.json +26 -29
  66. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts +0 -10
  67. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.d.ts.map +0 -1
  68. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js +0 -55
  69. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/TableOfContentsNode.js.map +0 -1
  70. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.d.ts +0 -2
  71. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.d.ts.map +0 -1
  72. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js +0 -3
  73. package/dist/src/fields/TiptapEditor/extensions/TableOfContentsNode/index.js.map +0 -1
  74. package/dist/src/fields/TiptapEditor/extensions/serverside/ContentEmbedSupport.d.ts +0 -4
  75. package/dist/src/fields/TiptapEditor/extensions/serverside/ContentEmbedSupport.d.ts.map +0 -1
  76. package/dist/src/fields/TiptapEditor/extensions/serverside/ContentEmbedSupport.js.map +0 -1
  77. package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.d.ts +0 -2
  78. package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.d.ts.map +0 -1
  79. package/dist/src/fields/TiptapEditor/extensions/serverside/useAppendIdToClientsideBlocks.js.map +0 -1
  80. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.d.ts +0 -8
  81. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.d.ts.map +0 -1
  82. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js +0 -32
  83. package/dist/src/fields/TiptapEditor/features/Sidebar/Sidebar.js.map +0 -1
  84. package/dist/src/fields/TiptapEditor/features/Sidebar/index.d.ts +0 -2
  85. package/dist/src/fields/TiptapEditor/features/Sidebar/index.d.ts.map +0 -1
  86. package/dist/src/fields/TiptapEditor/features/Sidebar/index.js +0 -3
  87. package/dist/src/fields/TiptapEditor/features/Sidebar/index.js.map +0 -1
  88. package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.d.ts +0 -8
  89. package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.d.ts.map +0 -1
  90. package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.js +0 -57
  91. package/dist/src/fields/TiptapEditor/features/TableOfContents/TableOfContents.js.map +0 -1
  92. package/dist/src/fields/TiptapEditor/features/TableOfContents/index.d.ts +0 -2
  93. package/dist/src/fields/TiptapEditor/features/TableOfContents/index.d.ts.map +0 -1
  94. package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js +0 -3
  95. package/dist/src/fields/TiptapEditor/features/TableOfContents/index.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload-richtext-tiptap",
3
- "version": "0.0.109",
3
+ "version": "0.0.110",
4
4
  "description": "Rich text tiptap for Payload CMS",
5
5
  "keywords": [
6
6
  "payload",
@@ -21,20 +21,11 @@
21
21
  "license": "MIT",
22
22
  "author": "Payload <dev@payloadcms.com> (https://payloadcms.com)",
23
23
  "type": "module",
24
- "main": "dist/src/index.js",
25
- "types": "dist/src/index.d.ts",
24
+ "main": "./dist/src/index.js",
25
+ "types": "./dist/src/index.d.ts",
26
26
  "files": [
27
27
  "dist/**/*"
28
28
  ],
29
- "scripts": {
30
- "build": "pnpm build:css && pnpm build:types && pnpm build:swc",
31
- "build:css": "pnpx tailwindcss build -i src/styles.scss -o dist/src/styles.css",
32
- "build:swc": "swc ./src -d ./dist/src --config-file .swcrc --strip-leading-paths",
33
- "build:types": "tsc --emitDeclarationOnly --outDir dist",
34
- "clean": "rimraf {dist,*.tsbuildinfo}",
35
- "prepublishOnly": "pnpm clean && pnpm build",
36
- "test": "echo \"No tests available.\""
37
- },
38
29
  "sideEffects": false,
39
30
  "dependencies": {
40
31
  "@headlessui/tailwindcss": "^0.2.1",
@@ -155,7 +146,7 @@
155
146
  "rimraf": "^5.0.10",
156
147
  "sort-package-json": "^2.10.0",
157
148
  "swc-plugin-transform-remove-imports": "^1.15.0",
158
- "tailwindcss": "^3.4.9",
149
+ "tailwindcss": "3.4.17",
159
150
  "ts-node": "10.9.1",
160
151
  "typescript": "^5.5.4"
161
152
  },
@@ -166,21 +157,7 @@
166
157
  "react-dom": "^19.0.0 || ^19.0.0-rc-f994737d14-20240522"
167
158
  },
168
159
  "publishConfig": {
169
- "exports": {
170
- ".": {
171
- "import": "./dist/src/index.js",
172
- "types": "./dist/src/index.d.ts",
173
- "default": "./dist/src/index.js"
174
- },
175
- "./types": {
176
- "import": "./dist/exports/types.js",
177
- "types": "./dist/exports/types.d.ts",
178
- "default": "./dist/exports/types.js"
179
- }
180
- },
181
- "main": "./dist/src/index.js",
182
- "registry": "https://registry.npmjs.org/",
183
- "types": "./dist/src/index.d.ts"
160
+ "registry": "https://registry.npmjs.org/"
184
161
  },
185
162
  "homepage:": "https://payloadcms.com",
186
163
  "overrides": {
@@ -190,5 +167,25 @@
190
167
  "bugs": {
191
168
  "url": "https://github.com/payloadcms/payload/issues"
192
169
  },
193
- "homepage": "https://github.com/payloadcms/payload#readme"
170
+ "homepage": "https://github.com/payloadcms/payload#readme",
171
+ "scripts": {
172
+ "build": "pnpm build:css && pnpm build:types && pnpm build:swc",
173
+ "build:css": "tailwindcss build -i src/styles.scss -o dist/src/styles.css",
174
+ "build:swc": "swc ./src -d ./dist/src --config-file .swcrc --strip-leading-paths",
175
+ "build:types": "tsc --emitDeclarationOnly --outDir dist",
176
+ "clean": "rimraf {dist,*.tsbuildinfo}",
177
+ "test": "echo \"No tests available.\""
178
+ },
179
+ "exports": {
180
+ ".": {
181
+ "import": "./dist/src/index.js",
182
+ "types": "./dist/src/index.d.ts",
183
+ "default": "./dist/src/index.js"
184
+ },
185
+ "./types": {
186
+ "import": "./dist/exports/types.js",
187
+ "types": "./dist/exports/types.d.ts",
188
+ "default": "./dist/exports/types.js"
189
+ }
190
+ }
194
191
  }
@@ -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
@@ -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
@@ -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,2 +0,0 @@
1
- export * from "./TableOfContentsNode.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -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,3 +0,0 @@
1
- export * from "./TableOfContentsNode.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -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,4 +0,0 @@
1
- export declare function ContentEmbedSupport({ body }: {
2
- body: any;
3
- }): import("react").JSX.Element;
4
- //# sourceMappingURL=ContentEmbedSupport.d.ts.map
@@ -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 +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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"}
@@ -1,2 +0,0 @@
1
- export declare function appendIdToClientsideBlocks(body: any): any;
2
- //# sourceMappingURL=useAppendIdToClientsideBlocks.d.ts.map
@@ -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 +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,2 +0,0 @@
1
- export * from "./Sidebar.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -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,3 +0,0 @@
1
- export * from "./Sidebar.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -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,2 +0,0 @@
1
- export * from "./TableOfContents.js";
2
- //# sourceMappingURL=index.d.ts.map
@@ -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,3 +0,0 @@
1
- export * from "./TableOfContents.js";
2
-
3
- //# sourceMappingURL=index.js.map
@@ -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"}