payload-richtext-tiptap 0.0.141 → 0.0.143

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 (29) hide show
  1. package/README.md +27 -1
  2. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.d.ts.map +1 -1
  3. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.js +0 -1
  4. package/dist/src/fields/TiptapEditor/extensions/AICommand/AICommand.js.map +1 -1
  5. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.d.ts +3 -3
  6. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.d.ts.map +1 -1
  7. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.js +47 -41
  8. package/dist/src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.js.map +1 -1
  9. package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.d.ts +4 -2
  10. package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.d.ts.map +1 -1
  11. package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js +53 -14
  12. package/dist/src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.js.map +1 -1
  13. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts +2 -2
  14. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.d.ts.map +1 -1
  15. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js +22 -20
  16. package/dist/src/fields/TiptapEditor/features/BlockEditor/BlockEditor.js.map +1 -1
  17. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.d.ts.map +1 -1
  18. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js +2 -4
  19. package/dist/src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.js.map +1 -1
  20. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.d.ts.map +1 -1
  21. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.js +4 -6
  22. package/dist/src/fields/TiptapEditor/features/panels/AICommandPanel/AICommandPanel.js.map +1 -1
  23. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.d.ts.map +1 -1
  24. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js +3 -5
  25. package/dist/src/fields/TiptapEditor/features/panels/AIEditorPanel/AIEditorPanel.js.map +1 -1
  26. package/dist/src/mobile.css +1 -1
  27. package/dist/src/styles.css +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +1 -1
package/README.md CHANGED
@@ -2,6 +2,32 @@
2
2
 
3
3
  This package provides a simple way to use tiptap editor in react and payloadcms
4
4
 
5
- .npmrc contains private repo key for tiptap pro. It needs to configured respectively.
5
+ ## Setup
6
+
7
+ ### Tiptap Pro Authentication
8
+
9
+ This package uses Tiptap Pro features that require authentication to access private repositories. To set this up:
10
+
11
+ 1. Copy the `.npmrc.template` file to create your own `.npmrc` file:
12
+
13
+ ```bash
14
+ cp .npmrc.template .npmrc
15
+ ```
16
+
17
+ 2. Set up the `TIPTAP_AUTH_TOKEN` environment variable with your Tiptap authentication token:
18
+
19
+ **For local development:**
20
+ Add to your shell profile (e.g., `~/.zshrc` or `~/.bash_profile`):
21
+
22
+ ```bash
23
+ export TIPTAP_AUTH_TOKEN=your-actual-token
24
+ ```
25
+
26
+ Then restart your terminal or run `source ~/.zshrc` (or equivalent for your shell).
27
+
28
+ **For CI/CD environments:**
29
+ Add the token as a secret environment variable in your CI platform settings.
30
+
31
+ 3. The `.npmrc` file is excluded from git to prevent committing sensitive credentials.
6
32
 
7
33
  **NOTE:** This package is a WIP and is not currently extensible.
@@ -1 +1 @@
1
- {"version":3,"file":"AICommand.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/AICommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,SAAS,EAAE,MAAM,cAAc,CAAA;AAchD,eAAO,MAAM,SAAS,qBA6RpB,CAAA;AAEF,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"AICommand.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/AICommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,SAAS,EAAE,MAAM,cAAc,CAAA;AAchD,eAAO,MAAM,SAAS,qBA4RpB,CAAA;AAEF,eAAe,SAAS,CAAA"}
@@ -226,7 +226,6 @@ export const AICommand = Extension.create({
226
226
  },
227
227
  userPrompt: '',
228
228
  completion: '',
229
- language: 'en',
230
229
  title: '',
231
230
  active: false
232
231
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/AICommand.ts"],"sourcesContent":["'use client'\nimport { Editor, Extension } from '@tiptap/core'\nimport { PluginKey } from '@tiptap/pm/state'\nimport { ReactRenderer } from '@tiptap/react'\nimport Suggestion, { SuggestionKeyDownProps, SuggestionProps } from '@tiptap/suggestion'\nimport tippy from 'tippy.js'\n\nimport AIMenuList from './AIMenuList.js'\n// import { AICommandPanel } from \"../../features/panels/AICommandPanel/AICommandPanel.js\";\n\nconst extensionName = 'aiCommand'\n\nlet popup: any\nlet popupSelection: { from: number; to: number }\n\nexport const AICommand = Extension.create({\n name: extensionName,\n\n priority: 200,\n\n onCreate() {\n const t = tippy as any\n popup = t('body', {\n interactive: true,\n trigger: 'manual',\n placement: 'bottom-start',\n theme: 'slash-command',\n // maxWidth: \"16rem\",\n offset: [0, -16],\n popperOptions: {\n strategy: 'fixed',\n modifiers: [\n {\n name: 'flip',\n enabled: false,\n },\n ],\n },\n onHidden: (instance) => {\n const selection = this.editor.state.selection\n\n this.editor\n ?.chain()\n ?.focus()\n ?.insertContentAt({ from: popupSelection.from - 1, to: popupSelection.to }, ' ')\n ?.insertContentAt(\n selection.to,\n this?.editor?.storage?.aiCommand?.completion?.content ?? [],\n )\n ?.run()\n },\n })\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n char: ' ',\n allowSpaces: false,\n startOfLine: true,\n pluginKey: new PluginKey(extensionName),\n allow: ({ state, range }) => {\n const $from = state.doc.resolve(range.from)\n const isRootDepth = $from.depth === 1\n const isParagraph = $from.parent.type.name === 'paragraph'\n const isStartOfNode = $from.parent.textContent?.charAt(0) === ' '\n const textLength = $from.parent.textContent?.length\n\n // TODO\n const isInColumn = this.editor.isActive('column')\n\n const afterContent = $from.parent.textContent?.substring(\n $from.parent.textContent?.indexOf(' '),\n )\n const isValidAfterContent = !afterContent?.endsWith(' ')\n return (\n ((isRootDepth && isParagraph && isStartOfNode) ||\n (isInColumn && isParagraph && isStartOfNode)) &&\n isValidAfterContent &&\n textLength === 1\n )\n },\n command: ({ editor, props }: { editor: Editor; props: any }) => {\n // const { view, state } = editor;\n // const { $head, $from } = view.state.selection;\n\n // const end = $from.pos;\n // const from = $head?.nodeBefore\n // ? end -\n // ($head.nodeBefore.text?.substring(\n // $head.nodeBefore.text?.indexOf(\" \")\n // ).length ?? 0)\n // : $from.start();\n\n // const tr = state.tr.deleteRange(from, end);\n // view.dispatch(tr);\n\n props.action(editor)\n // view.focus();\n },\n items: async ({ query }: { query: string }) => {\n const GROUPS = (await import('./groups.js')).default\n const withFilteredCommands = GROUPS.map((group) => ({\n ...group,\n commands: group.commands\n .filter((item) => {\n const labelNormalized = item.label.toLowerCase().trim()\n const queryNormalized = query.toLowerCase().trim()\n\n if (item.aliases) {\n const aliases = item.aliases.map((alias) => alias.toLowerCase().trim())\n\n return (\n labelNormalized.includes(queryNormalized) || aliases.includes(queryNormalized)\n )\n }\n\n return labelNormalized.includes(queryNormalized)\n })\n .filter((command) =>\n command.shouldBeHidden ? !command.shouldBeHidden(this.editor) : true,\n ),\n }))\n\n const withoutEmptyGroups = withFilteredCommands.filter((group) => {\n if (group.commands.length > 0) {\n return true\n }\n\n return false\n })\n\n const withEnabledSettings = withoutEmptyGroups.map((group) => ({\n ...group,\n commands: group.commands.map((command) => ({\n ...command,\n isEnabled: true,\n })),\n }))\n\n return withEnabledSettings\n },\n render: () => {\n let component: any\n\n let scrollHandler: (() => void) | null = null\n\n return {\n onStart: (props: SuggestionProps) => {\n component = new ReactRenderer(AIMenuList, {\n props,\n editor: props.editor,\n })\n props.editor.storage.aiCommand.active = true\n const { view } = props.editor\n\n const editorNode = view.dom as HTMLElement\n\n const getReferenceClientRect = () => {\n if (!props.clientRect) {\n return props.editor.storage[extensionName].rect\n }\n\n const rect = props.clientRect()\n\n if (!rect) {\n return props.editor.storage[extensionName].rect\n }\n\n let yPos = rect.y\n\n if (rect.top + component.element.offsetHeight + 40 > window.innerHeight) {\n const diff = rect.top + component.element.offsetHeight - window.innerHeight + 40\n yPos = rect.y - diff\n }\n\n // Account for when the editor is bound inside a container that doesn't go all the way to the edge of the screen\n const editorXOffset = editorNode.getBoundingClientRect().x\n const boundigClient = editorNode.getBoundingClientRect()\n\n return new DOMRect(rect.x, yPos, boundigClient.width, rect.height)\n }\n\n scrollHandler = () => {\n popup?.[0].setProps({\n getReferenceClientRect,\n })\n }\n\n view.dom.parentElement?.addEventListener('scroll', scrollHandler)\n\n popup?.[0].setProps({\n getReferenceClientRect,\n appendTo: () => document.body,\n content: component.element,\n })\n\n const selection = this?.editor?.state?.selection\n popupSelection = { from: selection?.from, to: selection?.to }\n\n popup?.[0].show()\n },\n\n onUpdate(props: SuggestionProps) {\n component.updateProps(props)\n\n const { view } = props.editor\n\n const editorNode = view.dom as HTMLElement\n\n const getReferenceClientRect = () => {\n if (!props.clientRect) {\n return props.editor.storage[extensionName].rect\n }\n\n const rect = props.clientRect()\n\n if (!rect) {\n return props.editor.storage[extensionName].rect\n }\n\n // Account for when the editor is bound inside a container that doesn't go all the way to the edge of the screen\n return new DOMRect(rect.x, rect.y, rect.width, rect.height)\n }\n\n let scrollHandler = () => {\n popup?.[0].setProps({\n getReferenceClientRect,\n })\n }\n\n view.dom.parentElement?.addEventListener('scroll', scrollHandler)\n\n // eslint-disable-next-line no-param-reassign\n props.editor.storage[extensionName].rect = props.clientRect\n ? getReferenceClientRect()\n : {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n }\n popup?.[0].setProps({\n getReferenceClientRect,\n })\n },\n\n onKeyDown(props: SuggestionKeyDownProps) {\n if (props.event.key === 'Escape') {\n popup?.[0].hide()\n\n return true\n }\n\n if (!popup?.[0].state.isShown) {\n popup?.[0].show()\n }\n\n return component.ref?.onKeyDown(props)\n },\n\n onExit(props) {\n popup?.[0].hide()\n if (scrollHandler) {\n const { view } = props.editor\n view.dom.parentElement?.removeEventListener('scroll', scrollHandler)\n }\n\n props.editor.storage.aiCommand.active = false\n props.editor.storage.aiCommand.userPrompt = ''\n props.editor.storage.aiCommand.completion = ''\n\n component.destroy()\n },\n }\n },\n }),\n ]\n },\n\n addStorage() {\n return {\n rect: {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n },\n userPrompt: '',\n completion: '',\n language: 'en',\n title: '',\n active: false,\n }\n },\n})\n\nexport default AICommand\n"],"names":["Extension","PluginKey","ReactRenderer","Suggestion","tippy","AIMenuList","extensionName","popup","popupSelection","AICommand","create","name","priority","onCreate","t","interactive","trigger","placement","theme","offset","popperOptions","strategy","modifiers","enabled","onHidden","instance","selection","editor","state","chain","focus","insertContentAt","from","to","storage","aiCommand","completion","content","run","addProseMirrorPlugins","char","allowSpaces","startOfLine","pluginKey","allow","range","$from","doc","resolve","isRootDepth","depth","isParagraph","parent","type","isStartOfNode","textContent","charAt","textLength","length","isInColumn","isActive","afterContent","substring","indexOf","isValidAfterContent","endsWith","command","props","action","items","query","GROUPS","default","withFilteredCommands","map","group","commands","filter","item","labelNormalized","label","toLowerCase","trim","queryNormalized","aliases","alias","includes","shouldBeHidden","withoutEmptyGroups","withEnabledSettings","isEnabled","render","component","scrollHandler","onStart","active","view","editorNode","dom","getReferenceClientRect","clientRect","rect","yPos","y","top","element","offsetHeight","window","innerHeight","diff","editorXOffset","getBoundingClientRect","x","boundigClient","DOMRect","width","height","setProps","parentElement","addEventListener","appendTo","document","body","show","onUpdate","updateProps","left","right","bottom","onKeyDown","event","key","hide","isShown","ref","onExit","removeEventListener","userPrompt","destroy","addStorage","language","title"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/AICommand/AICommand.ts"],"sourcesContent":["'use client'\nimport { Editor, Extension } from '@tiptap/core'\nimport { PluginKey } from '@tiptap/pm/state'\nimport { ReactRenderer } from '@tiptap/react'\nimport Suggestion, { SuggestionKeyDownProps, SuggestionProps } from '@tiptap/suggestion'\nimport tippy from 'tippy.js'\n\nimport AIMenuList from './AIMenuList.js'\n// import { AICommandPanel } from \"../../features/panels/AICommandPanel/AICommandPanel.js\";\n\nconst extensionName = 'aiCommand'\n\nlet popup: any\nlet popupSelection: { from: number; to: number }\n\nexport const AICommand = Extension.create({\n name: extensionName,\n\n priority: 200,\n\n onCreate() {\n const t = tippy as any\n popup = t('body', {\n interactive: true,\n trigger: 'manual',\n placement: 'bottom-start',\n theme: 'slash-command',\n // maxWidth: \"16rem\",\n offset: [0, -16],\n popperOptions: {\n strategy: 'fixed',\n modifiers: [\n {\n name: 'flip',\n enabled: false,\n },\n ],\n },\n onHidden: (instance) => {\n const selection = this.editor.state.selection\n\n this.editor\n ?.chain()\n ?.focus()\n ?.insertContentAt({ from: popupSelection.from - 1, to: popupSelection.to }, ' ')\n ?.insertContentAt(\n selection.to,\n this?.editor?.storage?.aiCommand?.completion?.content ?? [],\n )\n ?.run()\n },\n })\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n char: ' ',\n allowSpaces: false,\n startOfLine: true,\n pluginKey: new PluginKey(extensionName),\n allow: ({ state, range }) => {\n const $from = state.doc.resolve(range.from)\n const isRootDepth = $from.depth === 1\n const isParagraph = $from.parent.type.name === 'paragraph'\n const isStartOfNode = $from.parent.textContent?.charAt(0) === ' '\n const textLength = $from.parent.textContent?.length\n\n // TODO\n const isInColumn = this.editor.isActive('column')\n\n const afterContent = $from.parent.textContent?.substring(\n $from.parent.textContent?.indexOf(' '),\n )\n const isValidAfterContent = !afterContent?.endsWith(' ')\n return (\n ((isRootDepth && isParagraph && isStartOfNode) ||\n (isInColumn && isParagraph && isStartOfNode)) &&\n isValidAfterContent &&\n textLength === 1\n )\n },\n command: ({ editor, props }: { editor: Editor; props: any }) => {\n // const { view, state } = editor;\n // const { $head, $from } = view.state.selection;\n\n // const end = $from.pos;\n // const from = $head?.nodeBefore\n // ? end -\n // ($head.nodeBefore.text?.substring(\n // $head.nodeBefore.text?.indexOf(\" \")\n // ).length ?? 0)\n // : $from.start();\n\n // const tr = state.tr.deleteRange(from, end);\n // view.dispatch(tr);\n\n props.action(editor)\n // view.focus();\n },\n items: async ({ query }: { query: string }) => {\n const GROUPS = (await import('./groups.js')).default\n const withFilteredCommands = GROUPS.map((group) => ({\n ...group,\n commands: group.commands\n .filter((item) => {\n const labelNormalized = item.label.toLowerCase().trim()\n const queryNormalized = query.toLowerCase().trim()\n\n if (item.aliases) {\n const aliases = item.aliases.map((alias) => alias.toLowerCase().trim())\n\n return (\n labelNormalized.includes(queryNormalized) || aliases.includes(queryNormalized)\n )\n }\n\n return labelNormalized.includes(queryNormalized)\n })\n .filter((command) =>\n command.shouldBeHidden ? !command.shouldBeHidden(this.editor) : true,\n ),\n }))\n\n const withoutEmptyGroups = withFilteredCommands.filter((group) => {\n if (group.commands.length > 0) {\n return true\n }\n\n return false\n })\n\n const withEnabledSettings = withoutEmptyGroups.map((group) => ({\n ...group,\n commands: group.commands.map((command) => ({\n ...command,\n isEnabled: true,\n })),\n }))\n\n return withEnabledSettings\n },\n render: () => {\n let component: any\n\n let scrollHandler: (() => void) | null = null\n\n return {\n onStart: (props: SuggestionProps) => {\n component = new ReactRenderer(AIMenuList, {\n props,\n editor: props.editor,\n })\n props.editor.storage.aiCommand.active = true\n const { view } = props.editor\n\n const editorNode = view.dom as HTMLElement\n\n const getReferenceClientRect = () => {\n if (!props.clientRect) {\n return props.editor.storage[extensionName].rect\n }\n\n const rect = props.clientRect()\n\n if (!rect) {\n return props.editor.storage[extensionName].rect\n }\n\n let yPos = rect.y\n\n if (rect.top + component.element.offsetHeight + 40 > window.innerHeight) {\n const diff = rect.top + component.element.offsetHeight - window.innerHeight + 40\n yPos = rect.y - diff\n }\n\n // Account for when the editor is bound inside a container that doesn't go all the way to the edge of the screen\n const editorXOffset = editorNode.getBoundingClientRect().x\n const boundigClient = editorNode.getBoundingClientRect()\n\n return new DOMRect(rect.x, yPos, boundigClient.width, rect.height)\n }\n\n scrollHandler = () => {\n popup?.[0].setProps({\n getReferenceClientRect,\n })\n }\n\n view.dom.parentElement?.addEventListener('scroll', scrollHandler)\n\n popup?.[0].setProps({\n getReferenceClientRect,\n appendTo: () => document.body,\n content: component.element,\n })\n\n const selection = this?.editor?.state?.selection\n popupSelection = { from: selection?.from, to: selection?.to }\n\n popup?.[0].show()\n },\n\n onUpdate(props: SuggestionProps) {\n component.updateProps(props)\n\n const { view } = props.editor\n\n const editorNode = view.dom as HTMLElement\n\n const getReferenceClientRect = () => {\n if (!props.clientRect) {\n return props.editor.storage[extensionName].rect\n }\n\n const rect = props.clientRect()\n\n if (!rect) {\n return props.editor.storage[extensionName].rect\n }\n\n // Account for when the editor is bound inside a container that doesn't go all the way to the edge of the screen\n return new DOMRect(rect.x, rect.y, rect.width, rect.height)\n }\n\n let scrollHandler = () => {\n popup?.[0].setProps({\n getReferenceClientRect,\n })\n }\n\n view.dom.parentElement?.addEventListener('scroll', scrollHandler)\n\n // eslint-disable-next-line no-param-reassign\n props.editor.storage[extensionName].rect = props.clientRect\n ? getReferenceClientRect()\n : {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n }\n popup?.[0].setProps({\n getReferenceClientRect,\n })\n },\n\n onKeyDown(props: SuggestionKeyDownProps) {\n if (props.event.key === 'Escape') {\n popup?.[0].hide()\n\n return true\n }\n\n if (!popup?.[0].state.isShown) {\n popup?.[0].show()\n }\n\n return component.ref?.onKeyDown(props)\n },\n\n onExit(props) {\n popup?.[0].hide()\n if (scrollHandler) {\n const { view } = props.editor\n view.dom.parentElement?.removeEventListener('scroll', scrollHandler)\n }\n\n props.editor.storage.aiCommand.active = false\n props.editor.storage.aiCommand.userPrompt = ''\n props.editor.storage.aiCommand.completion = ''\n\n component.destroy()\n },\n }\n },\n }),\n ]\n },\n\n addStorage() {\n return {\n rect: {\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n },\n userPrompt: '',\n completion: '',\n title: '',\n active: false,\n }\n },\n})\n\nexport default AICommand\n"],"names":["Extension","PluginKey","ReactRenderer","Suggestion","tippy","AIMenuList","extensionName","popup","popupSelection","AICommand","create","name","priority","onCreate","t","interactive","trigger","placement","theme","offset","popperOptions","strategy","modifiers","enabled","onHidden","instance","selection","editor","state","chain","focus","insertContentAt","from","to","storage","aiCommand","completion","content","run","addProseMirrorPlugins","char","allowSpaces","startOfLine","pluginKey","allow","range","$from","doc","resolve","isRootDepth","depth","isParagraph","parent","type","isStartOfNode","textContent","charAt","textLength","length","isInColumn","isActive","afterContent","substring","indexOf","isValidAfterContent","endsWith","command","props","action","items","query","GROUPS","default","withFilteredCommands","map","group","commands","filter","item","labelNormalized","label","toLowerCase","trim","queryNormalized","aliases","alias","includes","shouldBeHidden","withoutEmptyGroups","withEnabledSettings","isEnabled","render","component","scrollHandler","onStart","active","view","editorNode","dom","getReferenceClientRect","clientRect","rect","yPos","y","top","element","offsetHeight","window","innerHeight","diff","editorXOffset","getBoundingClientRect","x","boundigClient","DOMRect","width","height","setProps","parentElement","addEventListener","appendTo","document","body","show","onUpdate","updateProps","left","right","bottom","onKeyDown","event","key","hide","isShown","ref","onExit","removeEventListener","userPrompt","destroy","addStorage","title"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { Node } from "@tiptap/core";
2
- import { SiteMetaData } from "../../features/BlockEditor/types.jsx";
3
- declare module "@tiptap/core" {
1
+ import { Node } from '@tiptap/core';
2
+ import { SiteMetaData } from '../../features/BlockEditor/types.jsx';
3
+ declare module '@tiptap/core' {
4
4
  interface Commands<ReturnType> {
5
5
  linkPreview: {
6
6
  setLinkPreview: (src?: string, metadata?: SiteMetaData) => ReturnType;
@@ -1 +1 @@
1
- {"version":3,"file":"LinkPreview.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK,UAAU,CAAC;SACvE,CAAC;KACH;CACF;AAED,eAAO,MAAM,WAAW,gBAsFtB,CAAC"}
1
+ {"version":3,"file":"LinkPreview.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGpE,OAAO,QAAQ,cAAc,CAAC;IAC5B,UAAU,QAAQ,CAAC,UAAU;QAC3B,WAAW,EAAE;YACX,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK,UAAU,CAAC;SACvE,CAAC;KACH;CACF;AAED,eAAO,MAAM,WAAW,gBAoGtB,CAAC"}
@@ -1,71 +1,77 @@
1
- import { Node, mergeAttributes } from "@tiptap/core";
1
+ import { Node, mergeAttributes } from '@tiptap/core';
2
+ import i18next from 'i18next';
2
3
  export const LinkPreview = Node.create({
3
- name: "linkPreview",
4
- group: "block",
4
+ name: 'linkPreview',
5
+ group: 'block',
5
6
  atom: true,
6
7
  addAttributes () {
7
8
  return {
8
9
  href: {
9
- default: ""
10
+ default: ''
10
11
  },
11
12
  title: {
12
- default: ""
13
+ default: ''
13
14
  },
14
15
  description: {
15
- default: ""
16
+ default: ''
16
17
  },
17
18
  image: {
18
- default: ""
19
+ default: ''
19
20
  }
20
21
  };
21
22
  },
22
23
  parseHTML () {
23
24
  return [
24
25
  {
25
- tag: "div[data-link-preview]"
26
+ tag: 'a[data-link-preview]'
26
27
  }
27
28
  ];
28
29
  },
29
30
  renderHTML ({ node }) {
30
31
  return [
31
- "div",
32
+ 'a',
32
33
  mergeAttributes({
33
- "data-link-preview": "",
34
- style: "position: relative; border: 1px solid #ddd; padding: 10px; display: flex; align-items: center; gap: 10px; border-radius: 6px; background: #f9f9f9;"
34
+ 'data-link-preview': '',
35
+ href: node.attrs.href,
36
+ target: '_blank',
37
+ rel: 'noopener noreferrer',
38
+ dir: i18next.dir(),
39
+ class: 'relative flex w-full px-4 py-3 flex-col items-start gap-6 rounded bg-[#F1F1F1] border-l-0 transition-all duration-200 ease-in-out box-border mb-4 hover:bg-[#F9F9F9] hover:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_-4px_6px_-1px_rgba(0,0,0,0.06),4px_0_6px_-1px_rgba(0,0,0,0.06)] focus:bg-[#F9F9F9] focus:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_-4px_6px_-1px_rgba(0,0,0,0.06),4px_0_6px_-1px_rgba(0,0,0,0.06)] before:content-[""] before:absolute before:left-0 before:top-0 before:bottom-0 before:w-[3px] before:rounded-l-md before:bg-[#01ABD9]'
35
40
  }),
36
- node.attrs.image ? [
37
- "img",
38
- {
39
- src: node.attrs.image,
40
- width: "120px",
41
- height: "120px"
42
- }
43
- ] : "",
44
41
  [
45
- "div",
46
- {},
47
- [
48
- "strong",
49
- {},
50
- node.attrs.title
51
- ],
42
+ 'div',
43
+ {
44
+ class: 'flex items-start w-full gap-3'
45
+ },
46
+ node.attrs.image ? [
47
+ 'img',
48
+ {
49
+ class: 'flex justify-center items-center rounded flex-shrink-0 !w-20 !h-20 md:!w-[84px] md:!h-[84px]',
50
+ src: node.attrs.image
51
+ }
52
+ ] : '',
52
53
  [
53
- "p",
54
+ 'div',
54
55
  {
55
- style: "font-size: 12px; color: gray; margin: 0;"
56
+ class: 'flex flex-col items-start'
56
57
  },
57
- node.attrs.description
58
+ [
59
+ 'span',
60
+ {
61
+ class: 'overflow-hidden text-[#1F2121] text-ellipsis font-[var(--font-notosans),Arial,sans-serif] text-xs md:text-base font-medium leading-[15px] uppercase mb-1',
62
+ 'data-link-preview-related': '',
63
+ 'data-testid': 'link-preview-related'
64
+ },
65
+ i18next.t('related', 'RELATED')
66
+ ],
67
+ [
68
+ 'strong',
69
+ {
70
+ class: 'text-[#1F2121] font-[var(--font-playfair),Georgia,serif] text-base sm:text-lg md:text-xl font-extrabold leading-[31px] underline decoration-solid line-clamp-2 overflow-hidden text-ellipsis max-h-[62px]'
71
+ },
72
+ node.attrs.title
73
+ ]
58
74
  ]
59
- ],
60
- [
61
- "a",
62
- {
63
- href: node.attrs.href,
64
- target: "_blank",
65
- rel: "noopener noreferrer",
66
- style: "position: absolute; top: 5px; right: 5px; text-decoration: none; font-size: 14px; color: #555; cursor: pointer;"
67
- },
68
- "🔗"
69
75
  ]
70
76
  ];
71
77
  },
@@ -73,12 +79,12 @@ export const LinkPreview = Node.create({
73
79
  return {
74
80
  setLinkPreview: (src, metadata)=>({ commands, state })=>{
75
81
  return commands.insertContent({
76
- type: "linkPreview",
82
+ type: 'linkPreview',
77
83
  attrs: {
78
84
  href: src,
79
85
  title: metadata?.title,
80
86
  description: metadata?.description,
81
- image: metadata?.images?.[0] || "/png/placeholder.png"
87
+ image: metadata?.images?.[0] || '/png/placeholder.png'
82
88
  }
83
89
  });
84
90
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.tsx"],"sourcesContent":["import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { SiteMetaData } from \"../../features/BlockEditor/types.jsx\";\n\ndeclare module \"@tiptap/core\" {\n interface Commands<ReturnType> {\n linkPreview: {\n setLinkPreview: (src?: string, metadata?: SiteMetaData) => ReturnType;\n };\n }\n}\n\nexport const LinkPreview = Node.create({\n name: \"linkPreview\",\n group: \"block\",\n atom: true,\n\n addAttributes() {\n return {\n href: {\n default: \"\",\n },\n title: { default: \"\" },\n description: {\n default: \"\",\n },\n image: {\n default: \"\",\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: \"div[data-link-preview]\",\n },\n ];\n },\n\n renderHTML({ node }) {\n return [\n \"div\",\n mergeAttributes({\n \"data-link-preview\": \"\",\n style:\n \"position: relative; border: 1px solid #ddd; padding: 10px; display: flex; align-items: center; gap: 10px; border-radius: 6px; background: #f9f9f9;\",\n }),\n node.attrs.image\n ? [\n \"img\",\n {\n src: node.attrs.image,\n width: \"120px\",\n height: \"120px\",\n },\n ]\n : \"\",\n [\n \"div\",\n {},\n [\"strong\", {}, node.attrs.title],\n [\n \"p\",\n { style: \"font-size: 12px; color: gray; margin: 0;\" },\n node.attrs.description,\n ],\n ],\n [\n \"a\",\n {\n href: node.attrs.href,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n style:\n \"position: absolute; top: 5px; right: 5px; text-decoration: none; font-size: 14px; color: #555; cursor: pointer;\",\n },\n \"🔗\",\n ],\n ];\n },\n addCommands() {\n return {\n setLinkPreview:\n (src, metadata) =>\n ({ commands, state }) => {\n return commands.insertContent({\n type: \"linkPreview\",\n attrs: {\n href: src,\n title: metadata?.title,\n description: metadata?.description,\n image: metadata?.images?.[0] || \"/png/placeholder.png\",\n },\n });\n },\n };\n },\n});\n"],"names":["Node","mergeAttributes","LinkPreview","create","name","group","atom","addAttributes","href","default","title","description","image","parseHTML","tag","renderHTML","node","style","attrs","src","width","height","target","rel","addCommands","setLinkPreview","metadata","commands","state","insertContent","type","images"],"mappings":"AAAA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AAWrD,OAAO,MAAMC,cAAcF,KAAKG,MAAM,CAAC;IACrCC,MAAM;IACNC,OAAO;IACPC,MAAM;IAENC;QACE,OAAO;YACLC,MAAM;gBACJC,SAAS;YACX;YACAC,OAAO;gBAAED,SAAS;YAAG;YACrBE,aAAa;gBACXF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;QACF;IACF;IAEAI;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC,YAAW,EAAEC,IAAI,EAAE;QACjB,OAAO;YACL;YACAf,gBAAgB;gBACd,qBAAqB;gBACrBgB,OACE;YACJ;YACAD,KAAKE,KAAK,CAACN,KAAK,GACZ;gBACE;gBACA;oBACEO,KAAKH,KAAKE,KAAK,CAACN,KAAK;oBACrBQ,OAAO;oBACPC,QAAQ;gBACV;aACD,GACD;YACJ;gBACE;gBACA,CAAC;gBACD;oBAAC;oBAAU,CAAC;oBAAGL,KAAKE,KAAK,CAACR,KAAK;iBAAC;gBAChC;oBACE;oBACA;wBAAEO,OAAO;oBAA2C;oBACpDD,KAAKE,KAAK,CAACP,WAAW;iBACvB;aACF;YACD;gBACE;gBACA;oBACEH,MAAMQ,KAAKE,KAAK,CAACV,IAAI;oBACrBc,QAAQ;oBACRC,KAAK;oBACLN,OACE;gBACJ;gBACA;aACD;SACF;IACH;IACAO;QACE,OAAO;YACLC,gBACE,CAACN,KAAKO,WACN,CAAC,EAAEC,QAAQ,EAAEC,KAAK,EAAE;oBAClB,OAAOD,SAASE,aAAa,CAAC;wBAC5BC,MAAM;wBACNZ,OAAO;4BACLV,MAAMW;4BACNT,OAAOgB,UAAUhB;4BACjBC,aAAae,UAAUf;4BACvBC,OAAOc,UAAUK,QAAQ,CAAC,EAAE,IAAI;wBAClC;oBACF;gBACF;QACJ;IACF;AACF,GAAG"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/LinkPreview/LinkPreview.tsx"],"sourcesContent":["import { Node, mergeAttributes } from '@tiptap/core';\nimport { SiteMetaData } from '../../features/BlockEditor/types.jsx';\nimport i18next from 'i18next';\n\ndeclare module '@tiptap/core' {\n interface Commands<ReturnType> {\n linkPreview: {\n setLinkPreview: (src?: string, metadata?: SiteMetaData) => ReturnType;\n };\n }\n}\n\nexport const LinkPreview = Node.create({\n name: 'linkPreview',\n group: 'block',\n atom: true,\n\n addAttributes() {\n return {\n href: {\n default: ''\n },\n title: { default: '' },\n description: {\n default: ''\n },\n image: {\n default: ''\n }\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'a[data-link-preview]'\n }\n ];\n },\n\n renderHTML({ node }) {\n return [\n 'a',\n mergeAttributes({\n 'data-link-preview': '',\n href: node.attrs.href,\n target: '_blank',\n rel: 'noopener noreferrer',\n dir: i18next.dir(),\n class:\n 'relative flex w-full px-4 py-3 flex-col items-start gap-6 rounded bg-[#F1F1F1] border-l-0 transition-all duration-200 ease-in-out box-border mb-4 hover:bg-[#F9F9F9] hover:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_-4px_6px_-1px_rgba(0,0,0,0.06),4px_0_6px_-1px_rgba(0,0,0,0.06)] focus:bg-[#F9F9F9] focus:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_-4px_6px_-1px_rgba(0,0,0,0.06),4px_0_6px_-1px_rgba(0,0,0,0.06)] before:content-[\"\"] before:absolute before:left-0 before:top-0 before:bottom-0 before:w-[3px] before:rounded-l-md before:bg-[#01ABD9]'\n }),\n [\n 'div',\n {\n class: 'flex items-start w-full gap-3'\n },\n node.attrs.image\n ? [\n 'img',\n {\n class:\n 'flex justify-center items-center rounded flex-shrink-0 !w-20 !h-20 md:!w-[84px] md:!h-[84px]',\n src: node.attrs.image\n }\n ]\n : '',\n [\n 'div',\n {\n class: 'flex flex-col items-start'\n },\n [\n 'span',\n {\n class:\n 'overflow-hidden text-[#1F2121] text-ellipsis font-[var(--font-notosans),Arial,sans-serif] text-xs md:text-base font-medium leading-[15px] uppercase mb-1',\n 'data-link-preview-related': '',\n 'data-testid': 'link-preview-related'\n },\n i18next.t('related', 'RELATED')\n ],\n [\n 'strong',\n {\n class:\n 'text-[#1F2121] font-[var(--font-playfair),Georgia,serif] text-base sm:text-lg md:text-xl font-extrabold leading-[31px] underline decoration-solid line-clamp-2 overflow-hidden text-ellipsis max-h-[62px]'\n },\n node.attrs.title\n ]\n ]\n ]\n ];\n },\n\n addCommands() {\n return {\n setLinkPreview:\n (src, metadata) =>\n ({ commands, state }) => {\n return commands.insertContent({\n type: 'linkPreview',\n attrs: {\n href: src,\n title: metadata?.title,\n description: metadata?.description,\n image: metadata?.images?.[0] || '/png/placeholder.png'\n }\n });\n }\n };\n }\n});\n"],"names":["Node","mergeAttributes","i18next","LinkPreview","create","name","group","atom","addAttributes","href","default","title","description","image","parseHTML","tag","renderHTML","node","attrs","target","rel","dir","class","src","t","addCommands","setLinkPreview","metadata","commands","state","insertContent","type","images"],"mappings":"AAAA,SAASA,IAAI,EAAEC,eAAe,QAAQ,eAAe;AAErD,OAAOC,aAAa,UAAU;AAU9B,OAAO,MAAMC,cAAcH,KAAKI,MAAM,CAAC;IACrCC,MAAM;IACNC,OAAO;IACPC,MAAM;IAENC;QACE,OAAO;YACLC,MAAM;gBACJC,SAAS;YACX;YACAC,OAAO;gBAAED,SAAS;YAAG;YACrBE,aAAa;gBACXF,SAAS;YACX;YACAG,OAAO;gBACLH,SAAS;YACX;QACF;IACF;IAEAI;QACE,OAAO;YACL;gBACEC,KAAK;YACP;SACD;IACH;IAEAC,YAAW,EAAEC,IAAI,EAAE;QACjB,OAAO;YACL;YACAhB,gBAAgB;gBACd,qBAAqB;gBACrBQ,MAAMQ,KAAKC,KAAK,CAACT,IAAI;gBACrBU,QAAQ;gBACRC,KAAK;gBACLC,KAAKnB,QAAQmB,GAAG;gBAChBC,OACE;YACJ;YACA;gBACE;gBACA;oBACEA,OAAO;gBACT;gBACAL,KAAKC,KAAK,CAACL,KAAK,GACZ;oBACE;oBACA;wBACES,OACE;wBACFC,KAAKN,KAAKC,KAAK,CAACL,KAAK;oBACvB;iBACD,GACD;gBACJ;oBACE;oBACA;wBACES,OAAO;oBACT;oBACA;wBACE;wBACA;4BACEA,OACE;4BACF,6BAA6B;4BAC7B,eAAe;wBACjB;wBACApB,QAAQsB,CAAC,CAAC,WAAW;qBACtB;oBACD;wBACE;wBACA;4BACEF,OACE;wBACJ;wBACAL,KAAKC,KAAK,CAACP,KAAK;qBACjB;iBACF;aACF;SACF;IACH;IAEAc;QACE,OAAO;YACLC,gBACE,CAACH,KAAKI,WACN,CAAC,EAAEC,QAAQ,EAAEC,KAAK,EAAE;oBAClB,OAAOD,SAASE,aAAa,CAAC;wBAC5BC,MAAM;wBACNb,OAAO;4BACLT,MAAMc;4BACNZ,OAAOgB,UAAUhB;4BACjBC,aAAae,UAAUf;4BACvBC,OAAOc,UAAUK,QAAQ,CAAC,EAAE,IAAI;wBAClC;oBACF;gBACF;QACJ;IACF;AACF,GAAG"}
@@ -1,7 +1,9 @@
1
- import React from "react";
1
+ import React from 'react';
2
+ import { AdditionalContextType } from '../../features/BlockEditor/types.js';
2
3
  type Props = {
3
4
  body: any;
5
+ additionalContext?: AdditionalContextType;
4
6
  };
5
- export declare const ServersideTiptapBody: ({ body }: Props) => React.JSX.Element;
7
+ export declare const ServersideTiptapBody: ({ body, additionalContext }: Props) => React.JSX.Element;
6
8
  export {};
7
9
  //# sourceMappingURL=ServersideTiptapBody.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ServersideTiptapBody.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA0E1B,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,GAAG,CAAC;CACX,CAAC;AACF,eAAO,MAAM,oBAAoB,aAAc,KAAK,sBAmFnD,CAAC"}
1
+ {"version":3,"file":"ServersideTiptapBody.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA0E1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAI5E,KAAK,KAAK,GAAG;IACX,IAAI,EAAE,GAAG,CAAC;IACV,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;CAC3C,CAAC;AAsCF,eAAO,MAAM,oBAAoB,gCAAiC,KAAK,sBAyFtE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
- import React from "react";
3
- import { generateHTML } from "@tiptap/html";
2
+ import React from 'react';
3
+ import { generateHTML } from '@tiptap/html';
4
+ import i18n from 'i18next';
4
5
  // import { Text } from "@tiptap/extension-text";
5
6
  import { StarterKit, Highlight, // CharacterCount,
6
7
  Underline, Placeholder, // Emoji,
@@ -30,22 +31,60 @@ Link, // ImageUpload,
30
31
  // Instagram,
31
32
  // Columns,
32
33
  Paragraph, // InsideLinks,
33
- TableCell, TableHeader, TableRow, Column, LinkPreview } from "../index.js";
34
- import { TwitterBlockServerside } from "./TwitterBlockServerside.js";
35
- import { YouTubeServerside } from "./YouTubeServerside.js";
36
- import { InstagramServerside } from "./InstagramServerside.js";
37
- import { ImageBlockServerside } from "./ImageBlockServerside.js";
38
- import { TiktokServerside } from "./TiktokServerside.js";
39
- import { LinkedinServerside } from "./LinkedinServerside.js";
40
- import { FacebookServerside } from "./FacebookServerside.js";
41
- import { VideoBlockServerside } from "./VideoBlockServerside.js";
42
- import { InsideLinkServerside } from "./InsideLinkServerside.js";
43
- import { IFrameServerside } from "./IFrameServerside.js";
44
- export const ServersideTiptapBody = ({ body })=>{
34
+ TableCell, TableHeader, TableRow, Column, LinkPreview } from '../index.js';
35
+ import { TwitterBlockServerside } from './TwitterBlockServerside.js';
36
+ import { YouTubeServerside } from './YouTubeServerside.js';
37
+ import { InstagramServerside } from './InstagramServerside.js';
38
+ import { ImageBlockServerside } from './ImageBlockServerside.js';
39
+ import { TiktokServerside } from './TiktokServerside.js';
40
+ import { LinkedinServerside } from './LinkedinServerside.js';
41
+ import { FacebookServerside } from './FacebookServerside.js';
42
+ import { VideoBlockServerside } from './VideoBlockServerside.js';
43
+ import { InsideLinkServerside } from './InsideLinkServerside.js';
44
+ import { IFrameServerside } from './IFrameServerside.js';
45
+ const DEFAULT_LANG = 'en';
46
+ // Initialize i18n based on additionalContext
47
+ const initializeI18n = (additionalContext)=>{
48
+ if (!additionalContext) {
49
+ i18n.init({
50
+ fallbackLng: DEFAULT_LANG,
51
+ lng: DEFAULT_LANG,
52
+ returnEmptyString: true,
53
+ resources: {}
54
+ });
55
+ return;
56
+ }
57
+ if (additionalContext.language && additionalContext.translations) {
58
+ i18n.init({
59
+ fallbackLng: additionalContext.language,
60
+ lng: additionalContext.language,
61
+ returnEmptyString: true,
62
+ resources: {
63
+ [additionalContext.language]: {
64
+ translation: additionalContext.translations
65
+ }
66
+ }
67
+ });
68
+ return;
69
+ }
70
+ if (additionalContext.language) {
71
+ i18n.init({
72
+ fallbackLng: additionalContext?.language,
73
+ lng: additionalContext?.language,
74
+ returnEmptyString: true,
75
+ resources: {}
76
+ });
77
+ }
78
+ };
79
+ export const ServersideTiptapBody = ({ body, additionalContext })=>{
45
80
  if (!body) return null;
81
+ // Initialize i18n synchronously
82
+ initializeI18n(additionalContext);
83
+ const textDirection = i18n.dir();
46
84
  return /*#__PURE__*/ _jsx(_Fragment, {
47
85
  children: /*#__PURE__*/ _jsx("div", {
48
86
  className: "tiptap ProseMirror min-h-full",
87
+ dir: textDirection,
49
88
  dangerouslySetInnerHTML: {
50
89
  __html: generateHTML(body, [
51
90
  // Text,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.tsx"],"sourcesContent":["import React from \"react\";\nimport { generateHTML } from \"@tiptap/html\";\n// import { Text } from \"@tiptap/extension-text\";\nimport {\n StarterKit,\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n Subscript,\n // TableOfContents,\n Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n Link,\n // ImageUpload,\n // ImageBlock,\n // VideoBlock,\n // AudioBlock,\n // Youtube,\n // Instagram,\n // Columns,\n Paragraph,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview,\n // Twitter,\n // Linkedin,\n // Tiktok,\n // Facebook,\n // Instagram,\n // Youtube,\n} from \"../index.js\";\n\nimport { TwitterBlockServerside } from \"./TwitterBlockServerside.js\";\nimport { YouTubeServerside } from \"./YouTubeServerside.js\";\nimport { InstagramServerside } from \"./InstagramServerside.js\";\nimport { ImageBlockServerside } from \"./ImageBlockServerside.js\";\nimport { TiktokServerside } from \"./TiktokServerside.js\";\nimport { LinkedinServerside } from \"./LinkedinServerside.js\";\nimport { FacebookServerside } from \"./FacebookServerside.js\";\nimport { VideoBlockServerside } from \"./VideoBlockServerside.js\";\nimport { InsideLinkServerside } from \"./InsideLinkServerside.js\";\nimport { IFrameServerside } from \"./IFrameServerside.js\";\n\ntype Props = {\n body: any;\n};\nexport const ServersideTiptapBody = ({ body }: Props) => {\n if (!body) return null;\n\n return (\n <>\n <div\n className=\"tiptap ProseMirror min-h-full\"\n dangerouslySetInnerHTML={{\n __html: generateHTML(body, [\n // Text,\n StarterKit.configure({\n paragraph: false,\n document: false,\n dropcursor: false,\n heading: false,\n horizontalRule: false,\n blockquote: false,\n history: false,\n codeBlock: false,\n }),\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n // Subscript,\n // TableOfContents,\n // Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // SlashCommand,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n ImageBlockServerside,\n VideoBlockServerside,\n // AudioBlock,\n // Columns,\n TwitterBlockServerside,\n InstagramServerside,\n YouTubeServerside,\n Paragraph,\n Superscript,\n Subscript,\n Link,\n TiktokServerside,\n LinkedinServerside,\n FacebookServerside,\n InsideLinkServerside,\n IFrameServerside,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview,\n ]),\n }}\n />\n </>\n );\n};\n"],"names":["React","generateHTML","StarterKit","Highlight","Underline","Placeholder","TextAlign","TextStyle","FontFamily","Typography","Subscript","Superscript","CodeBlock","Table","HorizontalRule","Heading","Document","BlockquoteFigure","Link","Paragraph","TableCell","TableHeader","TableRow","Column","LinkPreview","TwitterBlockServerside","YouTubeServerside","InstagramServerside","ImageBlockServerside","TiktokServerside","LinkedinServerside","FacebookServerside","VideoBlockServerside","InsideLinkServerside","IFrameServerside","ServersideTiptapBody","body","div","className","dangerouslySetInnerHTML","__html","configure","paragraph","document","dropcursor","heading","horizontalRule","blockquote","history","codeBlock"],"mappings":";AAAA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,YAAY,QAAQ,eAAe;AAC5C,iDAAiD;AACjD,SACEC,UAAU,EACVC,SAAS,EAETC,AADA,kBAAkB;AAClBA,SAAS,EACTC,WAAW,EAEXC,AADA,SAAS;AACTA,SAAS,EACTC,SAAS,EACTC,UAAU,EACVC,UAAU,EAIVC,AAHA,SAAS;AACT,cAAc;AACd,uBAAuB;AACvBA,SAAS,EAETC,AADA,mBAAmB;AACnBA,WAAW,EACXC,SAAS,EASTC,AARA,cAAc;AACd,eAAe;AACf,iBAAiB;AACjB,YAAY;AACZ,YAAY;AACZ,eAAe;AACf,aAAa;AACb,SAAS;AACTA,KAAK,EACLC,cAAc,EACdC,OAAO,EACPC,QAAQ,EAKRC,AAJA,gBAAgB;AAChB,YAAY;AACZ,UAAU;AACV,cAAc;AACdA,gBAAgB,EAGhBC,AAFA,SAAS;AACT,gBAAgB;AAChBA,IAAI,EAQJC,AAPA,eAAe;AACf,gBAAgB;AAChB,gBAAgB;AAChB,cAAc;AACd,WAAW;AACX,aAAa;AACb,WAAW;AACXA,SAAS,EAETC,AADA,eAAe;AACfA,SAAS,EACTC,WAAW,EACXC,QAAQ,EACRC,MAAM,EACNC,WAAW,QAON,cAAc;AAErB,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,oBAAoB,QAAQ,4BAA4B;AACjE,SAASC,gBAAgB,QAAQ,wBAAwB;AAKzD,OAAO,MAAMC,uBAAuB,CAAC,EAAEC,IAAI,EAAS;IAClD,IAAI,CAACA,MAAM,OAAO;IAElB,qBACE;kBACE,cAAA,KAACC;YACCC,WAAU;YACVC,yBAAyB;gBACvBC,QAAQvC,aAAamC,MAAM;oBACzB,QAAQ;oBACRlC,WAAWuC,SAAS,CAAC;wBACnBC,WAAW;wBACXC,UAAU;wBACVC,YAAY;wBACZC,SAAS;wBACTC,gBAAgB;wBAChBC,YAAY;wBACZC,SAAS;wBACTC,WAAW;oBACb;oBACA9C;oBACA,kBAAkB;oBAClBC;oBACAC;oBACA,SAAS;oBACTC;oBACAC;oBACAC;oBACAC;oBACA,SAAS;oBACT,cAAc;oBACd,uBAAuB;oBACvB,aAAa;oBACb,mBAAmB;oBACnB,eAAe;oBACfG;oBACA,cAAc;oBACd,eAAe;oBACf,iBAAiB;oBACjB,YAAY;oBACZ,YAAY;oBACZ,eAAe;oBACf,aAAa;oBACb,SAAS;oBACTC;oBACAC;oBACAC;oBACAC;oBACA,gBAAgB;oBAChB,gBAAgB;oBAChB,YAAY;oBACZ,UAAU;oBACV,cAAc;oBACdC;oBACA,SAAS;oBACT,gBAAgB;oBAChBW;oBACAI;oBACA,cAAc;oBACd,WAAW;oBACXP;oBACAE;oBACAD;oBACAP;oBACAR;oBACAD;oBACAQ;oBACAW;oBACAC;oBACAC;oBACAE;oBACAC;oBACA,eAAe;oBACfd;oBACAC;oBACAC;oBACAC;oBACAC;iBACD;YACH;;;AAIR,EAAE"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/extensions/serverside/ServersideTiptapBody.tsx"],"sourcesContent":["import React from 'react';\nimport { generateHTML } from '@tiptap/html';\nimport i18n from 'i18next';\n// import { Text } from \"@tiptap/extension-text\";\nimport {\n StarterKit,\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n Subscript,\n // TableOfContents,\n Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n Link,\n // ImageUpload,\n // ImageBlock,\n // VideoBlock,\n // AudioBlock,\n // Youtube,\n // Instagram,\n // Columns,\n Paragraph,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview\n // Twitter,\n // Linkedin,\n // Tiktok,\n // Facebook,\n // Instagram,\n // Youtube,\n} from '../index.js';\n\nimport { TwitterBlockServerside } from './TwitterBlockServerside.js';\nimport { YouTubeServerside } from './YouTubeServerside.js';\nimport { InstagramServerside } from './InstagramServerside.js';\nimport { ImageBlockServerside } from './ImageBlockServerside.js';\nimport { TiktokServerside } from './TiktokServerside.js';\nimport { LinkedinServerside } from './LinkedinServerside.js';\nimport { FacebookServerside } from './FacebookServerside.js';\nimport { VideoBlockServerside } from './VideoBlockServerside.js';\nimport { InsideLinkServerside } from './InsideLinkServerside.js';\nimport { IFrameServerside } from './IFrameServerside.js';\nimport { AdditionalContextType } from '../../features/BlockEditor/types.js';\n\nconst DEFAULT_LANG = 'en';\n\ntype Props = {\n body: any;\n additionalContext?: AdditionalContextType;\n};\n\n// Initialize i18n based on additionalContext\nconst initializeI18n = (additionalContext?: AdditionalContextType) => {\n if (!additionalContext) {\n i18n.init({\n fallbackLng: DEFAULT_LANG,\n lng: DEFAULT_LANG,\n returnEmptyString: true,\n resources: {}\n });\n return;\n }\n\n if (additionalContext.language && additionalContext.translations) {\n i18n.init({\n fallbackLng: additionalContext.language,\n lng: additionalContext.language,\n returnEmptyString: true,\n resources: {\n [additionalContext.language]: {\n translation: additionalContext.translations\n }\n }\n });\n return;\n }\n\n if (additionalContext.language) {\n i18n.init({\n fallbackLng: additionalContext?.language,\n lng: additionalContext?.language,\n returnEmptyString: true,\n resources: {}\n });\n }\n};\n\nexport const ServersideTiptapBody = ({ body, additionalContext }: Props) => {\n if (!body) return null;\n\n // Initialize i18n synchronously\n initializeI18n(additionalContext);\n\n const textDirection = i18n.dir();\n\n return (\n <>\n <div\n className='tiptap ProseMirror min-h-full'\n dir={textDirection}\n dangerouslySetInnerHTML={{\n __html: generateHTML(body, [\n // Text,\n StarterKit.configure({\n paragraph: false,\n document: false,\n dropcursor: false,\n heading: false,\n horizontalRule: false,\n blockquote: false,\n history: false,\n codeBlock: false\n }),\n Highlight,\n // CharacterCount,\n Underline,\n Placeholder,\n // Emoji,\n TextAlign,\n TextStyle,\n FontFamily,\n Typography,\n // Color,\n // Dropcursor,\n // CollaborationCursor,\n // Subscript,\n // TableOfContents,\n // Superscript,\n CodeBlock,\n // BulletList,\n // OrderedList,\n // Collaboration,\n // TaskItem,\n // TaskList,\n // FileHandler,\n // Selection,\n // Focus,\n Table,\n HorizontalRule,\n Heading,\n Document,\n // TrailingNode,\n // SlashCommand,\n // FontSize,\n // Figure,\n // Figcaption,\n BlockquoteFigure,\n // Quote,\n // QuoteCaption,\n ImageBlockServerside,\n VideoBlockServerside,\n // AudioBlock,\n // Columns,\n TwitterBlockServerside,\n InstagramServerside,\n YouTubeServerside,\n Paragraph,\n Superscript,\n Subscript,\n Link,\n TiktokServerside,\n LinkedinServerside,\n FacebookServerside,\n InsideLinkServerside,\n IFrameServerside,\n // InsideLinks,\n TableCell,\n TableHeader,\n TableRow,\n Column,\n LinkPreview\n ])\n }}\n />\n </>\n );\n};\n"],"names":["React","generateHTML","i18n","StarterKit","Highlight","Underline","Placeholder","TextAlign","TextStyle","FontFamily","Typography","Subscript","Superscript","CodeBlock","Table","HorizontalRule","Heading","Document","BlockquoteFigure","Link","Paragraph","TableCell","TableHeader","TableRow","Column","LinkPreview","TwitterBlockServerside","YouTubeServerside","InstagramServerside","ImageBlockServerside","TiktokServerside","LinkedinServerside","FacebookServerside","VideoBlockServerside","InsideLinkServerside","IFrameServerside","DEFAULT_LANG","initializeI18n","additionalContext","init","fallbackLng","lng","returnEmptyString","resources","language","translations","translation","ServersideTiptapBody","body","textDirection","dir","div","className","dangerouslySetInnerHTML","__html","configure","paragraph","document","dropcursor","heading","horizontalRule","blockquote","history","codeBlock"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { openAssetHQType } from "../../types.js";
2
- import { AdditionalContextType, FetchSiteMetadataType, TiptapProps } from "./types.js";
1
+ import { openAssetHQType } from '../../types.js';
2
+ import { AdditionalContextType, FetchSiteMetadataType, TiptapProps } from './types.js';
3
3
  export declare const BlockEditor: ({ handleChange, content, openAssetHQHandler, additionalContext, isEditable, autoFocus, dir, fetchSiteMetadata, }: TiptapProps & {
4
4
  openAssetHQHandler?: openAssetHQType;
5
5
  additionalContext?: AdditionalContextType;
@@ -1 +1 @@
1
- {"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIjD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACZ,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,WAAW,qHASrB,WAAW,GAAG;IACf,kBAAkB,CAAC,EAAE,eAAe,CAAC;IACrC,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,qBAAqB,CAAC;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;CAC9B,gCA4FA,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"BlockEditor.d.ts","sourceRoot":"","sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIhD,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAMtF,eAAO,MAAM,WAAW,qHASrB,WAAW,GAAG;IACf,kBAAkB,CAAC,EAAE,eAAe,CAAA;IACpC,iBAAiB,CAAC,EAAE,qBAAqB,CAAA;IACzC,iBAAiB,CAAC,EAAE,qBAAqB,CAAA;IACzC,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;CAC7B,gCAwFA,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -1,22 +1,22 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { EditorContent } from "@tiptap/react";
4
- import { useEffect, useMemo, useRef } from "react";
5
- import i18n from "i18next";
6
- import { EditorContext } from "../../context/EditorContext.js";
7
- import { IframeMenu } from "../../extensions/Iframe/menus/index.js";
8
- import ImageBlockMenu from "../../extensions/ImageBlock/components/ImageBlockMenu.js";
9
- import { InsideLinksMenu } from "../../extensions/InsideLinks/menus/index.js";
10
- import { ColumnsMenu } from "../../extensions/MultiColumn/menus/ColumnsMenu.js";
11
- import { SocialMediaMenu } from "../../extensions/SocialMedia/menus/index.js";
12
- import VideoBlockMenu from "../../extensions/VideoBlock/components/VideoBlockMenu.js";
13
- import { useBlockEditor } from "../../hooks/useBlockEditor.js";
14
- import { ContentItemMenu } from "../menus/ContentItemMenu/ContentItemMenu.js";
15
- import { TextMenu } from "../menus/TextMenu/TextMenu.js";
16
- import { LinkMenu } from "../menus/index.js";
17
- import i18next from "i18next";
18
- import ILinkPreviewMenu from "../../extensions/LinkPreview/menus/linkPreviewMenu.js";
19
- const DEFAULT_LANG = "en";
3
+ import { EditorContent } from '@tiptap/react';
4
+ import { useEffect, useMemo, useRef } from 'react';
5
+ import i18n from 'i18next';
6
+ import { EditorContext } from '../../context/EditorContext.js';
7
+ import { IframeMenu } from '../../extensions/Iframe/menus/index.js';
8
+ import ImageBlockMenu from '../../extensions/ImageBlock/components/ImageBlockMenu.js';
9
+ import { InsideLinksMenu } from '../../extensions/InsideLinks/menus/index.js';
10
+ import { ColumnsMenu } from '../../extensions/MultiColumn/menus/ColumnsMenu.js';
11
+ import { SocialMediaMenu } from '../../extensions/SocialMedia/menus/index.js';
12
+ import VideoBlockMenu from '../../extensions/VideoBlock/components/VideoBlockMenu.js';
13
+ import { useBlockEditor } from '../../hooks/useBlockEditor.js';
14
+ import { ContentItemMenu } from '../menus/ContentItemMenu/ContentItemMenu.js';
15
+ import { TextMenu } from '../menus/TextMenu/TextMenu.js';
16
+ import { LinkMenu } from '../menus/index.js';
17
+ import i18next from 'i18next';
18
+ import ILinkPreviewMenu from '../../extensions/LinkPreview/menus/linkPreviewMenu.js';
19
+ const DEFAULT_LANG = 'en';
20
20
  export const BlockEditor = ({ handleChange, content, openAssetHQHandler, additionalContext, isEditable = true, autoFocus = true, dir, fetchSiteMetadata })=>{
21
21
  const menuContainerRef = useRef(null);
22
22
  const editorRef = useRef(null);
@@ -63,7 +63,9 @@ export const BlockEditor = ({ handleChange, content, openAssetHQHandler, additio
63
63
  resources: {}
64
64
  });
65
65
  }
66
- }, []);
66
+ }, [
67
+ additionalContext
68
+ ]);
67
69
  return editor && /*#__PURE__*/ _jsx(EditorContext.Provider, {
68
70
  value: providerValue,
69
71
  children: /*#__PURE__*/ _jsx("div", {
@@ -79,7 +81,7 @@ export const BlockEditor = ({ handleChange, content, openAssetHQHandler, additio
79
81
  ref: editorRef,
80
82
  className: "flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0",
81
83
  style: {
82
- outline: "none"
84
+ outline: 'none'
83
85
  }
84
86
  }),
85
87
  isEditable && /*#__PURE__*/ _jsxs(_Fragment, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"sourcesContent":["\"use client\";\nimport { EditorContent } from \"@tiptap/react\";\nimport { useEffect, useMemo, useRef } from \"react\";\nimport i18n from \"i18next\";\n\nimport { EditorContext } from \"../../context/EditorContext.js\";\nimport { IframeMenu } from \"../../extensions/Iframe/menus/index.js\";\nimport ImageBlockMenu from \"../../extensions/ImageBlock/components/ImageBlockMenu.js\";\nimport { InsideLinksMenu } from \"../../extensions/InsideLinks/menus/index.js\";\nimport { ColumnsMenu } from \"../../extensions/MultiColumn/menus/ColumnsMenu.js\";\nimport { SocialMediaMenu } from \"../../extensions/SocialMedia/menus/index.js\";\n\nimport VideoBlockMenu from \"../../extensions/VideoBlock/components/VideoBlockMenu.js\";\nimport { useBlockEditor } from \"../../hooks/useBlockEditor.js\";\nimport { openAssetHQType } from \"../../types.js\";\nimport { ContentItemMenu } from \"../menus/ContentItemMenu/ContentItemMenu.js\";\nimport { TextMenu } from \"../menus/TextMenu/TextMenu.js\";\nimport { LinkMenu } from \"../menus/index.js\";\nimport {\n AdditionalContextType,\n FetchSiteMetadataType,\n TiptapProps,\n} from \"./types.js\";\nimport i18next from \"i18next\";\nimport ILinkPreviewMenu from \"../../extensions/LinkPreview/menus/linkPreviewMenu.js\";\n\nconst DEFAULT_LANG = \"en\";\n\nexport const BlockEditor = ({\n handleChange,\n content,\n openAssetHQHandler,\n additionalContext,\n isEditable = true,\n autoFocus = true,\n dir,\n fetchSiteMetadata,\n}: TiptapProps & {\n openAssetHQHandler?: openAssetHQType;\n additionalContext?: AdditionalContextType;\n fetchSiteMetadata?: FetchSiteMetadataType;\n autoFocus?: boolean;\n isEditable?: boolean;\n dir?: \"ltr\" | \"rtl\" | \"auto\";\n}) => {\n const menuContainerRef = useRef(null);\n const editorRef = useRef<HTMLDivElement>(null);\n\n const { editor, users, characterCount, leftSidebar } = useBlockEditor({\n content: content,\n handleChange: handleChange,\n openAssetHQHandler: openAssetHQHandler,\n additionalContext: additionalContext,\n autoFocus,\n isEditable,\n });\n\n const displayedUsers = users.slice(0, 3);\n const providerValue = useMemo(() => {\n return {};\n }, []);\n useEffect(() => {\n if (!additionalContext) {\n i18n.init({\n fallbackLng: DEFAULT_LANG,\n lng: DEFAULT_LANG,\n returnEmptyString: true,\n resources: {},\n });\n return;\n }\n\n if (additionalContext.language && additionalContext.translations) {\n i18n.init({\n fallbackLng: additionalContext.language,\n lng: additionalContext.language,\n returnEmptyString: true,\n resources: {\n [additionalContext.language]: {\n translation: additionalContext.translations,\n },\n },\n });\n return;\n }\n if (additionalContext.language) {\n i18n.init({\n fallbackLng: additionalContext?.language,\n lng: additionalContext?.language,\n returnEmptyString: true,\n resources: {},\n });\n }\n }, []);\n\n return (\n editor && (\n <EditorContext.Provider value={providerValue}>\n <div\n className=\"flex h-full overflow-visible\"\n ref={menuContainerRef}\n dir={i18next.dir()}\n >\n <div className=\"relative flex flex-col flex-1 h-full justify-center items-center \">\n <EditorContent\n dir={i18next.dir()}\n editor={editor}\n ref={editorRef}\n className=\"flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0\"\n style={{\n outline: \"none\",\n }}\n />\n {isEditable && (\n <>\n <ContentItemMenu editor={editor} />\n <LinkMenu editor={editor} appendTo={menuContainerRef} />\n <TextMenu editor={editor} dir={i18next.dir()} />\n <ILinkPreviewMenu\n editor={editor}\n appendTo={menuContainerRef}\n fetchSiteMetadata={fetchSiteMetadata}\n />\n <IframeMenu editor={editor} appendTo={menuContainerRef} />\n <SocialMediaMenu editor={editor} appendTo={menuContainerRef} />\n <InsideLinksMenu editor={editor} appendTo={menuContainerRef} />\n <ColumnsMenu editor={editor} appendTo={menuContainerRef} />\n <ImageBlockMenu editor={editor} appendTo={menuContainerRef} />\n <VideoBlockMenu editor={editor} appendTo={menuContainerRef} />\n </>\n )}\n </div>\n </div>\n </EditorContext.Provider>\n )\n );\n};\n\nexport default BlockEditor;\n"],"names":["EditorContent","useEffect","useMemo","useRef","i18n","EditorContext","IframeMenu","ImageBlockMenu","InsideLinksMenu","ColumnsMenu","SocialMediaMenu","VideoBlockMenu","useBlockEditor","ContentItemMenu","TextMenu","LinkMenu","i18next","ILinkPreviewMenu","DEFAULT_LANG","BlockEditor","handleChange","content","openAssetHQHandler","additionalContext","isEditable","autoFocus","dir","fetchSiteMetadata","menuContainerRef","editorRef","editor","users","characterCount","leftSidebar","displayedUsers","slice","providerValue","init","fallbackLng","lng","returnEmptyString","resources","language","translations","translation","Provider","value","div","className","ref","style","outline","appendTo"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../src/fields/TiptapEditor/features/BlockEditor/BlockEditor.tsx"],"sourcesContent":["'use client'\nimport { EditorContent } from '@tiptap/react'\nimport { useEffect, useMemo, useRef } from 'react'\nimport i18n from 'i18next'\n\nimport { EditorContext } from '../../context/EditorContext.js'\nimport { IframeMenu } from '../../extensions/Iframe/menus/index.js'\nimport ImageBlockMenu from '../../extensions/ImageBlock/components/ImageBlockMenu.js'\nimport { InsideLinksMenu } from '../../extensions/InsideLinks/menus/index.js'\nimport { ColumnsMenu } from '../../extensions/MultiColumn/menus/ColumnsMenu.js'\nimport { SocialMediaMenu } from '../../extensions/SocialMedia/menus/index.js'\n\nimport VideoBlockMenu from '../../extensions/VideoBlock/components/VideoBlockMenu.js'\nimport { useBlockEditor } from '../../hooks/useBlockEditor.js'\nimport { openAssetHQType } from '../../types.js'\nimport { ContentItemMenu } from '../menus/ContentItemMenu/ContentItemMenu.js'\nimport { TextMenu } from '../menus/TextMenu/TextMenu.js'\nimport { LinkMenu } from '../menus/index.js'\nimport { AdditionalContextType, FetchSiteMetadataType, TiptapProps } from './types.js'\nimport i18next from 'i18next'\nimport ILinkPreviewMenu from '../../extensions/LinkPreview/menus/linkPreviewMenu.js'\n\nconst DEFAULT_LANG = 'en'\n\nexport const BlockEditor = ({\n handleChange,\n content,\n openAssetHQHandler,\n additionalContext,\n isEditable = true,\n autoFocus = true,\n dir,\n fetchSiteMetadata,\n}: TiptapProps & {\n openAssetHQHandler?: openAssetHQType\n additionalContext?: AdditionalContextType\n fetchSiteMetadata?: FetchSiteMetadataType\n autoFocus?: boolean\n isEditable?: boolean\n dir?: 'ltr' | 'rtl' | 'auto'\n}) => {\n const menuContainerRef = useRef(null)\n const editorRef = useRef<HTMLDivElement>(null)\n\n const { editor, users, characterCount, leftSidebar } = useBlockEditor({\n content: content,\n handleChange: handleChange,\n openAssetHQHandler: openAssetHQHandler,\n additionalContext: additionalContext,\n autoFocus,\n isEditable,\n })\n\n const displayedUsers = users.slice(0, 3)\n const providerValue = useMemo(() => {\n return {}\n }, [])\n useEffect(() => {\n if (!additionalContext) {\n i18n.init({\n fallbackLng: DEFAULT_LANG,\n lng: DEFAULT_LANG,\n returnEmptyString: true,\n resources: {},\n })\n return\n }\n\n if (additionalContext.language && additionalContext.translations) {\n i18n.init({\n fallbackLng: additionalContext.language,\n lng: additionalContext.language,\n returnEmptyString: true,\n resources: {\n [additionalContext.language]: {\n translation: additionalContext.translations,\n },\n },\n })\n return\n }\n if (additionalContext.language) {\n i18n.init({\n fallbackLng: additionalContext?.language,\n lng: additionalContext?.language,\n returnEmptyString: true,\n resources: {},\n })\n }\n }, [additionalContext])\n\n return (\n editor && (\n <EditorContext.Provider value={providerValue}>\n <div className='flex h-full overflow-visible' ref={menuContainerRef} dir={i18next.dir()}>\n <div className='relative flex flex-col flex-1 h-full justify-center items-center '>\n <EditorContent\n dir={i18next.dir()}\n editor={editor}\n ref={editorRef}\n className='flex-1 overflow-y-visible w-full h-full outline-none outline-offset-0'\n style={{\n outline: 'none',\n }}\n />\n {isEditable && (\n <>\n <ContentItemMenu editor={editor} />\n <LinkMenu editor={editor} appendTo={menuContainerRef} />\n <TextMenu editor={editor} dir={i18next.dir()} />\n <ILinkPreviewMenu\n editor={editor}\n appendTo={menuContainerRef}\n fetchSiteMetadata={fetchSiteMetadata}\n />\n <IframeMenu editor={editor} appendTo={menuContainerRef} />\n <SocialMediaMenu editor={editor} appendTo={menuContainerRef} />\n <InsideLinksMenu editor={editor} appendTo={menuContainerRef} />\n <ColumnsMenu editor={editor} appendTo={menuContainerRef} />\n <ImageBlockMenu editor={editor} appendTo={menuContainerRef} />\n <VideoBlockMenu editor={editor} appendTo={menuContainerRef} />\n </>\n )}\n </div>\n </div>\n </EditorContext.Provider>\n )\n )\n}\n\nexport default BlockEditor\n"],"names":["EditorContent","useEffect","useMemo","useRef","i18n","EditorContext","IframeMenu","ImageBlockMenu","InsideLinksMenu","ColumnsMenu","SocialMediaMenu","VideoBlockMenu","useBlockEditor","ContentItemMenu","TextMenu","LinkMenu","i18next","ILinkPreviewMenu","DEFAULT_LANG","BlockEditor","handleChange","content","openAssetHQHandler","additionalContext","isEditable","autoFocus","dir","fetchSiteMetadata","menuContainerRef","editorRef","editor","users","characterCount","leftSidebar","displayedUsers","slice","providerValue","init","fallbackLng","lng","returnEmptyString","resources","language","translations","translation","Provider","value","div","className","ref","style","outline","appendTo"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-selector-commands.d.ts","sourceRoot":"","sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAgEnD,UAAU,uBAAuB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,QAAQ,EAAE,CACR,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,KAC7D,IAAI,CAAA;CACV;AAED,QAAA,MAAM,kBAAkB,mCAAoC,uBAAuB,gCAgHlF,CAAA;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"ai-selector-commands.d.ts","sourceRoot":"","sources":["../../../../../../../../src/fields/TiptapEditor/features/menus/TextMenu/components/ai-selector-commands.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAgEnD,UAAU,uBAAuB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,QAAQ,EAAE,CACR,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,KAC7D,IAAI,CAAA;CACV;AAED,QAAA,MAAM,kBAAkB,mCAAoC,uBAAuB,gCA+GlF,CAAA;AAED,eAAe,kBAAkB,CAAA"}