@bigbinary/neeto-editor-frontend 2.2.2 → 2.2.4

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 (113) hide show
  1. package/dist/.ready +1 -1
  2. package/dist/Attachments.js +3 -3
  3. package/dist/Editor.js +10 -10
  4. package/dist/EditorContent.js +4 -4
  5. package/dist/FormikEditor.js +10 -10
  6. package/dist/Menu.js +7 -7
  7. package/dist/{chunk-BfQ_Kj4i.js → chunk-AexVHCkr.js} +4 -4
  8. package/dist/{chunk-BfQ_Kj4i.js.map → chunk-AexVHCkr.js.map} +1 -1
  9. package/dist/{chunk-CRUXOawK.js → chunk-B5LsYrmv.js} +4 -4
  10. package/dist/{chunk-CRUXOawK.js.map → chunk-B5LsYrmv.js.map} +1 -1
  11. package/dist/chunk-BHi0J28T.js +1970 -0
  12. package/dist/chunk-BHi0J28T.js.map +1 -0
  13. package/dist/{chunk-CxFTIgDS.js → chunk-BIgc5m-h.js} +2 -2
  14. package/dist/{chunk-CxFTIgDS.js.map → chunk-BIgc5m-h.js.map} +1 -1
  15. package/dist/{chunk-BNyLNMnb.js → chunk-Bktpw5vs.js} +5 -5
  16. package/dist/{chunk-BNyLNMnb.js.map → chunk-Bktpw5vs.js.map} +1 -1
  17. package/dist/{chunk-lEnpEBRB.js → chunk-BozdxlzB.js} +5 -5
  18. package/dist/{chunk-lEnpEBRB.js.map → chunk-BozdxlzB.js.map} +1 -1
  19. package/dist/{chunk-BpMZjml2.js → chunk-C9H9LYpP.js} +2 -2
  20. package/dist/chunk-C9H9LYpP.js.map +1 -0
  21. package/dist/{chunk-DhFieQe2.js → chunk-CLjWv4gG.js} +4 -4
  22. package/dist/{chunk-DhFieQe2.js.map → chunk-CLjWv4gG.js.map} +1 -1
  23. package/dist/{chunk-D_Lgx0N7.js → chunk-C_4zmIBQ.js} +2 -2
  24. package/dist/{chunk-D_Lgx0N7.js.map → chunk-C_4zmIBQ.js.map} +1 -1
  25. package/dist/{chunk-YhV82e9I.js → chunk-CivYrffM.js} +6 -6
  26. package/dist/{chunk-YhV82e9I.js.map → chunk-CivYrffM.js.map} +1 -1
  27. package/dist/{chunk-BV_wep_Y.js → chunk-D37Dlp9s.js} +4 -4
  28. package/dist/{chunk-BV_wep_Y.js.map → chunk-D37Dlp9s.js.map} +1 -1
  29. package/dist/{chunk-DYRpf9PJ.js → chunk-DPx9v04U.js} +3 -3
  30. package/dist/{chunk-DYRpf9PJ.js.map → chunk-DPx9v04U.js.map} +1 -1
  31. package/dist/{chunk-7ioLE0kx.js → chunk-DcxOAiAp.js} +2 -2
  32. package/dist/{chunk-7ioLE0kx.js.map → chunk-DcxOAiAp.js.map} +1 -1
  33. package/dist/{chunk-DN9pYQV5.js → chunk-DqSrbxqC.js} +2 -2
  34. package/dist/{chunk-DN9pYQV5.js.map → chunk-DqSrbxqC.js.map} +1 -1
  35. package/dist/{chunk-BGx6BSFw.js → chunk-DwQ7NJtm.js} +4 -4
  36. package/dist/{chunk-BGx6BSFw.js.map → chunk-DwQ7NJtm.js.map} +1 -1
  37. package/dist/{chunk-Br5h7rjn.js → chunk-GA-wADEN.js} +3 -3
  38. package/dist/{chunk-Br5h7rjn.js.map → chunk-GA-wADEN.js.map} +1 -1
  39. package/dist/{chunk-DfH1lF5p.js → chunk-LtUevT4I.js} +2 -2
  40. package/dist/{chunk-DfH1lF5p.js.map → chunk-LtUevT4I.js.map} +1 -1
  41. package/dist/{chunk-sn8HEeT6.js → chunk-yBvbLjSM.js} +4 -4
  42. package/dist/{chunk-sn8HEeT6.js.map → chunk-yBvbLjSM.js.map} +1 -1
  43. package/dist/cjs/Attachments.cjs.js +3 -3
  44. package/dist/cjs/Editor.cjs.js +10 -10
  45. package/dist/cjs/EditorContent.cjs.js +4 -4
  46. package/dist/cjs/FormikEditor.cjs.js +10 -10
  47. package/dist/cjs/Menu.cjs.js +7 -7
  48. package/dist/cjs/{chunk-BAse0j9m.cjs.js → chunk-BfHU_Ynq.cjs.js} +4 -4
  49. package/dist/cjs/{chunk-BAse0j9m.cjs.js.map → chunk-BfHU_Ynq.cjs.js.map} +1 -1
  50. package/dist/cjs/{chunk-QnVNXaqt.cjs.js → chunk-CAaxrndK.cjs.js} +6 -6
  51. package/dist/cjs/{chunk-QnVNXaqt.cjs.js.map → chunk-CAaxrndK.cjs.js.map} +1 -1
  52. package/dist/cjs/{chunk-DRnP2LQe.cjs.js → chunk-CJIIbW7G.cjs.js} +2 -2
  53. package/dist/cjs/{chunk-DRnP2LQe.cjs.js.map → chunk-CJIIbW7G.cjs.js.map} +1 -1
  54. package/dist/cjs/{chunk-V1V-Gqfy.cjs.js → chunk-CKbuSSOi.cjs.js} +5 -5
  55. package/dist/cjs/{chunk-V1V-Gqfy.cjs.js.map → chunk-CKbuSSOi.cjs.js.map} +1 -1
  56. package/dist/cjs/{chunk-CQLQEN5P.cjs.js → chunk-CU6dMPZV.cjs.js} +2 -2
  57. package/dist/cjs/{chunk-CQLQEN5P.cjs.js.map → chunk-CU6dMPZV.cjs.js.map} +1 -1
  58. package/dist/cjs/{chunk-BPJBeVDI.cjs.js → chunk-C_XHzWXy.cjs.js} +2 -2
  59. package/dist/cjs/chunk-C_XHzWXy.cjs.js.map +1 -0
  60. package/dist/cjs/{chunk-bfmPXyQJ.cjs.js → chunk-CddQ0UHU.cjs.js} +3 -3
  61. package/dist/cjs/{chunk-bfmPXyQJ.cjs.js.map → chunk-CddQ0UHU.cjs.js.map} +1 -1
  62. package/dist/cjs/{chunk-BPLEmkMA.cjs.js → chunk-CfiRFXt2.cjs.js} +2 -2
  63. package/dist/cjs/{chunk-BPLEmkMA.cjs.js.map → chunk-CfiRFXt2.cjs.js.map} +1 -1
  64. package/dist/cjs/{chunk-78VpxO0R.cjs.js → chunk-CkSG3yNC.cjs.js} +4 -4
  65. package/dist/cjs/{chunk-78VpxO0R.cjs.js.map → chunk-CkSG3yNC.cjs.js.map} +1 -1
  66. package/dist/cjs/{chunk-CHk_Gq2n.cjs.js → chunk-CpQ8t9br.cjs.js} +2 -2
  67. package/dist/cjs/{chunk-CHk_Gq2n.cjs.js.map → chunk-CpQ8t9br.cjs.js.map} +1 -1
  68. package/dist/cjs/chunk-Cr0FBhRs.cjs.js +1990 -0
  69. package/dist/cjs/chunk-Cr0FBhRs.cjs.js.map +1 -0
  70. package/dist/cjs/{chunk-DGPpvE8O.cjs.js → chunk-Ct6vCCZ0.cjs.js} +4 -4
  71. package/dist/cjs/{chunk-DGPpvE8O.cjs.js.map → chunk-Ct6vCCZ0.cjs.js.map} +1 -1
  72. package/dist/cjs/{chunk-CwY6UgZq.cjs.js → chunk-CxKWZyHq.cjs.js} +3 -3
  73. package/dist/cjs/{chunk-CwY6UgZq.cjs.js.map → chunk-CxKWZyHq.cjs.js.map} +1 -1
  74. package/dist/cjs/{chunk-j4T5BDua.cjs.js → chunk-Df33Mipq.cjs.js} +5 -5
  75. package/dist/cjs/{chunk-j4T5BDua.cjs.js.map → chunk-Df33Mipq.cjs.js.map} +1 -1
  76. package/dist/cjs/{chunk-D86ONI5s.cjs.js → chunk-Df43FB6u.cjs.js} +4 -4
  77. package/dist/cjs/{chunk-D86ONI5s.cjs.js.map → chunk-Df43FB6u.cjs.js.map} +1 -1
  78. package/dist/cjs/{chunk--47DtZYn.cjs.js → chunk-DuwgLqpD.cjs.js} +4 -4
  79. package/dist/cjs/{chunk--47DtZYn.cjs.js.map → chunk-DuwgLqpD.cjs.js.map} +1 -1
  80. package/dist/cjs/{chunk-bxP1kilM.cjs.js → chunk-Dwv-JqJN.cjs.js} +2 -2
  81. package/dist/cjs/{chunk-bxP1kilM.cjs.js.map → chunk-Dwv-JqJN.cjs.js.map} +1 -1
  82. package/dist/cjs/{chunk-CBswWnmM.cjs.js → chunk-Niprqtd_.cjs.js} +3 -3
  83. package/dist/cjs/{chunk-CBswWnmM.cjs.js.map → chunk-Niprqtd_.cjs.js.map} +1 -1
  84. package/dist/cjs/index.cjs.js +12 -12
  85. package/dist/cjs/utils.cjs.js +6 -6
  86. package/dist/cjs/v2/Attachments.cjs.js +3 -3
  87. package/dist/cjs/v2/Editor.cjs.js +872 -236
  88. package/dist/cjs/v2/Editor.cjs.js.map +1 -1
  89. package/dist/cjs/v2/EditorContent.cjs.js +4 -4
  90. package/dist/cjs/v2/FormikEditor.cjs.js +9 -9
  91. package/dist/cjs/v2/Menu.cjs.js +6 -6
  92. package/dist/cjs/v2/index.cjs.js +11 -11
  93. package/dist/cjs/v2/utils.cjs.js +6 -6
  94. package/dist/editor-stats.html +1 -19
  95. package/dist/index.js +12 -12
  96. package/dist/utils.js +6 -6
  97. package/dist/v2/Attachments.js +3 -3
  98. package/dist/v2/Editor.js +872 -236
  99. package/dist/v2/Editor.js.map +1 -1
  100. package/dist/v2/EditorContent.js +4 -4
  101. package/dist/v2/FormikEditor.js +9 -9
  102. package/dist/v2/Menu.js +6 -6
  103. package/dist/v2/index.js +11 -11
  104. package/dist/v2/styles.css +1 -1
  105. package/dist/v2/styles.js +1 -1
  106. package/dist/v2/utils.js +6 -6
  107. package/package.json +6 -4
  108. package/dist/chunk-BpMZjml2.js.map +0 -1
  109. package/dist/chunk-OP-lX765.js +0 -8654
  110. package/dist/chunk-OP-lX765.js.map +0 -1
  111. package/dist/cjs/chunk-BPJBeVDI.cjs.js.map +0 -1
  112. package/dist/cjs/chunk-Bde8Sbb1.cjs.js +0 -8674
  113. package/dist/cjs/chunk-Bde8Sbb1.cjs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.cjs.js","sources":["../../../app/javascript/src/v2/components/Common/ErrorWrapper.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CharacterCount/index.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/BackgroundColor/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/BulletList/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Callout/CalloutComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Callout/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/plugins.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/CodeBlockComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CustomCommands/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/DeletedArticleDecoration/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/EditorContainer/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiPicker/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/utils.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/EmojiSuggestionMenu.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ImagePreviewModal.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/Menu.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ImageComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/FigCaption.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Italic/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/KeyboardShortcuts/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Link/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Link/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/MentionList.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/utils.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/OrderedList/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Placeholder/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SelectionDecoration/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/Menu.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/CommandsList.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/utils.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SpecialMentions/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/actionPreviewPlugin.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/TableView.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/utils.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/TodoList/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/VariableComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Video/VideoComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Embeds/EmbedComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Video/ExtensionConfig.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/hooks/useCustomExtensions.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/hooks/useArticleNavigation.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticlesList.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticlePicker.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticleSelector.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/TableActionMenu.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleDeletedModal.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleEdit.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleView.jsx","../../../app/javascript/src/v2/components/Editor/LinkPopOver.jsx","../../../app/javascript/src/v2/components/Editor/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { is } from \"ramda\";\n\nconst ErrorWrapper = ({ error, children, className }) => {\n const isError = !isNotPresent(error);\n const wrapperClasses = classnames({\n \"neeto-editor-error\": isError,\n [className]: className,\n });\n\n const getErrorMessage = () => {\n if (!error) return null;\n\n let message;\n\n if (is(String, error)) {\n message = error;\n } else if (is(Array, error)) {\n message = error[0];\n } else if (is(Object, error)) {\n message = error.message;\n }\n\n if (isNotPresent(message)) return null;\n\n return message;\n };\n\n return (\n <>\n <div className={wrapperClasses}>{children}</div>\n {isError && (\n <p\n className=\"neeto-ui-input__error\"\n data-testid=\"neeto-editor-error-text\"\n >\n {getErrorMessage()}\n </p>\n )}\n </>\n );\n};\n\nexport default memo(ErrorWrapper);\n","import { useEditorState } from \"@tiptap/react\";\n\nconst CharacterCountWrapper = ({ editor, children }) => {\n const characters = useEditorState({\n editor,\n selector: ({ editor }) => editor?.storage.characterCount.characters() ?? 0,\n });\n\n if (!editor) return children;\n\n return (\n <>\n {children}\n <p\n className=\"neeto-editor-character-count\"\n data-testid=\"neeto-editor-character-count\"\n >\n {characters} characters\n </p>\n </>\n );\n};\n\nexport default CharacterCountWrapper;\n","import { Extension } from \"@tiptap/core\";\nimport \"@tiptap/extension-text-style\";\n\nexport default Extension.create({\n name: \"HighlightInternal\",\n\n addOptions() {\n return { types: [\"textStyle\"] };\n },\n\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n backgroundColor: {\n default: null,\n parseHTML: element =>\n element.style.backgroundColor.replace(/['\"]+/g, \"\"),\n renderHTML: attributes => {\n if (!attributes.backgroundColor) {\n return {};\n }\n\n return {\n style: `background-color: ${attributes.backgroundColor}`,\n };\n },\n },\n },\n },\n ];\n },\n\n addCommands() {\n return {\n setHighlightInternal:\n color =>\n ({ chain }) =>\n chain().setMark(\"textStyle\", { backgroundColor: color }).run(),\n unsetHighlightInternal:\n () =>\n ({ chain }) =>\n chain().setMark(\"textStyle\", { backgroundColor: null }).run(),\n };\n },\n});\n","import { BulletList } from \"@tiptap/extension-list\";\n\nexport default BulletList.configure({\n HTMLAttributes: { class: \"bulletList\" },\n itemTypeName: \"listItem\",\n});\n","import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { findBy } from \"neetocist\";\nimport { Megaphone } from \"neetoicons/misc\";\n\nimport { CALLOUT_TYPES } from \"src/v2/components/Editor/Menu/Fixed/components/CalloutDropdown/constants\";\n\nconst CalloutComponent = ({ node }) => {\n const { type } = node.attrs;\n const Icon = findBy({ type }, CALLOUT_TYPES)?.icon || Megaphone;\n\n return (\n <NodeViewWrapper\n className={`neeto-editor__callout neeto-editor__callout--${type} group`}\n data-emoji={type}\n >\n <div className=\"callout-container\">\n <span className=\"callout-emoji\">\n <Icon />\n </span>\n <NodeViewContent\n className=\"callout-content\"\n data-testid=\"callout-content\"\n />\n </div>\n </NodeViewWrapper>\n );\n};\n\nexport default CalloutComponent;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { findBy } from \"neetocist\";\nimport { Megaphone } from \"neetoicons/misc\";\nimport ReactDOM from \"react-dom/server\";\n\nimport { CALLOUT_TYPES } from \"src/v2/components/Editor/Menu/Fixed/components/CalloutDropdown/constants\";\n\nimport CalloutComponent from \"./CalloutComponent\";\n\nexport default Node.create({\n name: \"callout\",\n\n inline: false,\n\n group: \"block\",\n\n content: \"block+\",\n\n defining: true,\n\n draggable: true,\n\n addAttributes() {\n return {\n type: {\n default: \"default\",\n parseHTML: element => element.getAttribute(\"data-type\") || \"default\",\n renderHTML: attributes => ({ \"data-type\": attributes.type }),\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"div[data-emoji]\", contentElement: \".callout-content\" }];\n },\n\n renderHTML({ HTMLAttributes, node }) {\n const { type } = node.attrs;\n const Icon = findBy({ type }, CALLOUT_TYPES)?.icon || Megaphone;\n // eslint-disable-next-line react/jsx-filename-extension\n const svgString = ReactDOM.renderToStaticMarkup(<Icon />);\n\n const svgContainer = document.createElement(\"div\");\n svgContainer.innerHTML = svgString;\n const svgNode = svgContainer.firstChild;\n\n return [\n \"div\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\n class: `neeto-editor__callout neeto-editor__callout--${type}`,\n \"data-emoji\": type,\n }),\n [\n \"div\",\n { class: \"callout-container\" },\n [\"span\", { class: \"callout-emoji\" }, svgNode],\n [\"div\", { class: \"callout-content\" }, 0],\n ],\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(CalloutComponent);\n },\n\n addCommands() {\n return {\n setCallout:\n (attributes = {}) =>\n ({ chain }) => {\n const { type = \"default\" } = attributes;\n\n return chain()\n .toggleWrap(this.name, { type })\n .command(({ tr, state, dispatch }) => {\n const { selection } = state;\n const { $from } = selection;\n\n const calloutNode = $from.node($from.depth - 1);\n\n if (calloutNode?.type.name === \"callout\") {\n const pos = $from.after($from.depth - 1);\n const nextNode = state.doc.nodeAt(pos);\n\n if (!nextNode || nextNode.type.name !== \"paragraph\") {\n tr.insert(pos, state.schema.nodes.paragraph.create());\n }\n }\n\n if (dispatch) {\n dispatch(tr);\n }\n\n return true;\n })\n .focus()\n .run();\n },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Backspace: () => {\n const { state, commands } = this.editor;\n const { $from, empty } = state.selection;\n\n if (!empty) return false;\n\n if ($from.parentOffset === 0) {\n const currentNode = $from.parent;\n\n if (currentNode.content.size === 0) {\n return commands.lift(this.name);\n }\n\n const calloutNode = $from.node($from.depth - 1);\n if (calloutNode?.type.name === \"callout\") {\n return commands.lift(this.name);\n }\n }\n\n return false;\n },\n ArrowDown: () => {\n const { state, commands } = this.editor;\n const { $from, empty } = state.selection;\n\n if (!empty) return false;\n\n const currentNode = $from.parent;\n const calloutNode = $from.node($from.depth - 1);\n\n if (calloutNode?.type.name === \"callout\") {\n const isAtEnd = $from.parentOffset === currentNode.content.size;\n\n const calloutContent = calloutNode.content;\n const currentNodeIndex = $from.index($from.depth - 1);\n const isLastNode = currentNodeIndex === calloutContent.childCount - 1;\n\n if (isAtEnd && isLastNode) {\n const pos = $from.after($from.depth - 1);\n\n if (pos < state.doc.content.size) {\n const nextNode = state.doc.nodeAt(pos);\n if (nextNode) {\n const endPos = pos + nextNode.nodeSize - 1;\n\n return commands.setTextSelection(endPos);\n }\n\n return commands.setTextSelection(pos);\n }\n\n return (\n commands.insertContentAt(pos, { type: \"paragraph\" }) &&\n commands.setTextSelection(pos + 1)\n );\n }\n }\n\n return false;\n },\n };\n },\n});\n","/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport { Plugin, PluginKey } from \"prosemirror-state\";\nimport { Decoration, DecorationSet } from \"prosemirror-view\";\n\nconst codeBlockHighlightKey = new PluginKey(\"codeBlockHighlight\");\n\nfunction createLineDecoration(from, lineNumber) {\n return Decoration.widget(from, view => {\n const line = document.createElement(\"div\");\n line.className = \"highlighted-line\";\n line.setAttribute(\"data-line-number\", lineNumber.toString());\n\n // Set the height of the highlight to match the line height\n const lineElement = view.domAtPos(from).node;\n if (lineElement instanceof Element) {\n const lineHeight = window.getComputedStyle(lineElement).lineHeight;\n line.style.height = lineHeight;\n }\n\n return line;\n });\n}\n\nfunction getLineRanges(node, pos) {\n const lines = node.textContent.split(\"\\n\");\n let currentPos = pos + 1; // +1 to skip the opening tag of the code block\n\n return lines.map((line, index) => {\n const from = currentPos;\n const to = from + line.length; // +1 for newline, except last line\n currentPos = to + (index < lines.length - 1 ? 1 : 0);\n\n return { from, to, lineNumber: index + 1 };\n });\n}\n\nconst codeBlockHighlightPlugin = new Plugin({\n key: codeBlockHighlightKey,\n state: {\n init() {\n return DecorationSet.empty;\n },\n apply(tr, set) {\n set = set.map(tr.mapping, tr.doc);\n\n if (tr.getMeta(codeBlockHighlightKey)) {\n const decorations = [];\n tr.doc.descendants((node, pos) => {\n if (node.type.name !== \"codeBlock\") return;\n\n const highlightedLines = node.attrs.highlightedLines || [];\n const lineRanges = getLineRanges(node, pos);\n\n lineRanges.forEach(({ from, lineNumber }) => {\n if (highlightedLines.includes(lineNumber)) {\n decorations.push(createLineDecoration(from, lineNumber));\n }\n });\n });\n\n return DecorationSet.create(tr.doc, decorations);\n }\n\n return set;\n },\n },\n props: {\n decorations(state) {\n return this.getState(state);\n },\n },\n});\n\nexport { codeBlockHighlightPlugin, codeBlockHighlightKey };\n","import { t } from \"i18next\";\nimport { lowlight } from \"lowlight\";\n\nexport const SORTED_LANGUAGE_LIST = [\n ...lowlight.listLanguages(),\n \"html\",\n].sort();\n\nexport const LINE_NUMBER_OPTIONS = [\n { label: t(\"neetoEditor.codeblock.showLineNumbers\"), value: \"true\" },\n { label: t(\"neetoEditor.codeblock.hideLineNumbers\"), value: \"false\" },\n];\n","import { useRef, useState, useCallback, useEffect } from \"react\";\n\nimport { Button, DropdownMenu, Input } from \"@bigbinary/neeto-atoms\";\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\nimport { ChevronDown, Highlighter } from \"lucide-react\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\nimport { difference, intersection, union } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n LINE_NUMBER_OPTIONS,\n SORTED_LANGUAGE_LIST,\n} from \"src/v2/components/Editor/CustomExtensions/CodeBlock/constants\";\nimport { codeBlockHighlightKey } from \"src/v2/components/Editor/CustomExtensions/CodeBlock/plugins\";\n\nconst { Menu, MenuItem } = DropdownMenu;\n\nconst CodeBlockComponent = ({ node, editor, updateAttributes }) => {\n const [keyword, setKeyword] = useState(\"\");\n const [showHighlightButton, setShowHighlightButton] = useState(false);\n const [showLineNumbers, setShowLineNumbers] = useState(\n node.attrs.linenumbers\n );\n const ref = useRef();\n\n const { t } = useTranslation();\n\n const filteredAndSortedLanguageList = SORTED_LANGUAGE_LIST.filter(language =>\n language.includes(keyword)\n );\n\n const handleLanguageSelect = language => {\n updateAttributes({ language });\n setKeyword(\"\");\n editor?.commands?.focus();\n };\n\n const handleContentMount = node => {\n if (ref.current && node?.offsetHeight) {\n ref.current.style.minHeight = `${node.offsetHeight}px`;\n }\n };\n\n const handleSelectionChange = useCallback(() => {\n const { from, to } = editor.state.selection;\n const isCodeBlockSelected = editor.isActive(\"codeBlock\");\n setShowHighlightButton(isCodeBlockSelected && from !== to);\n }, [editor]);\n\n useEffect(() => {\n editor.on(\"selectionUpdate\", handleSelectionChange);\n\n return () => {\n editor.off(\"selectionUpdate\", handleSelectionChange);\n };\n }, [editor, handleSelectionChange]);\n\n useEffect(() => {\n editor.view.dispatch(editor.state.tr.setMeta(codeBlockHighlightKey, true));\n }, []);\n\n const handleHighlight = () => {\n const { from, to } = editor.state.selection;\n const $from = editor.state.doc.resolve(from);\n\n const codeBlock = $from.node($from.depth);\n const codeBlockStart = $from.start($from.depth);\n\n const textBeforeSelection = codeBlock.textBetween(0, from - codeBlockStart);\n const startLine = textBeforeSelection.split(\"\\n\").length;\n const selectedText = codeBlock.textBetween(\n from - codeBlockStart,\n to - codeBlockStart\n );\n const selectedLines = selectedText.split(\"\\n\");\n\n const newSelectedLines = selectedLines.map((_, index) => startLine + index);\n const currentHighlightedLines = codeBlock.attrs.highlightedLines || [];\n\n const overlapLines = intersection(\n currentHighlightedLines,\n newSelectedLines\n );\n\n let highlightedLines;\n\n if (overlapLines.length === newSelectedLines.length) {\n highlightedLines = difference(currentHighlightedLines, newSelectedLines);\n } else {\n highlightedLines = union(currentHighlightedLines, newSelectedLines);\n }\n\n editor.commands.updateAttributes(codeBlock.type, { highlightedLines });\n editor.view.dispatch(editor.state.tr.setMeta(codeBlockHighlightKey, true));\n };\n\n return (\n <NodeViewWrapper\n className=\"ne-codeblock-nodeview-wrapper ne-codeblock--v2\"\n data-testid=\"neeto-editor-code-block\"\n >\n <div {...{ ref }}>\n <pre ref={handleContentMount}>\n <div\n className=\"neeto-editor-codeblock-options\"\n contentEditable={false}\n >\n <DropdownMenu\n buttonProps={{ size: \"sm\", variant: \"secondary\" }}\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n icon={ChevronDown}\n label={\n showLineNumbers === \"true\"\n ? LINE_NUMBER_OPTIONS[0].label\n : LINE_NUMBER_OPTIONS[1].label\n }\n >\n <Menu className=\"neeto-editor-codeblock-options__menu\">\n {LINE_NUMBER_OPTIONS.map(({ label, value }) => (\n <MenuItem\n key={label}\n onClick={() => {\n setShowLineNumbers(value);\n updateAttributes({ linenumbers: value });\n }}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n </DropdownMenu>\n <DropdownMenu\n buttonProps={{ size: \"sm\", variant: \"secondary\" }}\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n icon={ChevronDown}\n label={node.attrs?.language || t(\"neetoEditor.common.auto\")}\n >\n <Input\n autoFocus\n className=\"neeto-editor-codeblock-options__input\"\n placeholder={t(\"neetoEditor.placeholders.searchLanguages\")}\n size=\"small\"\n value={keyword}\n onChange={e => setKeyword(e.target.value)}\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n <Menu className=\"neeto-editor-codeblock-options__menu\">\n {filteredAndSortedLanguageList.map(language => (\n <MenuItem\n key={language}\n onClick={() => handleLanguageSelect(language)}\n >\n {language || t(\"neetoEditor.common.auto\")}\n </MenuItem>\n ))}\n </Menu>\n </DropdownMenu>\n <CopyToClipboardButton\n size=\"sm\"\n value={node?.content?.content[0]?.text}\n variant=\"ghost\"\n />\n {showHighlightButton && (\n <Button\n icon={Highlighter}\n size=\"sm\"\n tooltipProps={{ content: t(\"neetoEditor.menu.highlight\") }}\n variant=\"secondary\"\n onClick={handleHighlight}\n />\n )}\n </div>\n <NodeViewContent as=\"code\" />\n </pre>\n </div>\n </NodeViewWrapper>\n );\n};\n\nexport default CodeBlockComponent;\n","import CodeBlockLowlight from \"@tiptap/extension-code-block-lowlight\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { lowlight } from \"lowlight\";\n\nimport { codeBlockHighlightPlugin } from \"src/v2/components/Editor/CustomExtensions/CodeBlock/plugins\";\n\nimport CodeBlockComponent from \"./CodeBlockComponent\";\n\nexport default CodeBlockLowlight.extend({\n addAttributes() {\n return {\n ...this.parent?.(),\n highlightedLines: {\n default: [],\n parseHTML: element =>\n element.dataset.highlightedLines\n ?.split(\",\")\n .map(Number)\n .filter(Boolean) || [],\n renderHTML: attributes => ({\n \"data-highlighted-lines\":\n attributes.highlightedLines?.join(\",\") ?? \"\",\n }),\n },\n linenumbers: {\n default: \"false\",\n parseHTML: element => element.dataset.linenumbers || \"false\",\n renderHTML: attributes =>\n attributes.linenumbers === \"true\"\n ? { \"data-linenumbers\": \"true\" }\n : {},\n },\n };\n },\n addProseMirrorPlugins() {\n return [...(this.parent?.() || []), codeBlockHighlightPlugin];\n },\n addNodeView() {\n return ReactNodeViewRenderer(CodeBlockComponent);\n },\n}).configure({ lowlight, defaultLanguage: \"plaintext\" });\n","import { Extension } from \"@tiptap/core\";\n\nexport default Extension.create({\n name: \"paste-unformatted\",\n\n addCommands() {\n return {\n pasteUnformatted:\n () =>\n async ({ editor }) => {\n const text = await navigator.clipboard.readText();\n editor.commands.insertContent(text);\n },\n };\n },\n});\n","import { Extension } from \"@tiptap/core\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nconst DeletedArticleDecoration = Extension.create({\n name: \"deletedArticleDecoration\",\n\n addOptions() {\n return { deletedArticleIds: new Set() };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey(\"deletedArticleDecoration\"),\n props: {\n decorations: ({ doc }) => {\n const decorations = [];\n\n doc.descendants((node, pos) => {\n if (!node.marks) return;\n\n node.marks.forEach(mark => {\n if (\n !(\n mark.type.name === \"link\" &&\n mark.attrs[\"data-neeto-kb-article\"] === \"true\" &&\n mark.attrs[\"data-article-id\"]\n )\n ) {\n return;\n }\n\n const articleId = mark.attrs[\"data-article-id\"];\n if (!this.options.deletedArticleIds.has(articleId)) return;\n\n const decoration = Decoration.inline(pos, pos + node.nodeSize, {\n \"data-article-deleted\": \"true\",\n class: \"neeto-kb-article-deleted\",\n });\n decorations.push(decoration);\n });\n });\n\n return DecorationSet.create(doc, decorations);\n },\n },\n }),\n ];\n },\n\n addCommands() {\n return {\n updateDeletedArticles: deletedArticleIds => () => {\n this.options.deletedArticleIds = deletedArticleIds;\n this.editor.view.updateState(this.editor.state);\n\n return true;\n },\n };\n },\n});\n\nexport default DeletedArticleDecoration;\n","import { Extension } from \"@tiptap/core\";\n\nconst EditorContainer = Extension.create({\n name: \"editorContainer\",\n\n addOptions() {\n return { containerRef: null, appendSuggestionsToBody: false };\n },\n\n addStorage() {\n return { containerRef: null, appendSuggestionsToBody: false };\n },\n\n onBeforeCreate() {\n this.storage.containerRef = this.options.containerRef;\n this.storage.appendSuggestionsToBody = this.options.appendSuggestionsToBody;\n },\n});\n\nexport default EditorContainer;\n","import { Node } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport EmojiPickerMenu from \"./EmojiPickerMenu\";\n\nconst EmojiPickerPluginKey = new PluginKey(\"emoji-picker\");\n\nconst EmojiPicker = Node.create({\n name: \"emojiPicker\",\n\n group: \"inline\",\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addOptions() {\n return {\n suggestion: {\n char: \"::\",\n startOfLine: false,\n pluginKey: EmojiPickerPluginKey,\n items: () => [],\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart(props) {\n reactRenderer = new ReactRenderer(EmojiPickerMenu, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n });\n },\n\n onKeyDown(props) {\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n reactRenderer.destroy();\n },\n };\n },\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [Suggestion({ editor: this.editor, ...this.options.suggestion })];\n },\n});\n\nexport default EmojiPicker;\n","export const DEFAULT_EMOJI_PRIORITIES_LIST = [\n \"+1\",\n \"-1\",\n \"heart\",\n \"heart_eyes\",\n \"tada\",\n \"partying_face\",\n \"joy\",\n \"sob\",\n \"white_frowning_face\",\n \"rocket\",\n \"eyes\",\n \"raised_hands\",\n \"open_mouth\",\n];\n\nexport const EMOJI_QUERY_REGEX = /^[a-z0-9_+-]+$/i;\n","import { DEFAULT_EMOJI_PRIORITIES_LIST } from \"./constants\";\n\nexport const filterEmojiSuggestions = (suggestions, frequentlyUsedEmojis) => {\n const mergedEmojiList = DEFAULT_EMOJI_PRIORITIES_LIST.concat(\n frequentlyUsedEmojis.filter(\n emoji => !DEFAULT_EMOJI_PRIORITIES_LIST.includes(emoji)\n )\n );\n\n return suggestions\n .sort((a, b) => {\n const aIndex = mergedEmojiList.indexOf(a.id);\n const bIndex = mergedEmojiList.indexOf(b.id);\n if (aIndex === -1 && bIndex === -1) {\n return 0;\n } else if (aIndex === -1) {\n return 1;\n } else if (bIndex === -1) {\n return -1;\n }\n\n return aIndex - bIndex;\n })\n .slice(0, 5);\n};\n","import React from \"react\";\n\nimport { Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { init, SearchIndex } from \"emoji-mart\";\nimport { isNotEmpty } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\n\nimport emojiPickerApi from \"apis/emoji_picker\";\nimport { filterEmojiSuggestions } from \"src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/utils\";\n\nclass EmojiSuggestionMenu extends React.Component {\n state = {\n isLoading: false,\n selectedIndex: 0,\n emojiSuggestions: [],\n frequentlyUsedEmojis: {},\n };\n\n componentDidMount() {\n this.setState({\n frequentlyUsedEmojis: Object.keys(\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n JSON.parse(localStorage.getItem(\"emoji-mart.frequently\") || \"{}\")\n ),\n });\n\n init({\n data: this.fetchEmojiData,\n theme: \"light\",\n previewPosition: \"none\",\n });\n this.searchEmojiAndSetState();\n }\n\n componentDidUpdate(oldProps) {\n if (this.props.query !== oldProps.query) {\n this.searchEmojiAndSetState();\n }\n }\n\n fetchEmojiData = async () => {\n this.setState({ isLoading: true });\n try {\n const { data } = await emojiPickerApi.fetch();\n this.setState({ isLoading: false });\n\n return data;\n } catch {\n this.setState({ isLoading: false });\n\n return {};\n }\n };\n\n // eslint-disable-next-line require-await\n searchEmoji = async () =>\n this.props.query ? SearchIndex.search(this.props.query) : [];\n\n searchEmojiAndSetState = async () => {\n try {\n const suggestions = await this.searchEmoji();\n const frequentlyUsedEmojis = this.state.frequentlyUsedEmojis;\n this.setState({\n emojiSuggestions: filterEmojiSuggestions(\n suggestions,\n frequentlyUsedEmojis\n ),\n });\n } catch {\n this.setState({ emojiSuggestions: [] });\n }\n };\n\n setEditorState = async () => {\n const suggestions = await this.searchEmoji();\n this.props.editor\n .chain()\n .focus()\n .deleteRange(this.props.range)\n .setEmoji(suggestions[0])\n .run();\n };\n\n onKeyDown = ({ event }) => {\n if (isEmpty(this.state.emojiSuggestions)) {\n return false;\n }\n\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n this.setState(({ selectedIndex, emojiSuggestions }) => ({\n selectedIndex:\n (selectedIndex + emojiSuggestions.length - 1) %\n emojiSuggestions.length,\n }));\n\n return true;\n }\n\n if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n this.setState(({ selectedIndex, emojiSuggestions }) => ({\n selectedIndex: (selectedIndex + 1) % emojiSuggestions.length,\n }));\n\n return true;\n }\n\n if (event.key === \"Enter\") {\n this.selectItem(this.state.selectedIndex);\n\n return true;\n }\n\n if (event.key === \"Escape\") {\n this.props.editor.chain().focus().insertContent(\" \").run();\n\n return true;\n }\n\n return false;\n };\n\n selectItem = index => {\n this.props.editor\n .chain()\n .focus()\n .deleteRange(this.props.range)\n .setEmoji(this.state.emojiSuggestions[index])\n .run();\n };\n\n render() {\n if (isEmpty(this.state.emojiSuggestions)) {\n return null;\n }\n\n return (\n <div className=\"neeto-editor-emoji-suggestion\">\n {this.state.isLoading && <Spinner />}\n {!this.state.isLoading &&\n (isNotEmpty(this.state.emojiSuggestions) ? (\n this.state.emojiSuggestions.map((emoji, index) => (\n <div\n data-testid={`neeto-editor-emoji-suggestion-${emoji.id}`}\n key={emoji.id}\n className={classnames(\"neeto-editor-emoji-suggestion__item\", {\n \"neeto-editor-emoji-suggestion__item--selected\":\n index === this.state.selectedIndex,\n })}\n onClick={() => this.selectItem(index)}\n >\n {emoji.skins[0].native}\n </div>\n ))\n ) : (\n <p>No results</p>\n ))}\n </div>\n );\n }\n}\n\nexport default EmojiSuggestionMenu;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport { isNil } from \"ramda\";\nimport tippy from \"tippy.js\";\n\nimport { EMOJI_QUERY_REGEX } from \"src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/constants\";\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport EmojiSuggestionMenu from \"./EmojiSuggestionMenu\";\n\nconst EmojiSuggestionPluginKey = new PluginKey(\"emoji-suggestion\");\nconst EmojiSuggestion = Node.create({\n name: \"emojiSuggestion\",\n\n group: \"inline\",\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addOptions() {\n return {\n HTMLAttributes: { class: \"neeto-editor-emoji\" },\n renderEmoji({ node }) {\n return node.attrs.label;\n },\n suggestion: {},\n };\n },\n\n addAttributes() {\n return {\n label: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-label\"),\n renderHTML: attributes => {\n if (!attributes.label) {\n return {};\n }\n\n return { \"data-label\": attributes.label };\n },\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"span[data-emoji]\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-emoji\": \"\" },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n this.options.renderEmoji({ node }),\n ];\n },\n\n renderText({ node }) {\n return this.options.renderEmoji({ node });\n },\n\n addCommands() {\n return {\n setEmoji:\n emoji =>\n ({ chain }) =>\n chain()\n .focus()\n .insertContent([\n {\n type: this.name,\n attrs: {\n label: emoji?.native || emoji?.skins[0]?.native || \"\",\n },\n },\n { type: \"text\", text: \" \" },\n ])\n .run(),\n };\n },\n\n addProseMirrorPlugins() {\n return [Suggestion({ editor: this.editor, ...this.options.suggestion })];\n },\n});\n\nconst suggestionConfig = {\n char: \":\",\n startOfLine: false,\n pluginKey: EmojiSuggestionPluginKey,\n command: ({ editor, range, props }) => {\n editor.chain().focus().deleteRange(range).setEmoji(props).run();\n },\n\n items: () => [],\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart(props) {\n if (props.editor.view.input.lastKeyCode === 37) {\n reactRenderer = null;\n popup = null;\n }\n },\n\n onUpdate(props) {\n const isArrowNavigation =\n props.editor.view.input.lastKeyCode === 39 ||\n props.editor.view.input.lastKeyCode === 37;\n\n if (\n isNil(reactRenderer) &&\n !isArrowNavigation &&\n props.query.length === 1 &&\n EMOJI_QUERY_REGEX.test(props.query)\n ) {\n reactRenderer = new ReactRenderer(EmojiSuggestionMenu, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"neeto-editor-emoji-suggestion-tippy\",\n arrow: false,\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"top-start\",\n zIndex: 99999,\n });\n }\n reactRenderer && reactRenderer.updateProps(props);\n\n !isNil(popup) &&\n popup[0]?.setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n return reactRenderer?.ref?.onKeyDown(props);\n },\n\n onExit() {\n !isNil(popup) && popup[0]?.destroy();\n reactRenderer?.destroy();\n reactRenderer = null;\n },\n };\n },\n};\n\nexport default EmojiSuggestion.configure({ suggestion: suggestionConfig });\n","const imageSkeletonContainer = document.createElement(\"div\");\nimageSkeletonContainer.classList.add(\"neeto-editor-image__skeleton\");\n\nconst imageSkeleton = document.createElement(\"div\");\nimageSkeleton.classList.add(\"skeleton\");\n\nimageSkeletonContainer.appendChild(imageSkeleton);\n\nexport const IMAGE_PLACEHOLDER = imageSkeletonContainer;\n\nexport const LARGE_IMAGE_ERROR = \"IMAGE_SIZE_LARGER\";\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { Button, Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\nimport { isPresent } from \"neetocist\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\nimport { createPortal } from \"react-dom\";\n\nconst ImagePreviewModal = ({ previewUrl, setPreviewUrl }) => {\n const [isLoading, setIsLoading] = useState(true);\n\n const imagePreviewRef = useRef(null);\n\n const handleClose = () => {\n setIsLoading(true);\n setPreviewUrl(null);\n };\n\n useOnClickOutside(imagePreviewRef, handleClose, {\n enabled: isPresent(previewUrl),\n });\n\n useEffect(() => {\n if (!previewUrl || !imagePreviewRef.current) return;\n\n imagePreviewRef.current.setAttribute(\"tabindex\", \"-1\");\n imagePreviewRef.current.focus();\n }, [previewUrl]);\n\n const handleKeyDown = e => {\n e.stopPropagation();\n e.key === \"Escape\" && handleClose();\n };\n\n if (!isPresent(previewUrl)) return null;\n\n return createPortal(\n <div className=\"ne-image-preview-wrapper active\">\n {isLoading && <Spinner className=\"ne-image-preview-wrapper__spinner\" />}\n <div\n className={classnames(\"ne-image-preview\", {\n \"image-loaded\": !isLoading,\n })}\n >\n {!isLoading && (\n <div className=\"close-button\">\n <Button icon={X} variant=\"secondary\" onClick={handleClose} />\n </div>\n )}\n <img\n alt=\"Preview\"\n ref={imagePreviewRef}\n src={previewUrl}\n onKeyDown={handleKeyDown}\n onLoad={() => setIsLoading(false)}\n />\n </div>\n </div>,\n document.body\n );\n};\n\nexport default ImagePreviewModal;\n","import { Button, DropdownMenu, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport {\n AlignCenter,\n AlignLeft,\n AlignRight,\n ChevronDown,\n Ellipsis,\n Ratio,\n RectangleHorizontal,\n RectangleVertical,\n Square,\n SquareDashed,\n Trash2,\n} from \"lucide-react\";\n\nconst { Menu: DropdownMenuList, MenuItem } = DropdownMenu;\n\nconst buildImageOptions = (border, showAspectRatio) => {\n const options = [\n {\n Icon: AlignLeft,\n type: \"button\",\n alignPos: \"left\",\n optionName: t(\"neetoEditor.menu.alignLeft\"),\n },\n {\n Icon: AlignCenter,\n type: \"button\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.alignCenter\"),\n },\n {\n Icon: AlignRight,\n type: \"button\",\n alignPos: \"right\",\n optionName: t(\"neetoEditor.menu.alignRight\"),\n },\n ];\n\n if (showAspectRatio) {\n options.push({\n Icon: Ratio,\n type: \"dropdown\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.aspectRatio\"),\n items: [\n { ratio: \"16/9\", tooltipLabel: \"16/9\", icon: RectangleHorizontal },\n { ratio: \"9/16\", tooltipLabel: \"9/16\", icon: RectangleVertical },\n { ratio: \"4/3\", tooltipLabel: \"4/3\", icon: RectangleHorizontal },\n { ratio: \"3/2\", tooltipLabel: \"3/2\", icon: RectangleHorizontal },\n { ratio: \"1/1\", tooltipLabel: \"1/1\", icon: Square },\n ],\n });\n }\n\n options.push(\n {\n Icon: border ? SquareDashed : Square,\n type: \"button\",\n alignPos: \"center\",\n borderToggle: true,\n optionName: border\n ? t(\"neetoEditor.menu.removeBorder\")\n : t(\"neetoEditor.menu.addBorder\"),\n },\n {\n Icon: Trash2,\n type: \"button\",\n optionName: t(\"neetoEditor.menu.delete\"),\n }\n );\n\n return options;\n};\n\nconst Menu = ({\n align,\n border,\n editor,\n updateAttributes,\n deleteNode,\n showAspectRatio,\n}) => {\n const menuOptions = buildImageOptions(border, showAspectRatio);\n\n const handleClick = (alignPos, borderToggle) => {\n if (borderToggle) {\n updateAttributes({ border: !border });\n } else if (alignPos) {\n updateAttributes({ align: alignPos });\n } else {\n deleteNode();\n }\n editor.commands.focus();\n };\n\n return (\n <DropdownMenu\n position=\"top-end\"\n customTarget={\n <Button\n className=\"neeto-editor__image-menu-btn\"\n icon={Ellipsis}\n size=\"lg\"\n variant=\"secondary\"\n />\n }\n dropdownProps={{\n className: \"ne-editor-dropdown w-auto flex flex-row items-center gap-1\",\n }}\n >\n {menuOptions.map(\n ({ Icon, optionName, alignPos, type, items, border, borderToggle }) =>\n type === \"button\" ? (\n <Button\n className=\"ne-toolbar-item\"\n data-testid={`neeto-editor-image-menu-${optionName}`}\n icon={Icon}\n key={optionName}\n tooltipProps={{ content: optionName, position: \"top\" }}\n variant={\n alignPos === align || (borderToggle && border)\n ? \"secondary\"\n : \"ghost\"\n }\n onClick={() => handleClick(alignPos, borderToggle)}\n />\n ) : (\n <DropdownMenu\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n key={optionName}\n position=\"bottom-start\"\n buttonProps={{\n tooltipProps: {\n content: optionName,\n position: \"top\",\n },\n }}\n customTarget={\n <MenuItem className=\"ne-toolbar-item !relative\">\n <Tooltip content={optionName} position=\"top\">\n <div className=\"flex items-center justify-center gap-x-1\">\n <Ratio size={18} />\n <ChevronDown size={14} />\n </div>\n </Tooltip>\n </MenuItem>\n }\n onClick={event => event.stopPropagation()}\n >\n <DropdownMenuList className=\"mb-0\">\n {items?.map(({ ratio, icon: Icon }) => (\n <MenuItem\n key={ratio}\n prefix={Icon ? <Icon size={16} /> : undefined}\n onClick={() => updateAttributes({ aspectRatio: ratio })}\n >\n {ratio}\n </MenuItem>\n ))}\n </DropdownMenuList>\n </DropdownMenu>\n )\n )}\n </DropdownMenu>\n );\n};\n\nexport default Menu;\n","import { useRef, useState } from \"react\";\n\nimport { Spinner } from \"@bigbinary/neeto-atoms\";\nimport { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classNames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { isEmpty, mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport ImagePreviewModal from \"./ImagePreviewModal\";\nimport Menu from \"./Menu\";\n\nconst ImageComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { src, figheight, figwidth, align, alt, border } = node.attrs;\n\n const [captionWidth, setCaptionWidth] = useState(figwidth || 0);\n const [previewUrl, setPreviewUrl] = useState(null);\n const figureRef = useRef(null);\n\n const { view } = editor;\n let height = figheight;\n let width = figwidth;\n const caption = node?.content?.content?.[0]?.text || \"\";\n\n const editorElement = figureRef.current?.closest(\".neeto-editor\");\n const maxImageWidth = editorElement?.offsetWidth - 50;\n\n const handleResizeStop = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n\n if (width > maxImageWidth) {\n width = maxImageWidth;\n const aspectRatio = ref.offsetHeight / ref.offsetWidth;\n height = width * aspectRatio;\n }\n setCaptionWidth(width);\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n figheight: height,\n figwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n if (isNotPresent(src) && isNotPresent(alt)) return null;\n\n return (\n <NodeViewWrapper\n data-testid=\"neeto-editor-image-wrapper\"\n className={classNames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n )}\n >\n <figure ref={figureRef}>\n <Menu {...{ align, border, deleteNode, editor, updateAttributes }} />\n {src ? (\n <Resizable\n lockAspectRatio\n className=\"neeto-editor__image\"\n minWidth=\"50px\"\n size={{ height, width }}\n onResizeStop={handleResizeStop}\n onResize={(_event, _direction, ref) =>\n setCaptionWidth(ref.offsetWidth)\n }\n >\n <img\n {...{ ...node.attrs, src }}\n alt={caption}\n data-border={border}\n onClick={e => {\n e.stopPropagation();\n setPreviewUrl(src);\n }}\n />\n </Resizable>\n ) : (\n <div className=\"neeto-editor__image-placeholder\">\n <Spinner />\n </div>\n )}\n <NodeViewContent\n as=\"figcaption\"\n className={classNames({ \"is-empty\": isEmpty(caption) })}\n style={{ width: `${captionWidth}px` }}\n />\n </figure>\n <ImagePreviewModal {...{ previewUrl, setPreviewUrl }} />\n </NodeViewWrapper>\n );\n};\n\nexport default ImageComponent;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { mergeAttributes, Node } from \"@tiptap/core\";\nimport { Plugin, Selection } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { isEmpty } from \"ramda\";\n\nimport { DIRECT_UPLOAD_ENDPOINT } from \"src/common/constants\";\nimport { LARGE_IMAGE_ERROR } from \"src/v2/components/Editor/CustomExtensions/Image/constants\";\nimport DirectUpload from \"utils/DirectUpload\";\n\nimport ImageComponent from \"./ImageComponent\";\n\nconst upload = async (file, url) => {\n if (file.size <= globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024) {\n const uploader = new DirectUpload({ file, url });\n const response = await uploader.create();\n\n return response.data?.blob_url || response.blob_url;\n }\n\n throw new Error(LARGE_IMAGE_ERROR);\n};\n\nconst findNextTextPos = (editor, pos) => {\n const doc = editor.state.doc;\n let foundPos = -1;\n\n doc.nodesBetween(pos, doc.content.size, (node, nodePos) => {\n if (foundPos >= pos) return false;\n else if (!node.type.isTextblock) return true;\n foundPos = nodePos;\n\n return false;\n });\n\n return foundPos;\n};\n\nexport default Node.create({\n name: \"image\",\n\n addOptions() {\n return { HTMLAttributes: {}, openImageInNewTab: true };\n },\n\n group: \"block\",\n\n content: \"inline*\",\n\n draggable: false,\n\n isolating: true,\n\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => element.getAttribute(\"id\"),\n },\n\n src: {\n default: null,\n parseHTML: element => element.querySelector(\"img\")?.getAttribute(\"src\"),\n },\n\n alt: {\n default: \"image\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"alt\") || \"image\",\n },\n\n figheight: {\n default: \"auto\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"figheight\"),\n },\n\n figwidth: {\n default: 500,\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"figwidth\"),\n },\n\n align: {\n default: \"left\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"align\"),\n },\n\n border: {\n default: true,\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"data-border\") === \"true\",\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"figure\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const { align, src, figheight, figwidth, border } = node.attrs;\n\n if (!src) return [\"span\"];\n\n const openImageInNewTab = this.options.openImageInNewTab;\n\n const wrapperDivAttrs = {\n class: classnames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n ),\n };\n\n const wrapperLinkPointerEventsStyle = openImageInNewTab\n ? \"\"\n : \"pointer-events:none;\";\n\n const heightStyle = figheight === \"auto\" ? \"auto\" : `${figheight}px`;\n const wrapperLinkAttrs = {\n href: src,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n class: \"neeto-editor__image\",\n style: `height:${heightStyle};width:${figwidth}px;display:inline-block;${wrapperLinkPointerEventsStyle}`,\n };\n\n const captionAttrs = { style: `width:${figwidth}px;` };\n\n return [\n \"div\",\n wrapperDivAttrs,\n [\n \"figure\",\n this.options.HTMLAttributes,\n [\n \"a\",\n wrapperLinkAttrs,\n [\n \"img\",\n mergeAttributes(HTMLAttributes, {\n draggable: false,\n contenteditable: false,\n \"data-border\": border,\n }),\n ],\n ],\n [\"figcaption\", captionAttrs, 0],\n ],\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(ImageComponent);\n },\n\n addCommands() {\n return {\n setFigure:\n ({ caption, ...attrs }) =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs,\n content: caption ? [{ type: \"text\", text: caption }] : [],\n })\n .run(),\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Enter: () => {\n const head = this.editor.state.selection.$head;\n if (head.node().type.name !== \"image\") return false;\n\n const chain = this.editor.chain();\n const tail = head.after();\n\n let nextTextPos = findNextTextPos(this.editor, tail);\n if (nextTextPos < 0) {\n chain.insertContentAt(tail, { type: \"paragraph\", content: \"\" });\n nextTextPos = tail;\n }\n\n chain\n .setTextSelection(nextTextPos + 1) // Node boundary + 1\n .focus()\n .run();\n\n return true;\n },\n // The caption shares its textblock with the non-editable image above it,\n // so the native caret can't move up past the image. Handle it manually.\n ArrowUp: () => {\n const { state, view } = this.editor;\n const { $head, empty } = state.selection;\n if (!empty || $head.parent.type.name !== this.name) return false;\n\n const lineTop = view.coordsAtPos($head.start());\n const caret = view.coordsAtPos($head.pos);\n if (caret.top >= lineTop.bottom) return false; // Not on the first line\n\n const before = $head.before();\n if (before === 0) {\n return this.editor\n .chain()\n .insertContentAt(0, { type: \"paragraph\" })\n .setTextSelection(1)\n .scrollIntoView()\n .run();\n }\n\n const tr = state.tr.setSelection(\n Selection.near(state.doc.resolve(before), -1)\n );\n view.dispatch(tr.scrollIntoView());\n\n return true;\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, event) {\n const {\n schema,\n selection: {\n $anchor: { pos },\n },\n } = view.state;\n\n // Microsoft Excel and a few other products might copy content as\n // both `text/plain` and `text/html`. If `text/plain` exists,\n // an early return will ensure that it fallbacks to tiptap's\n // default paste behavior.\n const text = event?.clipboardData?.getData(\"text/plain\");\n const hasFiles = event.clipboardData?.files?.length;\n\n if (!hasFiles) return;\n\n if (hasFiles && text) {\n event.preventDefault();\n const plainText =\n new DOMParser().parseFromString(text, \"text/html\").body\n .textContent ?? \"\";\n view.pasteText(plainText);\n\n return;\n }\n\n const images = Array.from(event.clipboardData.files).filter(\n file => /image/i.test(file.type)\n );\n\n if (isEmpty(images)) return;\n\n event.preventDefault();\n\n const currentPos = pos;\n\n images.forEach(async image => {\n let emptyImageNode;\n const id = Math.random().toString(36).substring(7);\n try {\n emptyImageNode = schema.nodes.image.create({\n id,\n src: \"\",\n alt: t(\"neetoEditor.attachments.uploading\"),\n });\n\n const tr = view.state.tr\n .insert(currentPos, emptyImageNode)\n .setMeta(\"addToHistory\", false);\n view.dispatch(tr);\n\n const url = await upload(image, DIRECT_UPLOAD_ENDPOINT);\n if (url) {\n const imageNode = schema.nodes.image.create({\n id,\n src: url,\n alt: \"image\",\n });\n\n const { tr, doc } = view.state;\n let nodePos = -1;\n doc.descendants((node, pos) => {\n if (node.type.name === \"image\" && node.attrs.id === id) {\n nodePos = pos;\n\n return false;\n }\n\n return true;\n });\n\n if (nodePos !== -1) {\n tr.replaceWith(\n nodePos,\n nodePos + emptyImageNode.nodeSize,\n imageNode\n ).setMeta(\"addToHistory\", false);\n view.dispatch(tr);\n }\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Failed to insert the image\", error);\n\n const doc = view.state.doc;\n const tr = view.state.tr;\n doc.descendants((node, pos) => {\n if (node.type.name === \"image\" && node.attrs.id === id) {\n tr.delete(pos, pos + emptyImageNode.nodeSize).setMeta(\n \"addToHistory\",\n false\n );\n\n return false;\n }\n\n return true;\n });\n view.dispatch(tr);\n\n if (error.message === LARGE_IMAGE_ERROR) {\n Toastr.error(\n t(\"neetoEditor.error.imageSizeIsShouldBeLess\", {\n limit: globalProps.endUserUploadedFileSizeLimitInMb,\n })\n );\n } else {\n Toastr.error(t(\"neetoEditor.error.imageUploadFailed\"));\n }\n }\n });\n },\n },\n },\n }),\n ];\n },\n});\n","import { mergeAttributes, Node } from \"@tiptap/core\";\n\nexport default Node.create({\n name: \"figcaption\",\n\n content: \"text*\",\n\n selectable: false,\n\n draggable: false,\n\n parseHTML() {\n return [{ tag: \"figcaption\" }];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"figcaption\", mergeAttributes(HTMLAttributes), 0];\n },\n});\n","import Italic from \"@tiptap/extension-italic\";\n\nexport default Italic.extend({\n addInputRules() {\n return [];\n },\n addPasteRules() {\n return [];\n },\n});\n","import { Extension } from \"@tiptap/core\";\n\nconst KeyboardShortcuts = ({ onSubmit, shortcuts, isBlockQuoteActive }) =>\n Extension.create({\n name: \"keyboard-shortcuts\",\n\n addKeyboardShortcuts() {\n return {\n \"Mod-Enter\": () => {\n onSubmit?.(this.editor.getHTML());\n\n return true;\n },\n \"Mod-Shift-b\": () => {\n if (isBlockQuoteActive) {\n this.editor.chain().focus().toggleBlockquote().run();\n\n return true;\n }\n\n return false;\n },\n ...shortcuts,\n };\n },\n });\n\nexport default {\n configure: ({ onSubmit, shortcuts, isBlockQuoteActive }) =>\n KeyboardShortcuts({ onSubmit, shortcuts, isBlockQuoteActive }),\n};\n","export const LINK_MARKDOWN_INPUT_REGEX =\n /(?:^|\\s)\\[([^\\]]*)?\\]\\((\\S+)(?: [\"“](.+)[\"”])?\\)$/i;\n","import { InputRule, markInputRule, mergeAttributes } from \"@tiptap/core\";\nimport { Link } from \"@tiptap/extension-link\";\nimport { Fragment, Slice } from \"@tiptap/pm/model\";\nimport { Plugin } from \"@tiptap/pm/state\";\n\nimport { LINK_MARKDOWN_INPUT_REGEX } from \"./constants\";\n\nconst linkInputRule = config => {\n const defaultMarkInputRule = markInputRule(config);\n\n return new InputRule({\n find: config.find,\n handler(props) {\n try {\n const { tr } = props.state;\n defaultMarkInputRule.handler(props);\n tr.setMeta(\"preventAutolink\", true);\n } catch (error) {\n // https://app.honeybadger.io/projects/94805/faults/108936285\n if (!(error instanceof RangeError)) throw error;\n }\n },\n });\n};\n\n// TipTap's paste handler links the selected text only when the pasted text is\n// exactly a URL, so a URL copied with surrounding whitespace replaces the\n// selection instead. Hand it a trimmed copy of the pasted text.\nconst withTrimmedLinkPaste = plugin => {\n const { handlePaste } = plugin.props;\n\n return new Plugin({\n ...plugin.spec,\n props: {\n ...plugin.props,\n handlePaste: (view, event, slice) => {\n let textContent = \"\";\n slice.content.forEach(node => {\n textContent += node.textContent;\n });\n const trimmedText = textContent.trim();\n\n if (!trimmedText || trimmedText === textContent) {\n return handlePaste(view, event, slice);\n }\n\n const trimmedSlice = new Slice(\n Fragment.from(view.state.schema.text(trimmedText)),\n 0,\n 0\n );\n\n return handlePaste(view, event, trimmedSlice);\n },\n },\n });\n};\n\nexport default Link.extend({\n inclusive: false,\n addAttributes() {\n return {\n ...this.parent?.(),\n title: { default: null },\n \"data-neeto-kb-article\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-neeto-kb-article\"),\n renderHTML: attributes =>\n attributes[\"data-neeto-kb-article\"]\n ? { \"data-neeto-kb-article\": attributes[\"data-neeto-kb-article\"] }\n : {},\n },\n \"data-article-id\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-article-id\"),\n renderHTML: attributes =>\n attributes[\"data-article-id\"]\n ? { \"data-article-id\": attributes[\"data-article-id\"] }\n : {},\n },\n \"data-article-deleted\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-article-deleted\"),\n renderHTML: attributes =>\n attributes[\"data-article-deleted\"]\n ? { \"data-article-deleted\": attributes[\"data-article-deleted\"] }\n : {},\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'a[href]:not([data-type=\"button\"]):not([href *= \"javascript:\" i])',\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"a\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\n class: \"link\",\n }),\n 0,\n ];\n },\n\n addProseMirrorPlugins() {\n // Match on the handlePaste prop rather than TipTap's internal plugin key;\n // the paste handler is the only Link plugin that handles pastes.\n return (this.parent?.() ?? []).map(plugin =>\n plugin.props.handlePaste ? withTrimmedLinkPaste(plugin) : plugin\n );\n },\n\n addInputRules() {\n return [\n linkInputRule({\n find: LINK_MARKDOWN_INPUT_REGEX,\n type: this.type,\n getAttributes(match) {\n return {\n title: match.pop()?.trim(),\n href: match.pop()?.trim(),\n };\n },\n }),\n ];\n },\n});\n","import React from \"react\";\n\nimport { Avatar, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { t } from \"i18next\";\nimport { isEmpty } from \"ramda\";\n\nimport { scrollHandler } from \"utils/scrollhandler\";\n\nexport class MentionList extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { selectedIndex: 0 };\n this.mentionRef = React.createRef();\n }\n\n componentDidUpdate(prevProps) {\n const { items } = this.props;\n if (items !== prevProps.items) {\n this.setState({ selectedIndex: 0 });\n }\n\n scrollHandler({\n wrapperRef: this.mentionRef,\n index: this.state.selectedIndex,\n });\n }\n\n selectItem = index => {\n const { items, command } = this.props;\n const item = items[index];\n\n if (item) {\n command({ label: item.name, id: item.key });\n }\n };\n\n upHandler = () => {\n const { items } = this.props;\n this.setState(prevState => {\n const { selectedIndex } = prevState;\n const nextSelectedIndex =\n (selectedIndex + items.length - 1) % items.length;\n\n return { selectedIndex: nextSelectedIndex };\n });\n };\n\n downHandler = () => {\n const { items } = this.props;\n this.setState(prevState => {\n const { selectedIndex } = prevState;\n const nextSelectedIndex = (selectedIndex + 1) % items.length;\n\n return { selectedIndex: nextSelectedIndex };\n });\n };\n\n enterHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n tabHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n onKeyDown = ({ event }) => {\n const keyDownHandlers = {\n ArrowUp: this.upHandler,\n ArrowDown: this.downHandler,\n Enter: this.enterHandler,\n Tab: this.tabHandler,\n };\n\n if (Object.prototype.hasOwnProperty.call(keyDownHandlers, event.key)) {\n keyDownHandlers[event.key]();\n\n return true;\n }\n\n return false;\n };\n\n render() {\n const { selectedIndex } = this.state;\n const { items } = this.props;\n\n if (isEmpty(items)) {\n return (\n <div className=\"neeto-editor-mentions__wrapper\">\n <p className=\"neeto-editor-mentions__item\">\n {t(\"neetoEditor.error.noResults\")}\n </p>\n </div>\n );\n }\n\n // Plain <button>s instead of `DropdownMenu.MenuItem`. The popup is portaled\n // into document.body by tippy, so it sits outside any `DropdownMenu` Root\n // — Radix's `MenuItem` would call `useMenuScope` and throw\n // \"MenuItem must be used within Menu\". Styling lives in _v2-toolbar.scss\n // under `.neeto-editor-mentions__wrapper` / `__item`.\n return (\n <div\n className=\"neeto-editor-mentions__wrapper\"\n data-testid=\"neeto-editor-mention-list\"\n ref={this.mentionRef}\n >\n {items.map(({ key, name, imageUrl }, index) => (\n <button\n data-testid={`neeto-editor-mention-list-${name}`}\n key={key}\n type=\"button\"\n className={classNames(\"neeto-editor-mentions__item\", {\n active: index === selectedIndex,\n })}\n onClick={() => this.selectItem(index)}\n >\n <Avatar size=\"sm\" user={{ name, imageUrl }} />\n <Typography variant=\"body2\">{name}</Typography>\n </button>\n ))}\n </div>\n );\n }\n}\n","export const createMentionSuggestions =\n (mentions = []) =>\n ({ query = \"\" }) => {\n if (!query) {\n return mentions.slice(0, 10);\n }\n\n return mentions\n .filter(mention =>\n mention.name\n .replace(/\\s/g, \"\")\n .toLowerCase()\n .includes(query.trim().toLowerCase())\n )\n .slice(0, 10);\n };\n","import Mention from \"@tiptap/extension-mention\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport { MentionList } from \"./MentionList\";\nimport { createMentionSuggestions } from \"./utils\";\n\nconst suggestion = {\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n reactRenderer = new ReactRenderer(MentionList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light neeto-editor-mentions-tooltip\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n arrow: false,\n });\n },\n\n onUpdate(props) {\n reactRenderer.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup?.[0]?.destroy();\n reactRenderer?.destroy();\n },\n };\n },\n};\n\nconst Mentions = Mention.extend({\n addCommands() {\n return {\n setMention:\n ({ id, label }) =>\n ({ chain }) => {\n chain()\n .focus()\n .insertContent([\n { type: this.name, attrs: { id, label } },\n { type: \"text\", text: \" \" },\n ])\n .run();\n },\n };\n },\n});\n\nexport default {\n configure: ({ suggestion: suggestionConfig = {}, ...otherConfig }) =>\n Mentions.configure({\n ...otherConfig,\n suggestion: { ...suggestion, ...suggestionConfig },\n }),\n};\n\nexport { createMentionSuggestions };\n","import { OrderedList } from \"@tiptap/extension-list\";\n\nexport default OrderedList.configure({\n HTMLAttributes: { class: \"orderedList\" },\n itemTypeName: \"listItem\",\n});\n","import { Extension } from \"@tiptap/core\";\nimport { Plugin } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\nimport { t } from \"i18next\";\n\nconst Placeholder = Extension.create({\n name: \"placeholder\",\n\n addOptions() {\n return {\n excludeNodeTypes: [\"variable\", \"codeBlock\"],\n emptyEditorClass: \"is-editor-empty\",\n emptyNodeClass: \"is-empty\",\n placeholder: t(\"neetoEditor.placeholders.writeSomething\"),\n slashCommandsPlaceholder: t(\n \"neetoEditor.placeholders.typeSlashForCommands\"\n ),\n showOnlyWhenEditable: true,\n showOnlyCurrent: false,\n includeChildren: false,\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n props: {\n decorations: ({ doc, selection }) => {\n const active =\n this.editor.isEditable || !this.options.showOnlyWhenEditable;\n const { anchor } = selection;\n const decorations = [];\n\n if (!active) {\n return null;\n }\n\n doc.descendants((node, pos) => {\n const hasAnchor = anchor >= pos && anchor <= pos + node.nodeSize;\n const isEmpty = !node.isLeaf && !node.childCount;\n\n const isExcluded = this.options.excludeNodeTypes.includes(\n node.type.name\n );\n\n if (\n (hasAnchor || !this.options.showOnlyCurrent) &&\n !isExcluded &&\n isEmpty\n ) {\n const classes = [this.options.emptyNodeClass];\n\n let placeholderText = this.options.placeholder;\n\n if (this.editor.isEmpty) {\n classes.push(this.options.emptyEditorClass);\n\n if (\n this.options.isSlashCommandsActive &&\n !this.options.placeholder\n ) {\n classes.push(\"is-slash-command-placeholder\");\n placeholderText = this.options.slashCommandsPlaceholder;\n }\n } else if (\n hasAnchor &&\n this.editor.isFocused &&\n this.options.isSlashCommandsActive &&\n node.type.name === \"paragraph\"\n ) {\n classes.push(\"is-current-slash-placeholder\");\n classes.push(\"is-slash-command-placeholder\");\n placeholderText = this.options.slashCommandsPlaceholder;\n }\n\n const decoration = Decoration.node(pos, pos + node.nodeSize, {\n class: classes.join(\" \"),\n \"data-placeholder\": placeholderText,\n });\n decorations.push(decoration);\n }\n\n return this.options.includeChildren;\n });\n\n return DecorationSet.create(doc, decorations);\n },\n },\n }),\n ];\n },\n});\n\nexport default Placeholder;\n","import Document from \"@tiptap/extension-document\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nexport default Document.extend({\n name: \"selectionDecorator\",\n addProseMirrorPlugins() {\n const { editor } = this;\n\n return [\n new Plugin({\n key: new PluginKey(\"selectionDecorator\"),\n state: {\n init() {\n return {\n decorations: DecorationSet.empty,\n selectedTextDecoration: null,\n };\n },\n apply(tr, oldState) {\n const { doc, selection } = tr;\n let { decorations, selectedTextDecoration } = oldState;\n\n if (selectedTextDecoration) {\n decorations = decorations.remove([selectedTextDecoration]);\n }\n\n if (!selection.empty) {\n selectedTextDecoration = Decoration.inline(\n selection.from,\n selection.to,\n { class: \"selected-text\" }\n );\n decorations = decorations.add(doc, [selectedTextDecoration]);\n } else {\n selectedTextDecoration = null;\n }\n\n return { decorations, selectedTextDecoration };\n },\n },\n props: {\n decorations(state) {\n if (editor.isFocused) return DecorationSet.empty;\n\n return this.getState(state).decorations;\n },\n },\n }),\n ];\n },\n});\n","import React, { forwardRef } from \"react\";\n\nimport Tippy from \"@tippyjs/react\";\nimport classnames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\n\nimport { scrollHandler } from \"utils/scrollhandler\";\n\nclass Menu extends React.Component {\n constructor(props) {\n super(props);\n this.state = { selectedIndex: 0 };\n this.menuRef = React.createRef();\n }\n\n componentDidMount() {\n const { menuIndex, activeMenuIndex } = this.props;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n if (isCurrentMenuActive) {\n document.addEventListener(\"keydown\", this.keydownHandler);\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n componentDidUpdate(oldProps) {\n const { items, menuIndex, activeMenuIndex } = this.props;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n\n if (items !== oldProps.items) this.setState({ selectedIndex: 0 });\n\n scrollHandler({\n wrapperRef: this.menuRef,\n index: this.state.selectedIndex,\n });\n\n if (isCurrentMenuActive) {\n document.addEventListener(\"keydown\", this.keydownHandler);\n } else document.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n keydownHandler = event => {\n const listeners = {\n Enter: this.enterHandler,\n ArrowUp: this.upHandler,\n ArrowDown: this.downHandler,\n ArrowLeft: this.leftArrowHandler,\n ArrowRight: this.rightArrowHandler,\n };\n\n if (event.key in listeners) listeners[event.key](event);\n };\n\n selectItem = index => {\n const { items, editor, range } = this.props;\n const selectedItem = items[index];\n const hasCommand = selectedItem && selectedItem.command;\n if (hasCommand) selectedItem.command({ editor, range });\n };\n\n upHandler = () => {\n const { items } = this.props;\n const { selectedIndex } = this.state;\n this.setState({\n selectedIndex: (selectedIndex + items.length - 1) % items.length,\n });\n };\n\n downHandler = () => {\n const { items } = this.props;\n const { selectedIndex } = this.state;\n this.setState({ selectedIndex: (selectedIndex + 1) % items.length });\n };\n\n enterHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n leftArrowHandler = () => {\n const { menuIndex, setActiveMenuIndex } = this.props;\n if (menuIndex > 0) setActiveMenuIndex(menuIndex - 1);\n };\n\n rightArrowHandler = () => {\n const { menuIndex, setActiveMenuIndex, items } = this.props;\n const { selectedIndex } = this.state;\n const selectedItem = items[selectedIndex];\n const hasSubItems = selectedItem && !isNotPresent(selectedItem.items);\n if (hasSubItems) setActiveMenuIndex(menuIndex + 1);\n };\n\n render() {\n const { items, menuIndex, activeMenuIndex } = this.props;\n const { selectedIndex } = this.state;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n\n return (\n <div\n className=\"neeto-editor-slash-commands__wrapper\"\n data-testid=\"neeto-editor-slash-commands-wrapper\"\n ref={this.menuRef}\n >\n {items.map((item, index) => {\n const isLeafNode = isNotPresent(item.items);\n\n const nodeElement = (\n <MenuItem\n {...{ index, item }}\n key={item.optionName}\n selectItem={() => this.selectItem(index)}\n selectedIndex={isCurrentMenuActive ? selectedIndex : -1}\n onHover={() => this.setState({ selectedIndex: index })}\n />\n );\n\n if (isLeafNode) return nodeElement;\n\n return (\n <Tippy\n interactive\n key={item.optionName}\n placement=\"right\"\n theme=\"light neeto-editor-slash-commands-tippy\"\n visible={selectedIndex === index}\n content={\n <Menu\n {...this.props}\n items={item.items}\n menuIndex={menuIndex + 1}\n />\n }\n onCreate={({ popper }) => (popper.style.width = \"max-content\")}\n onHide={() => {\n this.isSubmenuOpened = false;\n }}\n onShow={() => {\n this.isSubmenuOpened = true;\n }}\n >\n {nodeElement}\n </Tippy>\n );\n })}\n </div>\n );\n }\n}\n\n// eslint-disable-next-line react/display-name\nconst MenuItem = forwardRef(\n ({ item, selectedIndex, index, selectItem, onHover }, ref) => {\n const { Icon } = item;\n\n return (\n <button\n {...{ ref }}\n data-testid={`neeto-editor-command-list-item-${index}`}\n className={classnames(\"neeto-editor-slash-commands__item\", {\n active: index === selectedIndex,\n })}\n onClick={selectItem}\n onMouseEnter={onHover}\n >\n {Icon && <Icon size={20} />}\n <span className=\"neeto-editor-slash-commands__item-content\">\n <span\n className=\"neeto-editor-slash-commands__item-title\"\n data-testid=\"neeto-editor-command-list-item-block-heading\"\n >\n {item.title}\n </span>\n </span>\n </button>\n );\n }\n);\n\nexport default Menu;\n","import React from \"react\";\n\nimport Menu from \"./Menu\";\n\nclass CommandsList extends React.Component {\n state = { activeMenuIndex: 0 };\n\n onKeyDown = ({ event }) =>\n [\"Enter\", \"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(\n event.key\n );\n\n setActiveMenuIndex = index => this.setState({ activeMenuIndex: index });\n\n render() {\n return (\n <Menu\n {...this.props}\n activeMenuIndex={this.state.activeMenuIndex}\n items={this.props.items}\n menuIndex={0}\n setActiveMenuIndex={this.setActiveMenuIndex}\n />\n );\n }\n}\n\nexport default CommandsList;\n","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\nimport {\n TextP,\n TextH1,\n TextH2,\n TextH3,\n TextH4,\n TextH5,\n ListDot,\n ListNumber,\n Checkbox,\n Blockquote,\n ImageUpload,\n CodeBlock,\n Smiley,\n Minus,\n Video,\n Notes,\n Column,\n TextBold,\n TextItalic,\n Underline,\n Link,\n Attachment,\n MessageSquare,\n File,\n} from \"neetoicons\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\n\nexport const MENU_ITEMS = [\n {\n optionName: EDITOR_OPTIONS.PARAGRAPH,\n title: t(\"neetoEditor.menu.normalText\"),\n description: t(\"neetoEditor.menu.normalTextDescription\"),\n Icon: TextP,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).setNode(\"paragraph\").run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.BOLD,\n title: t(\"neetoEditor.menu.bold\"),\n description: t(\"neetoEditor.menu.boldDescription\"),\n Icon: TextBold,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBold().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.ITALIC,\n title: t(\"neetoEditor.menu.italic\"),\n description: t(\"neetoEditor.menu.italicDescription\"),\n Icon: TextItalic,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleItalic().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.UNDERLINE,\n title: t(\"neetoEditor.menu.underline\"),\n description: t(\"neetoEditor.menu.underlineDescription\"),\n Icon: Underline,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleUnderline().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H1,\n title: t(\"neetoEditor.menu.heading1\"),\n description: t(\"neetoEditor.menu.h1Description\"),\n Icon: TextH1,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 1 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H2,\n title: t(\"neetoEditor.menu.heading2\"),\n description: t(\"neetoEditor.menu.h2Description\"),\n Icon: TextH2,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 2 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H3,\n title: t(\"neetoEditor.menu.heading3\"),\n description: t(\"neetoEditor.menu.h3Description\"),\n Icon: TextH3,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 3 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H4,\n title: t(\"neetoEditor.menu.heading4\"),\n description: t(\"neetoEditor.menu.h4Description\"),\n Icon: TextH4,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 4 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H5,\n title: t(\"neetoEditor.menu.heading5\"),\n description: t(\"neetoEditor.menu.h5Description\"),\n Icon: TextH5,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 5 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LIST_ORDERED,\n title: t(\"neetoEditor.menu.numberedList\"),\n description: t(\"neetoEditor.menu.numberedListDescription\"),\n Icon: ListNumber,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleOrderedList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LIST_BULLETS,\n title: t(\"neetoEditor.menu.bulletList\"),\n description: t(\"neetoEditor.menu.bulletListDescription\"),\n Icon: ListDot,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBulletList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LINK,\n title: t(\"neetoEditor.menu.link\"),\n description: t(\"neetoEditor.menu.linkDescription\"),\n Icon: Link,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.NEETO_KB_ARTICLE,\n title: t(\"neetoEditor.menu.linkToNeetoKbArticle\"),\n description: t(\"neetoEditor.menu.linkToNeetoKbArticleDescription\"),\n Icon: File,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.ATTACHMENTS,\n title: t(\"neetoEditor.menu.file\"),\n description: t(\"neetoEditor.menu.attachmentsDescription\"),\n Icon: Attachment,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.TODO_LIST,\n title: t(\"neetoEditor.menu.todoList\"),\n description: t(\"neetoEditor.menu.todoListDescription\"),\n Icon: Checkbox,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleTaskList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.IMAGE_UPLOAD,\n title: t(\"neetoEditor.menu.image\"),\n description: t(\"neetoEditor.menu.imageDescription\"),\n Icon: ImageUpload,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.VIDEO_UPLOAD,\n title: t(\"neetoEditor.menu.video\"),\n description: t(\"neetoEditor.menu.videoDescription\"),\n Icon: Video,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.BLOCKQUOTE,\n title: t(\"neetoEditor.menu.blockQuote\"),\n description: t(\"neetoEditor.menu.blockQuoteDescription\"),\n Icon: Blockquote,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBlockquote().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.CODE_BLOCK,\n title: t(\"neetoEditor.menu.codeBlock\"),\n description: t(\"neetoEditor.menu.codeDescription\"),\n Icon: CodeBlock,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleCodeBlock().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.EMOJI,\n title: t(\"neetoEditor.menu.emoji\"),\n description: t(\"neetoEditor.menu.emojiDescription\"),\n Icon: Smiley,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).insertContent(\"::\").run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.DIVIDER,\n title: t(\"neetoEditor.menu.divider\"),\n description: t(\"neetoEditor.menu.dividerDescription\"),\n Icon: Minus,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).setHorizontalRule().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.PASTE_UNFORMATTED,\n title: t(\"neetoEditor.menu.pasteUnformatted\"),\n description: t(\"neetoEditor.menu.pasteUnformattedDescription\"),\n Icon: Notes,\n command: ({ editor, range }) =>\n editor.chain().focus().deleteRange(range).pasteUnformatted().run(),\n },\n {\n optionName: EDITOR_OPTIONS.TABLE,\n title: t(\"neetoEditor.menu.table\"),\n description: t(\"neetoEditor.menu.tableDescription\"),\n Icon: Column,\n command: ({ editor, range }) =>\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .run(),\n },\n {\n optionName: EDITOR_OPTIONS.CALLOUT,\n title: t(\"neetoEditor.menu.callout\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n Icon: MessageSquare,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"default\" })\n .run();\n },\n items: [\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_default`,\n title: t(\"neetoEditor.menu.calloutDefault\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"default\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_info`,\n title: t(\"neetoEditor.menu.calloutInfo\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"info\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_warning`,\n title: t(\"neetoEditor.menu.calloutWarning\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"warning\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_error`,\n title: t(\"neetoEditor.menu.calloutError\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"error\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_success`,\n title: t(\"neetoEditor.menu.calloutSuccess\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"success\" })\n .run();\n },\n },\n ],\n },\n];\n\nexport const NO_RESULT_MENU_ITEM = {\n title: t(\"neetoEditor.menu.noResults\"),\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).run();\n },\n};\n","import { assoc } from \"ramda\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\n\nimport { MENU_ITEMS } from \"./constants\";\n\nconst imageCommand =\n setMediaUploader =>\n ({ editor, range }) => {\n setMediaUploader(assoc(\"image\", true));\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst videoCommand =\n setMediaUploader =>\n ({ editor, range }) => {\n setMediaUploader(assoc(\"video\", true));\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst linkCommand =\n setIsAddLinkActive =>\n ({ editor, range }) => {\n setIsAddLinkActive(true);\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst attachmentCommand =\n attachmentProps =>\n ({ editor, range }) => {\n attachmentProps?.handleUploadAttachments();\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst neetoKbArticleCommand =\n setIsNeetoKbArticleActive =>\n ({ editor, range }) => {\n // Get cursor position for positioning the modal\n const cursorPos = editor.view.coordsAtPos(range.from);\n setIsNeetoKbArticleActive({\n active: true,\n editor,\n range,\n cursorPos,\n });\n editor.chain().focus().deleteRange(range).run();\n };\n\nexport const buildCommandItems = ({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n}) => {\n const commandItems = MENU_ITEMS.map(item => {\n if (item.optionName === EDITOR_OPTIONS.IMAGE_UPLOAD) {\n return assoc(\"command\", imageCommand(setMediaUploader), item);\n } else if (item.optionName === EDITOR_OPTIONS.VIDEO_UPLOAD) {\n return assoc(\"command\", videoCommand(setMediaUploader), item);\n } else if (item.optionName === EDITOR_OPTIONS.LINK) {\n return assoc(\"command\", linkCommand(setIsAddLinkActive), item);\n } else if (item.optionName === EDITOR_OPTIONS.ATTACHMENTS) {\n return assoc(\"command\", attachmentCommand(attachmentProps), item);\n } else if (item.optionName === EDITOR_OPTIONS.NEETO_KB_ARTICLE) {\n return assoc(\n \"command\",\n neetoKbArticleCommand(setIsNeetoKbArticleActive),\n item\n );\n }\n\n return item;\n });\n\n const permittedCommandItems = commandItems.filter(({ optionName }) =>\n options.includes(optionName)\n );\n\n const adddonCommandItems = addonCommands.map(command => ({\n ...command,\n title: command.label,\n Icon: command.icon,\n }));\n\n return [...permittedCommandItems, ...adddonCommandItems];\n};\n","import { Extension } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport { isEmpty } from \"ramda\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\nimport {\n highlightFocussedNode,\n resetFocussedNode,\n} from \"utils/focusHighlighter\";\nimport { fuzzySearch } from \"utils/fuzzySearch\";\n\nimport CommandsList from \"./CommandsList\";\nimport { NO_RESULT_MENU_ITEM } from \"./constants\";\nimport { buildCommandItems } from \"./utils\";\n\nconst CommandsPluginKey = new PluginKey(\"commands\");\n\nexport default {\n configure: ({\n addonCommands,\n options,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n }) => {\n const commandItems = buildCommandItems({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n });\n\n return Extension.create({\n name: \"slash-commands\",\n\n addOptions() {\n return {\n HTMLAttributes: { class: \"commands\" },\n suggestion: {\n char: \"/\",\n startOfLine: false,\n pluginKey: CommandsPluginKey,\n command: ({ editor, range, props }) => {\n props.command({ editor, range });\n },\n\n items: ({ query }) => {\n if (!query) return commandItems;\n const filteredItems = fuzzySearch(commandItems, query);\n\n return isEmpty(filteredItems)\n ? [NO_RESULT_MENU_ITEM]\n : filteredItems;\n },\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n if (\n props.editor.isActive(\"image\") ||\n props.editor.isActive(\"codeBlock\")\n ) {\n return;\n }\n\n reactRenderer = new ReactRenderer(CommandsList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n arrow: false,\n zIndex: 99999,\n role: \"dropdown\",\n theme: \"light neeto-editor-slash-commands-tippy\",\n });\n\n highlightFocussedNode();\n },\n onUpdate(props) {\n if (\n props.editor.isActive(\"image\") ||\n props.editor.isActive(\"codeBlock\")\n ) {\n return;\n }\n reactRenderer?.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer && reactRenderer?.ref?.onKeyDown(props);\n },\n onExit() {\n popup && popup[0].destroy();\n reactRenderer && reactRenderer.destroy();\n resetFocussedNode();\n },\n };\n },\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n ...this.options.suggestion,\n }),\n ];\n },\n });\n },\n};\n","import { mergeAttributes } from \"@tiptap/core\";\nimport Mention from \"@tiptap/extension-mention\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport { MentionList } from \"../Mention/MentionList\";\nimport { createMentionSuggestions } from \"../Mention/utils\";\n\nconst SpecialMentionPluginKey = new PluginKey(\"special-mention\");\n\nconst renderLabel = ({ options, node }) =>\n `${options.suggestion.char}${node.attrs.label ?? node.attrs.id}`;\n\nconst suggestion = {\n char: \"@@\",\n pluginKey: SpecialMentionPluginKey,\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n reactRenderer = new ReactRenderer(MentionList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light neeto-editor-mentions-tooltip\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n arrow: false,\n });\n },\n\n onUpdate(props) {\n reactRenderer.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n reactRenderer.destroy();\n },\n };\n },\n};\n\nconst SpecialMentions = Mention.extend({\n name: \"special-mention\",\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-type\": this.name },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n renderLabel({ options: this.options, node }),\n ];\n },\n});\n\nexport default {\n configure: ({ suggestion: suggestionConfig = {}, ...otherConfig }) =>\n SpecialMentions.configure({\n ...otherConfig,\n suggestion: { ...suggestion, ...suggestionConfig },\n }),\n};\n\nexport { createMentionSuggestions };\n","const PREVIEW_CLASS_PREFIX = \"neeto-editor-table__cell--preview\";\n\n// Three default columns add up to the table toolbar width. Keep in sync with\n// $table-column-width in v2/styles/partials/_table.scss and the toolbar width\n// in v2/styles/partials/_menu.scss.\nexport const DEFAULT_COLUMN_WIDTH = 125;\n\n// Column min-width written into saved table HTML (unchanged from before).\nexport const SAVED_COLUMN_MIN_WIDTH = 100;\n\n// Cells to decorate, and how, for each toolbar hover preview.\nexport const TABLE_ACTION_PREVIEWS = {\n deleteRow: ({ map, top, bottom }) => ({\n rect: { top, bottom, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n deleteColumn: ({ map, left, right }) => ({\n rect: { top: 0, bottom: map.height, left, right },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n deleteTable: ({ map }) => ({\n rect: { top: 0, bottom: map.height, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n insertRow: ({ map, bottom }) => ({\n rect: { top: bottom - 1, bottom, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-insert-row`,\n }),\n insertColumn: ({ map, right }) => ({\n rect: { top: 0, bottom: map.height, left: right - 1, right },\n className: `${PREVIEW_CLASS_PREFIX}-insert-column`,\n }),\n};\n","import { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { isInTable, selectedRect } from \"@tiptap/pm/tables\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nimport { TABLE_ACTION_PREVIEWS } from \"./constants\";\n\n// Previews what a toolbar \"−\"/\"+\" button would do while it is hovered: the\n// cells that would be deleted, or a line where the new row/column would go.\nconst actionPreviewKey = new PluginKey(\"tableActionPreview\");\n\nconst actionPreviewPlugin = () =>\n new Plugin({\n key: actionPreviewKey,\n state: {\n init: () => null,\n apply: (tr, action) => {\n const meta = tr.getMeta(actionPreviewKey);\n if (meta !== undefined) return meta;\n\n return tr.docChanged || tr.selectionSet ? null : action;\n },\n },\n props: {\n decorations: state => {\n const action = actionPreviewKey.getState(state);\n if (!action || !isInTable(state)) return null;\n\n const tableRect = selectedRect(state);\n const { rect, className } = TABLE_ACTION_PREVIEWS[action](tableRect);\n const decorations = tableRect.map.cellsInRect(rect).map(cellPos => {\n const from = tableRect.tableStart + cellPos;\n const to = from + tableRect.table.nodeAt(cellPos).nodeSize;\n\n return Decoration.node(from, to, { class: className });\n });\n\n return DecorationSet.create(state.doc, decorations);\n },\n },\n });\n\n// action: a key of TABLE_ACTION_PREVIEWS, or null to clear\nconst setActionPreview = (editor, action) =>\n editor.view.dispatch(editor.state.tr.setMeta(actionPreviewKey, action));\n\nexport { actionPreviewPlugin, setActionPreview };\n","function updateColumns(node, colgroup, table, cellMinWidth) {\n let totalWidth = 0;\n let nextDOM = colgroup.firstChild;\n const row = node.firstChild;\n\n for (let i = 0, col = 0; i < row.childCount; i += 1) {\n const { colspan, colwidth } = row.child(i).attrs;\n\n for (let j = 0; j < colspan; j += 1, col += 1) {\n // In auto table layout a col width acts as the column's minimum, so the\n // column keeps this width until its content overflows it.\n const width = (colwidth && colwidth[j]) || cellMinWidth;\n const cssWidth = `${width}px`;\n\n totalWidth += width;\n\n if (!nextDOM) {\n colgroup.appendChild(document.createElement(\"col\")).style.width =\n cssWidth;\n } else {\n if (nextDOM.style.width !== cssWidth) {\n nextDOM.style.width = cssWidth;\n }\n\n nextDOM = nextDOM.nextSibling;\n }\n }\n }\n\n while (nextDOM) {\n const after = nextDOM.nextSibling;\n\n nextDOM.parentNode.removeChild(nextDOM);\n nextDOM = after;\n }\n\n table.style.width = \"\";\n table.style.minWidth = `${totalWidth}px`;\n}\n\nexport class TableView {\n constructor(node, cellMinWidth) {\n this.node = node;\n this.cellMinWidth = cellMinWidth;\n this.dom = document.createElement(\"div\");\n\n const alignmentSuffix = node.attrs?.textAlign || \"left\";\n const alignmentClass = `neeto-editor-table--${alignmentSuffix}`;\n this.dom.className = `neeto-editor-table ${alignmentClass}`;\n this.wrapper = document.createElement(\"div\");\n this.wrapper.className = \"neeto-editor-table__wrapper\";\n this.table = this.dom\n .appendChild(this.wrapper)\n .appendChild(document.createElement(\"table\"));\n this.colgroup = this.table.appendChild(document.createElement(\"colgroup\"));\n updateColumns(node, this.colgroup, this.table, cellMinWidth);\n this.contentDOM = this.table.appendChild(document.createElement(\"tbody\"));\n }\n\n update(node) {\n if (node.type !== this.node.type) {\n return false;\n }\n\n this.node = node;\n updateColumns(node, this.colgroup, this.table, this.cellMinWidth);\n\n const alignmentSuffix = node.attrs?.textAlign || \"left\";\n const currentAlignmentClass = `neeto-editor-table--${alignmentSuffix}`;\n\n this.dom.classList.remove(\n \"neeto-editor-table--left\",\n \"neeto-editor-table--center\",\n \"neeto-editor-table--right\"\n );\n\n this.dom.classList.add(currentAlignmentClass);\n\n return true;\n }\n\n ignoreMutation(mutation) {\n return (\n mutation.type === \"attributes\" &&\n (mutation.target === this.table ||\n this.colgroup.contains(mutation.target))\n );\n }\n}\n","import { TextSelection } from \"@tiptap/pm/state\";\nimport { TableMap, addRow, findTable } from \"@tiptap/pm/tables\";\n\nconst getTableRect = state => {\n const table = findTable(state.selection.$from);\n if (!table) return null;\n\n return {\n map: TableMap.get(table.node),\n table: table.node,\n tableStart: table.start,\n };\n};\n\nconst getTableSize = editor => {\n const rect = editor ? getTableRect(editor.state) : null;\n\n return rect\n ? { rows: rect.map.height, columns: rect.map.width }\n : { rows: 0, columns: 0 };\n};\n\n// Suggestion popups (emoji, mention, slash commands) handle Enter themselves.\nconst isSuggestionActive = state =>\n state.plugins.some(plugin => {\n const pluginState = plugin.getState(state);\n\n return pluginState?.active === true && pluginState?.range;\n });\n\nconst moveToCellBelow = editor => {\n const { state, view } = editor;\n const { selection } = state;\n if (!(selection instanceof TextSelection) || isSuggestionActive(state)) {\n return false;\n }\n\n // Only when the cursor is in a paragraph directly inside a cell, so lists\n // and code blocks inside cells keep their own Enter behaviour.\n const { $from } = selection;\n const cellDepth = $from.depth - 1;\n const cellRole = $from.node(cellDepth)?.type.spec.tableRole;\n if (\n $from.parent.type.name !== \"paragraph\" ||\n (cellRole !== \"cell\" && cellRole !== \"header_cell\")\n ) {\n return false;\n }\n\n const table = findTable($from);\n const map = TableMap.get(table.node);\n const { left, bottom } = map.findCell($from.before(cellDepth) - table.start);\n const { tr } = state;\n\n if (bottom >= map.height) {\n addRow(tr, { map, table: table.node, tableStart: table.start }, map.height);\n }\n\n const updatedMap = TableMap.get(tr.doc.nodeAt(table.pos));\n const cellPos =\n table.start + updatedMap.map[bottom * updatedMap.width + left];\n tr.setSelection(TextSelection.near(tr.doc.resolve(cellPos + 1)));\n view.dispatch(tr.scrollIntoView());\n\n return true;\n};\n\n// Moves the cursor to just after the table, adding a paragraph if there is\n// nothing to land on.\nconst exitTable = editor => {\n const { state, view } = editor;\n const table = findTable(state.selection.$from);\n if (!table) return false;\n\n const { tr } = state;\n const afterTable = table.pos + table.node.nodeSize;\n const nodeAfter = tr.doc.resolve(afterTable).nodeAfter;\n\n if (!nodeAfter?.isTextblock) {\n tr.insert(afterTable, state.schema.nodes.paragraph.create());\n }\n\n tr.setSelection(TextSelection.create(tr.doc, afterTable + 1));\n view.dispatch(tr.scrollIntoView());\n\n return true;\n};\n\nexport { getTableSize, moveToCellBelow, exitTable };\n","import { Table as TiptapTable } from \"@tiptap/extension-table\";\n\nimport { actionPreviewPlugin } from \"./actionPreviewPlugin\";\nimport { DEFAULT_COLUMN_WIDTH, SAVED_COLUMN_MIN_WIDTH } from \"./constants\";\nimport { TableView } from \"./TableView\";\nimport { exitTable, moveToCellBelow } from \"./utils\";\n\nconst Table = TiptapTable.extend({\n addOptions() {\n return {\n HTMLAttributes: {},\n resizable: true,\n handleWidth: 5,\n cellMinWidth: DEFAULT_COLUMN_WIDTH,\n View: TableView,\n lastColumnResizable: true,\n allowTableNodeSelection: true,\n };\n },\n\n parseHTML() {\n const getAlignmentFromElement = element => {\n if (!element) return null;\n\n const dataAlign = element.getAttribute(\"data-text-align\");\n if (dataAlign) return dataAlign;\n\n if (element.classList.contains(\"neeto-editor-table--center\")) {\n return \"center\";\n }\n\n if (element.classList.contains(\"neeto-editor-table--right\")) {\n return \"right\";\n }\n\n if (element.classList.contains(\"neeto-editor-table--left\")) {\n return \"left\";\n }\n\n return null;\n };\n\n return [\n {\n tag: \"table\",\n priority: 100,\n getAttrs: node => {\n const alignment = getAlignmentFromElement(node);\n if (alignment) {\n return { textAlign: alignment };\n }\n\n const parent = node.parentElement;\n if (parent && parent.classList.contains(\"table-responsive\")) {\n const parentAlignment = getAlignmentFromElement(parent);\n if (parentAlignment) {\n return { textAlign: parentAlignment };\n }\n }\n\n return { textAlign: \"left\" };\n },\n },\n ];\n },\n\n addAttributes() {\n return {\n ...this.parent?.(),\n textAlign: {\n default: \"left\",\n renderHTML: attributes => {\n if (!attributes.textAlign) return {};\n\n return {\n class: `neeto-editor-table--${attributes.textAlign}`,\n \"data-text-align\": attributes.textAlign,\n };\n },\n },\n };\n },\n\n renderHTML({ node }) {\n let totalWidth = 0;\n let fixedWidth = true;\n\n const colgroups = [];\n // Saved HTML keeps the previous minimum so re-saved tables do not widen.\n const cellMinWidth = SAVED_COLUMN_MIN_WIDTH;\n const firstRow = node.content?.firstChild;\n\n if (firstRow && firstRow.childCount) {\n for (let i = 0; i < firstRow.childCount; i++) {\n const cell = firstRow.child(i);\n const { colspan, colwidth } = cell.attrs;\n const span = colspan || 1;\n\n for (let j = 0; j < span; j++) {\n const hasWidth = colwidth && colwidth[j];\n totalWidth += Number(hasWidth) || cellMinWidth;\n if (!hasWidth) fixedWidth = false;\n\n const style = hasWidth\n ? `min-width: ${cellMinWidth}px; width: ${Number(hasWidth)}px;`\n : `min-width: ${cellMinWidth}px;`;\n\n colgroups.push([\"col\", { style }]);\n }\n }\n }\n\n let tableStyle = \"\";\n if (totalWidth > 0) {\n tableStyle = fixedWidth\n ? `width: ${totalWidth}px;`\n : `min-width: ${totalWidth}px;`;\n }\n\n const alignmentClass = node.attrs?.textAlign\n ? `neeto-editor-table--${node.attrs.textAlign}`\n : \"neeto-editor-table--left\";\n\n return [\n \"div\",\n {\n class: `table-responsive ${alignmentClass}`,\n \"data-text-align\": node.attrs?.textAlign || \"left\",\n },\n [\n \"table\",\n tableStyle ? { style: tableStyle } : {},\n [\"colgroup\", ...colgroups],\n [\"tbody\", 0],\n ],\n ];\n },\n\n addProseMirrorPlugins() {\n return [...(this.parent?.() ?? []), actionPreviewPlugin()];\n },\n\n addKeyboardShortcuts() {\n return {\n ...this.parent?.(),\n Enter: () => moveToCellBelow(this.editor),\n // Tab from the last cell leaves the table instead of adding a row.\n Tab: () => this.editor.commands.goToNextCell() || exitTable(this.editor),\n \"Mod-alt-t\": () =>\n this.editor\n .chain()\n .focus()\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .updateAttributes(\"table\", { textAlign: \"left\" })\n .run(),\n };\n },\n});\n\nexport default Table.configure({});\n","import { TaskItem, TaskList } from \"@tiptap/extension-list\";\n\nexport const TodoListExtension = TaskList.extend({\n name: \"todoList\",\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-9\": () => this.editor.commands.toggleTaskList(),\n };\n },\n});\n\nexport const TodoItemExtension = TaskItem.extend({\n addKeyboardShortcuts() {\n return {\n Enter: () => this.editor.commands.splitListItem(this.name),\n Tab: () => this.editor.commands.sinkListItem(this.name),\n \"Shift-Tab\": () => this.editor.commands.liftListItem(this.name),\n };\n },\n}).configure({ nested: true });\n\nexport default TodoListExtension;\n","export const MAX_VARIABLE_NAME_DISPLAY_LENGTH = 25;\n","import { NodeViewWrapper } from \"@tiptap/react\";\nimport { Tooltip } from \"neetoatoms\";\n\nimport { getVariableDisplay } from \"src/common/variableDisplay\";\nimport { MAX_VARIABLE_NAME_DISPLAY_LENGTH } from \"src/v2/components/Editor/CustomExtensions/Variable/constants\";\n\nconst VariableComponent = ({ node, extension }) => {\n const { id } = node.attrs;\n\n const { variableName, shouldTruncate } = getVariableDisplay(\n node.attrs,\n MAX_VARIABLE_NAME_DISPLAY_LENGTH\n );\n\n return (\n <NodeViewWrapper\n as=\"span\"\n className=\"neeto-editor-variable\"\n data-label={id}\n data-variable=\"\"\n >\n {extension.options.charOpen}\n <Tooltip content={variableName} disabled={!shouldTruncate} position=\"top\">\n {variableName?.substr(0, MAX_VARIABLE_NAME_DISPLAY_LENGTH)?.trim()}\n {shouldTruncate && \"...\"}\n </Tooltip>\n {extension.options.charClose}\n </NodeViewWrapper>\n );\n};\n\nexport default VariableComponent;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\n\nimport VariableComponent from \"./VariableComponent\";\n\nconst VariablePluginKey = new PluginKey(\"variables\");\nconst Variable = Node.create({\n name: \"variable\",\n addOptions() {\n return {\n HTMLAttributes: { class: \"neeto-editor-variable\" },\n charOpen: \"{{\",\n charClose: \"}}\",\n renderLabel({ options, node }) {\n return `${options.charOpen}${node.attrs.id || node.attrs.label}${\n options.charClose\n }`;\n },\n suggestion: {},\n };\n },\n group: \"inline\",\n inline: true,\n selectable: false,\n atom: true,\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-id\"),\n renderHTML: attributes => {\n if (!attributes.id) return {};\n\n return { \"data-id\": attributes.id };\n },\n },\n label: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-label\"),\n renderHTML: attributes => {\n if (!attributes.label) return {};\n\n return { \"data-label\": attributes.label };\n },\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"span[data-variable]\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-variable\": \"\" },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n this.options.renderLabel({ options: this.options, node }),\n ];\n },\n\n renderText({ node }) {\n return this.options.renderLabel({ options: this.options, node });\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(VariableComponent);\n },\n\n addCommands() {\n return {\n setVariable:\n attributes =>\n ({ chain }) => {\n chain()\n .focus()\n .insertContent([\n { type: this.name, attrs: attributes },\n { type: \"text\", text: \" \" },\n ])\n .run();\n },\n };\n },\n});\n\nexport default Variable;\n\nexport { VariablePluginKey };\n","import { useRef, useState } from \"react\";\n\nimport { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classNames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { isEmpty, mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport Menu from \"../Image/Menu\";\n\nconst VideoComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { src, vidheight, vidwidth, align, border } = node.attrs;\n\n const [captionWidth, setCaptionWidth] = useState(vidwidth || 0);\n\n const figureRef = useRef(null);\n\n const { view } = editor;\n let height = vidheight;\n let width = vidwidth;\n const caption = node?.content?.content[0]?.text || \"\";\n\n const editorElement = figureRef.current?.closest(\".neeto-editor\");\n const maxVideoWidth = editorElement?.offsetWidth - 50;\n\n const handleResize = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n\n if (width > maxVideoWidth) {\n width = maxVideoWidth;\n const aspectRatio = ref.offsetHeight / ref.offsetWidth;\n height = width * aspectRatio;\n }\n setCaptionWidth(width);\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n vidheight: height,\n vidwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n if (isNotPresent(src)) return null;\n\n return (\n <NodeViewWrapper\n className={classNames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n )}\n >\n <figure ref={figureRef}>\n <Menu {...{ align, border, deleteNode, editor, updateAttributes }} />\n <Resizable\n lockAspectRatio\n className=\"neeto-editor__image\"\n size={{ height, width }}\n onResizeStop={handleResize}\n onResize={(_event, _direction, ref) =>\n setCaptionWidth(ref.offsetWidth)\n }\n >\n <video\n controls\n {...{ ...node.attrs, src }}\n alt={caption}\n data-border={border}\n preload=\"metadata\"\n />\n </Resizable>\n <NodeViewContent\n as=\"figcaption\"\n className={classNames({ \"is-empty\": isEmpty(caption) })}\n style={{ width: `${captionWidth}px` }}\n />\n </figure>\n </NodeViewWrapper>\n );\n};\n\nexport default VideoComponent;\n","import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport Menu from \"../Image/Menu\";\n\nconst EmbedComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { figheight, figwidth, align, border, aspectRatio } = node.attrs;\n const { view } = editor;\n let height = figheight;\n let width = figwidth;\n\n const handleResize = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n figheight: height,\n figwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n return (\n <NodeViewWrapper\n data-testid=\"neeto-editor-video-wrapper\"\n className={classnames(\n \"neeto-editor__video-wrapper\",\n `neeto-editor__video--${align}`,\n { \"neeto-editor__video--bordered\": border }\n )}\n >\n <NodeViewContent className=\"neeto-editor__video-content\" />\n <Resizable\n lockAspectRatio\n size={{ height, width }}\n className={classnames(\"neeto-editor__video-iframe\", {\n \"neeto-editor-aspect-1-1\": aspectRatio === \"1/1\",\n \"neeto-editor-aspect-16-9\": aspectRatio === \"16/9\",\n \"neeto-editor-aspect-9-16\": aspectRatio === \"9/16\",\n \"neeto-editor-aspect-4-3\": aspectRatio === \"4/3\",\n \"neeto-editor-aspect-3-2\": aspectRatio === \"3/2\",\n })}\n onResizeStop={handleResize}\n >\n <Menu\n {...{ align, border, deleteNode, editor, updateAttributes }}\n showAspectRatio\n />\n <iframe {...node.attrs} allowFullScreen data-border={border} />\n </Resizable>\n </NodeViewWrapper>\n );\n};\n\nexport default EmbedComponent;\n","import { mergeAttributes, Node, PasteRule } from \"@tiptap/core\";\nimport { TextSelection } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport classnames from \"classnames\";\n\nimport { COMBINED_REGEX } from \"common/constants\";\nimport getVideoDimension from \"common/getVideoDimension\";\nimport { validateUrl } from \"src/v2/components/Editor/CustomExtensions/Embeds/utils\";\nimport { DEFAULT_ASPECT_RATIO } from \"src/v2/components/Editor/MediaUploader/constants\";\n\nimport VideoComponent from \"./VideoComponent\";\n\nimport EmbedComponent from \"../Embeds/EmbedComponent\";\n\nconst getSharedAttributes = () => ({\n src: {\n default: null,\n parseHTML: element => {\n if (element.tagName === \"IFRAME\") return element.getAttribute(\"src\");\n\n const iframe = element.querySelector(\"iframe\");\n const video = element.querySelector(\"video\");\n\n return iframe?.getAttribute(\"src\") || video?.getAttribute(\"src\");\n },\n },\n align: {\n default: \"left\",\n parseHTML: element =>\n element.getAttribute(\"align\") ||\n element.querySelector(\"video\")?.getAttribute(\"align\"),\n },\n videoType: {\n default: \"upload\",\n parseHTML: element => {\n const iframe =\n element.tagName === \"IFRAME\"\n ? element\n : element.querySelector(\"iframe\");\n\n return iframe ? \"embed\" : \"upload\";\n },\n },\n border: {\n default: true,\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"data-border\") === \"true\" ||\n element.querySelector(\"iframe\")?.getAttribute(\"data-border\") === \"true\",\n },\n});\n\nconst getUploadAttributes = () => ({\n alt: {\n default: \"\",\n parseHTML: element => element.querySelector(\"video\")?.getAttribute(\"alt\"),\n },\n vidheight: {\n default: \"fit-content\",\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"vidheight\"),\n },\n vidwidth: {\n default: 502,\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"vidwidth\"),\n },\n});\n\nconst getEmbedAttributes = () => ({\n figheight: {\n default: 281,\n parseHTML: element =>\n getVideoDimension(\n (element.querySelector(\"iframe\") ?? element).getAttribute(\"figheight\"),\n 281\n ),\n },\n figwidth: {\n default: 500,\n parseHTML: element =>\n getVideoDimension(\n (element.querySelector(\"iframe\") ?? element).getAttribute(\"figwidth\"),\n 500\n ),\n },\n aspectRatio: {\n default: DEFAULT_ASPECT_RATIO,\n parseHTML: element => {\n const iframe = element.querySelector(\".neeto-editor__video-iframe\");\n\n return iframe?.getAttribute(\"data-aspect-ratio\") || DEFAULT_ASPECT_RATIO;\n },\n },\n title: { default: null },\n originalUrl: {\n default: \"\",\n parseHTML: element => {\n const iframe = element.querySelector(\".neeto-editor__video-iframe\");\n\n return (\n iframe?.getAttribute(\"data-original-url\") ||\n iframe?.querySelector(\"iframe\")?.getAttribute(\"data-original-url\") ||\n \"\"\n );\n },\n },\n frameBorder: \"0\",\n allow:\n \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen\",\n allowfullscreen: true,\n});\n\nconst renderEmbedHTML = (node, HTMLAttributes, options) => {\n const { align, figheight, figwidth, border, aspectRatio, originalUrl } =\n node.attrs;\n\n return [\n \"div\",\n {\n class: classnames(\n \"neeto-editor__video-wrapper\",\n `neeto-editor__video--${align}`,\n { \"neeto-editor__video--bordered\": border }\n ),\n },\n [\"div\", { class: \"neeto-editor__video-content\" }, 0],\n [\n \"div\",\n {\n class: classnames(\"neeto-editor__video-iframe\", {\n \"neeto-editor-aspect-1-1\": aspectRatio === \"1/1\",\n \"neeto-editor-aspect-16-9\": aspectRatio === \"16/9\",\n \"neeto-editor-aspect-9-16\": aspectRatio === \"9/16\",\n \"neeto-editor-aspect-4-3\": aspectRatio === \"4/3\",\n \"neeto-editor-aspect-3-2\": aspectRatio === \"3/2\",\n }),\n style: `width: ${getVideoDimension(figwidth, 500)}px; height: ${getVideoDimension(figheight, 281)}px;`,\n \"data-aspect-ratio\": aspectRatio,\n },\n [\n \"iframe\",\n mergeAttributes(options.HTMLAttributes, {\n ...HTMLAttributes,\n allowfullscreen: true,\n \"data-border\": border,\n \"data-original-url\": originalUrl,\n }),\n ],\n ],\n ];\n};\n\nconst renderUploadHTML = (node, HTMLAttributes, options) => {\n const { align, vidheight, vidwidth, border } = node.attrs;\n\n const wrapperDivAttrs = {\n class: classnames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n ),\n };\n\n const heightStyle =\n vidheight === \"fit-content\" ? \"fit-content\" : `${vidheight}px`;\n\n const wrapperLinkAttrs = {\n rel: \"noopener noreferrer\",\n class: \"neeto-editor__image\",\n style: `height:${heightStyle};width:${vidwidth}px;display:inline-block;`,\n };\n\n const captionAttrs = { style: `width:${vidwidth}px;` };\n\n return [\n \"div\",\n wrapperDivAttrs,\n [\n \"figure\",\n mergeAttributes(options.HTMLAttributes, { \"data-video\": \"\" }),\n [\n \"a\",\n wrapperLinkAttrs,\n [\n \"video\",\n mergeAttributes(HTMLAttributes, {\n preload: \"metadata\",\n controls: true,\n draggable: false,\n contenteditable: false,\n \"data-border\": border,\n }),\n ],\n ],\n [\"figcaption\", captionAttrs, 0],\n ],\n ];\n};\n\nconst handleVideoPaste = ({ state, range, match }) => {\n state.tr.delete(range.from, range.to);\n state.tr.setSelection(TextSelection.create(state.doc, range.from + 1));\n\n const validatedUrl = validateUrl(match[0]);\n\n if (validatedUrl) {\n const node = state.schema.nodes[\"unified-video\"].create({\n src: validatedUrl,\n videoType: \"embed\",\n originalUrl: match[0],\n });\n\n state.tr.insert(range.from, node);\n state.tr.insert(\n range.from + node.nodeSize + 1,\n state.schema.nodes.paragraph.create()\n );\n\n state.tr.setSelection(\n TextSelection.create(state.tr.doc, range.from + node.nodeSize + 1)\n );\n }\n};\n\nconst UnifiedVideoExtension = Node.create({\n name: \"unified-video\",\n\n addOptions() {\n return { HTMLAttributes: {} };\n },\n\n group: \"block\",\n content: \"inline*\",\n draggable: true,\n isolating: true,\n\n addAttributes() {\n return {\n ...getSharedAttributes(),\n ...getUploadAttributes(),\n ...getEmbedAttributes(),\n };\n },\n\n parseHTML() {\n return [\n {\n tag: \"div.neeto-editor__image-wrapper\",\n getAttrs: node => {\n const figure = node.querySelector(\"figure[data-video]\");\n\n if (!figure) return false;\n\n const videoSrc = figure.querySelector(\"video\")?.getAttribute(\"src\");\n const iframeSrc = figure.querySelector(\"iframe\")?.getAttribute(\"src\");\n\n if (!videoSrc && !iframeSrc) return false;\n\n return node.style.fontWeight !== \"normal\" && null;\n },\n contentElement: \"figcaption\",\n },\n {\n tag: \"iframe[src]\",\n // iframes inside our own embed markup are consumed by the\n // div.neeto-editor__video-wrapper rule below.\n getAttrs: element =>\n element.closest(\"div.neeto-editor__video-wrapper\") ? false : null,\n },\n {\n tag: \"div.neeto-editor__video-wrapper\",\n getAttrs: element =>\n element.querySelector(\"iframe[src]\") ? null : false,\n contentElement: element =>\n element.querySelector(\".neeto-editor__video-content\") || element,\n },\n ];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const { videoType } = node.attrs;\n\n return videoType === \"embed\"\n ? renderEmbedHTML(node, HTMLAttributes, this.options)\n : renderUploadHTML(node, HTMLAttributes, this.options);\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(({ node, ...props }) => {\n const { videoType } = node.attrs;\n\n return videoType === \"embed\" ? (\n <EmbedComponent {...{ ...props, node }} />\n ) : (\n <VideoComponent {...{ ...props, node }} />\n );\n });\n },\n\n addCommands() {\n return {\n setVideo:\n ({ caption, ...attrs }) =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs: { ...attrs, videoType: \"upload\" },\n content: caption ? [{ type: \"text\", text: caption }] : [],\n })\n .command(({ tr, commands }) => {\n const { doc, selection } = tr;\n const position = doc.resolve(selection.to).end();\n\n return commands.setTextSelection(position);\n })\n .run(),\n\n setExternalVideo:\n options =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs: { ...options, videoType: \"embed\" },\n })\n .command(({ tr, commands }) => {\n const { $to } = tr.selection;\n if ($to.parent.type.name !== this.name) return true;\n\n const position = $to.after();\n if (tr.doc.nodeAt(position)?.type.name !== \"paragraph\") {\n commands.insertContentAt(position, { type: \"paragraph\" });\n }\n\n return commands.setTextSelection(position + 1);\n })\n .run(),\n };\n },\n\n addPasteRules() {\n return [\n new PasteRule({\n find: COMBINED_REGEX,\n handler: handleVideoPaste,\n }),\n ];\n },\n});\n\nexport default UnifiedVideoExtension;\n","import Code from \"@tiptap/extension-code\";\nimport Collaboration from \"@tiptap/extension-collaboration\";\nimport CollaborationCaret from \"@tiptap/extension-collaboration-caret\";\nimport Document from \"@tiptap/extension-document\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport { ListItem } from \"@tiptap/extension-list\";\nimport { TableCell, TableHeader, TableRow } from \"@tiptap/extension-table\";\nimport { Color, TextStyle } from \"@tiptap/extension-text-style\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { CharacterCount, Focus } from \"@tiptap/extensions\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport { isEmpty } from \"ramda\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\nimport safeListKeymap from \"common/safeListKeymap\";\nimport safeSplitBlock from \"common/safeSplitBlock\";\nimport { buildLevelsFromOptions } from \"src/v2/components/Editor/utils\";\n\nimport HighlightInternal from \"../BackgroundColor/ExtensionConfig\";\nimport BulletList from \"../BulletList/ExtensionConfig\";\nimport Callout from \"../Callout/ExtensionConfig\";\nimport CodeBlock from \"../CodeBlock/ExtensionConfig\";\nimport CustomCommands from \"../CustomCommands/ExtensionConfig\";\nimport DeletedArticleDecoration from \"../DeletedArticleDecoration/ExtensionConfig\";\nimport EditorContainer from \"../EditorContainer/ExtensionConfig\";\nimport EmojiPicker from \"../Emoji/EmojiPicker/ExtensionConfig\";\nimport EmojiSuggestion from \"../Emoji/EmojiSuggestion/ExtensionConfig\";\nimport ImageExtension from \"../Image/ExtensionConfig\";\nimport FigCaption from \"../Image/FigCaption\";\nimport Italic from \"../Italic/ExtensionConfig\";\nimport KeyboardShortcuts from \"../KeyboardShortcuts/ExtensionConfig\";\nimport Link from \"../Link/ExtensionConfig\";\nimport Mention, { createMentionSuggestions } from \"../Mention/ExtensionConfig\";\nimport OrderedList from \"../OrderedList/ExtensionConfig\";\nimport Placeholder from \"../Placeholder/ExtensionConfig\";\nimport SelectionDecoration from \"../SelectionDecoration/ExtensionConfig\";\nimport SlashCommands from \"../SlashCommands/ExtensionConfig\";\nimport SpecialMentions from \"../SpecialMentions/ExtensionConfig\";\nimport Table from \"../Table/ExtensionConfig\";\nimport {\n TodoListExtension,\n TodoItemExtension,\n} from \"../TodoList/ExtensionConfig\";\nimport Variable from \"../Variable/ExtensionConfig\";\nimport UnifiedVideoExtension from \"../Video/ExtensionConfig\";\n\nconst useCustomExtensions = ({\n placeholder,\n extensions,\n mentions,\n variables,\n isSlashCommandsActive,\n options,\n addonCommands,\n onSubmit,\n keyboardShortcuts,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n openImageInNewTab,\n openLinkInNewTab,\n enableReactNodeViewOptimization,\n collaborationProvider,\n setIsNeetoKbArticleActive,\n containerRef,\n appendSuggestionsToBody,\n}) => {\n let customExtensions = [\n EditorContainer.configure({ containerRef, appendSuggestionsToBody }),\n CharacterCount,\n Code,\n CodeBlock.configure({ enableReactNodeViewOptimization }),\n CustomCommands,\n Document,\n FigCaption,\n HighlightInternal,\n SelectionDecoration,\n Focus.configure({ mode: \"shallowest\" }),\n Highlight,\n ImageExtension.configure({\n openImageInNewTab,\n enableReactNodeViewOptimization,\n }),\n Link.configure({\n HTMLAttributes: { target: openLinkInNewTab ? \"_blank\" : null },\n }),\n Placeholder.configure({ placeholder, isSlashCommandsActive }),\n StarterKit.configure({\n document: false,\n codeBlock: false,\n code: false,\n bulletList: false,\n listItem: false,\n blockquote: options.includes(EDITOR_OPTIONS.BLOCKQUOTE),\n orderedList: false,\n italic: false,\n link: false, // v3 StarterKit bundles Link; we register a custom Link extension\n underline: false, // v3 StarterKit bundles Underline; we register it explicitly below\n listKeymap: false, // replaced by safeListKeymap, registered below\n trailingNode: false, // new in v3 StarterKit; disabled to keep v2 behavior\n undoRedo: !collaborationProvider,\n heading: { levels: buildLevelsFromOptions(options) },\n }),\n safeSplitBlock,\n safeListKeymap,\n TextStyle,\n Underline,\n Italic,\n KeyboardShortcuts.configure({\n onSubmit,\n shortcuts: keyboardShortcuts,\n isBlockQuoteActive: options.includes(EDITOR_OPTIONS.BLOCKQUOTE),\n }),\n EmojiSuggestion,\n EmojiPicker,\n ];\n\n if (options.includes(EDITOR_OPTIONS.VIDEO_UPLOAD)) {\n customExtensions.push(UnifiedVideoExtension);\n }\n\n if (options.includes(EDITOR_OPTIONS.NEETO_KB_ARTICLE)) {\n customExtensions.push(\n DeletedArticleDecoration.configure({\n deletedArticleIds: new Set(),\n })\n );\n }\n\n if (options.includes(EDITOR_OPTIONS.TABLE)) {\n customExtensions.push(\n Table.configure({ resizable: true }),\n TableRow,\n TableHeader,\n TableCell\n );\n }\n\n if (\n options.includes(EDITOR_OPTIONS.TEXT_COLOR) ||\n options.includes(EDITOR_OPTIONS.HIGHLIGHT)\n ) {\n customExtensions.push(Color);\n }\n\n if (options.includes(EDITOR_OPTIONS.LIST_BULLETS)) {\n customExtensions.push(BulletList);\n }\n\n if (options.includes(EDITOR_OPTIONS.LIST_ORDERED)) {\n customExtensions.push(OrderedList);\n }\n\n if (\n options.includes(EDITOR_OPTIONS.LIST_BULLETS) ||\n options.includes(EDITOR_OPTIONS.LIST_ORDERED)\n ) {\n customExtensions.push(ListItem);\n }\n\n if (options.includes(EDITOR_OPTIONS.CALLOUT)) {\n customExtensions.push(Callout);\n }\n\n if (options.includes(EDITOR_OPTIONS.TODO_LIST)) {\n customExtensions.push(TodoListExtension);\n customExtensions.push(TodoItemExtension);\n }\n\n if (isSlashCommandsActive) {\n customExtensions.push(\n SlashCommands.configure({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n })\n );\n }\n\n if (!isEmpty(mentions)) {\n const items = createMentionSuggestions(mentions);\n\n customExtensions.push(Mention.configure({ suggestion: { items } }));\n\n customExtensions.push(SpecialMentions.configure({ suggestion: { items } }));\n }\n\n if (!isEmpty(variables)) {\n customExtensions.push(Variable);\n }\n\n if (collaborationProvider) {\n customExtensions.push(\n Collaboration.configure({\n document: collaborationProvider.document ?? collaborationProvider.doc,\n })\n );\n\n customExtensions.push(\n CollaborationCaret.configure({\n provider: collaborationProvider,\n })\n );\n }\n\n customExtensions = customExtensions.concat(extensions);\n\n return customExtensions;\n};\n\nexport default useCustomExtensions;\n","import { globalProps } from \"neetocommons/v2/initializers\";\n\nexport const NEETO_KB_ENDPOINT = globalProps?.kbUrl;\nexport const NEETO_KB_ARTICLES_URL = \"/api/v1/articles\";\nexport const NEETO_KB_CATEGORIES_URL = \"/api/v1/categories\";\n\nexport const MODE = { MODAL: \"modal\", SELECT: \"select\" };\n\nexport const MODAL_BOTTOM_MARGIN = 50;\nexport const MODAL_LEFT_OFFSET = 50;\nexport const MODAL_TOP_OFFSET = 22;\nexport const MODAL_TRANSFORM_Y = 52;\nexport const MODAL_TRANSFORM_X = 8;\n","import { useState, useEffect, useCallback } from \"react\";\n\nconst useArticleNavigation = ({\n articles = [],\n articlesContainerRef,\n mode,\n onClose,\n handleModalArticleSelect,\n searchTerm,\n}) => {\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n\n useEffect(() => {\n setHighlightedIndex(0);\n }, [articles, searchTerm]);\n\n useEffect(() => {\n if (!articlesContainerRef?.current || !articles?.length) return;\n\n const container = articlesContainerRef.current;\n const highlightedItem = container.querySelector(\n `[data-index=\"${highlightedIndex}\"]`\n );\n\n if (!highlightedItem) return;\n\n const containerRect = container.getBoundingClientRect();\n const itemRect = highlightedItem.getBoundingClientRect();\n\n const isItemAbove = itemRect.top < containerRect.top;\n const isItemBelow = itemRect.bottom > containerRect.bottom;\n\n if (isItemAbove) {\n container.scrollTop -= containerRect.top - itemRect.top;\n } else if (isItemBelow) {\n container.scrollTop += itemRect.bottom - containerRect.bottom;\n }\n }, [highlightedIndex, articles.length, articlesContainerRef]);\n\n const navigationHandlers = {\n down: prev => (prev < articles.length - 1 ? prev + 1 : 0),\n up: prev => (prev > 0 ? prev - 1 : articles.length - 1),\n };\n\n const keyActions = {\n Escape: () => onClose?.(),\n ArrowDown: () => setHighlightedIndex(navigationHandlers[\"down\"]),\n ArrowUp: () => setHighlightedIndex(navigationHandlers[\"up\"]),\n Tab: event =>\n setHighlightedIndex(navigationHandlers[event.shiftKey ? \"up\" : \"down\"]),\n Enter: () => {\n if (articles[highlightedIndex]) {\n handleModalArticleSelect?.(articles[highlightedIndex]);\n }\n },\n };\n\n const handleKeyboardNavigation = useCallback(\n event => {\n if (mode !== \"modal\") return;\n\n const action = keyActions[event.key];\n if (!action) return;\n\n event.preventDefault();\n action(event);\n },\n [mode, articles, highlightedIndex, onClose, handleModalArticleSelect]\n );\n\n useEffect(() => {\n if (mode !== \"modal\") return undefined;\n\n document.addEventListener(\"keydown\", handleKeyboardNavigation);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyboardNavigation);\n };\n }, [mode, handleKeyboardNavigation]);\n\n return { highlightedIndex };\n};\n\nexport default useArticleNavigation;\n","import { decodeHtmlEntities } from \"src/utils/common\";\n\nimport { NEETO_KB_ENDPOINT } from \"./constants\";\n\nexport const buildArticleFullUrl = slug =>\n slug ? `${NEETO_KB_ENDPOINT}/articles/${slug}` : null;\n\nexport const createArticleOptions = articles =>\n articles.map(article => ({\n label: decodeHtmlEntities(article.title),\n value: article.id,\n data: { type: \"article\", ...article },\n }));\n\nexport const extractKbArticleIds = editor => {\n if (!editor) return [];\n\n const articleIds = [];\n const { doc } = editor.state;\n\n doc.descendants(node => {\n if (node.marks) {\n node.marks.forEach(mark => {\n if (\n mark.type.name === \"link\" &&\n mark.attrs[\"data-neeto-kb-article\"] === \"true\" &&\n mark.attrs[\"data-article-id\"]\n ) {\n articleIds.push(mark.attrs[\"data-article-id\"]);\n }\n });\n }\n });\n\n return [...new Set(articleIds)];\n};\n","import React from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\n\nconst ArticlesList = withT(\n ({\n t,\n articles = [],\n onSelectArticle,\n highlightedIndex = 0,\n containerRef,\n }) => (\n <div className=\"max-h-40 overflow-y-auto\" ref={containerRef}>\n {isNotEmpty(articles) ? (\n <div className=\"space-y-1\">\n {articles.map((article, index) => (\n <button\n data-index={index}\n key={article?.id}\n className={classNames(\n \"w-full rounded p-2 text-left hover:bg-gray-200 focus:bg-gray-200 focus:outline-none\",\n { \"bg-gray-200\": index === highlightedIndex }\n )}\n onClick={() => onSelectArticle?.(article)}\n >\n <div className=\"text-sm font-medium\">\n {decodeHtmlEntities(article?.title)}\n </div>\n </button>\n ))}\n </div>\n ) : (\n <div className=\"py-4 text-center text-gray-500\">\n <Typography variant=\"body2\">\n {t(\"neetoEditor.error.noResults\")}\n </Typography>\n </div>\n )}\n </div>\n )\n);\n\nexport default ArticlesList;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Select, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { findBy } from \"neetocist\";\nimport Search from \"neetomolecules/v2/Search\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchKbArticles } from \"hooks/reactQuery/kbArticle/useArticleFetching\";\nimport {\n MODE,\n MODAL_BOTTOM_MARGIN,\n MODAL_LEFT_OFFSET,\n MODAL_TOP_OFFSET,\n MODAL_TRANSFORM_Y,\n MODAL_TRANSFORM_X,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\nimport useArticleNavigation from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/hooks/useArticleNavigation\";\nimport {\n buildArticleFullUrl,\n createArticleOptions,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils\";\n\nimport ArticlesList from \"./ArticlesList\";\n\nconst ArticlePicker = ({\n mode = MODE.MODAL,\n cursorPos,\n onClose,\n isLoading: externalIsLoading,\n options: externalOptions,\n value,\n onChange,\n placeholder,\n label,\n name,\n className,\n onArticleSelect,\n}) => {\n const { t } = useTranslation();\n const [searchTerm, setSearchTerm] = useState(\"\");\n const modalRef = useRef(null);\n const articlesContainerRef = useRef(null);\n\n const { data: articles = [], isLoading: isLoadingArticles } =\n useFetchKbArticles({\n searchTerm,\n reactQueryOptions: { enabled: !externalOptions },\n });\n\n const isLoading = externalIsLoading || isLoadingArticles;\n\n const selectOptions =\n mode === MODE.SELECT ? createArticleOptions(articles) : [];\n\n const handleModalArticleSelect = article => {\n if (mode !== MODE.MODAL || !article) return;\n\n const articleWithUrl = {\n ...article,\n full_url: buildArticleFullUrl(article.slug),\n };\n\n onArticleSelect(article, articleWithUrl);\n onClose?.();\n };\n\n const { highlightedIndex } = useArticleNavigation({\n articles,\n articlesContainerRef,\n mode,\n onClose,\n handleModalArticleSelect,\n searchTerm,\n });\n\n const handleSelectChange = selectedValueString => {\n const options = externalOptions || selectOptions;\n const selectedOption = findBy({ value: selectedValueString }, options);\n\n if (selectedOption?.data?.type === \"article\" && onChange) {\n onChange(\n { value: selectedOption.value, label: selectedOption.label },\n undefined\n );\n }\n };\n\n useEffect(() => {\n if (mode !== MODE.MODAL || !modalRef.current || !cursorPos) return;\n\n const modal = modalRef.current;\n\n const modalRect = modal.getBoundingClientRect();\n const modalWidth = modalRect.width || 320;\n const modalHeight = modalRect.height || 200;\n\n const maxLeft = window.innerWidth - modalWidth;\n const maxTop = window.innerHeight - modalHeight - MODAL_BOTTOM_MARGIN;\n\n const adjustedLeft = Math.min(cursorPos.left - MODAL_LEFT_OFFSET, maxLeft);\n const adjustedTop = Math.min(cursorPos.top - MODAL_TOP_OFFSET, maxTop);\n\n Object.assign(modal.style, {\n position: \"fixed\",\n top: `${adjustedTop}px`,\n left: `${adjustedLeft}px`,\n transform: `translateY(${MODAL_TRANSFORM_Y}px) translateX(${MODAL_TRANSFORM_X}px)`,\n zIndex: 99999,\n });\n }, [mode, cursorPos]);\n\n useEffect(() => {\n if (mode !== MODE.MODAL) return undefined;\n\n const handleClickOutside = event => {\n if (modalRef.current && !modalRef.current.contains(event.target)) {\n onClose?.();\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [mode, onClose]);\n\n if (mode === MODE.MODAL) {\n return (\n <div className=\"ne-article-picker-popover w-80 border\" ref={modalRef}>\n <div className=\"mb-4\">\n <Search\n autoFocus\n placeholder={t(\"neetoEditor.placeholders.searchArticles\")}\n onSearch={setSearchTerm}\n />\n </div>\n {isLoading ? (\n <div className=\"flex items-center justify-center py-8\">\n <Spinner />\n </div>\n ) : (\n <div>\n <ArticlesList\n {...{ articles, highlightedIndex, searchTerm }}\n containerRef={articlesContainerRef}\n onSelectArticle={handleModalArticleSelect}\n />\n </div>\n )}\n </div>\n );\n }\n\n return (\n <Select\n {...{ className, label, name, placeholder }}\n isSearchable\n isDisabled={isLoading}\n options={externalOptions || selectOptions}\n value={typeof value === \"object\" ? value?.value : value}\n onChange={handleSelectChange}\n />\n );\n};\n\nexport default ArticlePicker;\n","import React from \"react\";\n\nimport { MODE } from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\n\nimport ArticlePicker from \"./ArticlePicker\";\n\nconst ArticleSelector = ({\n editor,\n cursorPos,\n onClose,\n deletedArticlesHook,\n}) => {\n const handleArticleSelect = (article, detailedArticle) => {\n if (!detailedArticle.full_url) return;\n const { from, to } = editor.state.selection;\n\n const linkText = detailedArticle.title || article.title;\n const isDeleted = deletedArticlesHook?.isArticleDeleted(article.id);\n\n const attrs = {\n href: detailedArticle.full_url,\n \"data-neeto-kb-article\": \"true\",\n \"data-article-id\": article.id,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: detailedArticle.title || article.title,\n };\n\n const linkMark = editor.state.schema.marks.link.create(attrs);\n const linkTextWithMark = editor.state.schema.text(linkText, [linkMark]);\n\n const tr = editor.state.tr.replaceWith(from, to, linkTextWithMark);\n editor.view.dispatch(tr);\n editor.view.focus();\n };\n\n return (\n <ArticlePicker\n {...{ cursorPos, deletedArticlesHook, editor, onClose }}\n mode={MODE.MODAL}\n onArticleSelect={handleArticleSelect}\n />\n );\n};\n\nexport default ArticleSelector;\n","import { useCallback } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { findTable } from \"@tiptap/pm/tables\";\nimport { useEditorState } from \"@tiptap/react\";\nimport { BubbleMenu } from \"@tiptap/react/menus\";\nimport { Minus, Plus, Trash2 } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { setActionPreview } from \"./actionPreviewPlugin\";\nimport { getTableSize } from \"./utils\";\n\nconst Counter = ({\n label,\n onDecrement,\n onDecrementHover,\n onIncrementHover,\n onIncrement,\n decrementLabel,\n incrementLabel,\n isDecrementDisabled,\n}) => (\n <div className=\"neeto-editor-table-menu__group neeto-editor-table-menu__group--counter\">\n <Button\n className=\"ne-toolbar-item\"\n disabled={isDecrementDisabled}\n icon={Minus}\n size=\"sm\"\n tooltipProps={{ content: decrementLabel, position: \"top\" }}\n variant=\"ghost\"\n onClick={onDecrement}\n onMouseEnter={() => !isDecrementDisabled && onDecrementHover(true)}\n onMouseLeave={() => onDecrementHover(false)}\n />\n <span className=\"neeto-editor-table-menu__count\">{label}</span>\n <Button\n className=\"ne-toolbar-item\"\n icon={Plus}\n size=\"sm\"\n tooltipProps={{ content: incrementLabel, position: \"top\" }}\n variant=\"ghost\"\n onClick={onIncrement}\n onMouseEnter={() => onIncrementHover(true)}\n onMouseLeave={() => onIncrementHover(false)}\n />\n </div>\n);\n\nconst TableActionMenu = ({ editor }) => {\n const { t } = useTranslation();\n\n const { rows, columns } = useEditorState({\n editor,\n selector: ({ editor }) => getTableSize(editor),\n }) ?? { rows: 0, columns: 0 };\n\n const getReferenceClientRect = useCallback(() => {\n const table = editor && findTable(editor.state.selection.$from);\n const element = table && editor.view.nodeDOM(table.pos);\n\n return element?.getBoundingClientRect?.() ?? new DOMRect(0, 0, 0, 0);\n }, [editor]);\n\n const shouldShow = useCallback(\n () => editor?.isFocused && editor?.isActive(\"table\"),\n [editor]\n );\n\n if (!editor) return null;\n\n return (\n <BubbleMenu\n {...{ editor, shouldShow }}\n className=\"neeto-editor-table-menu\"\n options={{ placement: \"top-start\", offset: 8, flip: false }}\n style={{ zIndex: 99999 }}\n getReferencedVirtualElement={() => ({\n getBoundingClientRect: getReferenceClientRect,\n })}\n >\n <Counter\n decrementLabel={t(\"neetoEditor.table.deleteRow\")}\n incrementLabel={t(\"neetoEditor.table.insertRow\")}\n isDecrementDisabled={rows <= 1}\n label={t(\"neetoEditor.table.rowCount\", { count: rows })}\n onDecrement={() => editor.chain().focus().deleteRow().run()}\n onIncrement={() => editor.chain().focus().addRowAfter().run()}\n onDecrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"deleteRow\" : null)\n }\n onIncrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"insertRow\" : null)\n }\n />\n <Counter\n decrementLabel={t(\"neetoEditor.table.deleteColumn\")}\n incrementLabel={t(\"neetoEditor.table.insertColumn\")}\n isDecrementDisabled={columns <= 1}\n label={t(\"neetoEditor.table.columnCount\", { count: columns })}\n onDecrement={() => editor.chain().focus().deleteColumn().run()}\n onIncrement={() => editor.chain().focus().addColumnAfter().run()}\n onDecrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"deleteColumn\" : null)\n }\n onIncrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"insertColumn\" : null)\n }\n />\n <div className=\"neeto-editor-table-menu__group\">\n <Button\n className=\"ne-toolbar-item\"\n icon={Trash2}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoEditor.table.delete\"),\n position: \"top\",\n }}\n onClick={() => editor.chain().focus().deleteTable().run()}\n onMouseEnter={() => setActionPreview(editor, \"deleteTable\")}\n onMouseLeave={() => setActionPreview(editor, null)}\n />\n </div>\n </BubbleMenu>\n );\n};\n\nexport default TableActionMenu;\n","import React from \"react\";\n\nimport { Button, Dialog } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nconst KbArticleDeletedModal = withT(({ t, isOpen, onClose }) => (\n <Dialog {...{ isOpen, onClose }}>\n <Dialog.Header>\n <Dialog.Title>{t(\"neetoEditor.linkKb.articleDeletedTitle\")}</Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n <p>{t(\"neetoEditor.linkKb.articleDeletedDescription\")}</p>\n </Dialog.Body>\n <Dialog.Footer>\n <Button label={t(\"neetoEditor.common.close\")} onClick={onClose} />\n </Dialog.Footer>\n </Dialog>\n));\n\nexport default KbArticleDeletedModal;\n","import React from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { Form, Input } from \"@bigbinary/neeto-atoms/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\nimport { MODE } from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\n\nimport ArticlePicker from \"./ArticlePicker\";\n\nconst KbArticleEdit = ({\n linkAttributes,\n getCurrentTextContent,\n getCurrentArticleOption,\n handleKbArticleSubmit,\n handleSelectChange,\n handleKeyDown,\n isLoadingKbData,\n selectOptions,\n setIsEditing,\n}) => {\n const initialValues = {\n textContent:\n getCurrentTextContent?.() ||\n decodeHtmlEntities(linkAttributes?.title || \"\") ||\n \"\",\n pageSelection: getCurrentArticleOption(),\n };\n\n const { t } = useTranslation();\n\n return (\n <Form\n className=\"w-64\"\n formikProps={{\n initialValues,\n onSubmit: handleKbArticleSubmit,\n enableReinitialize: true,\n }}\n >\n {({ dirty, isSubmitting, setFieldValue, values }) => (\n <div className=\"flex w-full flex-col items-start gap-2\">\n <Input\n required\n unlimitedChars\n className=\"w-full\"\n data-testid=\"neeto-editor-edit-kb-link-text-input\"\n label={t(\"neetoEditor.common.text\")}\n name=\"textContent\"\n placeholder={t(\"neetoEditor.placeholders.enterText\")}\n onKeyDown={handleKeyDown}\n />\n <ArticlePicker\n className=\"w-full\"\n data-testid=\"neeto-editor-edit-kb-link-page-select\"\n isLoading={isLoadingKbData}\n label={t(\"neetoEditor.linkKb.articleLabel\")}\n mode={MODE.SELECT}\n name=\"pageSelection\"\n options={selectOptions}\n placeholder={t(\"neetoEditor.linkKb.selectArticle\")}\n value={values.pageSelection}\n onChange={value => handleSelectChange(value, { setFieldValue })}\n />\n <div className=\"ne-link-popover__edit-prompt-buttons\">\n <Button\n data-testid=\"neeto-editor-edit-kb-link-done\"\n disabled={!dirty}\n label={t(\"neetoEditor.common.done\")}\n loading={isSubmitting}\n size=\"sm\"\n type=\"submit\"\n />\n <Button\n data-testid=\"neeto-editor-edit-kb-link-cancel\"\n label={t(\"neetoEditor.common.cancel\")}\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => setIsEditing(false)}\n />\n </div>\n </div>\n )}\n </Form>\n );\n};\n\nexport default KbArticleEdit;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { BookOpen, Pencil } from \"lucide-react\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\n\nconst KbArticleView = withT(\n ({ t, linkAttributes, isDeleted, onEdit, onDeletedClick, currentText }) => (\n <div>\n <div className=\"flex items-center gap-3\">\n <BookOpen className=\"text-gray-600\" size={16} />\n <a\n href={linkAttributes?.href}\n rel=\"noreferrer\"\n target=\"_blank\"\n className={classnames(\"ne-link-popover__kb-article-link\", {\n \"ne-link-popover__kb-article-link--deleted\": isDeleted,\n })}\n onClick={event => {\n if (!isDeleted) return;\n event.preventDefault();\n onDeletedClick?.();\n }}\n >\n {currentText ||\n decodeHtmlEntities(linkAttributes?.title || \"\") ||\n linkAttributes?.href}\n </a>\n <div className=\"flex items-center gap-0.5\">\n <CopyToClipboardButton\n size=\"sm\"\n value={linkAttributes?.href}\n variant=\"ghost\"\n />\n <Button\n className=\"ne-link-popover__option-button mx-0\"\n data-testid=\"neeto-editor-link-popover-edit\"\n icon={Pencil}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoEditor.common.edit\"),\n position: \"top\",\n }}\n onClick={onEdit}\n />\n </div>\n </div>\n {isDeleted && (\n <div className=\"mt-2 rounded p-2 text-sm\">\n {t(\"neetoEditor.linkKb.articleDeletedDescription\")}\n </div>\n )}\n </div>\n )\n);\n\nexport default KbArticleView;\n","import { useEffect, useState, useRef } from \"react\";\n\nimport { getMarkRange, getMarkType } from \"@tiptap/react\";\nimport { Button, Checkbox } from \"neetoatoms\";\nimport { Form, Input } from \"neetoatoms/formik\";\nimport { findBy } from \"neetocist\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\nimport { equals, isNil } from \"ramda\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchKbArticles } from \"hooks/reactQuery/kbArticle/useArticleFetching\";\nimport { decodeHtmlEntities } from \"src/utils/common\";\nimport { LINK_VALIDATION_SCHEMA } from \"src/v2/components/Editor/constants\";\nimport {\n buildArticleFullUrl,\n createArticleOptions,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils\";\nimport { getLinkPopoverPosition } from \"src/v2/components/Editor/Menu/Fixed/utils\";\nimport { validateAndFormatUrl } from \"src/v2/components/Editor/utils\";\n\nimport KbArticleDeletedModal from \"./CustomExtensions/LinkKbArticles/KbArticleDeletedModal\";\nimport KbArticleEdit from \"./CustomExtensions/LinkKbArticles/KbArticleEdit\";\nimport KbArticleView from \"./CustomExtensions/LinkKbArticles/KbArticleView\";\n\nconst LinkPopOver = ({ editor, deletedArticlesHook, containerRef }) => {\n const { view } = editor || {};\n const { from } = editor.state.selection;\n const initialTextContent = view?.state?.doc?.nodeAt(from)?.text || \"\";\n\n const [arrowPosition, setArrowPosition] = useState({ top: 0, left: 0 });\n const [popoverPosition, setPopoverPosition] = useState({ top: 0, left: 0 });\n const [isEditing, setIsEditing] = useState(false);\n const [isLinkActive, setIsLinkActive] = useState(editor?.isActive(\"link\"));\n const [linkAttributes, setLinkAttributes] = useState(\n editor?.getAttributes(\"link\")\n );\n\n const [showDeletedModal, setShowDeletedModal] = useState(false);\n\n const popoverRef = useRef(null);\n\n const { t } = useTranslation();\n const isNeetoKbArticle = linkAttributes?.[\"data-neeto-kb-article\"] === \"true\";\n\n const { data: articles = [], isLoading: isLoadingKbData } =\n useFetchKbArticles({\n searchTerm: \"\",\n reactQueryOptions: { enabled: isEditing && isNeetoKbArticle },\n });\n\n const selectOptions = createArticleOptions(articles);\n\n const handleSelectChange = (value, { setFieldValue }) => {\n const selectedOption = findBy({ value: value?.value }, selectOptions);\n\n if (selectedOption?.data?.type === \"article\") {\n setFieldValue(\"pageSelection\", value);\n }\n };\n\n const updatePopoverPosition = () => {\n if (!view) return;\n\n const { arrowPosition, popoverPosition } = getLinkPopoverPosition(\n editor,\n popoverRef\n );\n\n setPopoverPosition({\n top: parseInt(popoverPosition.top),\n left: parseInt(popoverPosition.left),\n });\n\n setArrowPosition({\n top: parseInt(arrowPosition.top),\n left: parseInt(arrowPosition.left),\n });\n };\n\n const handleUnlink = () =>\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\n\n const removePopover = () => {\n setIsEditing(false);\n setIsLinkActive(false);\n };\n\n const popoverStyle = {\n display: \"block\",\n position: \"fixed\",\n top: popoverPosition.top,\n left: popoverPosition.left,\n transform: `translateY(52px) translateX(${isEditing ? \"8px\" : \"3px\"})`,\n };\n\n const handleSubmit = ({ textContent, urlString, openInNewTab }) => {\n const formattedUrl = validateAndFormatUrl(urlString);\n if (equals(textContent, initialTextContent)) {\n editor\n .chain()\n .focus()\n .extendMarkRange(\"link\")\n .setLink({\n href: formattedUrl,\n target: openInNewTab ? \"_blank\" : \"_self\",\n })\n .run();\n\n setIsEditing(false);\n\n return;\n }\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const attrs = {\n href: formattedUrl,\n target: openInNewTab ? \"_blank\" : \"_self\",\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(textContent, [linkMark]);\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n };\n\n const handleKbArticleSubmit = ({ textContent, pageSelection }) => {\n if (!pageSelection || pageSelection === \"\") {\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const articleId = linkAttributes?.[\"data-article-id\"];\n const isDeleted = deletedArticlesHook?.isArticleDeleted(articleId);\n\n const attrs = {\n href: linkAttributes?.href,\n \"data-neeto-kb-article\": linkAttributes?.[\"data-neeto-kb-article\"],\n \"data-article-id\": articleId,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: textContent || decodeHtmlEntities(linkAttributes?.title || \"\"),\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(textContent, [linkMark]);\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n\n return;\n }\n\n const selectedOption = findBy(\n { value: pageSelection?.value },\n selectOptions\n );\n\n if (!selectedOption) return;\n\n const { data } = selectedOption;\n\n if (data?.type === \"article\") {\n const full_url = buildArticleFullUrl(data.slug);\n\n if (full_url) {\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const isDeleted = deletedArticlesHook?.isArticleDeleted(data.id);\n\n const attrs = {\n href: full_url,\n \"data-neeto-kb-article\": \"true\",\n \"data-article-id\": data.id,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: decodeHtmlEntities(data.title || \"\"),\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(\n textContent || decodeHtmlEntities(data.title || \"\"),\n [linkMark]\n );\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n }\n }\n };\n\n const handleKeyDown = event =>\n equals(event.key, \"Escape\") && setIsEditing(false);\n\n useOnClickOutside(popoverRef, removePopover, { enabled: true });\n\n useEffect(() => {\n const isActive = editor?.isActive(\"link\");\n\n setIsLinkActive(isActive);\n if (isActive) {\n updatePopoverPosition();\n const currentLinkAttributes = editor?.getAttributes(\"link\");\n\n setLinkAttributes(currentLinkAttributes);\n }\n }, [view?.state?.selection?.$from?.pos, isEditing]);\n\n const getCurrentArticleOption = () => {\n const articleId = linkAttributes?.[\"data-article-id\"];\n if (!articleId) return \"\";\n\n const currentArticleOption = findBy(\n { data: { type: \"article\", id: articleId } },\n selectOptions || []\n );\n\n if (!currentArticleOption && linkAttributes?.title) {\n return {\n label: decodeHtmlEntities(linkAttributes.title),\n value: articleId,\n };\n }\n\n return currentArticleOption || \"\";\n };\n\n const getCurrentTextContent = () => {\n const { state } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (from !== null && to !== null) {\n return state.doc.textBetween(from, to);\n }\n const { $from } = state.selection;\n\n return state.doc.textBetween($from.pos, $to.pos);\n };\n\n const renderEditingMode = () => {\n const initialValues = {\n textContent: initialTextContent,\n urlString: linkAttributes?.href || \"\",\n openInNewTab: linkAttributes?.target === \"_blank\",\n };\n\n return (\n <Form\n key={`${linkAttributes?.href}-${linkAttributes?.target}`}\n formikProps={{\n initialValues,\n onSubmit: handleSubmit,\n validationSchema: LINK_VALIDATION_SCHEMA,\n }}\n >\n {({ dirty, isSubmitting, setFieldValue, values }) => (\n <>\n <Input\n required\n data-testid=\"neeto-editor-edit-link-text-input\"\n label={t(\"neetoEditor.common.text\")}\n name=\"textContent\"\n placeholder={t(\"neetoEditor.placeholders.enterText\")}\n style={{ width: \"250px\" }}\n onKeyDown={handleKeyDown}\n />\n <Input\n autoFocus\n required\n className=\"ne-link-popover__url-input\"\n data-testid=\"neeto-editor-edit-link-url-input\"\n label={t(\"neetoEditor.common.url\")}\n name=\"urlString\"\n placeholder={t(\"neetoEditor.placeholders.url\")}\n style={{ width: \"250px\" }}\n onKeyDown={handleKeyDown}\n />\n <Checkbox\n checked={values.openInNewTab}\n className=\"ne-link-popover__checkbox\"\n label={t(\"neetoEditor.common.openInNewTab\")}\n onCheckedChange={checked => {\n setFieldValue(\"openInNewTab\", Boolean(checked));\n }}\n />\n <div className=\"ne-link-popover__edit-prompt-buttons\">\n <Button\n data-testid=\"neeto-editor-edit-link\"\n disabled={!dirty}\n label={t(\"neetoEditor.menu.link\")}\n loading={isSubmitting}\n size=\"sm\"\n type=\"submit\"\n />\n <Button\n data-testid=\"neeto-editor-edit-link-cancel\"\n label={t(\"neetoEditor.common.cancel\")}\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => setIsEditing(false)}\n />\n </div>\n </>\n )}\n </Form>\n );\n };\n\n const renderEditingModeForKbArticle = () => (\n <KbArticleEdit\n {...{\n getCurrentArticleOption,\n getCurrentTextContent,\n handleKbArticleSubmit,\n handleKeyDown,\n handleSelectChange,\n isLoadingKbData,\n linkAttributes,\n selectOptions,\n setIsEditing,\n }}\n />\n );\n\n const renderViewModeForKbArticle = () => {\n const articleId = linkAttributes?.[\"data-article-id\"];\n const isDeleted = deletedArticlesHook?.isArticleDeleted(articleId);\n\n return (\n <KbArticleView\n {...{ isDeleted, linkAttributes }}\n currentText={getCurrentTextContent()}\n onEdit={() => setIsEditing(true)}\n onDeletedClick={() => {\n removePopover();\n setShowDeletedModal(true);\n }}\n />\n );\n };\n\n const renderViewMode = () => (\n <>\n <a href={linkAttributes?.href} rel=\"noreferrer noopener\" target=\"_blank\">\n {linkAttributes?.href}\n </a>\n {\" - \"}\n <Button\n className=\"ne-link-popover__option-button\"\n data-testid=\"neeto-editor-link-popover-edit\"\n label={t(\"neetoEditor.common.edit\")}\n size=\"sm\"\n variant=\"link\"\n onClick={() => setIsEditing(true)}\n />\n <span>|</span>\n <Button\n className=\"ne-link-popover__option-button\"\n data-testid=\"neeto-editor-link-popover-unlink\"\n label={t(\"neetoEditor.common.unlink\")}\n size=\"sm\"\n variant=\"link\"\n onClick={handleUnlink}\n />\n </>\n );\n\n const renderPopoverContent = () => {\n if (isEditing) {\n return isNeetoKbArticle\n ? renderEditingModeForKbArticle()\n : renderEditingMode();\n }\n\n return isNeetoKbArticle ? renderViewModeForKbArticle() : renderViewMode();\n };\n\n return (\n <>\n {createPortal(\n isLinkActive ? (\n <>\n <div\n className=\"ne-link-arrow fade-in\"\n style={{ top: arrowPosition.top, left: arrowPosition.left }}\n />\n <div\n className=\"ne-link-popover fade-in\"\n id=\"ne-link-view-popover\"\n ref={popoverRef}\n style={popoverStyle}\n >\n {renderPopoverContent()}\n </div>\n </>\n ) : null,\n containerRef?.current ?? document.body\n )}\n <KbArticleDeletedModal\n isOpen={showDeletedModal}\n onClose={() => setShowDeletedModal(false)}\n />\n </>\n );\n};\n\nexport default LinkPopOver;\n","import {\n forwardRef,\n useImperativeHandle,\n useState,\n useRef,\n memo,\n useEffect,\n} from \"react\";\n\nimport { Label } from \"@bigbinary/neeto-atoms\";\nimport { EditorView } from \"@tiptap/pm/view\";\nimport { useEditor, EditorContent, useEditorState } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { noop, slugify } from \"neetocist\";\nimport { useFuncDebounce } from \"neetocommons/v2/react-utils\";\nimport { createPortal } from \"react-dom\";\n\nimport { useDeletedArticles } from \"hooks/reactQuery/kbArticle/useDeletedArticles\";\nimport useEditorWarnings from \"hooks/useEditorWarnings\";\nimport { EDITOR_OPTIONS, EDITOR_SIZES } from \"src/common/constants\";\nimport { removeEmptyTags } from \"src/utils\";\nimport ErrorWrapper from \"src/v2/components/Common/ErrorWrapper\";\nimport { DEFAULT_EDITOR_OPTIONS } from \"src/v2/components/Editor/constants\";\nimport {\n clipboardTextParser,\n getEditorStyles,\n handlePaste,\n setInitialPosition,\n transformPastedHTML,\n} from \"src/v2/components/Editor/utils\";\n\nimport CharacterCountWrapper from \"./CustomExtensions/CharacterCount\";\nimport useCustomExtensions from \"./CustomExtensions/hooks/useCustomExtensions\";\nimport ArticleSelector from \"./CustomExtensions/LinkKbArticles/ArticleSelector\";\nimport TableActionMenu from \"./CustomExtensions/Table/TableActionMenu\";\nimport LinkPopOver from \"./LinkPopOver\";\nimport MediaUploader from \"./MediaUploader\";\nimport Menu from \"./Menu\";\nimport MenuDynamicVariables from \"./Menu/DynamicVariables\";\nimport LinkAddPopOver from \"./Menu/Fixed/components/LinkAddPopOver\";\n\nimport Attachments from \"../Attachments\";\n\nconst Editor = (\n {\n addonCommands = [],\n addons = [],\n attachments = [],\n attachmentsConfig = {},\n autoFocus = false,\n className,\n contentClassName,\n contentWrapperClassName,\n errorWrapperClassName,\n contentAttributes = {},\n menuClassName,\n attachmentsClassName,\n isMenuIndependent = false,\n defaults = DEFAULT_EDITOR_OPTIONS,\n editorSecrets = {},\n error = null,\n extensions = [],\n hideSlashCommands = true,\n appendSuggestionsToBody = false,\n initialValue = \"\",\n isCharacterCountActive = false,\n keyboardShortcuts = [],\n label = \"\",\n mentions = [],\n menuType = \"fixed\",\n placeholder,\n required = false,\n rows = 6,\n tooltips = {},\n variables = [],\n disableTrimOnBlur = false,\n onChange = noop,\n onFocus = noop,\n onBlur = noop,\n onSubmit = noop,\n onChangeAttachments = noop,\n children,\n openImageInNewTab = true,\n openLinkInNewTab = false,\n showAssetLibrary = true,\n collaborationProvider = null,\n enableReactNodeViewOptimization = false,\n size = EDITOR_SIZES.SMALL,\n otherAttachmentProps = {},\n ...otherProps\n },\n ref\n) => {\n const [isAttachmentsUploading, setIsAttachmentsUploading] = useState(false);\n const wrapperRef = useRef(null);\n const isArticleOptActive = addons.includes(EDITOR_OPTIONS.NEETO_KB_ARTICLE);\n const isAttachmentsActive = addons.includes(EDITOR_OPTIONS.ATTACHMENTS);\n const isMediaUploaderActive =\n addons.includes(EDITOR_OPTIONS.IMAGE_UPLOAD) ||\n addons.includes(EDITOR_OPTIONS.VIDEO_UPLOAD);\n const isFixedMenuActive = menuType === \"fixed\";\n const isBubbleMenuActive = menuType === \"bubble\";\n const isSlashCommandsActive =\n !hideSlashCommands || (isBubbleMenuActive && !hideSlashCommands);\n const isPlaceholderActive = !!placeholder || isSlashCommandsActive;\n const [isAddLinkActive, setIsAddLinkActive] = useState(false);\n const [mediaUploader, setMediaUploader] = useState({\n image: false,\n video: false,\n });\n\n const [neetoKbArticleState, setNeetoKbArticleState] = useState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n });\n\n const addAttachmentsRef = useRef(null);\n\n const attachmentProps = {\n handleUploadAttachments: () =>\n addAttachmentsRef.current?.handleUploadAttachments(),\n isDisabled: isAttachmentsUploading,\n };\n\n const debouncedOnChangeHandler = useFuncDebounce(({ editor }) => {\n if (!editor.isDestroyed) onChange(editor.getHTML());\n }, 100);\n\n useEffect(() => debouncedOnChangeHandler.cancel, []);\n\n const handleBlur = props => {\n const { editor } = props;\n if (!disableTrimOnBlur) {\n const content = editor.getHTML();\n const trimmedContent = removeEmptyTags(content);\n\n if (content !== trimmedContent) onChange(trimmedContent);\n }\n onBlur(props);\n };\n\n const customExtensions = useCustomExtensions({\n placeholder,\n extensions,\n mentions,\n variables,\n isSlashCommandsActive,\n options: [...defaults, ...addons],\n addonCommands,\n onSubmit,\n keyboardShortcuts,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n openImageInNewTab,\n openLinkInNewTab,\n enableReactNodeViewOptimization,\n collaborationProvider,\n setIsNeetoKbArticleActive: setNeetoKbArticleState,\n containerRef: wrapperRef,\n appendSuggestionsToBody,\n });\n useEditorWarnings({ initialValue });\n\n const editorClasses = classnames(\"neeto-editor\", {\n \"fixed-menu-active\": isFixedMenuActive,\n \"bubble-menu-active\": isBubbleMenuActive,\n \"placeholder-active\": isPlaceholderActive,\n \"attachments-active\": isAttachmentsActive,\n \"neeto-editor-size--large\": size === EDITOR_SIZES.LARGE,\n \"neeto-editor-size--medium\": size === EDITOR_SIZES.MEDIUM,\n \"neeto-editor-size--small\": size === EDITOR_SIZES.SMALL,\n [contentClassName]: contentClassName,\n });\n\n const ariaAttributes = {\n role: \"textbox\",\n \"aria-label\": \"editor-content\",\n \"aria-multiline\": \"true\",\n \"aria-labelledby\": \"labelId\",\n \"aria-required\": required,\n \"aria-roledescription\": \"editor\",\n };\n\n const editor = useEditor({\n extensions: customExtensions,\n content: initialValue,\n injectCSS: false,\n immediatelyRender: false,\n shouldRerenderOnTransaction: false,\n autofocus: autoFocus && \"end\",\n editorProps: {\n attributes: {\n class: editorClasses,\n style: getEditorStyles({ rows }),\n \"data-testid\": \"neeto-editor-content\",\n ...ariaAttributes,\n ...contentAttributes,\n },\n clipboardTextParser,\n handlePaste,\n transformPastedHTML,\n },\n parseOptions: { preserveWhitespace: true },\n onCreate: ({ editor }) => !autoFocus && setInitialPosition(editor),\n onUpdate: debouncedOnChangeHandler,\n onFocus,\n onBlur: handleBlur,\n });\n\n useEditorState({\n editor,\n selector: () => ({\n isMediaUploaderActive,\n isLinkActive: editor?.isActive(\"link\"),\n }),\n });\n\n const deletedArticlesHook = useDeletedArticles(\n isArticleOptActive ? editor : null\n );\n\n useImperativeHandle(\n ref,\n () => ({ editor, focus: () => editor?.commands?.focus?.() }),\n [editor]\n );\n\n useEffect(() => {\n if (!editor && neetoKbArticleState.active) {\n setNeetoKbArticleState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n });\n }\n }, [editor, neetoKbArticleState.active]);\n\n useEffect(() => {\n if (!editor || !deletedArticlesHook.deletedArticleIds.size) return;\n\n editor.commands.updateDeletedArticles(\n deletedArticlesHook.deletedArticleIds\n );\n }, [editor, deletedArticlesHook.deletedArticleIds]);\n\n EditorView.prototype.updateState = function updateState(state) {\n if (!this.docView) return;\n this.updateStateInner(state, this.state.plugins !== state.plugins);\n };\n\n return (\n <div\n data-testid=\"neeto-editor-wrapper\"\n ref={wrapperRef}\n className={classnames(\"ne-editor--v2\", {\n [className]: className,\n \"ne-attachments__wrapper\": isAttachmentsActive,\n })}\n >\n {label && (\n <Label\n {...{ required }}\n className=\"mb-2\"\n data-testid={`${slugify(label)}-editor-label`}\n >\n {label}\n </Label>\n )}\n <ErrorWrapper {...{ error }} className={errorWrapperClassName}>\n <>\n {menuType !== \"none\" && (\n <Menu\n {...{\n addonCommands,\n addons,\n attachmentProps,\n defaults,\n editor,\n editorSecrets,\n mentions,\n menuType,\n neetoKbArticleState,\n openLinkInNewTab,\n showAssetLibrary,\n tooltips,\n variables,\n }}\n className={menuClassName}\n containerRef={wrapperRef}\n isIndependant={isMenuIndependent}\n setIsNeetoKbArticleActive={setNeetoKbArticleState}\n />\n )}\n {children}\n {menuType === \"none\" && (\n <div className=\"neeto-editor-fixed-menu-standalone-variables-wrapper\">\n <MenuDynamicVariables {...{ editor, variables }} standalone />\n </div>\n )}\n <EditorContent\n className={contentWrapperClassName}\n {...{ editor, ...otherProps }}\n />\n {isMediaUploaderActive && (\n <MediaUploader\n {...{ editor, mediaUploader, showAssetLibrary }}\n onClose={() => setMediaUploader({ image: false, video: false })}\n />\n )}\n {isAttachmentsActive && (\n <Attachments\n {...{ attachments }}\n config={attachmentsConfig}\n dragDropRef={wrapperRef}\n isIndependent={false}\n ref={addAttachmentsRef}\n setIsUploading={setIsAttachmentsUploading}\n className={classnames(\"ne-attachments--integrated\", {\n [attachmentsClassName]: attachmentsClassName,\n })}\n onChange={onChangeAttachments}\n {...otherAttachmentProps}\n />\n )}\n {editor?.isActive(\"link\") && (\n <LinkPopOver\n {...{ deletedArticlesHook, editor }}\n containerRef={wrapperRef}\n />\n )}\n {isAddLinkActive && (\n <LinkAddPopOver\n {...{\n editor,\n isAddLinkActive,\n openLinkInNewTab,\n setIsAddLinkActive,\n }}\n containerRef={wrapperRef}\n />\n )}\n {neetoKbArticleState.active &&\n neetoKbArticleState.cursorPos &&\n createPortal(\n <ArticleSelector\n {...{ deletedArticlesHook }}\n cursorPos={neetoKbArticleState.cursorPos}\n editor={neetoKbArticleState.editor}\n onClose={() =>\n setNeetoKbArticleState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n })\n }\n />,\n wrapperRef.current ?? document.body\n )}\n <TableActionMenu {...{ editor }} appendTo={wrapperRef} />\n {isCharacterCountActive && <CharacterCountWrapper {...{ editor }} />}\n </>\n </ErrorWrapper>\n </div>\n );\n};\n\nEditor.displayName = \"NeetoEditor\";\n\nexport default memo(forwardRef(Editor));\n"],"names":["ErrorWrapper","_ref","error","children","className","isError","isNotPresent","wrapperClasses","classnames","_defineProperty","getErrorMessage","message","is","String","Array","Object","_jsxs","_Fragment","_jsx","memo","CharacterCountWrapper","editor","characters","useEditorState","selector","_ref2","_editor$storage$chara","storage","characterCount","Extension","create","name","addOptions","types","addGlobalAttributes","options","attributes","backgroundColor","parseHTML","element","style","replace","renderHTML","concat","addCommands","setHighlightInternal","color","chain","setMark","run","unsetHighlightInternal","BulletList","configure","HTMLAttributes","itemTypeName","CalloutComponent","_findBy","node","type","attrs","Icon","findBy","CALLOUT_TYPES","icon","Megaphone","NodeViewWrapper","NodeViewContent","Node","inline","group","content","defining","draggable","addAttributes","getAttribute","tag","contentElement","svgString","ReactDOM","renderToStaticMarkup","svgContainer","document","createElement","innerHTML","svgNode","firstChild","mergeAttributes","addNodeView","ReactNodeViewRenderer","_this","setCallout","arguments","length","undefined","_attributes$type","toggleWrap","command","_ref3","tr","state","dispatch","selection","$from","calloutNode","depth","pos","after","nextNode","doc","nodeAt","insert","schema","nodes","paragraph","focus","addKeyboardShortcuts","_this2","Backspace","_this2$editor","commands","_state$selection","empty","parentOffset","currentNode","parent","size","lift","ArrowDown","_this2$editor2","_state$selection2","isAtEnd","calloutContent","currentNodeIndex","index","isLastNode","childCount","endPos","nodeSize","setTextSelection","insertContentAt","codeBlockHighlightKey","PluginKey","createLineDecoration","from","lineNumber","Decoration","widget","view","line","setAttribute","toString","lineElement","domAtPos","Element","lineHeight","window","getComputedStyle","height","getLineRanges","lines","textContent","split","currentPos","map","to","codeBlockHighlightPlugin","Plugin","key","init","DecorationSet","apply","set","mapping","getMeta","decorations","descendants","highlightedLines","lineRanges","forEach","includes","push","props","getState","SORTED_LANGUAGE_LIST","_toConsumableArray","lowlight","listLanguages","sort","LINE_NUMBER_OPTIONS","label","t","value","Menu","DropdownMenu","MenuItem","CodeBlockComponent","_node$attrs","_node$content","updateAttributes","_useState","useState","_useState2","_slicedToArray","keyword","setKeyword","_useState3","_useState4","showHighlightButton","setShowHighlightButton","_useState5","linenumbers","_useState6","showLineNumbers","setShowLineNumbers","ref","useRef","_useTranslation","useTranslation","filteredAndSortedLanguageList","filter","language","handleLanguageSelect","_editor$commands","handleContentMount","current","offsetHeight","minHeight","handleSelectionChange","useCallback","_editor$state$selecti","isCodeBlockSelected","isActive","useEffect","on","off","setMeta","handleHighlight","_editor$state$selecti2","resolve","codeBlock","codeBlockStart","start","textBeforeSelection","textBetween","startLine","selectedText","selectedLines","newSelectedLines","_","currentHighlightedLines","overlapLines","intersection","difference","union","contentEditable","buttonProps","variant","dropdownProps","ChevronDown","onClick","Input","autoFocus","placeholder","onChange","e","target","preventDefault","stopPropagation","CopyToClipboardButton","text","Button","Highlighter","tooltipProps","as","CodeBlockLowlight","extend","_this$parent","_objectSpread","call","_element$dataset$high","dataset","Number","Boolean","_attributes$highlight","_attributes$highlight2","join","addProseMirrorPlugins","_this$parent2","defaultLanguage","_regenerator","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","_regeneratorDefine2","f","p","y","G","v","a","d","bind","l","TypeError","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","pasteUnformatted","_asyncToGenerator","_callee","_context","navigator","clipboard","readText","insertContent","_x","DeletedArticleDecoration","deletedArticleIds","Set","marks","mark","articleId","has","decoration","updateDeletedArticles","updateState","EditorContainer","containerRef","appendSuggestionsToBody","addStorage","onBeforeCreate","EmojiPickerPluginKey","EmojiPicker","selectable","atom","suggestion","startOfLine","pluginKey","items","render","reactRenderer","popup","onStart","ReactRenderer","EmojiPickerMenu","tippy","theme","getReferenceClientRect","clientRect","appendTo","getSuggestionAppendTo","showOnCreate","interactive","trigger","placement","zIndex","onKeyDown","_reactRenderer$ref","onExit","destroy","Suggestion","DEFAULT_EMOJI_PRIORITIES_LIST","EMOJI_QUERY_REGEX","filterEmojiSuggestions","suggestions","frequentlyUsedEmojis","mergedEmojiList","emoji","b","aIndex","indexOf","id","bIndex","slice","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","valueOf","EmojiSuggestionMenu","_React$Component","_classCallCheck","_len","args","_key","isLoading","selectedIndex","emojiSuggestions","_yield$emojiPickerApi","data","setState","emojiPickerApi","fetch","_callee2","_context2","query","SearchIndex","search","_callee3","_context3","searchEmoji","_callee4","_context4","deleteRange","range","setEmoji","_ref5","event","isEmpty","_ref6","_ref7","selectItem","_inherits","_createClass","componentDidMount","keys","JSON","parse","localStorage","getItem","fetchEmojiData","previewPosition","searchEmojiAndSetState","componentDidUpdate","oldProps","Spinner","isNotEmpty","skins","React","Component","EmojiSuggestionPluginKey","EmojiSuggestion","renderEmoji","renderText","_ref4","_emoji$skins$","suggestionConfig","input","lastKeyCode","onUpdate","_popup$","isArrowNavigation","isNil","test","arrow","updateProps","setProps","_reactRenderer","_popup$2","_reactRenderer2","imageSkeletonContainer","classList","add","imageSkeleton","appendChild","LARGE_IMAGE_ERROR","ImagePreviewModal","previewUrl","setPreviewUrl","setIsLoading","imagePreviewRef","handleClose","useOnClickOutside","enabled","isPresent","handleKeyDown","createPortal","X","alt","src","onLoad","body","DropdownMenuList","buildImageOptions","border","showAspectRatio","AlignLeft","alignPos","optionName","AlignCenter","AlignRight","Ratio","ratio","tooltipLabel","RectangleHorizontal","RectangleVertical","Square","SquareDashed","borderToggle","Trash2","align","deleteNode","menuOptions","handleClick","position","customTarget","Ellipsis","Tooltip","prefix","aspectRatio","ImageComponent","_figureRef$current","getPos","figheight","figwidth","captionWidth","setCaptionWidth","figureRef","width","caption","editorElement","closest","maxImageWidth","offsetWidth","handleResizeStop","_event","_direction","setNodeMarkup","mergeRight","classNames","Resizable","lockAspectRatio","minWidth","onResizeStop","onResize","upload","file","url","_response$data","uploader","response","globalProps","endUserUploadedFileSizeLimitInMb","DirectUpload","blob_url","Error","_x2","findNextTextPos","foundPos","nodesBetween","nodePos","isTextblock","openImageInNewTab","isolating","_element$querySelecto","querySelector","_element$querySelecto2","_element$querySelecto3","_element$querySelecto4","_element$querySelecto5","_element$querySelecto6","wrapperDivAttrs","wrapperLinkPointerEventsStyle","heightStyle","wrapperLinkAttrs","href","rel","captionAttrs","contenteditable","setFigure","_objectWithoutProperties","_excluded","Enter","head","$head","tail","nextTextPos","ArrowUp","lineTop","coordsAtPos","caret","top","bottom","before","scrollIntoView","setSelection","Selection","near","handleDOMEvents","paste","_event$clipboardData","_event$clipboardData2","_view$state","$anchor","clipboardData","getData","hasFiles","files","_DOMParser$parseFromS","plainText","DOMParser","parseFromString","pasteText","images","image","emptyImageNode","imageNode","_view$state2","_tr","_doc","_tr2","_t","Math","random","substring","DIRECT_UPLOAD_ENDPOINT","replaceWith","console","Toastr","limit","_x3","Italic","addInputRules","addPasteRules","KeyboardShortcuts","onSubmit","shortcuts","isBlockQuoteActive","ModEnter","getHTML","ModShiftB","toggleBlockquote","LINK_MARKDOWN_INPUT_REGEX","linkInputRule","config","defaultMarkInputRule","markInputRule","InputRule","find","handler","RangeError","withTrimmedLinkPaste","plugin","handlePaste","spec","trimmedText","trim","trimmedSlice","Slice","Fragment","Link","inclusive","title","_this$parent3","getAttributes","match","_match$pop","_match$pop2","pop","MentionList","_this$props","item","prevState","nextSelectedIndex","keyDownHandlers","upHandler","downHandler","enterHandler","Tab","tabHandler","hasOwnProperty","mentionRef","createRef","prevProps","scrollHandler","wrapperRef","imageUrl","active","Avatar","user","Typography","createMentionSuggestions","mentions","_ref$query","mention","toLowerCase","hide","_popup","Mentions","Mention","setMention","_ref3$suggestion","otherConfig","OrderedList","Placeholder","excludeNodeTypes","emptyEditorClass","emptyNodeClass","slashCommandsPlaceholder","showOnlyWhenEditable","showOnlyCurrent","includeChildren","isEditable","anchor","hasAnchor","isLeaf","isExcluded","classes","placeholderText","isSlashCommandsActive","isFocused","Document","selectedTextDecoration","oldState","remove","listeners","ArrowLeft","leftArrowHandler","ArrowRight","rightArrowHandler","selectedItem","hasCommand","_this$props2","menuIndex","setActiveMenuIndex","_this$props3","hasSubItems","menuRef","_this$props4","activeMenuIndex","isCurrentMenuActive","addEventListener","keydownHandler","componentWillUnmount","removeEventListener","_this$props5","_this$props6","isLeafNode","nodeElement","_createElement","onHover","Tippy","visible","onCreate","popper","onHide","isSubmenuOpened","onShow","forwardRef","onMouseEnter","CommandsList","MENU_ITEMS","EDITOR_OPTIONS","PARAGRAPH","description","TextP","setNode","BOLD","TextBold","toggleBold","ITALIC","TextItalic","toggleItalic","UNDERLINE","Underline","toggleUnderline","H1","TextH1","level","H2","TextH2","H3","TextH3","H4","TextH4","_ref8","H5","TextH5","_ref9","LIST_ORDERED","ListNumber","_ref0","toggleOrderedList","LIST_BULLETS","ListDot","_ref1","toggleBulletList","LINK","noop","NEETO_KB_ARTICLE","File","ATTACHMENTS","Attachment","TODO_LIST","Checkbox","_ref10","toggleTaskList","IMAGE_UPLOAD","ImageUpload","VIDEO_UPLOAD","Video","BLOCKQUOTE","Blockquote","_ref11","CODE_BLOCK","CodeBlock","_ref12","toggleCodeBlock","EMOJI","Smiley","_ref13","DIVIDER","Minus","_ref14","setHorizontalRule","PASTE_UNFORMATTED","Notes","_ref15","TABLE","Column","_ref16","insertTable","rows","cols","withHeaderRow","CALLOUT","MessageSquare","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","NO_RESULT_MENU_ITEM","_ref23","imageCommand","setMediaUploader","assoc","videoCommand","linkCommand","setIsAddLinkActive","attachmentCommand","attachmentProps","handleUploadAttachments","neetoKbArticleCommand","setIsNeetoKbArticleActive","cursorPos","buildCommandItems","addonCommands","commandItems","permittedCommandItems","adddonCommandItems","CommandsPluginKey","filteredItems","fuzzySearch","role","highlightFocussedNode","resetFocussedNode","SpecialMentionPluginKey","renderLabel","_node$attrs$label","SpecialMentions","PREVIEW_CLASS_PREFIX","DEFAULT_COLUMN_WIDTH","SAVED_COLUMN_MIN_WIDTH","TABLE_ACTION_PREVIEWS","deleteRow","rect","left","right","deleteColumn","deleteTable","insertRow","insertColumn","actionPreviewKey","actionPreviewPlugin","action","meta","docChanged","selectionSet","isInTable","tableRect","selectedRect","_TABLE_ACTION_PREVIEW","cellsInRect","cellPos","tableStart","table","setActionPreview","updateColumns","colgroup","cellMinWidth","totalWidth","nextDOM","row","col","_row$child$attrs","child","colspan","colwidth","j","cssWidth","nextSibling","parentNode","removeChild","TableView","dom","alignmentSuffix","textAlign","alignmentClass","wrapper","contentDOM","update","_node$attrs2","currentAlignmentClass","ignoreMutation","mutation","contains","getTableRect","findTable","TableMap","get","getTableSize","columns","isSuggestionActive","plugins","some","pluginState","moveToCellBelow","_$from$node","TextSelection","cellDepth","cellRole","tableRole","_map$findCell","findCell","addRow","updatedMap","exitTable","afterTable","nodeAfter","Table","TiptapTable","resizable","handleWidth","View","lastColumnResizable","allowTableNodeSelection","getAlignmentFromElement","dataAlign","priority","getAttrs","alignment","parentElement","parentAlignment","fixedWidth","colgroups","firstRow","cell","_cell$attrs","span","hasWidth","tableStyle","_this$parent4","goToNextCell","ModAltT","TodoListExtension","TaskList","ModShift9","TodoItemExtension","TaskItem","splitListItem","sinkListItem","ShiftTab","liftListItem","nested","MAX_VARIABLE_NAME_DISPLAY_LENGTH","VariableComponent","_variableName$substr","extension","_getVariableDisplay","getVariableDisplay","variableName","shouldTruncate","charOpen","disabled","substr","charClose","Variable","setVariable","VideoComponent","vidheight","vidwidth","maxVideoWidth","handleResize","controls","preload","EmbedComponent","allowFullScreen","getSharedAttributes","tagName","iframe","video","videoType","getUploadAttributes","getEmbedAttributes","_element$querySelecto7","getVideoDimension","_element$querySelecto8","DEFAULT_ASPECT_RATIO","originalUrl","_iframe$querySelector","frameBorder","allow","allowfullscreen","renderEmbedHTML","renderUploadHTML","handleVideoPaste","validatedUrl","validateUrl","UnifiedVideoExtension","_figure$querySelector","_figure$querySelector2","figure","videoSrc","iframeSrc","fontWeight","setVideo","_excluded2","end","setExternalVideo","_tr$doc$nodeAt","$to","PasteRule","COMBINED_REGEX","useCustomExtensions","extensions","variables","keyboardShortcuts","openLinkInNewTab","enableReactNodeViewOptimization","collaborationProvider","customExtensions","CharacterCount","Code","CustomCommands","FigCaption","HighlightInternal","SelectionDecoration","Focus","mode","Highlight","ImageExtension","StarterKit","code","bulletList","listItem","blockquote","orderedList","italic","link","underline","listKeymap","trailingNode","undoRedo","heading","levels","buildLevelsFromOptions","safeSplitBlock","safeListKeymap","TextStyle","TableRow","TableHeader","TableCell","TEXT_COLOR","HIGHLIGHT","Color","ListItem","Callout","SlashCommands","_collaborationProvide","Collaboration","CollaborationCaret","provider","NEETO_KB_ENDPOINT","kbUrl","MODE","MODAL","SELECT","MODAL_BOTTOM_MARGIN","MODAL_LEFT_OFFSET","MODAL_TOP_OFFSET","MODAL_TRANSFORM_Y","MODAL_TRANSFORM_X","useArticleNavigation","_ref$articles","articles","articlesContainerRef","onClose","handleModalArticleSelect","searchTerm","highlightedIndex","setHighlightedIndex","container","highlightedItem","containerRect","getBoundingClientRect","itemRect","isItemAbove","isItemBelow","scrollTop","navigationHandlers","down","prev","up","keyActions","Escape","shiftKey","handleKeyboardNavigation","buildArticleFullUrl","slug","createArticleOptions","article","decodeHtmlEntities","ArticlesList","withT","onSelectArticle","_ref$highlightedIndex","ArticlePicker","_ref$mode","externalIsLoading","externalOptions","onArticleSelect","setSearchTerm","modalRef","_useFetchKbArticles","useFetchKbArticles","reactQueryOptions","_useFetchKbArticles$d","isLoadingArticles","selectOptions","articleWithUrl","full_url","_useArticleNavigation","handleSelectChange","selectedValueString","_selectedOption$data","selectedOption","modal","modalRect","modalWidth","modalHeight","maxLeft","innerWidth","maxTop","innerHeight","adjustedLeft","min","adjustedTop","assign","transform","handleClickOutside","Search","onSearch","Select","isSearchable","isDisabled","_typeof","ArticleSelector","deletedArticlesHook","handleArticleSelect","detailedArticle","linkText","isDeleted","isArticleDeleted","linkMark","linkTextWithMark","Counter","onDecrement","onDecrementHover","onIncrementHover","onIncrement","decrementLabel","incrementLabel","isDecrementDisabled","onMouseLeave","Plus","TableActionMenu","_useEditorState","_element$getBoundingC","_element$getBoundingC2","nodeDOM","DOMRect","shouldShow","BubbleMenu","offset","flip","getReferencedVirtualElement","count","addRowAfter","isHovering","addColumnAfter","KbArticleDeletedModal","isOpen","Dialog","Header","Title","Body","Footer","KbArticleEdit","linkAttributes","getCurrentTextContent","getCurrentArticleOption","handleKbArticleSubmit","isLoadingKbData","setIsEditing","initialValues","pageSelection","Form","formikProps","enableReinitialize","dirty","isSubmitting","setFieldValue","values","required","unlimitedChars","loading","KbArticleView","onEdit","onDeletedClick","currentText","BookOpen","Pencil","LinkPopOver","_containerRef$current","initialTextContent","arrowPosition","setArrowPosition","popoverPosition","setPopoverPosition","isEditing","_useState7","_useState8","isLinkActive","setIsLinkActive","_useState9","_useState0","setLinkAttributes","_useState1","_useState10","showDeletedModal","setShowDeletedModal","popoverRef","isNeetoKbArticle","updatePopoverPosition","_getLinkPopoverPositi","getLinkPopoverPosition","parseInt","handleUnlink","extendMarkRange","unsetLink","removePopover","popoverStyle","display","handleSubmit","urlString","openInNewTab","formattedUrl","validateAndFormatUrl","equals","setLink","_editor$view","getMarkType","getMarkRange","_ref5$from","_ref5$to","_editor$view2","_ref7$from","_ref7$to","_editor$view3","_ref8$from","_ref8$to","currentLinkAttributes","currentArticleOption","_ref9$from","_ref9$to","renderEditingMode","validationSchema","LINK_VALIDATION_SCHEMA","checked","onCheckedChange","renderEditingModeForKbArticle","renderViewModeForKbArticle","renderViewMode","renderPopoverContent","Editor","_wrapperRef$current","_ref$addonCommands","_ref$addons","addons","_ref$attachments","attachments","_ref$attachmentsConfi","attachmentsConfig","_ref$autoFocus","contentClassName","contentWrapperClassName","errorWrapperClassName","_ref$contentAttribute","contentAttributes","menuClassName","attachmentsClassName","_ref$isMenuIndependen","isMenuIndependent","_ref$defaults","defaults","DEFAULT_EDITOR_OPTIONS","_ref$editorSecrets","editorSecrets","_ref$error","_ref$extensions","_ref$hideSlashCommand","hideSlashCommands","_ref$appendSuggestion","_ref$initialValue","initialValue","_ref$isCharacterCount","isCharacterCountActive","_ref$keyboardShortcut","_ref$label","_ref$mentions","_ref$menuType","menuType","_ref$required","_ref$rows","_ref$tooltips","tooltips","_ref$variables","_ref$disableTrimOnBlu","disableTrimOnBlur","_ref$onChange","_ref$onFocus","onFocus","_ref$onBlur","onBlur","_ref$onSubmit","_ref$onChangeAttachme","onChangeAttachments","_ref$openImageInNewTa","_ref$openLinkInNewTab","_ref$showAssetLibrary","showAssetLibrary","_ref$collaborationPro","_ref$enableReactNodeV","_ref$size","EDITOR_SIZES","SMALL","_ref$otherAttachmentP","otherAttachmentProps","otherProps","isAttachmentsUploading","setIsAttachmentsUploading","isArticleOptActive","isAttachmentsActive","isMediaUploaderActive","isFixedMenuActive","isBubbleMenuActive","isPlaceholderActive","isAddLinkActive","mediaUploader","neetoKbArticleState","setNeetoKbArticleState","addAttachmentsRef","_addAttachmentsRef$cu","debouncedOnChangeHandler","useFuncDebounce","isDestroyed","cancel","handleBlur","trimmedContent","removeEmptyTags","useEditorWarnings","editorClasses","LARGE","MEDIUM","ariaAttributes","useEditor","injectCSS","immediatelyRender","shouldRerenderOnTransaction","autofocus","editorProps","getEditorStyles","clipboardTextParser","transformPastedHTML","parseOptions","preserveWhitespace","setInitialPosition","useDeletedArticles","useImperativeHandle","_editor$commands$focu","EditorView","docView","updateStateInner","Label","slugify","isIndependant","MenuDynamicVariables","standalone","EditorContent","MediaUploader","Attachments","dragDropRef","isIndependent","setIsUploading","LinkAddPopOver"],"mappings":"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"}
1
+ {"version":3,"file":"Editor.cjs.js","sources":["../../../app/javascript/src/v2/components/Common/ErrorWrapper.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CharacterCount/index.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/BackgroundColor/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/BulletList/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Callout/CalloutComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Callout/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/plugins.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/CodeBlockComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CodeBlock/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/CustomCommands/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/DeletedArticleDecoration/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/EditorContainer/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiPicker/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/utils.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/EmojiSuggestionMenu.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ImagePreviewModal.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/Menu.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ImageComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Image/FigCaption.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Italic/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/KeyboardShortcuts/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Link/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Link/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/MentionList.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/utils.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Mention/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/OrderedList/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Placeholder/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SelectionDecoration/ExtensionConfig.js","../../../node_modules/@popperjs/core/lib/enums.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/utils.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/Menu.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/CommandsList.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SlashCommands/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/SpecialMentions/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/actionPreviewPlugin.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/TableView.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/utils.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/TodoList/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/VariableComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Variable/ExtensionConfig.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Video/VideoComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Embeds/EmbedComponent.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Video/ExtensionConfig.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/hooks/useCustomExtensions.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/hooks/useArticleNavigation.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils.js","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticlesList.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticlePicker.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/ArticleSelector.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/Table/TableActionMenu.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleDeletedModal.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleEdit.jsx","../../../app/javascript/src/v2/components/Editor/CustomExtensions/LinkKbArticles/KbArticleView.jsx","../../../app/javascript/src/v2/components/Editor/LinkPopOver.jsx","../../../app/javascript/src/v2/components/Editor/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { is } from \"ramda\";\n\nconst ErrorWrapper = ({ error, children, className }) => {\n const isError = !isNotPresent(error);\n const wrapperClasses = classnames({\n \"neeto-editor-error\": isError,\n [className]: className,\n });\n\n const getErrorMessage = () => {\n if (!error) return null;\n\n let message;\n\n if (is(String, error)) {\n message = error;\n } else if (is(Array, error)) {\n message = error[0];\n } else if (is(Object, error)) {\n message = error.message;\n }\n\n if (isNotPresent(message)) return null;\n\n return message;\n };\n\n return (\n <>\n <div className={wrapperClasses}>{children}</div>\n {isError && (\n <p\n className=\"neeto-ui-input__error\"\n data-testid=\"neeto-editor-error-text\"\n >\n {getErrorMessage()}\n </p>\n )}\n </>\n );\n};\n\nexport default memo(ErrorWrapper);\n","import { useEditorState } from \"@tiptap/react\";\n\nconst CharacterCountWrapper = ({ editor, children }) => {\n const characters = useEditorState({\n editor,\n selector: ({ editor }) => editor?.storage.characterCount.characters() ?? 0,\n });\n\n if (!editor) return children;\n\n return (\n <>\n {children}\n <p\n className=\"neeto-editor-character-count\"\n data-testid=\"neeto-editor-character-count\"\n >\n {characters} characters\n </p>\n </>\n );\n};\n\nexport default CharacterCountWrapper;\n","import { Extension } from \"@tiptap/core\";\nimport \"@tiptap/extension-text-style\";\n\nexport default Extension.create({\n name: \"HighlightInternal\",\n\n addOptions() {\n return { types: [\"textStyle\"] };\n },\n\n addGlobalAttributes() {\n return [\n {\n types: this.options.types,\n attributes: {\n backgroundColor: {\n default: null,\n parseHTML: element =>\n element.style.backgroundColor.replace(/['\"]+/g, \"\"),\n renderHTML: attributes => {\n if (!attributes.backgroundColor) {\n return {};\n }\n\n return {\n style: `background-color: ${attributes.backgroundColor}`,\n };\n },\n },\n },\n },\n ];\n },\n\n addCommands() {\n return {\n setHighlightInternal:\n color =>\n ({ chain }) =>\n chain().setMark(\"textStyle\", { backgroundColor: color }).run(),\n unsetHighlightInternal:\n () =>\n ({ chain }) =>\n chain().setMark(\"textStyle\", { backgroundColor: null }).run(),\n };\n },\n});\n","import { BulletList } from \"@tiptap/extension-list\";\n\nexport default BulletList.configure({\n HTMLAttributes: { class: \"bulletList\" },\n itemTypeName: \"listItem\",\n});\n","import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport { findBy } from \"neetocist\";\nimport { Megaphone } from \"neetoicons/misc\";\n\nimport { CALLOUT_TYPES } from \"src/v2/components/Editor/Menu/Fixed/components/CalloutDropdown/constants\";\n\nconst CalloutComponent = ({ node }) => {\n const { type } = node.attrs;\n const Icon = findBy({ type }, CALLOUT_TYPES)?.icon || Megaphone;\n\n return (\n <NodeViewWrapper\n className={`neeto-editor__callout neeto-editor__callout--${type} group`}\n data-emoji={type}\n >\n <div className=\"callout-container\">\n <span className=\"callout-emoji\">\n <Icon />\n </span>\n <NodeViewContent\n className=\"callout-content\"\n data-testid=\"callout-content\"\n />\n </div>\n </NodeViewWrapper>\n );\n};\n\nexport default CalloutComponent;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { findBy } from \"neetocist\";\nimport { Megaphone } from \"neetoicons/misc\";\nimport ReactDOM from \"react-dom/server\";\n\nimport { CALLOUT_TYPES } from \"src/v2/components/Editor/Menu/Fixed/components/CalloutDropdown/constants\";\n\nimport CalloutComponent from \"./CalloutComponent\";\n\nexport default Node.create({\n name: \"callout\",\n\n inline: false,\n\n group: \"block\",\n\n content: \"block+\",\n\n defining: true,\n\n draggable: true,\n\n addAttributes() {\n return {\n type: {\n default: \"default\",\n parseHTML: element => element.getAttribute(\"data-type\") || \"default\",\n renderHTML: attributes => ({ \"data-type\": attributes.type }),\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"div[data-emoji]\", contentElement: \".callout-content\" }];\n },\n\n renderHTML({ HTMLAttributes, node }) {\n const { type } = node.attrs;\n const Icon = findBy({ type }, CALLOUT_TYPES)?.icon || Megaphone;\n // eslint-disable-next-line react/jsx-filename-extension\n const svgString = ReactDOM.renderToStaticMarkup(<Icon />);\n\n const svgContainer = document.createElement(\"div\");\n svgContainer.innerHTML = svgString;\n const svgNode = svgContainer.firstChild;\n\n return [\n \"div\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\n class: `neeto-editor__callout neeto-editor__callout--${type}`,\n \"data-emoji\": type,\n }),\n [\n \"div\",\n { class: \"callout-container\" },\n [\"span\", { class: \"callout-emoji\" }, svgNode],\n [\"div\", { class: \"callout-content\" }, 0],\n ],\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(CalloutComponent);\n },\n\n addCommands() {\n return {\n setCallout:\n (attributes = {}) =>\n ({ chain }) => {\n const { type = \"default\" } = attributes;\n\n return chain()\n .toggleWrap(this.name, { type })\n .command(({ tr, state, dispatch }) => {\n const { selection } = state;\n const { $from } = selection;\n\n const calloutNode = $from.node($from.depth - 1);\n\n if (calloutNode?.type.name === \"callout\") {\n const pos = $from.after($from.depth - 1);\n const nextNode = state.doc.nodeAt(pos);\n\n if (!nextNode || nextNode.type.name !== \"paragraph\") {\n tr.insert(pos, state.schema.nodes.paragraph.create());\n }\n }\n\n if (dispatch) {\n dispatch(tr);\n }\n\n return true;\n })\n .focus()\n .run();\n },\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Backspace: () => {\n const { state, commands } = this.editor;\n const { $from, empty } = state.selection;\n\n if (!empty) return false;\n\n if ($from.parentOffset === 0) {\n const currentNode = $from.parent;\n\n if (currentNode.content.size === 0) {\n return commands.lift(this.name);\n }\n\n const calloutNode = $from.node($from.depth - 1);\n if (calloutNode?.type.name === \"callout\") {\n return commands.lift(this.name);\n }\n }\n\n return false;\n },\n ArrowDown: () => {\n const { state, commands } = this.editor;\n const { $from, empty } = state.selection;\n\n if (!empty) return false;\n\n const currentNode = $from.parent;\n const calloutNode = $from.node($from.depth - 1);\n\n if (calloutNode?.type.name === \"callout\") {\n const isAtEnd = $from.parentOffset === currentNode.content.size;\n\n const calloutContent = calloutNode.content;\n const currentNodeIndex = $from.index($from.depth - 1);\n const isLastNode = currentNodeIndex === calloutContent.childCount - 1;\n\n if (isAtEnd && isLastNode) {\n const pos = $from.after($from.depth - 1);\n\n if (pos < state.doc.content.size) {\n const nextNode = state.doc.nodeAt(pos);\n if (nextNode) {\n const endPos = pos + nextNode.nodeSize - 1;\n\n return commands.setTextSelection(endPos);\n }\n\n return commands.setTextSelection(pos);\n }\n\n return (\n commands.insertContentAt(pos, { type: \"paragraph\" }) &&\n commands.setTextSelection(pos + 1)\n );\n }\n }\n\n return false;\n },\n };\n },\n});\n","/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport { Plugin, PluginKey } from \"prosemirror-state\";\nimport { Decoration, DecorationSet } from \"prosemirror-view\";\n\nconst codeBlockHighlightKey = new PluginKey(\"codeBlockHighlight\");\n\nfunction createLineDecoration(from, lineNumber) {\n return Decoration.widget(from, view => {\n const line = document.createElement(\"div\");\n line.className = \"highlighted-line\";\n line.setAttribute(\"data-line-number\", lineNumber.toString());\n\n // Set the height of the highlight to match the line height\n const lineElement = view.domAtPos(from).node;\n if (lineElement instanceof Element) {\n const lineHeight = window.getComputedStyle(lineElement).lineHeight;\n line.style.height = lineHeight;\n }\n\n return line;\n });\n}\n\nfunction getLineRanges(node, pos) {\n const lines = node.textContent.split(\"\\n\");\n let currentPos = pos + 1; // +1 to skip the opening tag of the code block\n\n return lines.map((line, index) => {\n const from = currentPos;\n const to = from + line.length; // +1 for newline, except last line\n currentPos = to + (index < lines.length - 1 ? 1 : 0);\n\n return { from, to, lineNumber: index + 1 };\n });\n}\n\nconst codeBlockHighlightPlugin = new Plugin({\n key: codeBlockHighlightKey,\n state: {\n init() {\n return DecorationSet.empty;\n },\n apply(tr, set) {\n set = set.map(tr.mapping, tr.doc);\n\n if (tr.getMeta(codeBlockHighlightKey)) {\n const decorations = [];\n tr.doc.descendants((node, pos) => {\n if (node.type.name !== \"codeBlock\") return;\n\n const highlightedLines = node.attrs.highlightedLines || [];\n const lineRanges = getLineRanges(node, pos);\n\n lineRanges.forEach(({ from, lineNumber }) => {\n if (highlightedLines.includes(lineNumber)) {\n decorations.push(createLineDecoration(from, lineNumber));\n }\n });\n });\n\n return DecorationSet.create(tr.doc, decorations);\n }\n\n return set;\n },\n },\n props: {\n decorations(state) {\n return this.getState(state);\n },\n },\n});\n\nexport { codeBlockHighlightPlugin, codeBlockHighlightKey };\n","import { t } from \"i18next\";\nimport { lowlight } from \"lowlight\";\n\nexport const SORTED_LANGUAGE_LIST = [\n ...lowlight.listLanguages(),\n \"html\",\n].sort();\n\nexport const LINE_NUMBER_OPTIONS = [\n { label: t(\"neetoEditor.codeblock.showLineNumbers\"), value: \"true\" },\n { label: t(\"neetoEditor.codeblock.hideLineNumbers\"), value: \"false\" },\n];\n","import { useRef, useState, useCallback, useEffect } from \"react\";\n\nimport { Button, DropdownMenu, Input } from \"@bigbinary/neeto-atoms\";\nimport { NodeViewWrapper, NodeViewContent } from \"@tiptap/react\";\nimport { ChevronDown, Highlighter } from \"lucide-react\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\nimport { difference, intersection, union } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n LINE_NUMBER_OPTIONS,\n SORTED_LANGUAGE_LIST,\n} from \"src/v2/components/Editor/CustomExtensions/CodeBlock/constants\";\nimport { codeBlockHighlightKey } from \"src/v2/components/Editor/CustomExtensions/CodeBlock/plugins\";\n\nconst { Menu, MenuItem } = DropdownMenu;\n\nconst CodeBlockComponent = ({ node, editor, updateAttributes }) => {\n const [keyword, setKeyword] = useState(\"\");\n const [showHighlightButton, setShowHighlightButton] = useState(false);\n const [showLineNumbers, setShowLineNumbers] = useState(\n node.attrs.linenumbers\n );\n const ref = useRef();\n\n const { t } = useTranslation();\n\n const filteredAndSortedLanguageList = SORTED_LANGUAGE_LIST.filter(language =>\n language.includes(keyword)\n );\n\n const handleLanguageSelect = language => {\n updateAttributes({ language });\n setKeyword(\"\");\n editor?.commands?.focus();\n };\n\n const handleContentMount = node => {\n if (ref.current && node?.offsetHeight) {\n ref.current.style.minHeight = `${node.offsetHeight}px`;\n }\n };\n\n const handleSelectionChange = useCallback(() => {\n const { from, to } = editor.state.selection;\n const isCodeBlockSelected = editor.isActive(\"codeBlock\");\n setShowHighlightButton(isCodeBlockSelected && from !== to);\n }, [editor]);\n\n useEffect(() => {\n editor.on(\"selectionUpdate\", handleSelectionChange);\n\n return () => {\n editor.off(\"selectionUpdate\", handleSelectionChange);\n };\n }, [editor, handleSelectionChange]);\n\n useEffect(() => {\n editor.view.dispatch(editor.state.tr.setMeta(codeBlockHighlightKey, true));\n }, []);\n\n const handleHighlight = () => {\n const { from, to } = editor.state.selection;\n const $from = editor.state.doc.resolve(from);\n\n const codeBlock = $from.node($from.depth);\n const codeBlockStart = $from.start($from.depth);\n\n const textBeforeSelection = codeBlock.textBetween(0, from - codeBlockStart);\n const startLine = textBeforeSelection.split(\"\\n\").length;\n const selectedText = codeBlock.textBetween(\n from - codeBlockStart,\n to - codeBlockStart\n );\n const selectedLines = selectedText.split(\"\\n\");\n\n const newSelectedLines = selectedLines.map((_, index) => startLine + index);\n const currentHighlightedLines = codeBlock.attrs.highlightedLines || [];\n\n const overlapLines = intersection(\n currentHighlightedLines,\n newSelectedLines\n );\n\n let highlightedLines;\n\n if (overlapLines.length === newSelectedLines.length) {\n highlightedLines = difference(currentHighlightedLines, newSelectedLines);\n } else {\n highlightedLines = union(currentHighlightedLines, newSelectedLines);\n }\n\n editor.commands.updateAttributes(codeBlock.type, { highlightedLines });\n editor.view.dispatch(editor.state.tr.setMeta(codeBlockHighlightKey, true));\n };\n\n return (\n <NodeViewWrapper\n className=\"ne-codeblock-nodeview-wrapper ne-codeblock--v2\"\n data-testid=\"neeto-editor-code-block\"\n >\n <div {...{ ref }}>\n <pre ref={handleContentMount}>\n <div\n className=\"neeto-editor-codeblock-options\"\n contentEditable={false}\n >\n <DropdownMenu\n buttonProps={{ size: \"sm\", variant: \"secondary\" }}\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n icon={ChevronDown}\n label={\n showLineNumbers === \"true\"\n ? LINE_NUMBER_OPTIONS[0].label\n : LINE_NUMBER_OPTIONS[1].label\n }\n >\n <Menu className=\"neeto-editor-codeblock-options__menu\">\n {LINE_NUMBER_OPTIONS.map(({ label, value }) => (\n <MenuItem\n key={label}\n onClick={() => {\n setShowLineNumbers(value);\n updateAttributes({ linenumbers: value });\n }}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n </DropdownMenu>\n <DropdownMenu\n buttonProps={{ size: \"sm\", variant: \"secondary\" }}\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n icon={ChevronDown}\n label={node.attrs?.language || t(\"neetoEditor.common.auto\")}\n >\n <Input\n autoFocus\n className=\"neeto-editor-codeblock-options__input\"\n placeholder={t(\"neetoEditor.placeholders.searchLanguages\")}\n size=\"small\"\n value={keyword}\n onChange={e => setKeyword(e.target.value)}\n onClick={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n <Menu className=\"neeto-editor-codeblock-options__menu\">\n {filteredAndSortedLanguageList.map(language => (\n <MenuItem\n key={language}\n onClick={() => handleLanguageSelect(language)}\n >\n {language || t(\"neetoEditor.common.auto\")}\n </MenuItem>\n ))}\n </Menu>\n </DropdownMenu>\n <CopyToClipboardButton\n size=\"sm\"\n value={node?.content?.content[0]?.text}\n variant=\"ghost\"\n />\n {showHighlightButton && (\n <Button\n icon={Highlighter}\n size=\"sm\"\n tooltipProps={{ content: t(\"neetoEditor.menu.highlight\") }}\n variant=\"secondary\"\n onClick={handleHighlight}\n />\n )}\n </div>\n <NodeViewContent as=\"code\" />\n </pre>\n </div>\n </NodeViewWrapper>\n );\n};\n\nexport default CodeBlockComponent;\n","import CodeBlockLowlight from \"@tiptap/extension-code-block-lowlight\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport { lowlight } from \"lowlight\";\n\nimport { codeBlockHighlightPlugin } from \"src/v2/components/Editor/CustomExtensions/CodeBlock/plugins\";\n\nimport CodeBlockComponent from \"./CodeBlockComponent\";\n\nexport default CodeBlockLowlight.extend({\n addAttributes() {\n return {\n ...this.parent?.(),\n highlightedLines: {\n default: [],\n parseHTML: element =>\n element.dataset.highlightedLines\n ?.split(\",\")\n .map(Number)\n .filter(Boolean) || [],\n renderHTML: attributes => ({\n \"data-highlighted-lines\":\n attributes.highlightedLines?.join(\",\") ?? \"\",\n }),\n },\n linenumbers: {\n default: \"false\",\n parseHTML: element => element.dataset.linenumbers || \"false\",\n renderHTML: attributes =>\n attributes.linenumbers === \"true\"\n ? { \"data-linenumbers\": \"true\" }\n : {},\n },\n };\n },\n addProseMirrorPlugins() {\n return [...(this.parent?.() || []), codeBlockHighlightPlugin];\n },\n addNodeView() {\n return ReactNodeViewRenderer(CodeBlockComponent);\n },\n}).configure({ lowlight, defaultLanguage: \"plaintext\" });\n","import { Extension } from \"@tiptap/core\";\n\nexport default Extension.create({\n name: \"paste-unformatted\",\n\n addCommands() {\n return {\n pasteUnformatted:\n () =>\n async ({ editor }) => {\n const text = await navigator.clipboard.readText();\n editor.commands.insertContent(text);\n },\n };\n },\n});\n","import { Extension } from \"@tiptap/core\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nconst DeletedArticleDecoration = Extension.create({\n name: \"deletedArticleDecoration\",\n\n addOptions() {\n return { deletedArticleIds: new Set() };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n key: new PluginKey(\"deletedArticleDecoration\"),\n props: {\n decorations: ({ doc }) => {\n const decorations = [];\n\n doc.descendants((node, pos) => {\n if (!node.marks) return;\n\n node.marks.forEach(mark => {\n if (\n !(\n mark.type.name === \"link\" &&\n mark.attrs[\"data-neeto-kb-article\"] === \"true\" &&\n mark.attrs[\"data-article-id\"]\n )\n ) {\n return;\n }\n\n const articleId = mark.attrs[\"data-article-id\"];\n if (!this.options.deletedArticleIds.has(articleId)) return;\n\n const decoration = Decoration.inline(pos, pos + node.nodeSize, {\n \"data-article-deleted\": \"true\",\n class: \"neeto-kb-article-deleted\",\n });\n decorations.push(decoration);\n });\n });\n\n return DecorationSet.create(doc, decorations);\n },\n },\n }),\n ];\n },\n\n addCommands() {\n return {\n updateDeletedArticles: deletedArticleIds => () => {\n this.options.deletedArticleIds = deletedArticleIds;\n this.editor.view.updateState(this.editor.state);\n\n return true;\n },\n };\n },\n});\n\nexport default DeletedArticleDecoration;\n","import { Extension } from \"@tiptap/core\";\n\nconst EditorContainer = Extension.create({\n name: \"editorContainer\",\n\n addOptions() {\n return { containerRef: null, appendSuggestionsToBody: false };\n },\n\n addStorage() {\n return { containerRef: null, appendSuggestionsToBody: false };\n },\n\n onBeforeCreate() {\n this.storage.containerRef = this.options.containerRef;\n this.storage.appendSuggestionsToBody = this.options.appendSuggestionsToBody;\n },\n});\n\nexport default EditorContainer;\n","import { Node } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport EmojiPickerMenu from \"./EmojiPickerMenu\";\n\nconst EmojiPickerPluginKey = new PluginKey(\"emoji-picker\");\n\nconst EmojiPicker = Node.create({\n name: \"emojiPicker\",\n\n group: \"inline\",\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addOptions() {\n return {\n suggestion: {\n char: \"::\",\n startOfLine: false,\n pluginKey: EmojiPickerPluginKey,\n items: () => [],\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart(props) {\n reactRenderer = new ReactRenderer(EmojiPickerMenu, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n });\n },\n\n onKeyDown(props) {\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n reactRenderer.destroy();\n },\n };\n },\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [Suggestion({ editor: this.editor, ...this.options.suggestion })];\n },\n});\n\nexport default EmojiPicker;\n","export const DEFAULT_EMOJI_PRIORITIES_LIST = [\n \"+1\",\n \"-1\",\n \"heart\",\n \"heart_eyes\",\n \"tada\",\n \"partying_face\",\n \"joy\",\n \"sob\",\n \"white_frowning_face\",\n \"rocket\",\n \"eyes\",\n \"raised_hands\",\n \"open_mouth\",\n];\n\nexport const EMOJI_QUERY_REGEX = /^[a-z0-9_+-]+$/i;\n","import { DEFAULT_EMOJI_PRIORITIES_LIST } from \"./constants\";\n\nexport const filterEmojiSuggestions = (suggestions, frequentlyUsedEmojis) => {\n const mergedEmojiList = DEFAULT_EMOJI_PRIORITIES_LIST.concat(\n frequentlyUsedEmojis.filter(\n emoji => !DEFAULT_EMOJI_PRIORITIES_LIST.includes(emoji)\n )\n );\n\n return suggestions\n .sort((a, b) => {\n const aIndex = mergedEmojiList.indexOf(a.id);\n const bIndex = mergedEmojiList.indexOf(b.id);\n if (aIndex === -1 && bIndex === -1) {\n return 0;\n } else if (aIndex === -1) {\n return 1;\n } else if (bIndex === -1) {\n return -1;\n }\n\n return aIndex - bIndex;\n })\n .slice(0, 5);\n};\n","import React from \"react\";\n\nimport { Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { init, SearchIndex } from \"emoji-mart\";\nimport { isNotEmpty } from \"neetocist\";\nimport { isEmpty } from \"ramda\";\n\nimport emojiPickerApi from \"apis/emoji_picker\";\nimport { filterEmojiSuggestions } from \"src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/utils\";\n\nclass EmojiSuggestionMenu extends React.Component {\n state = {\n isLoading: false,\n selectedIndex: 0,\n emojiSuggestions: [],\n frequentlyUsedEmojis: {},\n };\n\n componentDidMount() {\n this.setState({\n frequentlyUsedEmojis: Object.keys(\n // eslint-disable-next-line @bigbinary/neeto/no-local-storage\n JSON.parse(localStorage.getItem(\"emoji-mart.frequently\") || \"{}\")\n ),\n });\n\n init({\n data: this.fetchEmojiData,\n theme: \"light\",\n previewPosition: \"none\",\n });\n this.searchEmojiAndSetState();\n }\n\n componentDidUpdate(oldProps) {\n if (this.props.query !== oldProps.query) {\n this.searchEmojiAndSetState();\n }\n }\n\n fetchEmojiData = async () => {\n this.setState({ isLoading: true });\n try {\n const { data } = await emojiPickerApi.fetch();\n this.setState({ isLoading: false });\n\n return data;\n } catch {\n this.setState({ isLoading: false });\n\n return {};\n }\n };\n\n // eslint-disable-next-line require-await\n searchEmoji = async () =>\n this.props.query ? SearchIndex.search(this.props.query) : [];\n\n searchEmojiAndSetState = async () => {\n try {\n const suggestions = await this.searchEmoji();\n const frequentlyUsedEmojis = this.state.frequentlyUsedEmojis;\n this.setState({\n emojiSuggestions: filterEmojiSuggestions(\n suggestions,\n frequentlyUsedEmojis\n ),\n });\n } catch {\n this.setState({ emojiSuggestions: [] });\n }\n };\n\n setEditorState = async () => {\n const suggestions = await this.searchEmoji();\n this.props.editor\n .chain()\n .focus()\n .deleteRange(this.props.range)\n .setEmoji(suggestions[0])\n .run();\n };\n\n onKeyDown = ({ event }) => {\n if (isEmpty(this.state.emojiSuggestions)) {\n return false;\n }\n\n if (event.key === \"ArrowLeft\" || event.key === \"ArrowDown\") {\n this.setState(({ selectedIndex, emojiSuggestions }) => ({\n selectedIndex:\n (selectedIndex + emojiSuggestions.length - 1) %\n emojiSuggestions.length,\n }));\n\n return true;\n }\n\n if (event.key === \"ArrowRight\" || event.key === \"ArrowUp\") {\n this.setState(({ selectedIndex, emojiSuggestions }) => ({\n selectedIndex: (selectedIndex + 1) % emojiSuggestions.length,\n }));\n\n return true;\n }\n\n if (event.key === \"Enter\") {\n this.selectItem(this.state.selectedIndex);\n\n return true;\n }\n\n if (event.key === \"Escape\") {\n this.props.editor.chain().focus().insertContent(\" \").run();\n\n return true;\n }\n\n return false;\n };\n\n selectItem = index => {\n this.props.editor\n .chain()\n .focus()\n .deleteRange(this.props.range)\n .setEmoji(this.state.emojiSuggestions[index])\n .run();\n };\n\n render() {\n if (isEmpty(this.state.emojiSuggestions)) {\n return null;\n }\n\n return (\n <div className=\"neeto-editor-emoji-suggestion\">\n {this.state.isLoading && <Spinner />}\n {!this.state.isLoading &&\n (isNotEmpty(this.state.emojiSuggestions) ? (\n this.state.emojiSuggestions.map((emoji, index) => (\n <div\n data-testid={`neeto-editor-emoji-suggestion-${emoji.id}`}\n key={emoji.id}\n className={classnames(\"neeto-editor-emoji-suggestion__item\", {\n \"neeto-editor-emoji-suggestion__item--selected\":\n index === this.state.selectedIndex,\n })}\n onClick={() => this.selectItem(index)}\n >\n {emoji.skins[0].native}\n </div>\n ))\n ) : (\n <p>No results</p>\n ))}\n </div>\n );\n }\n}\n\nexport default EmojiSuggestionMenu;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport { isNil } from \"ramda\";\nimport tippy from \"tippy.js\";\n\nimport { EMOJI_QUERY_REGEX } from \"src/v2/components/Editor/CustomExtensions/Emoji/EmojiSuggestion/constants\";\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport EmojiSuggestionMenu from \"./EmojiSuggestionMenu\";\n\nconst EmojiSuggestionPluginKey = new PluginKey(\"emoji-suggestion\");\nconst EmojiSuggestion = Node.create({\n name: \"emojiSuggestion\",\n\n group: \"inline\",\n\n inline: true,\n\n selectable: false,\n\n atom: true,\n\n addOptions() {\n return {\n HTMLAttributes: { class: \"neeto-editor-emoji\" },\n renderEmoji({ node }) {\n return node.attrs.label;\n },\n suggestion: {},\n };\n },\n\n addAttributes() {\n return {\n label: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-label\"),\n renderHTML: attributes => {\n if (!attributes.label) {\n return {};\n }\n\n return { \"data-label\": attributes.label };\n },\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"span[data-emoji]\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-emoji\": \"\" },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n this.options.renderEmoji({ node }),\n ];\n },\n\n renderText({ node }) {\n return this.options.renderEmoji({ node });\n },\n\n addCommands() {\n return {\n setEmoji:\n emoji =>\n ({ chain }) =>\n chain()\n .focus()\n .insertContent([\n {\n type: this.name,\n attrs: {\n label: emoji?.native || emoji?.skins[0]?.native || \"\",\n },\n },\n { type: \"text\", text: \" \" },\n ])\n .run(),\n };\n },\n\n addProseMirrorPlugins() {\n return [Suggestion({ editor: this.editor, ...this.options.suggestion })];\n },\n});\n\nconst suggestionConfig = {\n char: \":\",\n startOfLine: false,\n pluginKey: EmojiSuggestionPluginKey,\n command: ({ editor, range, props }) => {\n editor.chain().focus().deleteRange(range).setEmoji(props).run();\n },\n\n items: () => [],\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart(props) {\n if (props.editor.view.input.lastKeyCode === 37) {\n reactRenderer = null;\n popup = null;\n }\n },\n\n onUpdate(props) {\n const isArrowNavigation =\n props.editor.view.input.lastKeyCode === 39 ||\n props.editor.view.input.lastKeyCode === 37;\n\n if (\n isNil(reactRenderer) &&\n !isArrowNavigation &&\n props.query.length === 1 &&\n EMOJI_QUERY_REGEX.test(props.query)\n ) {\n reactRenderer = new ReactRenderer(EmojiSuggestionMenu, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"neeto-editor-emoji-suggestion-tippy\",\n arrow: false,\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"top-start\",\n zIndex: 99999,\n });\n }\n reactRenderer && reactRenderer.updateProps(props);\n\n !isNil(popup) &&\n popup[0]?.setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n return reactRenderer?.ref?.onKeyDown(props);\n },\n\n onExit() {\n !isNil(popup) && popup[0]?.destroy();\n reactRenderer?.destroy();\n reactRenderer = null;\n },\n };\n },\n};\n\nexport default EmojiSuggestion.configure({ suggestion: suggestionConfig });\n","const imageSkeletonContainer = document.createElement(\"div\");\nimageSkeletonContainer.classList.add(\"neeto-editor-image__skeleton\");\n\nconst imageSkeleton = document.createElement(\"div\");\nimageSkeleton.classList.add(\"skeleton\");\n\nimageSkeletonContainer.appendChild(imageSkeleton);\n\nexport const IMAGE_PLACEHOLDER = imageSkeletonContainer;\n\nexport const LARGE_IMAGE_ERROR = \"IMAGE_SIZE_LARGER\";\n","import { useEffect, useRef, useState } from \"react\";\n\nimport { Button, Spinner } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { X } from \"lucide-react\";\nimport { isPresent } from \"neetocist\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\nimport { createPortal } from \"react-dom\";\n\nconst ImagePreviewModal = ({ previewUrl, setPreviewUrl }) => {\n const [isLoading, setIsLoading] = useState(true);\n\n const imagePreviewRef = useRef(null);\n\n const handleClose = () => {\n setIsLoading(true);\n setPreviewUrl(null);\n };\n\n useOnClickOutside(imagePreviewRef, handleClose, {\n enabled: isPresent(previewUrl),\n });\n\n useEffect(() => {\n if (!previewUrl || !imagePreviewRef.current) return;\n\n imagePreviewRef.current.setAttribute(\"tabindex\", \"-1\");\n imagePreviewRef.current.focus();\n }, [previewUrl]);\n\n const handleKeyDown = e => {\n e.stopPropagation();\n e.key === \"Escape\" && handleClose();\n };\n\n if (!isPresent(previewUrl)) return null;\n\n return createPortal(\n <div className=\"ne-image-preview-wrapper active\">\n {isLoading && <Spinner className=\"ne-image-preview-wrapper__spinner\" />}\n <div\n className={classnames(\"ne-image-preview\", {\n \"image-loaded\": !isLoading,\n })}\n >\n {!isLoading && (\n <div className=\"close-button\">\n <Button icon={X} variant=\"secondary\" onClick={handleClose} />\n </div>\n )}\n <img\n alt=\"Preview\"\n ref={imagePreviewRef}\n src={previewUrl}\n onKeyDown={handleKeyDown}\n onLoad={() => setIsLoading(false)}\n />\n </div>\n </div>,\n document.body\n );\n};\n\nexport default ImagePreviewModal;\n","import { Button, DropdownMenu, Tooltip } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport {\n AlignCenter,\n AlignLeft,\n AlignRight,\n ChevronDown,\n Ellipsis,\n Ratio,\n RectangleHorizontal,\n RectangleVertical,\n Square,\n SquareDashed,\n Trash2,\n} from \"lucide-react\";\n\nconst { Menu: DropdownMenuList, MenuItem } = DropdownMenu;\n\nconst buildImageOptions = (border, showAspectRatio) => {\n const options = [\n {\n Icon: AlignLeft,\n type: \"button\",\n alignPos: \"left\",\n optionName: t(\"neetoEditor.menu.alignLeft\"),\n },\n {\n Icon: AlignCenter,\n type: \"button\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.alignCenter\"),\n },\n {\n Icon: AlignRight,\n type: \"button\",\n alignPos: \"right\",\n optionName: t(\"neetoEditor.menu.alignRight\"),\n },\n ];\n\n if (showAspectRatio) {\n options.push({\n Icon: Ratio,\n type: \"dropdown\",\n alignPos: \"center\",\n optionName: t(\"neetoEditor.menu.aspectRatio\"),\n items: [\n { ratio: \"16/9\", tooltipLabel: \"16/9\", icon: RectangleHorizontal },\n { ratio: \"9/16\", tooltipLabel: \"9/16\", icon: RectangleVertical },\n { ratio: \"4/3\", tooltipLabel: \"4/3\", icon: RectangleHorizontal },\n { ratio: \"3/2\", tooltipLabel: \"3/2\", icon: RectangleHorizontal },\n { ratio: \"1/1\", tooltipLabel: \"1/1\", icon: Square },\n ],\n });\n }\n\n options.push(\n {\n Icon: border ? SquareDashed : Square,\n type: \"button\",\n alignPos: \"center\",\n borderToggle: true,\n optionName: border\n ? t(\"neetoEditor.menu.removeBorder\")\n : t(\"neetoEditor.menu.addBorder\"),\n },\n {\n Icon: Trash2,\n type: \"button\",\n optionName: t(\"neetoEditor.menu.delete\"),\n }\n );\n\n return options;\n};\n\nconst Menu = ({\n align,\n border,\n editor,\n updateAttributes,\n deleteNode,\n showAspectRatio,\n}) => {\n const menuOptions = buildImageOptions(border, showAspectRatio);\n\n const handleClick = (alignPos, borderToggle) => {\n if (borderToggle) {\n updateAttributes({ border: !border });\n } else if (alignPos) {\n updateAttributes({ align: alignPos });\n } else {\n deleteNode();\n }\n editor.commands.focus();\n };\n\n return (\n <DropdownMenu\n position=\"top-end\"\n customTarget={\n <Button\n className=\"neeto-editor__image-menu-btn\"\n icon={Ellipsis}\n size=\"lg\"\n variant=\"secondary\"\n />\n }\n dropdownProps={{\n className: \"ne-editor-dropdown w-auto flex flex-row items-center gap-1\",\n }}\n >\n {menuOptions.map(\n ({ Icon, optionName, alignPos, type, items, border, borderToggle }) =>\n type === \"button\" ? (\n <Button\n className=\"ne-toolbar-item\"\n data-testid={`neeto-editor-image-menu-${optionName}`}\n icon={Icon}\n key={optionName}\n tooltipProps={{ content: optionName, position: \"top\" }}\n variant={\n alignPos === align || (borderToggle && border)\n ? \"secondary\"\n : \"ghost\"\n }\n onClick={() => handleClick(alignPos, borderToggle)}\n />\n ) : (\n <DropdownMenu\n dropdownProps={{ className: \"ne-editor-dropdown\" }}\n key={optionName}\n position=\"bottom-start\"\n buttonProps={{\n tooltipProps: {\n content: optionName,\n position: \"top\",\n },\n }}\n customTarget={\n <MenuItem className=\"ne-toolbar-item !relative\">\n <Tooltip content={optionName} position=\"top\">\n <div className=\"flex items-center justify-center gap-x-1\">\n <Ratio size={18} />\n <ChevronDown size={14} />\n </div>\n </Tooltip>\n </MenuItem>\n }\n onClick={event => event.stopPropagation()}\n >\n <DropdownMenuList className=\"mb-0\">\n {items?.map(({ ratio, icon: Icon }) => (\n <MenuItem\n key={ratio}\n prefix={Icon ? <Icon size={16} /> : undefined}\n onClick={() => updateAttributes({ aspectRatio: ratio })}\n >\n {ratio}\n </MenuItem>\n ))}\n </DropdownMenuList>\n </DropdownMenu>\n )\n )}\n </DropdownMenu>\n );\n};\n\nexport default Menu;\n","import { useRef, useState } from \"react\";\n\nimport { Spinner } from \"@bigbinary/neeto-atoms\";\nimport { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classNames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { isEmpty, mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport ImagePreviewModal from \"./ImagePreviewModal\";\nimport Menu from \"./Menu\";\n\nconst ImageComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { src, figheight, figwidth, align, alt, border } = node.attrs;\n\n const [captionWidth, setCaptionWidth] = useState(figwidth || 0);\n const [previewUrl, setPreviewUrl] = useState(null);\n const figureRef = useRef(null);\n\n const { view } = editor;\n let height = figheight;\n let width = figwidth;\n const caption = node?.content?.content?.[0]?.text || \"\";\n\n const editorElement = figureRef.current?.closest(\".neeto-editor\");\n const maxImageWidth = editorElement?.offsetWidth - 50;\n\n const handleResizeStop = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n\n if (width > maxImageWidth) {\n width = maxImageWidth;\n const aspectRatio = ref.offsetHeight / ref.offsetWidth;\n height = width * aspectRatio;\n }\n setCaptionWidth(width);\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n figheight: height,\n figwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n if (isNotPresent(src) && isNotPresent(alt)) return null;\n\n return (\n <NodeViewWrapper\n data-testid=\"neeto-editor-image-wrapper\"\n className={classNames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n )}\n >\n <figure ref={figureRef}>\n <Menu {...{ align, border, deleteNode, editor, updateAttributes }} />\n {src ? (\n <Resizable\n lockAspectRatio\n className=\"neeto-editor__image\"\n minWidth=\"50px\"\n size={{ height, width }}\n onResizeStop={handleResizeStop}\n onResize={(_event, _direction, ref) =>\n setCaptionWidth(ref.offsetWidth)\n }\n >\n <img\n {...{ ...node.attrs, src }}\n alt={caption}\n data-border={border}\n onClick={e => {\n e.stopPropagation();\n setPreviewUrl(src);\n }}\n />\n </Resizable>\n ) : (\n <div className=\"neeto-editor__image-placeholder\">\n <Spinner />\n </div>\n )}\n <NodeViewContent\n as=\"figcaption\"\n className={classNames({ \"is-empty\": isEmpty(caption) })}\n style={{ width: `${captionWidth}px` }}\n />\n </figure>\n <ImagePreviewModal {...{ previewUrl, setPreviewUrl }} />\n </NodeViewWrapper>\n );\n};\n\nexport default ImageComponent;\n","import { Toastr } from \"@bigbinary/neeto-atoms\";\nimport { mergeAttributes, Node } from \"@tiptap/core\";\nimport { Plugin, Selection } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { t } from \"i18next\";\nimport { globalProps } from \"neetocommons/v2/initializers\";\nimport { isEmpty } from \"ramda\";\n\nimport { DIRECT_UPLOAD_ENDPOINT } from \"src/common/constants\";\nimport { LARGE_IMAGE_ERROR } from \"src/v2/components/Editor/CustomExtensions/Image/constants\";\nimport DirectUpload from \"utils/DirectUpload\";\n\nimport ImageComponent from \"./ImageComponent\";\n\nconst upload = async (file, url) => {\n if (file.size <= globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024) {\n const uploader = new DirectUpload({ file, url });\n const response = await uploader.create();\n\n return response.data?.blob_url || response.blob_url;\n }\n\n throw new Error(LARGE_IMAGE_ERROR);\n};\n\nconst findNextTextPos = (editor, pos) => {\n const doc = editor.state.doc;\n let foundPos = -1;\n\n doc.nodesBetween(pos, doc.content.size, (node, nodePos) => {\n if (foundPos >= pos) return false;\n else if (!node.type.isTextblock) return true;\n foundPos = nodePos;\n\n return false;\n });\n\n return foundPos;\n};\n\nexport default Node.create({\n name: \"image\",\n\n addOptions() {\n return { HTMLAttributes: {}, openImageInNewTab: true };\n },\n\n group: \"block\",\n\n content: \"inline*\",\n\n draggable: false,\n\n isolating: true,\n\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => element.getAttribute(\"id\"),\n },\n\n src: {\n default: null,\n parseHTML: element => element.querySelector(\"img\")?.getAttribute(\"src\"),\n },\n\n alt: {\n default: \"image\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"alt\") || \"image\",\n },\n\n figheight: {\n default: \"auto\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"figheight\"),\n },\n\n figwidth: {\n default: 500,\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"figwidth\"),\n },\n\n align: {\n default: \"left\",\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"align\"),\n },\n\n border: {\n default: true,\n parseHTML: element =>\n element.querySelector(\"img\")?.getAttribute(\"data-border\") === \"true\",\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"figure\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const { align, src, figheight, figwidth, border } = node.attrs;\n\n if (!src) return [\"span\"];\n\n const openImageInNewTab = this.options.openImageInNewTab;\n\n const wrapperDivAttrs = {\n class: classnames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n ),\n };\n\n const wrapperLinkPointerEventsStyle = openImageInNewTab\n ? \"\"\n : \"pointer-events:none;\";\n\n const heightStyle = figheight === \"auto\" ? \"auto\" : `${figheight}px`;\n const wrapperLinkAttrs = {\n href: src,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n class: \"neeto-editor__image\",\n style: `height:${heightStyle};width:${figwidth}px;display:inline-block;${wrapperLinkPointerEventsStyle}`,\n };\n\n const captionAttrs = { style: `width:${figwidth}px;` };\n\n return [\n \"div\",\n wrapperDivAttrs,\n [\n \"figure\",\n this.options.HTMLAttributes,\n [\n \"a\",\n wrapperLinkAttrs,\n [\n \"img\",\n mergeAttributes(HTMLAttributes, {\n draggable: false,\n contenteditable: false,\n \"data-border\": border,\n }),\n ],\n ],\n [\"figcaption\", captionAttrs, 0],\n ],\n ];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(ImageComponent);\n },\n\n addCommands() {\n return {\n setFigure:\n ({ caption, ...attrs }) =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs,\n content: caption ? [{ type: \"text\", text: caption }] : [],\n })\n .run(),\n };\n },\n\n addKeyboardShortcuts() {\n return {\n Enter: () => {\n const head = this.editor.state.selection.$head;\n if (head.node().type.name !== \"image\") return false;\n\n const chain = this.editor.chain();\n const tail = head.after();\n\n let nextTextPos = findNextTextPos(this.editor, tail);\n if (nextTextPos < 0) {\n chain.insertContentAt(tail, { type: \"paragraph\", content: \"\" });\n nextTextPos = tail;\n }\n\n chain\n .setTextSelection(nextTextPos + 1) // Node boundary + 1\n .focus()\n .run();\n\n return true;\n },\n // The caption shares its textblock with the non-editable image above it,\n // so the native caret can't move up past the image. Handle it manually.\n ArrowUp: () => {\n const { state, view } = this.editor;\n const { $head, empty } = state.selection;\n if (!empty || $head.parent.type.name !== this.name) return false;\n\n const lineTop = view.coordsAtPos($head.start());\n const caret = view.coordsAtPos($head.pos);\n if (caret.top >= lineTop.bottom) return false; // Not on the first line\n\n const before = $head.before();\n if (before === 0) {\n return this.editor\n .chain()\n .insertContentAt(0, { type: \"paragraph\" })\n .setTextSelection(1)\n .scrollIntoView()\n .run();\n }\n\n const tr = state.tr.setSelection(\n Selection.near(state.doc.resolve(before), -1)\n );\n view.dispatch(tr.scrollIntoView());\n\n return true;\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, event) {\n const {\n schema,\n selection: {\n $anchor: { pos },\n },\n } = view.state;\n\n // Microsoft Excel and a few other products might copy content as\n // both `text/plain` and `text/html`. If `text/plain` exists,\n // an early return will ensure that it fallbacks to tiptap's\n // default paste behavior.\n const text = event?.clipboardData?.getData(\"text/plain\");\n const hasFiles = event.clipboardData?.files?.length;\n\n if (!hasFiles) return;\n\n if (hasFiles && text) {\n event.preventDefault();\n const plainText =\n new DOMParser().parseFromString(text, \"text/html\").body\n .textContent ?? \"\";\n view.pasteText(plainText);\n\n return;\n }\n\n const images = Array.from(event.clipboardData.files).filter(\n file => /image/i.test(file.type)\n );\n\n if (isEmpty(images)) return;\n\n event.preventDefault();\n\n const currentPos = pos;\n\n images.forEach(async image => {\n let emptyImageNode;\n const id = Math.random().toString(36).substring(7);\n try {\n emptyImageNode = schema.nodes.image.create({\n id,\n src: \"\",\n alt: t(\"neetoEditor.attachments.uploading\"),\n });\n\n const tr = view.state.tr\n .insert(currentPos, emptyImageNode)\n .setMeta(\"addToHistory\", false);\n view.dispatch(tr);\n\n const url = await upload(image, DIRECT_UPLOAD_ENDPOINT);\n if (url) {\n const imageNode = schema.nodes.image.create({\n id,\n src: url,\n alt: \"image\",\n });\n\n const { tr, doc } = view.state;\n let nodePos = -1;\n doc.descendants((node, pos) => {\n if (node.type.name === \"image\" && node.attrs.id === id) {\n nodePos = pos;\n\n return false;\n }\n\n return true;\n });\n\n if (nodePos !== -1) {\n tr.replaceWith(\n nodePos,\n nodePos + emptyImageNode.nodeSize,\n imageNode\n ).setMeta(\"addToHistory\", false);\n view.dispatch(tr);\n }\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Failed to insert the image\", error);\n\n const doc = view.state.doc;\n const tr = view.state.tr;\n doc.descendants((node, pos) => {\n if (node.type.name === \"image\" && node.attrs.id === id) {\n tr.delete(pos, pos + emptyImageNode.nodeSize).setMeta(\n \"addToHistory\",\n false\n );\n\n return false;\n }\n\n return true;\n });\n view.dispatch(tr);\n\n if (error.message === LARGE_IMAGE_ERROR) {\n Toastr.error(\n t(\"neetoEditor.error.imageSizeIsShouldBeLess\", {\n limit: globalProps.endUserUploadedFileSizeLimitInMb,\n })\n );\n } else {\n Toastr.error(t(\"neetoEditor.error.imageUploadFailed\"));\n }\n }\n });\n },\n },\n },\n }),\n ];\n },\n});\n","import { mergeAttributes, Node } from \"@tiptap/core\";\n\nexport default Node.create({\n name: \"figcaption\",\n\n content: \"text*\",\n\n selectable: false,\n\n draggable: false,\n\n parseHTML() {\n return [{ tag: \"figcaption\" }];\n },\n\n renderHTML({ HTMLAttributes }) {\n return [\"figcaption\", mergeAttributes(HTMLAttributes), 0];\n },\n});\n","import Italic from \"@tiptap/extension-italic\";\n\nexport default Italic.extend({\n addInputRules() {\n return [];\n },\n addPasteRules() {\n return [];\n },\n});\n","import { Extension } from \"@tiptap/core\";\n\nconst KeyboardShortcuts = ({ onSubmit, shortcuts, isBlockQuoteActive }) =>\n Extension.create({\n name: \"keyboard-shortcuts\",\n\n addKeyboardShortcuts() {\n return {\n \"Mod-Enter\": () => {\n onSubmit?.(this.editor.getHTML());\n\n return true;\n },\n \"Mod-Shift-b\": () => {\n if (isBlockQuoteActive) {\n this.editor.chain().focus().toggleBlockquote().run();\n\n return true;\n }\n\n return false;\n },\n ...shortcuts,\n };\n },\n });\n\nexport default {\n configure: ({ onSubmit, shortcuts, isBlockQuoteActive }) =>\n KeyboardShortcuts({ onSubmit, shortcuts, isBlockQuoteActive }),\n};\n","export const LINK_MARKDOWN_INPUT_REGEX =\n /(?:^|\\s)\\[([^\\]]*)?\\]\\((\\S+)(?: [\"“](.+)[\"”])?\\)$/i;\n","import { InputRule, markInputRule, mergeAttributes } from \"@tiptap/core\";\nimport { Link } from \"@tiptap/extension-link\";\nimport { Fragment, Slice } from \"@tiptap/pm/model\";\nimport { Plugin } from \"@tiptap/pm/state\";\n\nimport { LINK_MARKDOWN_INPUT_REGEX } from \"./constants\";\n\nconst linkInputRule = config => {\n const defaultMarkInputRule = markInputRule(config);\n\n return new InputRule({\n find: config.find,\n handler(props) {\n try {\n const { tr } = props.state;\n defaultMarkInputRule.handler(props);\n tr.setMeta(\"preventAutolink\", true);\n } catch (error) {\n // https://app.honeybadger.io/projects/94805/faults/108936285\n if (!(error instanceof RangeError)) throw error;\n }\n },\n });\n};\n\n// TipTap's paste handler links the selected text only when the pasted text is\n// exactly a URL, so a URL copied with surrounding whitespace replaces the\n// selection instead. Hand it a trimmed copy of the pasted text.\nconst withTrimmedLinkPaste = plugin => {\n const { handlePaste } = plugin.props;\n\n return new Plugin({\n ...plugin.spec,\n props: {\n ...plugin.props,\n handlePaste: (view, event, slice) => {\n let textContent = \"\";\n slice.content.forEach(node => {\n textContent += node.textContent;\n });\n const trimmedText = textContent.trim();\n\n if (!trimmedText || trimmedText === textContent) {\n return handlePaste(view, event, slice);\n }\n\n const trimmedSlice = new Slice(\n Fragment.from(view.state.schema.text(trimmedText)),\n 0,\n 0\n );\n\n return handlePaste(view, event, trimmedSlice);\n },\n },\n });\n};\n\nexport default Link.extend({\n inclusive: false,\n addAttributes() {\n return {\n ...this.parent?.(),\n title: { default: null },\n \"data-neeto-kb-article\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-neeto-kb-article\"),\n renderHTML: attributes =>\n attributes[\"data-neeto-kb-article\"]\n ? { \"data-neeto-kb-article\": attributes[\"data-neeto-kb-article\"] }\n : {},\n },\n \"data-article-id\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-article-id\"),\n renderHTML: attributes =>\n attributes[\"data-article-id\"]\n ? { \"data-article-id\": attributes[\"data-article-id\"] }\n : {},\n },\n \"data-article-deleted\": {\n default: null,\n parseHTML: element => element.getAttribute(\"data-article-deleted\"),\n renderHTML: attributes =>\n attributes[\"data-article-deleted\"]\n ? { \"data-article-deleted\": attributes[\"data-article-deleted\"] }\n : {},\n },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'a[href]:not([data-type=\"button\"]):not([href *= \"javascript:\" i])',\n },\n ];\n },\n renderHTML({ HTMLAttributes }) {\n return [\n \"a\",\n mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {\n class: \"link\",\n }),\n 0,\n ];\n },\n\n addProseMirrorPlugins() {\n // Match on the handlePaste prop rather than TipTap's internal plugin key;\n // the paste handler is the only Link plugin that handles pastes.\n return (this.parent?.() ?? []).map(plugin =>\n plugin.props.handlePaste ? withTrimmedLinkPaste(plugin) : plugin\n );\n },\n\n addInputRules() {\n return [\n linkInputRule({\n find: LINK_MARKDOWN_INPUT_REGEX,\n type: this.type,\n getAttributes(match) {\n return {\n title: match.pop()?.trim(),\n href: match.pop()?.trim(),\n };\n },\n }),\n ];\n },\n});\n","import React from \"react\";\n\nimport { Avatar, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { t } from \"i18next\";\nimport { isEmpty } from \"ramda\";\n\nimport { scrollHandler } from \"utils/scrollhandler\";\n\nexport class MentionList extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = { selectedIndex: 0 };\n this.mentionRef = React.createRef();\n }\n\n componentDidUpdate(prevProps) {\n const { items } = this.props;\n if (items !== prevProps.items) {\n this.setState({ selectedIndex: 0 });\n }\n\n scrollHandler({\n wrapperRef: this.mentionRef,\n index: this.state.selectedIndex,\n });\n }\n\n selectItem = index => {\n const { items, command } = this.props;\n const item = items[index];\n\n if (item) {\n command({ label: item.name, id: item.key });\n }\n };\n\n upHandler = () => {\n const { items } = this.props;\n this.setState(prevState => {\n const { selectedIndex } = prevState;\n const nextSelectedIndex =\n (selectedIndex + items.length - 1) % items.length;\n\n return { selectedIndex: nextSelectedIndex };\n });\n };\n\n downHandler = () => {\n const { items } = this.props;\n this.setState(prevState => {\n const { selectedIndex } = prevState;\n const nextSelectedIndex = (selectedIndex + 1) % items.length;\n\n return { selectedIndex: nextSelectedIndex };\n });\n };\n\n enterHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n tabHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n onKeyDown = ({ event }) => {\n const keyDownHandlers = {\n ArrowUp: this.upHandler,\n ArrowDown: this.downHandler,\n Enter: this.enterHandler,\n Tab: this.tabHandler,\n };\n\n if (Object.prototype.hasOwnProperty.call(keyDownHandlers, event.key)) {\n keyDownHandlers[event.key]();\n\n return true;\n }\n\n return false;\n };\n\n render() {\n const { selectedIndex } = this.state;\n const { items } = this.props;\n\n if (isEmpty(items)) {\n return (\n <div className=\"neeto-editor-mentions__wrapper\">\n <p className=\"neeto-editor-mentions__item\">\n {t(\"neetoEditor.error.noResults\")}\n </p>\n </div>\n );\n }\n\n // Plain <button>s instead of `DropdownMenu.MenuItem`. The popup is portaled\n // into document.body by tippy, so it sits outside any `DropdownMenu` Root\n // — Radix's `MenuItem` would call `useMenuScope` and throw\n // \"MenuItem must be used within Menu\". Styling lives in _v2-toolbar.scss\n // under `.neeto-editor-mentions__wrapper` / `__item`.\n return (\n <div\n className=\"neeto-editor-mentions__wrapper\"\n data-testid=\"neeto-editor-mention-list\"\n ref={this.mentionRef}\n >\n {items.map(({ key, name, imageUrl }, index) => (\n <button\n data-testid={`neeto-editor-mention-list-${name}`}\n key={key}\n type=\"button\"\n className={classNames(\"neeto-editor-mentions__item\", {\n active: index === selectedIndex,\n })}\n onClick={() => this.selectItem(index)}\n >\n <Avatar size=\"sm\" user={{ name, imageUrl }} />\n <Typography variant=\"body2\">{name}</Typography>\n </button>\n ))}\n </div>\n );\n }\n}\n","export const createMentionSuggestions =\n (mentions = []) =>\n ({ query = \"\" }) => {\n if (!query) {\n return mentions.slice(0, 10);\n }\n\n return mentions\n .filter(mention =>\n mention.name\n .replace(/\\s/g, \"\")\n .toLowerCase()\n .includes(query.trim().toLowerCase())\n )\n .slice(0, 10);\n };\n","import Mention from \"@tiptap/extension-mention\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport { MentionList } from \"./MentionList\";\nimport { createMentionSuggestions } from \"./utils\";\n\nconst suggestion = {\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n reactRenderer = new ReactRenderer(MentionList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light neeto-editor-mentions-tooltip\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n arrow: false,\n });\n },\n\n onUpdate(props) {\n reactRenderer.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup?.[0]?.destroy();\n reactRenderer?.destroy();\n },\n };\n },\n};\n\nconst Mentions = Mention.extend({\n addCommands() {\n return {\n setMention:\n ({ id, label }) =>\n ({ chain }) => {\n chain()\n .focus()\n .insertContent([\n { type: this.name, attrs: { id, label } },\n { type: \"text\", text: \" \" },\n ])\n .run();\n },\n };\n },\n});\n\nexport default {\n configure: ({ suggestion: suggestionConfig = {}, ...otherConfig }) =>\n Mentions.configure({\n ...otherConfig,\n suggestion: { ...suggestion, ...suggestionConfig },\n }),\n};\n\nexport { createMentionSuggestions };\n","import { OrderedList } from \"@tiptap/extension-list\";\n\nexport default OrderedList.configure({\n HTMLAttributes: { class: \"orderedList\" },\n itemTypeName: \"listItem\",\n});\n","import { Extension } from \"@tiptap/core\";\nimport { Plugin } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\nimport { t } from \"i18next\";\n\nconst Placeholder = Extension.create({\n name: \"placeholder\",\n\n addOptions() {\n return {\n excludeNodeTypes: [\"variable\", \"codeBlock\"],\n emptyEditorClass: \"is-editor-empty\",\n emptyNodeClass: \"is-empty\",\n placeholder: t(\"neetoEditor.placeholders.writeSomething\"),\n slashCommandsPlaceholder: t(\n \"neetoEditor.placeholders.typeSlashForCommands\"\n ),\n showOnlyWhenEditable: true,\n showOnlyCurrent: false,\n includeChildren: false,\n };\n },\n\n addProseMirrorPlugins() {\n return [\n new Plugin({\n props: {\n decorations: ({ doc, selection }) => {\n const active =\n this.editor.isEditable || !this.options.showOnlyWhenEditable;\n const { anchor } = selection;\n const decorations = [];\n\n if (!active) {\n return null;\n }\n\n doc.descendants((node, pos) => {\n const hasAnchor = anchor >= pos && anchor <= pos + node.nodeSize;\n const isEmpty = !node.isLeaf && !node.childCount;\n\n const isExcluded = this.options.excludeNodeTypes.includes(\n node.type.name\n );\n\n if (\n (hasAnchor || !this.options.showOnlyCurrent) &&\n !isExcluded &&\n isEmpty\n ) {\n const classes = [this.options.emptyNodeClass];\n\n let placeholderText = this.options.placeholder;\n\n if (this.editor.isEmpty) {\n classes.push(this.options.emptyEditorClass);\n\n if (\n this.options.isSlashCommandsActive &&\n !this.options.placeholder\n ) {\n classes.push(\"is-slash-command-placeholder\");\n placeholderText = this.options.slashCommandsPlaceholder;\n }\n } else if (\n hasAnchor &&\n this.editor.isFocused &&\n this.options.isSlashCommandsActive &&\n node.type.name === \"paragraph\"\n ) {\n classes.push(\"is-current-slash-placeholder\");\n classes.push(\"is-slash-command-placeholder\");\n placeholderText = this.options.slashCommandsPlaceholder;\n }\n\n const decoration = Decoration.node(pos, pos + node.nodeSize, {\n class: classes.join(\" \"),\n \"data-placeholder\": placeholderText,\n });\n decorations.push(decoration);\n }\n\n return this.options.includeChildren;\n });\n\n return DecorationSet.create(doc, decorations);\n },\n },\n }),\n ];\n },\n});\n\nexport default Placeholder;\n","import Document from \"@tiptap/extension-document\";\nimport { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nexport default Document.extend({\n name: \"selectionDecorator\",\n addProseMirrorPlugins() {\n const { editor } = this;\n\n return [\n new Plugin({\n key: new PluginKey(\"selectionDecorator\"),\n state: {\n init() {\n return {\n decorations: DecorationSet.empty,\n selectedTextDecoration: null,\n };\n },\n apply(tr, oldState) {\n const { doc, selection } = tr;\n let { decorations, selectedTextDecoration } = oldState;\n\n if (selectedTextDecoration) {\n decorations = decorations.remove([selectedTextDecoration]);\n }\n\n if (!selection.empty) {\n selectedTextDecoration = Decoration.inline(\n selection.from,\n selection.to,\n { class: \"selected-text\" }\n );\n decorations = decorations.add(doc, [selectedTextDecoration]);\n } else {\n selectedTextDecoration = null;\n }\n\n return { decorations, selectedTextDecoration };\n },\n },\n props: {\n decorations(state) {\n if (editor.isFocused) return DecorationSet.empty;\n\n return this.getState(state).decorations;\n },\n },\n }),\n ];\n },\n});\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { t } from \"i18next\";\nimport { noop } from \"neetocist\";\nimport {\n TextP,\n TextH1,\n TextH2,\n TextH3,\n TextH4,\n TextH5,\n ListDot,\n ListNumber,\n Checkbox,\n Blockquote,\n ImageUpload,\n CodeBlock,\n Smiley,\n Minus,\n Video,\n Notes,\n Column,\n TextBold,\n TextItalic,\n Underline,\n Link,\n Attachment,\n MessageSquare,\n File,\n} from \"neetoicons\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\n\nexport const MENU_ITEMS = [\n {\n optionName: EDITOR_OPTIONS.PARAGRAPH,\n title: t(\"neetoEditor.menu.normalText\"),\n description: t(\"neetoEditor.menu.normalTextDescription\"),\n Icon: TextP,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).setNode(\"paragraph\").run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.BOLD,\n title: t(\"neetoEditor.menu.bold\"),\n description: t(\"neetoEditor.menu.boldDescription\"),\n Icon: TextBold,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBold().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.ITALIC,\n title: t(\"neetoEditor.menu.italic\"),\n description: t(\"neetoEditor.menu.italicDescription\"),\n Icon: TextItalic,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleItalic().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.UNDERLINE,\n title: t(\"neetoEditor.menu.underline\"),\n description: t(\"neetoEditor.menu.underlineDescription\"),\n Icon: Underline,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleUnderline().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H1,\n title: t(\"neetoEditor.menu.heading1\"),\n description: t(\"neetoEditor.menu.h1Description\"),\n Icon: TextH1,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 1 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H2,\n title: t(\"neetoEditor.menu.heading2\"),\n description: t(\"neetoEditor.menu.h2Description\"),\n Icon: TextH2,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 2 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H3,\n title: t(\"neetoEditor.menu.heading3\"),\n description: t(\"neetoEditor.menu.h3Description\"),\n Icon: TextH3,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 3 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H4,\n title: t(\"neetoEditor.menu.heading4\"),\n description: t(\"neetoEditor.menu.h4Description\"),\n Icon: TextH4,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 4 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.H5,\n title: t(\"neetoEditor.menu.heading5\"),\n description: t(\"neetoEditor.menu.h5Description\"),\n Icon: TextH5,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setNode(\"heading\", { level: 5 })\n .run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LIST_ORDERED,\n title: t(\"neetoEditor.menu.numberedList\"),\n description: t(\"neetoEditor.menu.numberedListDescription\"),\n Icon: ListNumber,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleOrderedList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LIST_BULLETS,\n title: t(\"neetoEditor.menu.bulletList\"),\n description: t(\"neetoEditor.menu.bulletListDescription\"),\n Icon: ListDot,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBulletList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.LINK,\n title: t(\"neetoEditor.menu.link\"),\n description: t(\"neetoEditor.menu.linkDescription\"),\n Icon: Link,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.NEETO_KB_ARTICLE,\n title: t(\"neetoEditor.menu.linkToNeetoKbArticle\"),\n description: t(\"neetoEditor.menu.linkToNeetoKbArticleDescription\"),\n Icon: File,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.ATTACHMENTS,\n title: t(\"neetoEditor.menu.file\"),\n description: t(\"neetoEditor.menu.attachmentsDescription\"),\n Icon: Attachment,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.TODO_LIST,\n title: t(\"neetoEditor.menu.todoList\"),\n description: t(\"neetoEditor.menu.todoListDescription\"),\n Icon: Checkbox,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleTaskList().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.IMAGE_UPLOAD,\n title: t(\"neetoEditor.menu.image\"),\n description: t(\"neetoEditor.menu.imageDescription\"),\n Icon: ImageUpload,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.VIDEO_UPLOAD,\n title: t(\"neetoEditor.menu.video\"),\n description: t(\"neetoEditor.menu.videoDescription\"),\n Icon: Video,\n command: noop,\n },\n {\n optionName: EDITOR_OPTIONS.BLOCKQUOTE,\n title: t(\"neetoEditor.menu.blockQuote\"),\n description: t(\"neetoEditor.menu.blockQuoteDescription\"),\n Icon: Blockquote,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleBlockquote().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.CODE_BLOCK,\n title: t(\"neetoEditor.menu.codeBlock\"),\n description: t(\"neetoEditor.menu.codeDescription\"),\n Icon: CodeBlock,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).toggleCodeBlock().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.EMOJI,\n title: t(\"neetoEditor.menu.emoji\"),\n description: t(\"neetoEditor.menu.emojiDescription\"),\n Icon: Smiley,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).insertContent(\"::\").run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.DIVIDER,\n title: t(\"neetoEditor.menu.divider\"),\n description: t(\"neetoEditor.menu.dividerDescription\"),\n Icon: Minus,\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).setHorizontalRule().run();\n },\n },\n {\n optionName: EDITOR_OPTIONS.PASTE_UNFORMATTED,\n title: t(\"neetoEditor.menu.pasteUnformatted\"),\n description: t(\"neetoEditor.menu.pasteUnformattedDescription\"),\n Icon: Notes,\n command: ({ editor, range }) =>\n editor.chain().focus().deleteRange(range).pasteUnformatted().run(),\n },\n {\n optionName: EDITOR_OPTIONS.TABLE,\n title: t(\"neetoEditor.menu.table\"),\n description: t(\"neetoEditor.menu.tableDescription\"),\n Icon: Column,\n command: ({ editor, range }) =>\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .run(),\n },\n {\n optionName: EDITOR_OPTIONS.CALLOUT,\n title: t(\"neetoEditor.menu.callout\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n Icon: MessageSquare,\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"default\" })\n .run();\n },\n items: [\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_default`,\n title: t(\"neetoEditor.menu.calloutDefault\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"default\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_info`,\n title: t(\"neetoEditor.menu.calloutInfo\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"info\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_warning`,\n title: t(\"neetoEditor.menu.calloutWarning\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"warning\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_error`,\n title: t(\"neetoEditor.menu.calloutError\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"error\" })\n .run();\n },\n },\n {\n optionName: `${EDITOR_OPTIONS.CALLOUT}_success`,\n title: t(\"neetoEditor.menu.calloutSuccess\"),\n description: t(\"neetoEditor.menu.calloutDescription\"),\n command: ({ editor, range }) => {\n editor\n .chain()\n .focus()\n .deleteRange(range)\n .setCallout({ type: \"success\" })\n .run();\n },\n },\n ],\n },\n];\n\nexport const NO_RESULT_MENU_ITEM = {\n title: t(\"neetoEditor.menu.noResults\"),\n command: ({ editor, range }) => {\n editor.chain().focus().deleteRange(range).run();\n },\n};\n\nexport const MENU_MAX_HEIGHT = 384;\n\nexport const MENU_BOUNDARY_PADDING = 8;\n\nexport const MENU_MAX_HEIGHT_CSS_VARIABLE =\n \"--neeto-editor-slash-commands-max-height\";\n","import { detectOverflow } from \"@popperjs/core\";\nimport { assoc } from \"ramda\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\n\nimport {\n MENU_BOUNDARY_PADDING,\n MENU_ITEMS,\n MENU_MAX_HEIGHT,\n MENU_MAX_HEIGHT_CSS_VARIABLE,\n} from \"./constants\";\n\nconst imageCommand =\n setMediaUploader =>\n ({ editor, range }) => {\n setMediaUploader(assoc(\"image\", true));\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst videoCommand =\n setMediaUploader =>\n ({ editor, range }) => {\n setMediaUploader(assoc(\"video\", true));\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst linkCommand =\n setIsAddLinkActive =>\n ({ editor, range }) => {\n setIsAddLinkActive(true);\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst attachmentCommand =\n attachmentProps =>\n ({ editor, range }) => {\n attachmentProps?.handleUploadAttachments();\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst neetoKbArticleCommand =\n setIsNeetoKbArticleActive =>\n ({ editor, range }) => {\n // Get cursor position for positioning the modal\n const cursorPos = editor.view.coordsAtPos(range.from);\n setIsNeetoKbArticleActive({\n active: true,\n editor,\n range,\n cursorPos,\n });\n editor.chain().focus().deleteRange(range).run();\n };\n\nconst getOppositePlacement = placement =>\n placement.replace(/^(top|bottom)/, side =>\n side === \"top\" ? \"bottom\" : \"top\"\n );\n\nconst getOffsetDistance = (state, placement) =>\n Math.abs(state.modifiersData.offset?.[placement]?.y ?? 0);\n\nexport const buildCommandItems = ({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n}) => {\n const commandItems = MENU_ITEMS.map(item => {\n if (item.optionName === EDITOR_OPTIONS.IMAGE_UPLOAD) {\n return assoc(\"command\", imageCommand(setMediaUploader), item);\n } else if (item.optionName === EDITOR_OPTIONS.VIDEO_UPLOAD) {\n return assoc(\"command\", videoCommand(setMediaUploader), item);\n } else if (item.optionName === EDITOR_OPTIONS.LINK) {\n return assoc(\"command\", linkCommand(setIsAddLinkActive), item);\n } else if (item.optionName === EDITOR_OPTIONS.ATTACHMENTS) {\n return assoc(\"command\", attachmentCommand(attachmentProps), item);\n } else if (item.optionName === EDITOR_OPTIONS.NEETO_KB_ARTICLE) {\n return assoc(\n \"command\",\n neetoKbArticleCommand(setIsNeetoKbArticleActive),\n item\n );\n }\n\n return item;\n });\n\n const permittedCommandItems = commandItems.filter(({ optionName }) =>\n options.includes(optionName)\n );\n\n const adddonCommandItems = addonCommands.map(command => ({\n ...command,\n title: command.label,\n Icon: command.icon,\n }));\n\n return [...permittedCommandItems, ...adddonCommandItems];\n};\n\n// Replaces Popper's flip for the slash commands menu. When the menu fits on\n// neither side, flip keeps the preferred side and lets the menu overflow, so on\n// short screens it gets cut off. Here we pick the side with more room instead\n// and cap the menu's height to the space available on that side.\nexport const fitToAvailableHeight = {\n name: \"fitToAvailableHeight\",\n enabled: true,\n phase: \"main\",\n requiresIfExists: [\"offset\"],\n fn: ({ state, name }) => {\n if (state.modifiersData[name]._skip) return;\n\n const menu = state.elements.popper.querySelector(\n \".neeto-editor-slash-commands__wrapper\"\n );\n if (!menu) return;\n\n const { top, bottom } = detectOverflow(state, {\n elementContext: \"reference\",\n altBoundary: true,\n padding: MENU_BOUNDARY_PADDING,\n });\n const isVertical = /^(top|bottom)/.test(state.placement);\n const menuChromeHeight = state.rects.popper.height - menu.offsetHeight;\n const menuContentHeight = Math.min(menu.scrollHeight, MENU_MAX_HEIGHT);\n\n let placement = state.placement;\n let availableHeight = state.rects.reference.height - top - bottom;\n\n if (isVertical) {\n const preferredPlacement = state.options.placement;\n const oppositePlacement = getOppositePlacement(preferredPlacement);\n const getSpace = candidatePlacement =>\n (candidatePlacement.startsWith(\"top\") ? -top : -bottom) -\n getOffsetDistance(state, candidatePlacement);\n\n const preferredSpace = getSpace(preferredPlacement);\n const oppositeSpace = getSpace(oppositePlacement);\n const menuHeight = menuChromeHeight + menuContentHeight;\n const shouldUseOpposite =\n menuHeight > preferredSpace &&\n (menuHeight <= oppositeSpace || oppositeSpace > preferredSpace);\n\n placement = shouldUseOpposite ? oppositePlacement : preferredPlacement;\n availableHeight = shouldUseOpposite ? oppositeSpace : preferredSpace;\n }\n\n const menuMaxHeight = Math.max(\n Math.floor(availableHeight - menuChromeHeight),\n 0\n );\n\n state.elements.popper.style.setProperty(\n MENU_MAX_HEIGHT_CSS_VARIABLE,\n `${menuMaxHeight}px`\n );\n\n const popperHeight =\n menuChromeHeight + Math.min(menuContentHeight, menuMaxHeight);\n if (\n placement === state.placement &&\n popperHeight === state.rects.popper.height\n ) {\n return;\n }\n\n state.modifiersData[name]._skip = true;\n state.placement = placement;\n state.rects.popper = { ...state.rects.popper, height: popperHeight };\n state.reset = true;\n },\n};\n","import React, { forwardRef } from \"react\";\n\nimport Tippy from \"@tippyjs/react\";\nimport classnames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\n\nimport { scrollHandler } from \"utils/scrollhandler\";\n\nimport { fitToAvailableHeight } from \"./utils\";\n\nclass Menu extends React.Component {\n constructor(props) {\n super(props);\n this.state = { selectedIndex: 0 };\n this.menuRef = React.createRef();\n }\n\n componentDidMount() {\n const { menuIndex, activeMenuIndex } = this.props;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n if (isCurrentMenuActive) {\n document.addEventListener(\"keydown\", this.keydownHandler);\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n componentDidUpdate(oldProps) {\n const { items, menuIndex, activeMenuIndex } = this.props;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n\n if (items !== oldProps.items) this.setState({ selectedIndex: 0 });\n\n scrollHandler({\n wrapperRef: this.menuRef,\n index: this.state.selectedIndex,\n });\n\n if (isCurrentMenuActive) {\n document.addEventListener(\"keydown\", this.keydownHandler);\n } else document.removeEventListener(\"keydown\", this.keydownHandler);\n }\n\n keydownHandler = event => {\n const listeners = {\n Enter: this.enterHandler,\n ArrowUp: this.upHandler,\n ArrowDown: this.downHandler,\n ArrowLeft: this.leftArrowHandler,\n ArrowRight: this.rightArrowHandler,\n };\n\n if (event.key in listeners) listeners[event.key](event);\n };\n\n selectItem = index => {\n const { items, editor, range } = this.props;\n const selectedItem = items[index];\n const hasCommand = selectedItem && selectedItem.command;\n if (hasCommand) selectedItem.command({ editor, range });\n };\n\n upHandler = () => {\n const { items } = this.props;\n const { selectedIndex } = this.state;\n this.setState({\n selectedIndex: (selectedIndex + items.length - 1) % items.length,\n });\n };\n\n downHandler = () => {\n const { items } = this.props;\n const { selectedIndex } = this.state;\n this.setState({ selectedIndex: (selectedIndex + 1) % items.length });\n };\n\n enterHandler = () => {\n const { selectedIndex } = this.state;\n this.selectItem(selectedIndex);\n };\n\n leftArrowHandler = () => {\n const { menuIndex, setActiveMenuIndex } = this.props;\n if (menuIndex > 0) setActiveMenuIndex(menuIndex - 1);\n };\n\n rightArrowHandler = () => {\n const { menuIndex, setActiveMenuIndex, items } = this.props;\n const { selectedIndex } = this.state;\n const selectedItem = items[selectedIndex];\n const hasSubItems = selectedItem && !isNotPresent(selectedItem.items);\n if (hasSubItems) setActiveMenuIndex(menuIndex + 1);\n };\n\n render() {\n const { items, menuIndex, activeMenuIndex } = this.props;\n const { selectedIndex } = this.state;\n const isCurrentMenuActive = menuIndex === activeMenuIndex;\n\n return (\n <div\n className=\"neeto-editor-slash-commands__wrapper\"\n data-testid=\"neeto-editor-slash-commands-wrapper\"\n ref={this.menuRef}\n >\n {items.map((item, index) => {\n const isLeafNode = isNotPresent(item.items);\n\n const nodeElement = (\n <MenuItem\n {...{ index, item }}\n key={item.optionName}\n selectItem={() => this.selectItem(index)}\n selectedIndex={isCurrentMenuActive ? selectedIndex : -1}\n onHover={() => this.setState({ selectedIndex: index })}\n />\n );\n\n if (isLeafNode) return nodeElement;\n\n return (\n <Tippy\n interactive\n key={item.optionName}\n placement=\"right\"\n popperOptions={{ modifiers: [fitToAvailableHeight] }}\n theme=\"light neeto-editor-slash-commands-tippy\"\n visible={selectedIndex === index}\n content={\n <Menu\n {...this.props}\n items={item.items}\n menuIndex={menuIndex + 1}\n />\n }\n onCreate={({ popper }) => (popper.style.width = \"max-content\")}\n onHide={() => {\n this.isSubmenuOpened = false;\n }}\n onShow={() => {\n this.isSubmenuOpened = true;\n }}\n >\n {nodeElement}\n </Tippy>\n );\n })}\n </div>\n );\n }\n}\n\n// eslint-disable-next-line react/display-name\nconst MenuItem = forwardRef(\n ({ item, selectedIndex, index, selectItem, onHover }, ref) => {\n const { Icon } = item;\n\n return (\n <button\n {...{ ref }}\n data-testid={`neeto-editor-command-list-item-${index}`}\n className={classnames(\"neeto-editor-slash-commands__item\", {\n active: index === selectedIndex,\n })}\n onClick={selectItem}\n onMouseEnter={onHover}\n >\n {Icon && <Icon size={20} />}\n <span className=\"neeto-editor-slash-commands__item-content\">\n <span\n className=\"neeto-editor-slash-commands__item-title\"\n data-testid=\"neeto-editor-command-list-item-block-heading\"\n >\n {item.title}\n </span>\n </span>\n </button>\n );\n }\n);\n\nexport default Menu;\n","import React from \"react\";\n\nimport Menu from \"./Menu\";\n\nclass CommandsList extends React.Component {\n state = { activeMenuIndex: 0 };\n\n onKeyDown = ({ event }) =>\n [\"Enter\", \"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"].includes(\n event.key\n );\n\n setActiveMenuIndex = index => this.setState({ activeMenuIndex: index });\n\n render() {\n return (\n <Menu\n {...this.props}\n activeMenuIndex={this.state.activeMenuIndex}\n items={this.props.items}\n menuIndex={0}\n setActiveMenuIndex={this.setActiveMenuIndex}\n />\n );\n }\n}\n\nexport default CommandsList;\n","import { Extension } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport Suggestion from \"@tiptap/suggestion\";\nimport { isEmpty } from \"ramda\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\nimport {\n highlightFocussedNode,\n resetFocussedNode,\n} from \"utils/focusHighlighter\";\nimport { fuzzySearch } from \"utils/fuzzySearch\";\n\nimport CommandsList from \"./CommandsList\";\nimport { NO_RESULT_MENU_ITEM } from \"./constants\";\nimport { buildCommandItems, fitToAvailableHeight } from \"./utils\";\n\nconst CommandsPluginKey = new PluginKey(\"commands\");\n\nexport default {\n configure: ({\n addonCommands,\n options,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n }) => {\n const commandItems = buildCommandItems({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n });\n\n return Extension.create({\n name: \"slash-commands\",\n\n addOptions() {\n return {\n HTMLAttributes: { class: \"commands\" },\n suggestion: {\n char: \"/\",\n startOfLine: false,\n pluginKey: CommandsPluginKey,\n command: ({ editor, range, props }) => {\n props.command({ editor, range });\n },\n\n items: ({ query }) => {\n if (!query) return commandItems;\n const filteredItems = fuzzySearch(commandItems, query);\n\n return isEmpty(filteredItems)\n ? [NO_RESULT_MENU_ITEM]\n : filteredItems;\n },\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n if (\n props.editor.isActive(\"image\") ||\n props.editor.isActive(\"codeBlock\")\n ) {\n return;\n }\n\n reactRenderer = new ReactRenderer(CommandsList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n arrow: false,\n zIndex: 99999,\n role: \"dropdown\",\n theme: \"light neeto-editor-slash-commands-tippy\",\n popperOptions: {\n modifiers: [\n { name: \"flip\", enabled: false },\n fitToAvailableHeight,\n ],\n },\n });\n\n highlightFocussedNode();\n },\n onUpdate(props) {\n if (\n props.editor.isActive(\"image\") ||\n props.editor.isActive(\"codeBlock\")\n ) {\n return;\n }\n reactRenderer?.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer && reactRenderer?.ref?.onKeyDown(props);\n },\n onExit() {\n popup && popup[0].destroy();\n reactRenderer && reactRenderer.destroy();\n resetFocussedNode();\n },\n };\n },\n },\n };\n },\n\n addProseMirrorPlugins() {\n return [\n Suggestion({\n editor: this.editor,\n ...this.options.suggestion,\n }),\n ];\n },\n });\n },\n};\n","import { mergeAttributes } from \"@tiptap/core\";\nimport Mention from \"@tiptap/extension-mention\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport tippy from \"tippy.js\";\n\nimport { getSuggestionAppendTo } from \"src/v2/components/Editor/utils\";\n\nimport { MentionList } from \"../Mention/MentionList\";\nimport { createMentionSuggestions } from \"../Mention/utils\";\n\nconst SpecialMentionPluginKey = new PluginKey(\"special-mention\");\n\nconst renderLabel = ({ options, node }) =>\n `${options.suggestion.char}${node.attrs.label ?? node.attrs.id}`;\n\nconst suggestion = {\n char: \"@@\",\n pluginKey: SpecialMentionPluginKey,\n\n render: () => {\n let reactRenderer;\n let popup;\n\n return {\n onStart: props => {\n reactRenderer = new ReactRenderer(MentionList, {\n props,\n editor: props.editor,\n });\n\n popup = tippy(\"body\", {\n theme: \"light neeto-editor-mentions-tooltip\",\n getReferenceClientRect: props.clientRect,\n appendTo: getSuggestionAppendTo(props.editor),\n content: reactRenderer.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n zIndex: 99999,\n arrow: false,\n });\n },\n\n onUpdate(props) {\n reactRenderer.updateProps(props);\n\n popup[0].setProps({\n getReferenceClientRect: props.clientRect,\n });\n },\n\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup[0].hide();\n\n return true;\n }\n\n return reactRenderer.ref?.onKeyDown(props);\n },\n\n onExit() {\n popup[0].destroy();\n reactRenderer.destroy();\n },\n };\n },\n};\n\nconst SpecialMentions = Mention.extend({\n name: \"special-mention\",\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-type\": this.name },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n renderLabel({ options: this.options, node }),\n ];\n },\n});\n\nexport default {\n configure: ({ suggestion: suggestionConfig = {}, ...otherConfig }) =>\n SpecialMentions.configure({\n ...otherConfig,\n suggestion: { ...suggestion, ...suggestionConfig },\n }),\n};\n\nexport { createMentionSuggestions };\n","const PREVIEW_CLASS_PREFIX = \"neeto-editor-table__cell--preview\";\n\n// Three default columns add up to the table toolbar width. Keep in sync with\n// $table-column-width in v2/styles/partials/_table.scss and the toolbar width\n// in v2/styles/partials/_menu.scss.\nexport const DEFAULT_COLUMN_WIDTH = 125;\n\n// Column min-width written into saved table HTML (unchanged from before).\nexport const SAVED_COLUMN_MIN_WIDTH = 100;\n\n// Cells to decorate, and how, for each toolbar hover preview.\nexport const TABLE_ACTION_PREVIEWS = {\n deleteRow: ({ map, top, bottom }) => ({\n rect: { top, bottom, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n deleteColumn: ({ map, left, right }) => ({\n rect: { top: 0, bottom: map.height, left, right },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n deleteTable: ({ map }) => ({\n rect: { top: 0, bottom: map.height, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-delete`,\n }),\n insertRow: ({ map, bottom }) => ({\n rect: { top: bottom - 1, bottom, left: 0, right: map.width },\n className: `${PREVIEW_CLASS_PREFIX}-insert-row`,\n }),\n insertColumn: ({ map, right }) => ({\n rect: { top: 0, bottom: map.height, left: right - 1, right },\n className: `${PREVIEW_CLASS_PREFIX}-insert-column`,\n }),\n};\n","import { Plugin, PluginKey } from \"@tiptap/pm/state\";\nimport { isInTable, selectedRect } from \"@tiptap/pm/tables\";\nimport { Decoration, DecorationSet } from \"@tiptap/pm/view\";\n\nimport { TABLE_ACTION_PREVIEWS } from \"./constants\";\n\n// Previews what a toolbar \"−\"/\"+\" button would do while it is hovered: the\n// cells that would be deleted, or a line where the new row/column would go.\nconst actionPreviewKey = new PluginKey(\"tableActionPreview\");\n\nconst actionPreviewPlugin = () =>\n new Plugin({\n key: actionPreviewKey,\n state: {\n init: () => null,\n apply: (tr, action) => {\n const meta = tr.getMeta(actionPreviewKey);\n if (meta !== undefined) return meta;\n\n return tr.docChanged || tr.selectionSet ? null : action;\n },\n },\n props: {\n decorations: state => {\n const action = actionPreviewKey.getState(state);\n if (!action || !isInTable(state)) return null;\n\n const tableRect = selectedRect(state);\n const { rect, className } = TABLE_ACTION_PREVIEWS[action](tableRect);\n const decorations = tableRect.map.cellsInRect(rect).map(cellPos => {\n const from = tableRect.tableStart + cellPos;\n const to = from + tableRect.table.nodeAt(cellPos).nodeSize;\n\n return Decoration.node(from, to, { class: className });\n });\n\n return DecorationSet.create(state.doc, decorations);\n },\n },\n });\n\n// action: a key of TABLE_ACTION_PREVIEWS, or null to clear\nconst setActionPreview = (editor, action) =>\n editor.view.dispatch(editor.state.tr.setMeta(actionPreviewKey, action));\n\nexport { actionPreviewPlugin, setActionPreview };\n","function updateColumns(node, colgroup, table, cellMinWidth) {\n let totalWidth = 0;\n let nextDOM = colgroup.firstChild;\n const row = node.firstChild;\n\n for (let i = 0, col = 0; i < row.childCount; i += 1) {\n const { colspan, colwidth } = row.child(i).attrs;\n\n for (let j = 0; j < colspan; j += 1, col += 1) {\n // In auto table layout a col width acts as the column's minimum, so the\n // column keeps this width until its content overflows it.\n const width = (colwidth && colwidth[j]) || cellMinWidth;\n const cssWidth = `${width}px`;\n\n totalWidth += width;\n\n if (!nextDOM) {\n colgroup.appendChild(document.createElement(\"col\")).style.width =\n cssWidth;\n } else {\n if (nextDOM.style.width !== cssWidth) {\n nextDOM.style.width = cssWidth;\n }\n\n nextDOM = nextDOM.nextSibling;\n }\n }\n }\n\n while (nextDOM) {\n const after = nextDOM.nextSibling;\n\n nextDOM.parentNode.removeChild(nextDOM);\n nextDOM = after;\n }\n\n table.style.width = \"\";\n table.style.minWidth = `${totalWidth}px`;\n}\n\nexport class TableView {\n constructor(node, cellMinWidth) {\n this.node = node;\n this.cellMinWidth = cellMinWidth;\n this.dom = document.createElement(\"div\");\n\n const alignmentSuffix = node.attrs?.textAlign || \"left\";\n const alignmentClass = `neeto-editor-table--${alignmentSuffix}`;\n this.dom.className = `neeto-editor-table ${alignmentClass}`;\n this.wrapper = document.createElement(\"div\");\n this.wrapper.className = \"neeto-editor-table__wrapper\";\n this.table = this.dom\n .appendChild(this.wrapper)\n .appendChild(document.createElement(\"table\"));\n this.colgroup = this.table.appendChild(document.createElement(\"colgroup\"));\n updateColumns(node, this.colgroup, this.table, cellMinWidth);\n this.contentDOM = this.table.appendChild(document.createElement(\"tbody\"));\n }\n\n update(node) {\n if (node.type !== this.node.type) {\n return false;\n }\n\n this.node = node;\n updateColumns(node, this.colgroup, this.table, this.cellMinWidth);\n\n const alignmentSuffix = node.attrs?.textAlign || \"left\";\n const currentAlignmentClass = `neeto-editor-table--${alignmentSuffix}`;\n\n this.dom.classList.remove(\n \"neeto-editor-table--left\",\n \"neeto-editor-table--center\",\n \"neeto-editor-table--right\"\n );\n\n this.dom.classList.add(currentAlignmentClass);\n\n return true;\n }\n\n ignoreMutation(mutation) {\n return (\n mutation.type === \"attributes\" &&\n (mutation.target === this.table ||\n this.colgroup.contains(mutation.target))\n );\n }\n}\n","import { TextSelection } from \"@tiptap/pm/state\";\nimport { TableMap, addRow, findTable } from \"@tiptap/pm/tables\";\n\nconst getTableRect = state => {\n const table = findTable(state.selection.$from);\n if (!table) return null;\n\n return {\n map: TableMap.get(table.node),\n table: table.node,\n tableStart: table.start,\n };\n};\n\nconst getTableSize = editor => {\n const rect = editor ? getTableRect(editor.state) : null;\n\n return rect\n ? { rows: rect.map.height, columns: rect.map.width }\n : { rows: 0, columns: 0 };\n};\n\n// Suggestion popups (emoji, mention, slash commands) handle Enter themselves.\nconst isSuggestionActive = state =>\n state.plugins.some(plugin => {\n const pluginState = plugin.getState(state);\n\n return pluginState?.active === true && pluginState?.range;\n });\n\nconst moveToCellBelow = editor => {\n const { state, view } = editor;\n const { selection } = state;\n if (!(selection instanceof TextSelection) || isSuggestionActive(state)) {\n return false;\n }\n\n // Only when the cursor is in a paragraph directly inside a cell, so lists\n // and code blocks inside cells keep their own Enter behaviour.\n const { $from } = selection;\n const cellDepth = $from.depth - 1;\n const cellRole = $from.node(cellDepth)?.type.spec.tableRole;\n if (\n $from.parent.type.name !== \"paragraph\" ||\n (cellRole !== \"cell\" && cellRole !== \"header_cell\")\n ) {\n return false;\n }\n\n const table = findTable($from);\n const map = TableMap.get(table.node);\n const { left, bottom } = map.findCell($from.before(cellDepth) - table.start);\n const { tr } = state;\n\n if (bottom >= map.height) {\n addRow(tr, { map, table: table.node, tableStart: table.start }, map.height);\n }\n\n const updatedMap = TableMap.get(tr.doc.nodeAt(table.pos));\n const cellPos =\n table.start + updatedMap.map[bottom * updatedMap.width + left];\n tr.setSelection(TextSelection.near(tr.doc.resolve(cellPos + 1)));\n view.dispatch(tr.scrollIntoView());\n\n return true;\n};\n\n// Moves the cursor to just after the table, adding a paragraph if there is\n// nothing to land on.\nconst exitTable = editor => {\n const { state, view } = editor;\n const table = findTable(state.selection.$from);\n if (!table) return false;\n\n const { tr } = state;\n const afterTable = table.pos + table.node.nodeSize;\n const nodeAfter = tr.doc.resolve(afterTable).nodeAfter;\n\n if (!nodeAfter?.isTextblock) {\n tr.insert(afterTable, state.schema.nodes.paragraph.create());\n }\n\n tr.setSelection(TextSelection.create(tr.doc, afterTable + 1));\n view.dispatch(tr.scrollIntoView());\n\n return true;\n};\n\nexport { getTableSize, moveToCellBelow, exitTable };\n","import { Table as TiptapTable } from \"@tiptap/extension-table\";\n\nimport { actionPreviewPlugin } from \"./actionPreviewPlugin\";\nimport { DEFAULT_COLUMN_WIDTH, SAVED_COLUMN_MIN_WIDTH } from \"./constants\";\nimport { TableView } from \"./TableView\";\nimport { exitTable, moveToCellBelow } from \"./utils\";\n\nconst Table = TiptapTable.extend({\n addOptions() {\n return {\n HTMLAttributes: {},\n resizable: true,\n handleWidth: 5,\n cellMinWidth: DEFAULT_COLUMN_WIDTH,\n View: TableView,\n lastColumnResizable: true,\n allowTableNodeSelection: true,\n };\n },\n\n parseHTML() {\n const getAlignmentFromElement = element => {\n if (!element) return null;\n\n const dataAlign = element.getAttribute(\"data-text-align\");\n if (dataAlign) return dataAlign;\n\n if (element.classList.contains(\"neeto-editor-table--center\")) {\n return \"center\";\n }\n\n if (element.classList.contains(\"neeto-editor-table--right\")) {\n return \"right\";\n }\n\n if (element.classList.contains(\"neeto-editor-table--left\")) {\n return \"left\";\n }\n\n return null;\n };\n\n return [\n {\n tag: \"table\",\n priority: 100,\n getAttrs: node => {\n const alignment = getAlignmentFromElement(node);\n if (alignment) {\n return { textAlign: alignment };\n }\n\n const parent = node.parentElement;\n if (parent && parent.classList.contains(\"table-responsive\")) {\n const parentAlignment = getAlignmentFromElement(parent);\n if (parentAlignment) {\n return { textAlign: parentAlignment };\n }\n }\n\n return { textAlign: \"left\" };\n },\n },\n ];\n },\n\n addAttributes() {\n return {\n ...this.parent?.(),\n textAlign: {\n default: \"left\",\n renderHTML: attributes => {\n if (!attributes.textAlign) return {};\n\n return {\n class: `neeto-editor-table--${attributes.textAlign}`,\n \"data-text-align\": attributes.textAlign,\n };\n },\n },\n };\n },\n\n renderHTML({ node }) {\n let totalWidth = 0;\n let fixedWidth = true;\n\n const colgroups = [];\n // Saved HTML keeps the previous minimum so re-saved tables do not widen.\n const cellMinWidth = SAVED_COLUMN_MIN_WIDTH;\n const firstRow = node.content?.firstChild;\n\n if (firstRow && firstRow.childCount) {\n for (let i = 0; i < firstRow.childCount; i++) {\n const cell = firstRow.child(i);\n const { colspan, colwidth } = cell.attrs;\n const span = colspan || 1;\n\n for (let j = 0; j < span; j++) {\n const hasWidth = colwidth && colwidth[j];\n totalWidth += Number(hasWidth) || cellMinWidth;\n if (!hasWidth) fixedWidth = false;\n\n const style = hasWidth\n ? `min-width: ${cellMinWidth}px; width: ${Number(hasWidth)}px;`\n : `min-width: ${cellMinWidth}px;`;\n\n colgroups.push([\"col\", { style }]);\n }\n }\n }\n\n let tableStyle = \"\";\n if (totalWidth > 0) {\n tableStyle = fixedWidth\n ? `width: ${totalWidth}px;`\n : `min-width: ${totalWidth}px;`;\n }\n\n const alignmentClass = node.attrs?.textAlign\n ? `neeto-editor-table--${node.attrs.textAlign}`\n : \"neeto-editor-table--left\";\n\n return [\n \"div\",\n {\n class: `table-responsive ${alignmentClass}`,\n \"data-text-align\": node.attrs?.textAlign || \"left\",\n },\n [\n \"table\",\n tableStyle ? { style: tableStyle } : {},\n [\"colgroup\", ...colgroups],\n [\"tbody\", 0],\n ],\n ];\n },\n\n addProseMirrorPlugins() {\n return [...(this.parent?.() ?? []), actionPreviewPlugin()];\n },\n\n addKeyboardShortcuts() {\n return {\n ...this.parent?.(),\n Enter: () => moveToCellBelow(this.editor),\n // Tab from the last cell leaves the table instead of adding a row.\n Tab: () => this.editor.commands.goToNextCell() || exitTable(this.editor),\n \"Mod-alt-t\": () =>\n this.editor\n .chain()\n .focus()\n .insertTable({ rows: 3, cols: 3, withHeaderRow: true })\n .updateAttributes(\"table\", { textAlign: \"left\" })\n .run(),\n };\n },\n});\n\nexport default Table.configure({});\n","import { TaskItem, TaskList } from \"@tiptap/extension-list\";\n\nexport const TodoListExtension = TaskList.extend({\n name: \"todoList\",\n addKeyboardShortcuts() {\n return {\n \"Mod-Shift-9\": () => this.editor.commands.toggleTaskList(),\n };\n },\n});\n\nexport const TodoItemExtension = TaskItem.extend({\n addKeyboardShortcuts() {\n return {\n Enter: () => this.editor.commands.splitListItem(this.name),\n Tab: () => this.editor.commands.sinkListItem(this.name),\n \"Shift-Tab\": () => this.editor.commands.liftListItem(this.name),\n };\n },\n}).configure({ nested: true });\n\nexport default TodoListExtension;\n","export const MAX_VARIABLE_NAME_DISPLAY_LENGTH = 25;\n","import { NodeViewWrapper } from \"@tiptap/react\";\nimport { Tooltip } from \"neetoatoms\";\n\nimport { getVariableDisplay } from \"src/common/variableDisplay\";\nimport { MAX_VARIABLE_NAME_DISPLAY_LENGTH } from \"src/v2/components/Editor/CustomExtensions/Variable/constants\";\n\nconst VariableComponent = ({ node, extension }) => {\n const { id } = node.attrs;\n\n const { variableName, shouldTruncate } = getVariableDisplay(\n node.attrs,\n MAX_VARIABLE_NAME_DISPLAY_LENGTH\n );\n\n return (\n <NodeViewWrapper\n as=\"span\"\n className=\"neeto-editor-variable\"\n data-label={id}\n data-variable=\"\"\n >\n {extension.options.charOpen}\n <Tooltip content={variableName} disabled={!shouldTruncate} position=\"top\">\n {variableName?.substr(0, MAX_VARIABLE_NAME_DISPLAY_LENGTH)?.trim()}\n {shouldTruncate && \"...\"}\n </Tooltip>\n {extension.options.charClose}\n </NodeViewWrapper>\n );\n};\n\nexport default VariableComponent;\n","import { Node, mergeAttributes } from \"@tiptap/core\";\nimport { PluginKey } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\n\nimport VariableComponent from \"./VariableComponent\";\n\nconst VariablePluginKey = new PluginKey(\"variables\");\nconst Variable = Node.create({\n name: \"variable\",\n addOptions() {\n return {\n HTMLAttributes: { class: \"neeto-editor-variable\" },\n charOpen: \"{{\",\n charClose: \"}}\",\n renderLabel({ options, node }) {\n return `${options.charOpen}${node.attrs.id || node.attrs.label}${\n options.charClose\n }`;\n },\n suggestion: {},\n };\n },\n group: \"inline\",\n inline: true,\n selectable: false,\n atom: true,\n addAttributes() {\n return {\n id: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-id\"),\n renderHTML: attributes => {\n if (!attributes.id) return {};\n\n return { \"data-id\": attributes.id };\n },\n },\n label: {\n default: null,\n parseHTML: element => element.getAttribute(\"data-label\"),\n renderHTML: attributes => {\n if (!attributes.label) return {};\n\n return { \"data-label\": attributes.label };\n },\n },\n };\n },\n\n parseHTML() {\n return [{ tag: \"span[data-variable]\" }];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n return [\n \"span\",\n mergeAttributes(\n { \"data-variable\": \"\" },\n this.options.HTMLAttributes,\n HTMLAttributes\n ),\n this.options.renderLabel({ options: this.options, node }),\n ];\n },\n\n renderText({ node }) {\n return this.options.renderLabel({ options: this.options, node });\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(VariableComponent);\n },\n\n addCommands() {\n return {\n setVariable:\n attributes =>\n ({ chain }) => {\n chain()\n .focus()\n .insertContent([\n { type: this.name, attrs: attributes },\n { type: \"text\", text: \" \" },\n ])\n .run();\n },\n };\n },\n});\n\nexport default Variable;\n\nexport { VariablePluginKey };\n","import { useRef, useState } from \"react\";\n\nimport { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classNames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { isEmpty, mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport Menu from \"../Image/Menu\";\n\nconst VideoComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { src, vidheight, vidwidth, align, border } = node.attrs;\n\n const [captionWidth, setCaptionWidth] = useState(vidwidth || 0);\n\n const figureRef = useRef(null);\n\n const { view } = editor;\n let height = vidheight;\n let width = vidwidth;\n const caption = node?.content?.content[0]?.text || \"\";\n\n const editorElement = figureRef.current?.closest(\".neeto-editor\");\n const maxVideoWidth = editorElement?.offsetWidth - 50;\n\n const handleResize = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n\n if (width > maxVideoWidth) {\n width = maxVideoWidth;\n const aspectRatio = ref.offsetHeight / ref.offsetWidth;\n height = width * aspectRatio;\n }\n setCaptionWidth(width);\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n vidheight: height,\n vidwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n if (isNotPresent(src)) return null;\n\n return (\n <NodeViewWrapper\n className={classNames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n )}\n >\n <figure ref={figureRef}>\n <Menu {...{ align, border, deleteNode, editor, updateAttributes }} />\n <Resizable\n lockAspectRatio\n className=\"neeto-editor__image\"\n size={{ height, width }}\n onResizeStop={handleResize}\n onResize={(_event, _direction, ref) =>\n setCaptionWidth(ref.offsetWidth)\n }\n >\n <video\n controls\n {...{ ...node.attrs, src }}\n alt={caption}\n data-border={border}\n preload=\"metadata\"\n />\n </Resizable>\n <NodeViewContent\n as=\"figcaption\"\n className={classNames({ \"is-empty\": isEmpty(caption) })}\n style={{ width: `${captionWidth}px` }}\n />\n </figure>\n </NodeViewWrapper>\n );\n};\n\nexport default VideoComponent;\n","import { NodeViewContent, NodeViewWrapper } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { mergeRight } from \"ramda\";\nimport { Resizable } from \"re-resizable\";\n\nimport Menu from \"../Image/Menu\";\n\nconst EmbedComponent = ({\n node,\n editor,\n getPos,\n updateAttributes,\n deleteNode,\n}) => {\n const { figheight, figwidth, align, border, aspectRatio } = node.attrs;\n const { view } = editor;\n let height = figheight;\n let width = figwidth;\n\n const handleResize = (_event, _direction, ref) => {\n height = ref.offsetHeight;\n width = ref.offsetWidth;\n view.dispatch(\n view.state.tr.setNodeMarkup(\n getPos(),\n undefined,\n mergeRight(node.attrs, {\n figheight: height,\n figwidth: width,\n height,\n width,\n })\n )\n );\n editor.commands.focus();\n };\n\n return (\n <NodeViewWrapper\n data-testid=\"neeto-editor-video-wrapper\"\n className={classnames(\n \"neeto-editor__video-wrapper\",\n `neeto-editor__video--${align}`,\n { \"neeto-editor__video--bordered\": border }\n )}\n >\n <NodeViewContent className=\"neeto-editor__video-content\" />\n <Resizable\n lockAspectRatio\n size={{ height, width }}\n className={classnames(\"neeto-editor__video-iframe\", {\n \"neeto-editor-aspect-1-1\": aspectRatio === \"1/1\",\n \"neeto-editor-aspect-16-9\": aspectRatio === \"16/9\",\n \"neeto-editor-aspect-9-16\": aspectRatio === \"9/16\",\n \"neeto-editor-aspect-4-3\": aspectRatio === \"4/3\",\n \"neeto-editor-aspect-3-2\": aspectRatio === \"3/2\",\n })}\n onResizeStop={handleResize}\n >\n <Menu\n {...{ align, border, deleteNode, editor, updateAttributes }}\n showAspectRatio\n />\n <iframe {...node.attrs} allowFullScreen data-border={border} />\n </Resizable>\n </NodeViewWrapper>\n );\n};\n\nexport default EmbedComponent;\n","import { mergeAttributes, Node, PasteRule } from \"@tiptap/core\";\nimport { TextSelection } from \"@tiptap/pm/state\";\nimport { ReactNodeViewRenderer } from \"@tiptap/react\";\nimport classnames from \"classnames\";\n\nimport { COMBINED_REGEX } from \"common/constants\";\nimport getVideoDimension from \"common/getVideoDimension\";\nimport { validateUrl } from \"src/v2/components/Editor/CustomExtensions/Embeds/utils\";\nimport { DEFAULT_ASPECT_RATIO } from \"src/v2/components/Editor/MediaUploader/constants\";\n\nimport VideoComponent from \"./VideoComponent\";\n\nimport EmbedComponent from \"../Embeds/EmbedComponent\";\n\nconst getSharedAttributes = () => ({\n src: {\n default: null,\n parseHTML: element => {\n if (element.tagName === \"IFRAME\") return element.getAttribute(\"src\");\n\n const iframe = element.querySelector(\"iframe\");\n const video = element.querySelector(\"video\");\n\n return iframe?.getAttribute(\"src\") || video?.getAttribute(\"src\");\n },\n },\n align: {\n default: \"left\",\n parseHTML: element =>\n element.getAttribute(\"align\") ||\n element.querySelector(\"video\")?.getAttribute(\"align\"),\n },\n videoType: {\n default: \"upload\",\n parseHTML: element => {\n const iframe =\n element.tagName === \"IFRAME\"\n ? element\n : element.querySelector(\"iframe\");\n\n return iframe ? \"embed\" : \"upload\";\n },\n },\n border: {\n default: true,\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"data-border\") === \"true\" ||\n element.querySelector(\"iframe\")?.getAttribute(\"data-border\") === \"true\",\n },\n});\n\nconst getUploadAttributes = () => ({\n alt: {\n default: \"\",\n parseHTML: element => element.querySelector(\"video\")?.getAttribute(\"alt\"),\n },\n vidheight: {\n default: \"fit-content\",\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"vidheight\"),\n },\n vidwidth: {\n default: 502,\n parseHTML: element =>\n element.querySelector(\"video\")?.getAttribute(\"vidwidth\"),\n },\n});\n\nconst getEmbedAttributes = () => ({\n figheight: {\n default: 281,\n parseHTML: element =>\n getVideoDimension(\n (element.querySelector(\"iframe\") ?? element).getAttribute(\"figheight\"),\n 281\n ),\n },\n figwidth: {\n default: 500,\n parseHTML: element =>\n getVideoDimension(\n (element.querySelector(\"iframe\") ?? element).getAttribute(\"figwidth\"),\n 500\n ),\n },\n aspectRatio: {\n default: DEFAULT_ASPECT_RATIO,\n parseHTML: element => {\n const iframe = element.querySelector(\".neeto-editor__video-iframe\");\n\n return iframe?.getAttribute(\"data-aspect-ratio\") || DEFAULT_ASPECT_RATIO;\n },\n },\n title: { default: null },\n originalUrl: {\n default: \"\",\n parseHTML: element => {\n const iframe = element.querySelector(\".neeto-editor__video-iframe\");\n\n return (\n iframe?.getAttribute(\"data-original-url\") ||\n iframe?.querySelector(\"iframe\")?.getAttribute(\"data-original-url\") ||\n \"\"\n );\n },\n },\n frameBorder: \"0\",\n allow:\n \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen\",\n allowfullscreen: true,\n});\n\nconst renderEmbedHTML = (node, HTMLAttributes, options) => {\n const { align, figheight, figwidth, border, aspectRatio, originalUrl } =\n node.attrs;\n\n return [\n \"div\",\n {\n class: classnames(\n \"neeto-editor__video-wrapper\",\n `neeto-editor__video--${align}`,\n { \"neeto-editor__video--bordered\": border }\n ),\n },\n [\"div\", { class: \"neeto-editor__video-content\" }, 0],\n [\n \"div\",\n {\n class: classnames(\"neeto-editor__video-iframe\", {\n \"neeto-editor-aspect-1-1\": aspectRatio === \"1/1\",\n \"neeto-editor-aspect-16-9\": aspectRatio === \"16/9\",\n \"neeto-editor-aspect-9-16\": aspectRatio === \"9/16\",\n \"neeto-editor-aspect-4-3\": aspectRatio === \"4/3\",\n \"neeto-editor-aspect-3-2\": aspectRatio === \"3/2\",\n }),\n style: `width: ${getVideoDimension(figwidth, 500)}px; height: ${getVideoDimension(figheight, 281)}px;`,\n \"data-aspect-ratio\": aspectRatio,\n },\n [\n \"iframe\",\n mergeAttributes(options.HTMLAttributes, {\n ...HTMLAttributes,\n allowfullscreen: true,\n \"data-border\": border,\n \"data-original-url\": originalUrl,\n }),\n ],\n ],\n ];\n};\n\nconst renderUploadHTML = (node, HTMLAttributes, options) => {\n const { align, vidheight, vidwidth, border } = node.attrs;\n\n const wrapperDivAttrs = {\n class: classnames(\n \"neeto-editor__image-wrapper\",\n `neeto-editor__image--${align}`,\n { \"neeto-editor__image--bordered\": border }\n ),\n };\n\n const heightStyle =\n vidheight === \"fit-content\" ? \"fit-content\" : `${vidheight}px`;\n\n const wrapperLinkAttrs = {\n rel: \"noopener noreferrer\",\n class: \"neeto-editor__image\",\n style: `height:${heightStyle};width:${vidwidth}px;display:inline-block;`,\n };\n\n const captionAttrs = { style: `width:${vidwidth}px;` };\n\n return [\n \"div\",\n wrapperDivAttrs,\n [\n \"figure\",\n mergeAttributes(options.HTMLAttributes, { \"data-video\": \"\" }),\n [\n \"a\",\n wrapperLinkAttrs,\n [\n \"video\",\n mergeAttributes(HTMLAttributes, {\n preload: \"metadata\",\n controls: true,\n draggable: false,\n contenteditable: false,\n \"data-border\": border,\n }),\n ],\n ],\n [\"figcaption\", captionAttrs, 0],\n ],\n ];\n};\n\nconst handleVideoPaste = ({ state, range, match }) => {\n state.tr.delete(range.from, range.to);\n state.tr.setSelection(TextSelection.create(state.doc, range.from + 1));\n\n const validatedUrl = validateUrl(match[0]);\n\n if (validatedUrl) {\n const node = state.schema.nodes[\"unified-video\"].create({\n src: validatedUrl,\n videoType: \"embed\",\n originalUrl: match[0],\n });\n\n state.tr.insert(range.from, node);\n state.tr.insert(\n range.from + node.nodeSize + 1,\n state.schema.nodes.paragraph.create()\n );\n\n state.tr.setSelection(\n TextSelection.create(state.tr.doc, range.from + node.nodeSize + 1)\n );\n }\n};\n\nconst UnifiedVideoExtension = Node.create({\n name: \"unified-video\",\n\n addOptions() {\n return { HTMLAttributes: {} };\n },\n\n group: \"block\",\n content: \"inline*\",\n draggable: true,\n isolating: true,\n\n addAttributes() {\n return {\n ...getSharedAttributes(),\n ...getUploadAttributes(),\n ...getEmbedAttributes(),\n };\n },\n\n parseHTML() {\n return [\n {\n tag: \"div.neeto-editor__image-wrapper\",\n getAttrs: node => {\n const figure = node.querySelector(\"figure[data-video]\");\n\n if (!figure) return false;\n\n const videoSrc = figure.querySelector(\"video\")?.getAttribute(\"src\");\n const iframeSrc = figure.querySelector(\"iframe\")?.getAttribute(\"src\");\n\n if (!videoSrc && !iframeSrc) return false;\n\n return node.style.fontWeight !== \"normal\" && null;\n },\n contentElement: \"figcaption\",\n },\n {\n tag: \"iframe[src]\",\n // iframes inside our own embed markup are consumed by the\n // div.neeto-editor__video-wrapper rule below.\n getAttrs: element =>\n element.closest(\"div.neeto-editor__video-wrapper\") ? false : null,\n },\n {\n tag: \"div.neeto-editor__video-wrapper\",\n getAttrs: element =>\n element.querySelector(\"iframe[src]\") ? null : false,\n contentElement: element =>\n element.querySelector(\".neeto-editor__video-content\") || element,\n },\n ];\n },\n\n renderHTML({ node, HTMLAttributes }) {\n const { videoType } = node.attrs;\n\n return videoType === \"embed\"\n ? renderEmbedHTML(node, HTMLAttributes, this.options)\n : renderUploadHTML(node, HTMLAttributes, this.options);\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(({ node, ...props }) => {\n const { videoType } = node.attrs;\n\n return videoType === \"embed\" ? (\n <EmbedComponent {...{ ...props, node }} />\n ) : (\n <VideoComponent {...{ ...props, node }} />\n );\n });\n },\n\n addCommands() {\n return {\n setVideo:\n ({ caption, ...attrs }) =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs: { ...attrs, videoType: \"upload\" },\n content: caption ? [{ type: \"text\", text: caption }] : [],\n })\n .command(({ tr, commands }) => {\n const { doc, selection } = tr;\n const position = doc.resolve(selection.to).end();\n\n return commands.setTextSelection(position);\n })\n .run(),\n\n setExternalVideo:\n options =>\n ({ chain }) =>\n chain()\n .insertContent({\n type: this.name,\n attrs: { ...options, videoType: \"embed\" },\n })\n .command(({ tr, commands }) => {\n const { $to } = tr.selection;\n if ($to.parent.type.name !== this.name) return true;\n\n const position = $to.after();\n if (tr.doc.nodeAt(position)?.type.name !== \"paragraph\") {\n commands.insertContentAt(position, { type: \"paragraph\" });\n }\n\n return commands.setTextSelection(position + 1);\n })\n .run(),\n };\n },\n\n addPasteRules() {\n return [\n new PasteRule({\n find: COMBINED_REGEX,\n handler: handleVideoPaste,\n }),\n ];\n },\n});\n\nexport default UnifiedVideoExtension;\n","import Code from \"@tiptap/extension-code\";\nimport Collaboration from \"@tiptap/extension-collaboration\";\nimport CollaborationCaret from \"@tiptap/extension-collaboration-caret\";\nimport Document from \"@tiptap/extension-document\";\nimport Highlight from \"@tiptap/extension-highlight\";\nimport { ListItem } from \"@tiptap/extension-list\";\nimport { TableCell, TableHeader, TableRow } from \"@tiptap/extension-table\";\nimport { Color, TextStyle } from \"@tiptap/extension-text-style\";\nimport Underline from \"@tiptap/extension-underline\";\nimport { CharacterCount, Focus } from \"@tiptap/extensions\";\nimport StarterKit from \"@tiptap/starter-kit\";\nimport { isEmpty } from \"ramda\";\n\nimport { EDITOR_OPTIONS } from \"common/constants\";\nimport safeListKeymap from \"common/safeListKeymap\";\nimport safeSplitBlock from \"common/safeSplitBlock\";\nimport { buildLevelsFromOptions } from \"src/v2/components/Editor/utils\";\n\nimport HighlightInternal from \"../BackgroundColor/ExtensionConfig\";\nimport BulletList from \"../BulletList/ExtensionConfig\";\nimport Callout from \"../Callout/ExtensionConfig\";\nimport CodeBlock from \"../CodeBlock/ExtensionConfig\";\nimport CustomCommands from \"../CustomCommands/ExtensionConfig\";\nimport DeletedArticleDecoration from \"../DeletedArticleDecoration/ExtensionConfig\";\nimport EditorContainer from \"../EditorContainer/ExtensionConfig\";\nimport EmojiPicker from \"../Emoji/EmojiPicker/ExtensionConfig\";\nimport EmojiSuggestion from \"../Emoji/EmojiSuggestion/ExtensionConfig\";\nimport ImageExtension from \"../Image/ExtensionConfig\";\nimport FigCaption from \"../Image/FigCaption\";\nimport Italic from \"../Italic/ExtensionConfig\";\nimport KeyboardShortcuts from \"../KeyboardShortcuts/ExtensionConfig\";\nimport Link from \"../Link/ExtensionConfig\";\nimport Mention, { createMentionSuggestions } from \"../Mention/ExtensionConfig\";\nimport OrderedList from \"../OrderedList/ExtensionConfig\";\nimport Placeholder from \"../Placeholder/ExtensionConfig\";\nimport SelectionDecoration from \"../SelectionDecoration/ExtensionConfig\";\nimport SlashCommands from \"../SlashCommands/ExtensionConfig\";\nimport SpecialMentions from \"../SpecialMentions/ExtensionConfig\";\nimport Table from \"../Table/ExtensionConfig\";\nimport {\n TodoListExtension,\n TodoItemExtension,\n} from \"../TodoList/ExtensionConfig\";\nimport Variable from \"../Variable/ExtensionConfig\";\nimport UnifiedVideoExtension from \"../Video/ExtensionConfig\";\n\nconst useCustomExtensions = ({\n placeholder,\n extensions,\n mentions,\n variables,\n isSlashCommandsActive,\n options,\n addonCommands,\n onSubmit,\n keyboardShortcuts,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n openImageInNewTab,\n openLinkInNewTab,\n enableReactNodeViewOptimization,\n collaborationProvider,\n setIsNeetoKbArticleActive,\n containerRef,\n appendSuggestionsToBody,\n}) => {\n let customExtensions = [\n EditorContainer.configure({ containerRef, appendSuggestionsToBody }),\n CharacterCount,\n Code,\n CodeBlock.configure({ enableReactNodeViewOptimization }),\n CustomCommands,\n Document,\n FigCaption,\n HighlightInternal,\n SelectionDecoration,\n Focus.configure({ mode: \"shallowest\" }),\n Highlight,\n ImageExtension.configure({\n openImageInNewTab,\n enableReactNodeViewOptimization,\n }),\n Link.configure({\n HTMLAttributes: { target: openLinkInNewTab ? \"_blank\" : null },\n }),\n Placeholder.configure({ placeholder, isSlashCommandsActive }),\n StarterKit.configure({\n document: false,\n codeBlock: false,\n code: false,\n bulletList: false,\n listItem: false,\n blockquote: options.includes(EDITOR_OPTIONS.BLOCKQUOTE),\n orderedList: false,\n italic: false,\n link: false, // v3 StarterKit bundles Link; we register a custom Link extension\n underline: false, // v3 StarterKit bundles Underline; we register it explicitly below\n listKeymap: false, // replaced by safeListKeymap, registered below\n trailingNode: false, // new in v3 StarterKit; disabled to keep v2 behavior\n undoRedo: !collaborationProvider,\n heading: { levels: buildLevelsFromOptions(options) },\n }),\n safeSplitBlock,\n safeListKeymap,\n TextStyle,\n Underline,\n Italic,\n KeyboardShortcuts.configure({\n onSubmit,\n shortcuts: keyboardShortcuts,\n isBlockQuoteActive: options.includes(EDITOR_OPTIONS.BLOCKQUOTE),\n }),\n EmojiSuggestion,\n EmojiPicker,\n ];\n\n if (options.includes(EDITOR_OPTIONS.VIDEO_UPLOAD)) {\n customExtensions.push(UnifiedVideoExtension);\n }\n\n if (options.includes(EDITOR_OPTIONS.NEETO_KB_ARTICLE)) {\n customExtensions.push(\n DeletedArticleDecoration.configure({\n deletedArticleIds: new Set(),\n })\n );\n }\n\n if (options.includes(EDITOR_OPTIONS.TABLE)) {\n customExtensions.push(\n Table.configure({ resizable: true }),\n TableRow,\n TableHeader,\n TableCell\n );\n }\n\n if (\n options.includes(EDITOR_OPTIONS.TEXT_COLOR) ||\n options.includes(EDITOR_OPTIONS.HIGHLIGHT)\n ) {\n customExtensions.push(Color);\n }\n\n if (options.includes(EDITOR_OPTIONS.LIST_BULLETS)) {\n customExtensions.push(BulletList);\n }\n\n if (options.includes(EDITOR_OPTIONS.LIST_ORDERED)) {\n customExtensions.push(OrderedList);\n }\n\n if (\n options.includes(EDITOR_OPTIONS.LIST_BULLETS) ||\n options.includes(EDITOR_OPTIONS.LIST_ORDERED)\n ) {\n customExtensions.push(ListItem);\n }\n\n if (options.includes(EDITOR_OPTIONS.CALLOUT)) {\n customExtensions.push(Callout);\n }\n\n if (options.includes(EDITOR_OPTIONS.TODO_LIST)) {\n customExtensions.push(TodoListExtension);\n customExtensions.push(TodoItemExtension);\n }\n\n if (isSlashCommandsActive) {\n customExtensions.push(\n SlashCommands.configure({\n options,\n addonCommands,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n setIsNeetoKbArticleActive,\n })\n );\n }\n\n if (!isEmpty(mentions)) {\n const items = createMentionSuggestions(mentions);\n\n customExtensions.push(Mention.configure({ suggestion: { items } }));\n\n customExtensions.push(SpecialMentions.configure({ suggestion: { items } }));\n }\n\n if (!isEmpty(variables)) {\n customExtensions.push(Variable);\n }\n\n if (collaborationProvider) {\n customExtensions.push(\n Collaboration.configure({\n document: collaborationProvider.document ?? collaborationProvider.doc,\n })\n );\n\n customExtensions.push(\n CollaborationCaret.configure({\n provider: collaborationProvider,\n })\n );\n }\n\n customExtensions = customExtensions.concat(extensions);\n\n return customExtensions;\n};\n\nexport default useCustomExtensions;\n","import { globalProps } from \"neetocommons/v2/initializers\";\n\nexport const NEETO_KB_ENDPOINT = globalProps?.kbUrl;\nexport const NEETO_KB_ARTICLES_URL = \"/api/v1/articles\";\nexport const NEETO_KB_CATEGORIES_URL = \"/api/v1/categories\";\n\nexport const MODE = { MODAL: \"modal\", SELECT: \"select\" };\n\nexport const MODAL_BOTTOM_MARGIN = 50;\nexport const MODAL_LEFT_OFFSET = 50;\nexport const MODAL_TOP_OFFSET = 22;\nexport const MODAL_TRANSFORM_Y = 52;\nexport const MODAL_TRANSFORM_X = 8;\n","import { useState, useEffect, useCallback } from \"react\";\n\nconst useArticleNavigation = ({\n articles = [],\n articlesContainerRef,\n mode,\n onClose,\n handleModalArticleSelect,\n searchTerm,\n}) => {\n const [highlightedIndex, setHighlightedIndex] = useState(0);\n\n useEffect(() => {\n setHighlightedIndex(0);\n }, [articles, searchTerm]);\n\n useEffect(() => {\n if (!articlesContainerRef?.current || !articles?.length) return;\n\n const container = articlesContainerRef.current;\n const highlightedItem = container.querySelector(\n `[data-index=\"${highlightedIndex}\"]`\n );\n\n if (!highlightedItem) return;\n\n const containerRect = container.getBoundingClientRect();\n const itemRect = highlightedItem.getBoundingClientRect();\n\n const isItemAbove = itemRect.top < containerRect.top;\n const isItemBelow = itemRect.bottom > containerRect.bottom;\n\n if (isItemAbove) {\n container.scrollTop -= containerRect.top - itemRect.top;\n } else if (isItemBelow) {\n container.scrollTop += itemRect.bottom - containerRect.bottom;\n }\n }, [highlightedIndex, articles.length, articlesContainerRef]);\n\n const navigationHandlers = {\n down: prev => (prev < articles.length - 1 ? prev + 1 : 0),\n up: prev => (prev > 0 ? prev - 1 : articles.length - 1),\n };\n\n const keyActions = {\n Escape: () => onClose?.(),\n ArrowDown: () => setHighlightedIndex(navigationHandlers[\"down\"]),\n ArrowUp: () => setHighlightedIndex(navigationHandlers[\"up\"]),\n Tab: event =>\n setHighlightedIndex(navigationHandlers[event.shiftKey ? \"up\" : \"down\"]),\n Enter: () => {\n if (articles[highlightedIndex]) {\n handleModalArticleSelect?.(articles[highlightedIndex]);\n }\n },\n };\n\n const handleKeyboardNavigation = useCallback(\n event => {\n if (mode !== \"modal\") return;\n\n const action = keyActions[event.key];\n if (!action) return;\n\n event.preventDefault();\n action(event);\n },\n [mode, articles, highlightedIndex, onClose, handleModalArticleSelect]\n );\n\n useEffect(() => {\n if (mode !== \"modal\") return undefined;\n\n document.addEventListener(\"keydown\", handleKeyboardNavigation);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyboardNavigation);\n };\n }, [mode, handleKeyboardNavigation]);\n\n return { highlightedIndex };\n};\n\nexport default useArticleNavigation;\n","import { decodeHtmlEntities } from \"src/utils/common\";\n\nimport { NEETO_KB_ENDPOINT } from \"./constants\";\n\nexport const buildArticleFullUrl = slug =>\n slug ? `${NEETO_KB_ENDPOINT}/articles/${slug}` : null;\n\nexport const createArticleOptions = articles =>\n articles.map(article => ({\n label: decodeHtmlEntities(article.title),\n value: article.id,\n data: { type: \"article\", ...article },\n }));\n\nexport const extractKbArticleIds = editor => {\n if (!editor) return [];\n\n const articleIds = [];\n const { doc } = editor.state;\n\n doc.descendants(node => {\n if (node.marks) {\n node.marks.forEach(mark => {\n if (\n mark.type.name === \"link\" &&\n mark.attrs[\"data-neeto-kb-article\"] === \"true\" &&\n mark.attrs[\"data-article-id\"]\n ) {\n articleIds.push(mark.attrs[\"data-article-id\"]);\n }\n });\n }\n });\n\n return [...new Set(articleIds)];\n};\n","import React from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { isNotEmpty } from \"neetocist\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\n\nconst ArticlesList = withT(\n ({\n t,\n articles = [],\n onSelectArticle,\n highlightedIndex = 0,\n containerRef,\n }) => (\n <div className=\"max-h-40 overflow-y-auto\" ref={containerRef}>\n {isNotEmpty(articles) ? (\n <div className=\"space-y-1\">\n {articles.map((article, index) => (\n <button\n data-index={index}\n key={article?.id}\n className={classNames(\n \"w-full rounded p-2 text-left hover:bg-gray-200 focus:bg-gray-200 focus:outline-none\",\n { \"bg-gray-200\": index === highlightedIndex }\n )}\n onClick={() => onSelectArticle?.(article)}\n >\n <div className=\"text-sm font-medium\">\n {decodeHtmlEntities(article?.title)}\n </div>\n </button>\n ))}\n </div>\n ) : (\n <div className=\"py-4 text-center text-gray-500\">\n <Typography variant=\"body2\">\n {t(\"neetoEditor.error.noResults\")}\n </Typography>\n </div>\n )}\n </div>\n )\n);\n\nexport default ArticlesList;\n","import React, { useState, useEffect, useRef } from \"react\";\n\nimport { Select, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { findBy } from \"neetocist\";\nimport Search from \"neetomolecules/v2/Search\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchKbArticles } from \"hooks/reactQuery/kbArticle/useArticleFetching\";\nimport {\n MODE,\n MODAL_BOTTOM_MARGIN,\n MODAL_LEFT_OFFSET,\n MODAL_TOP_OFFSET,\n MODAL_TRANSFORM_Y,\n MODAL_TRANSFORM_X,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\nimport useArticleNavigation from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/hooks/useArticleNavigation\";\nimport {\n buildArticleFullUrl,\n createArticleOptions,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils\";\n\nimport ArticlesList from \"./ArticlesList\";\n\nconst ArticlePicker = ({\n mode = MODE.MODAL,\n cursorPos,\n onClose,\n isLoading: externalIsLoading,\n options: externalOptions,\n value,\n onChange,\n placeholder,\n label,\n name,\n className,\n onArticleSelect,\n}) => {\n const { t } = useTranslation();\n const [searchTerm, setSearchTerm] = useState(\"\");\n const modalRef = useRef(null);\n const articlesContainerRef = useRef(null);\n\n const { data: articles = [], isLoading: isLoadingArticles } =\n useFetchKbArticles({\n searchTerm,\n reactQueryOptions: { enabled: !externalOptions },\n });\n\n const isLoading = externalIsLoading || isLoadingArticles;\n\n const selectOptions =\n mode === MODE.SELECT ? createArticleOptions(articles) : [];\n\n const handleModalArticleSelect = article => {\n if (mode !== MODE.MODAL || !article) return;\n\n const articleWithUrl = {\n ...article,\n full_url: buildArticleFullUrl(article.slug),\n };\n\n onArticleSelect(article, articleWithUrl);\n onClose?.();\n };\n\n const { highlightedIndex } = useArticleNavigation({\n articles,\n articlesContainerRef,\n mode,\n onClose,\n handleModalArticleSelect,\n searchTerm,\n });\n\n const handleSelectChange = selectedValueString => {\n const options = externalOptions || selectOptions;\n const selectedOption = findBy({ value: selectedValueString }, options);\n\n if (selectedOption?.data?.type === \"article\" && onChange) {\n onChange(\n { value: selectedOption.value, label: selectedOption.label },\n undefined\n );\n }\n };\n\n useEffect(() => {\n if (mode !== MODE.MODAL || !modalRef.current || !cursorPos) return;\n\n const modal = modalRef.current;\n\n const modalRect = modal.getBoundingClientRect();\n const modalWidth = modalRect.width || 320;\n const modalHeight = modalRect.height || 200;\n\n const maxLeft = window.innerWidth - modalWidth;\n const maxTop = window.innerHeight - modalHeight - MODAL_BOTTOM_MARGIN;\n\n const adjustedLeft = Math.min(cursorPos.left - MODAL_LEFT_OFFSET, maxLeft);\n const adjustedTop = Math.min(cursorPos.top - MODAL_TOP_OFFSET, maxTop);\n\n Object.assign(modal.style, {\n position: \"fixed\",\n top: `${adjustedTop}px`,\n left: `${adjustedLeft}px`,\n transform: `translateY(${MODAL_TRANSFORM_Y}px) translateX(${MODAL_TRANSFORM_X}px)`,\n zIndex: 99999,\n });\n }, [mode, cursorPos]);\n\n useEffect(() => {\n if (mode !== MODE.MODAL) return undefined;\n\n const handleClickOutside = event => {\n if (modalRef.current && !modalRef.current.contains(event.target)) {\n onClose?.();\n }\n };\n\n document.addEventListener(\"mousedown\", handleClickOutside);\n\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [mode, onClose]);\n\n if (mode === MODE.MODAL) {\n return (\n <div className=\"ne-article-picker-popover w-80 border\" ref={modalRef}>\n <div className=\"mb-4\">\n <Search\n autoFocus\n placeholder={t(\"neetoEditor.placeholders.searchArticles\")}\n onSearch={setSearchTerm}\n />\n </div>\n {isLoading ? (\n <div className=\"flex items-center justify-center py-8\">\n <Spinner />\n </div>\n ) : (\n <div>\n <ArticlesList\n {...{ articles, highlightedIndex, searchTerm }}\n containerRef={articlesContainerRef}\n onSelectArticle={handleModalArticleSelect}\n />\n </div>\n )}\n </div>\n );\n }\n\n return (\n <Select\n {...{ className, label, name, placeholder }}\n isSearchable\n isDisabled={isLoading}\n options={externalOptions || selectOptions}\n value={typeof value === \"object\" ? value?.value : value}\n onChange={handleSelectChange}\n />\n );\n};\n\nexport default ArticlePicker;\n","import React from \"react\";\n\nimport { MODE } from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\n\nimport ArticlePicker from \"./ArticlePicker\";\n\nconst ArticleSelector = ({\n editor,\n cursorPos,\n onClose,\n deletedArticlesHook,\n}) => {\n const handleArticleSelect = (article, detailedArticle) => {\n if (!detailedArticle.full_url) return;\n const { from, to } = editor.state.selection;\n\n const linkText = detailedArticle.title || article.title;\n const isDeleted = deletedArticlesHook?.isArticleDeleted(article.id);\n\n const attrs = {\n href: detailedArticle.full_url,\n \"data-neeto-kb-article\": \"true\",\n \"data-article-id\": article.id,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: detailedArticle.title || article.title,\n };\n\n const linkMark = editor.state.schema.marks.link.create(attrs);\n const linkTextWithMark = editor.state.schema.text(linkText, [linkMark]);\n\n const tr = editor.state.tr.replaceWith(from, to, linkTextWithMark);\n editor.view.dispatch(tr);\n editor.view.focus();\n };\n\n return (\n <ArticlePicker\n {...{ cursorPos, deletedArticlesHook, editor, onClose }}\n mode={MODE.MODAL}\n onArticleSelect={handleArticleSelect}\n />\n );\n};\n\nexport default ArticleSelector;\n","import { useCallback } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { findTable } from \"@tiptap/pm/tables\";\nimport { useEditorState } from \"@tiptap/react\";\nimport { BubbleMenu } from \"@tiptap/react/menus\";\nimport { Minus, Plus, Trash2 } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { setActionPreview } from \"./actionPreviewPlugin\";\nimport { getTableSize } from \"./utils\";\n\nconst Counter = ({\n label,\n onDecrement,\n onDecrementHover,\n onIncrementHover,\n onIncrement,\n decrementLabel,\n incrementLabel,\n isDecrementDisabled,\n}) => (\n <div className=\"neeto-editor-table-menu__group neeto-editor-table-menu__group--counter\">\n <Button\n className=\"ne-toolbar-item\"\n disabled={isDecrementDisabled}\n icon={Minus}\n size=\"sm\"\n tooltipProps={{ content: decrementLabel, position: \"top\" }}\n variant=\"ghost\"\n onClick={onDecrement}\n onMouseEnter={() => !isDecrementDisabled && onDecrementHover(true)}\n onMouseLeave={() => onDecrementHover(false)}\n />\n <span className=\"neeto-editor-table-menu__count\">{label}</span>\n <Button\n className=\"ne-toolbar-item\"\n icon={Plus}\n size=\"sm\"\n tooltipProps={{ content: incrementLabel, position: \"top\" }}\n variant=\"ghost\"\n onClick={onIncrement}\n onMouseEnter={() => onIncrementHover(true)}\n onMouseLeave={() => onIncrementHover(false)}\n />\n </div>\n);\n\nconst TableActionMenu = ({ editor }) => {\n const { t } = useTranslation();\n\n const { rows, columns } = useEditorState({\n editor,\n selector: ({ editor }) => getTableSize(editor),\n }) ?? { rows: 0, columns: 0 };\n\n const getReferenceClientRect = useCallback(() => {\n const table = editor && findTable(editor.state.selection.$from);\n const element = table && editor.view.nodeDOM(table.pos);\n\n return element?.getBoundingClientRect?.() ?? new DOMRect(0, 0, 0, 0);\n }, [editor]);\n\n const shouldShow = useCallback(\n () => editor?.isFocused && editor?.isActive(\"table\"),\n [editor]\n );\n\n if (!editor) return null;\n\n return (\n <BubbleMenu\n {...{ editor, shouldShow }}\n className=\"neeto-editor-table-menu\"\n options={{ placement: \"top-start\", offset: 8, flip: false }}\n style={{ zIndex: 99999 }}\n getReferencedVirtualElement={() => ({\n getBoundingClientRect: getReferenceClientRect,\n })}\n >\n <Counter\n decrementLabel={t(\"neetoEditor.table.deleteRow\")}\n incrementLabel={t(\"neetoEditor.table.insertRow\")}\n isDecrementDisabled={rows <= 1}\n label={t(\"neetoEditor.table.rowCount\", { count: rows })}\n onDecrement={() => editor.chain().focus().deleteRow().run()}\n onIncrement={() => editor.chain().focus().addRowAfter().run()}\n onDecrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"deleteRow\" : null)\n }\n onIncrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"insertRow\" : null)\n }\n />\n <Counter\n decrementLabel={t(\"neetoEditor.table.deleteColumn\")}\n incrementLabel={t(\"neetoEditor.table.insertColumn\")}\n isDecrementDisabled={columns <= 1}\n label={t(\"neetoEditor.table.columnCount\", { count: columns })}\n onDecrement={() => editor.chain().focus().deleteColumn().run()}\n onIncrement={() => editor.chain().focus().addColumnAfter().run()}\n onDecrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"deleteColumn\" : null)\n }\n onIncrementHover={isHovering =>\n setActionPreview(editor, isHovering ? \"insertColumn\" : null)\n }\n />\n <div className=\"neeto-editor-table-menu__group\">\n <Button\n className=\"ne-toolbar-item\"\n icon={Trash2}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoEditor.table.delete\"),\n position: \"top\",\n }}\n onClick={() => editor.chain().focus().deleteTable().run()}\n onMouseEnter={() => setActionPreview(editor, \"deleteTable\")}\n onMouseLeave={() => setActionPreview(editor, null)}\n />\n </div>\n </BubbleMenu>\n );\n};\n\nexport default TableActionMenu;\n","import React from \"react\";\n\nimport { Button, Dialog } from \"@bigbinary/neeto-atoms\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nconst KbArticleDeletedModal = withT(({ t, isOpen, onClose }) => (\n <Dialog {...{ isOpen, onClose }}>\n <Dialog.Header>\n <Dialog.Title>{t(\"neetoEditor.linkKb.articleDeletedTitle\")}</Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n <p>{t(\"neetoEditor.linkKb.articleDeletedDescription\")}</p>\n </Dialog.Body>\n <Dialog.Footer>\n <Button label={t(\"neetoEditor.common.close\")} onClick={onClose} />\n </Dialog.Footer>\n </Dialog>\n));\n\nexport default KbArticleDeletedModal;\n","import React from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport { Form, Input } from \"@bigbinary/neeto-atoms/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\nimport { MODE } from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/constants\";\n\nimport ArticlePicker from \"./ArticlePicker\";\n\nconst KbArticleEdit = ({\n linkAttributes,\n getCurrentTextContent,\n getCurrentArticleOption,\n handleKbArticleSubmit,\n handleSelectChange,\n handleKeyDown,\n isLoadingKbData,\n selectOptions,\n setIsEditing,\n}) => {\n const initialValues = {\n textContent:\n getCurrentTextContent?.() ||\n decodeHtmlEntities(linkAttributes?.title || \"\") ||\n \"\",\n pageSelection: getCurrentArticleOption(),\n };\n\n const { t } = useTranslation();\n\n return (\n <Form\n className=\"w-64\"\n formikProps={{\n initialValues,\n onSubmit: handleKbArticleSubmit,\n enableReinitialize: true,\n }}\n >\n {({ dirty, isSubmitting, setFieldValue, values }) => (\n <div className=\"flex w-full flex-col items-start gap-2\">\n <Input\n required\n unlimitedChars\n className=\"w-full\"\n data-testid=\"neeto-editor-edit-kb-link-text-input\"\n label={t(\"neetoEditor.common.text\")}\n name=\"textContent\"\n placeholder={t(\"neetoEditor.placeholders.enterText\")}\n onKeyDown={handleKeyDown}\n />\n <ArticlePicker\n className=\"w-full\"\n data-testid=\"neeto-editor-edit-kb-link-page-select\"\n isLoading={isLoadingKbData}\n label={t(\"neetoEditor.linkKb.articleLabel\")}\n mode={MODE.SELECT}\n name=\"pageSelection\"\n options={selectOptions}\n placeholder={t(\"neetoEditor.linkKb.selectArticle\")}\n value={values.pageSelection}\n onChange={value => handleSelectChange(value, { setFieldValue })}\n />\n <div className=\"ne-link-popover__edit-prompt-buttons\">\n <Button\n data-testid=\"neeto-editor-edit-kb-link-done\"\n disabled={!dirty}\n label={t(\"neetoEditor.common.done\")}\n loading={isSubmitting}\n size=\"sm\"\n type=\"submit\"\n />\n <Button\n data-testid=\"neeto-editor-edit-kb-link-cancel\"\n label={t(\"neetoEditor.common.cancel\")}\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => setIsEditing(false)}\n />\n </div>\n </div>\n )}\n </Form>\n );\n};\n\nexport default KbArticleEdit;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { BookOpen, Pencil } from \"lucide-react\";\nimport { withT } from \"neetocommons/v2/react-utils\";\nimport CopyToClipboardButton from \"neetomolecules/v2/CopyToClipboardButton\";\n\nimport { decodeHtmlEntities } from \"src/utils/common\";\n\nconst KbArticleView = withT(\n ({ t, linkAttributes, isDeleted, onEdit, onDeletedClick, currentText }) => (\n <div>\n <div className=\"flex items-center gap-3\">\n <BookOpen className=\"text-gray-600\" size={16} />\n <a\n href={linkAttributes?.href}\n rel=\"noreferrer\"\n target=\"_blank\"\n className={classnames(\"ne-link-popover__kb-article-link\", {\n \"ne-link-popover__kb-article-link--deleted\": isDeleted,\n })}\n onClick={event => {\n if (!isDeleted) return;\n event.preventDefault();\n onDeletedClick?.();\n }}\n >\n {currentText ||\n decodeHtmlEntities(linkAttributes?.title || \"\") ||\n linkAttributes?.href}\n </a>\n <div className=\"flex items-center gap-0.5\">\n <CopyToClipboardButton\n size=\"sm\"\n value={linkAttributes?.href}\n variant=\"ghost\"\n />\n <Button\n className=\"ne-link-popover__option-button mx-0\"\n data-testid=\"neeto-editor-link-popover-edit\"\n icon={Pencil}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoEditor.common.edit\"),\n position: \"top\",\n }}\n onClick={onEdit}\n />\n </div>\n </div>\n {isDeleted && (\n <div className=\"mt-2 rounded p-2 text-sm\">\n {t(\"neetoEditor.linkKb.articleDeletedDescription\")}\n </div>\n )}\n </div>\n )\n);\n\nexport default KbArticleView;\n","import { useEffect, useState, useRef } from \"react\";\n\nimport { getMarkRange, getMarkType } from \"@tiptap/react\";\nimport { Button, Checkbox } from \"neetoatoms\";\nimport { Form, Input } from \"neetoatoms/formik\";\nimport { findBy } from \"neetocist\";\nimport { useOnClickOutside } from \"neetocommons/v2/react-utils\";\nimport { equals, isNil } from \"ramda\";\nimport { createPortal } from \"react-dom\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchKbArticles } from \"hooks/reactQuery/kbArticle/useArticleFetching\";\nimport { decodeHtmlEntities } from \"src/utils/common\";\nimport { LINK_VALIDATION_SCHEMA } from \"src/v2/components/Editor/constants\";\nimport {\n buildArticleFullUrl,\n createArticleOptions,\n} from \"src/v2/components/Editor/CustomExtensions/LinkKbArticles/utils\";\nimport { getLinkPopoverPosition } from \"src/v2/components/Editor/Menu/Fixed/utils\";\nimport { validateAndFormatUrl } from \"src/v2/components/Editor/utils\";\n\nimport KbArticleDeletedModal from \"./CustomExtensions/LinkKbArticles/KbArticleDeletedModal\";\nimport KbArticleEdit from \"./CustomExtensions/LinkKbArticles/KbArticleEdit\";\nimport KbArticleView from \"./CustomExtensions/LinkKbArticles/KbArticleView\";\n\nconst LinkPopOver = ({ editor, deletedArticlesHook, containerRef }) => {\n const { view } = editor || {};\n const { from } = editor.state.selection;\n const initialTextContent = view?.state?.doc?.nodeAt(from)?.text || \"\";\n\n const [arrowPosition, setArrowPosition] = useState({ top: 0, left: 0 });\n const [popoverPosition, setPopoverPosition] = useState({ top: 0, left: 0 });\n const [isEditing, setIsEditing] = useState(false);\n const [isLinkActive, setIsLinkActive] = useState(editor?.isActive(\"link\"));\n const [linkAttributes, setLinkAttributes] = useState(\n editor?.getAttributes(\"link\")\n );\n\n const [showDeletedModal, setShowDeletedModal] = useState(false);\n\n const popoverRef = useRef(null);\n\n const { t } = useTranslation();\n const isNeetoKbArticle = linkAttributes?.[\"data-neeto-kb-article\"] === \"true\";\n\n const { data: articles = [], isLoading: isLoadingKbData } =\n useFetchKbArticles({\n searchTerm: \"\",\n reactQueryOptions: { enabled: isEditing && isNeetoKbArticle },\n });\n\n const selectOptions = createArticleOptions(articles);\n\n const handleSelectChange = (value, { setFieldValue }) => {\n const selectedOption = findBy({ value: value?.value }, selectOptions);\n\n if (selectedOption?.data?.type === \"article\") {\n setFieldValue(\"pageSelection\", value);\n }\n };\n\n const updatePopoverPosition = () => {\n if (!view) return;\n\n const { arrowPosition, popoverPosition } = getLinkPopoverPosition(\n editor,\n popoverRef\n );\n\n setPopoverPosition({\n top: parseInt(popoverPosition.top),\n left: parseInt(popoverPosition.left),\n });\n\n setArrowPosition({\n top: parseInt(arrowPosition.top),\n left: parseInt(arrowPosition.left),\n });\n };\n\n const handleUnlink = () =>\n editor.chain().focus().extendMarkRange(\"link\").unsetLink().run();\n\n const removePopover = () => {\n setIsEditing(false);\n setIsLinkActive(false);\n };\n\n const popoverStyle = {\n display: \"block\",\n position: \"fixed\",\n top: popoverPosition.top,\n left: popoverPosition.left,\n transform: `translateY(52px) translateX(${isEditing ? \"8px\" : \"3px\"})`,\n };\n\n const handleSubmit = ({ textContent, urlString, openInNewTab }) => {\n const formattedUrl = validateAndFormatUrl(urlString);\n if (equals(textContent, initialTextContent)) {\n editor\n .chain()\n .focus()\n .extendMarkRange(\"link\")\n .setLink({\n href: formattedUrl,\n target: openInNewTab ? \"_blank\" : \"_self\",\n })\n .run();\n\n setIsEditing(false);\n\n return;\n }\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const attrs = {\n href: formattedUrl,\n target: openInNewTab ? \"_blank\" : \"_self\",\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(textContent, [linkMark]);\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n };\n\n const handleKbArticleSubmit = ({ textContent, pageSelection }) => {\n if (!pageSelection || pageSelection === \"\") {\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const articleId = linkAttributes?.[\"data-article-id\"];\n const isDeleted = deletedArticlesHook?.isArticleDeleted(articleId);\n\n const attrs = {\n href: linkAttributes?.href,\n \"data-neeto-kb-article\": linkAttributes?.[\"data-neeto-kb-article\"],\n \"data-article-id\": articleId,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: textContent || decodeHtmlEntities(linkAttributes?.title || \"\"),\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(textContent, [linkMark]);\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n\n return;\n }\n\n const selectedOption = findBy(\n { value: pageSelection?.value },\n selectOptions\n );\n\n if (!selectedOption) return;\n\n const { data } = selectedOption;\n\n if (data?.type === \"article\") {\n const full_url = buildArticleFullUrl(data.slug);\n\n if (full_url) {\n const { state, dispatch } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (isNil(from) || isNil(to)) return;\n\n const isDeleted = deletedArticlesHook?.isArticleDeleted(data.id);\n\n const attrs = {\n href: full_url,\n \"data-neeto-kb-article\": \"true\",\n \"data-article-id\": data.id,\n \"data-article-deleted\": isDeleted ? \"true\" : null,\n title: decodeHtmlEntities(data.title || \"\"),\n };\n\n const linkMark = state.schema.marks.link.create(attrs);\n const linkTextWithMark = state.schema.text(\n textContent || decodeHtmlEntities(data.title || \"\"),\n [linkMark]\n );\n\n const tr = state.tr.replaceWith(from, to, linkTextWithMark);\n dispatch(tr);\n\n setIsEditing(false);\n editor.view.focus();\n editor.commands.extendMarkRange(\"link\");\n }\n }\n };\n\n const handleKeyDown = event =>\n equals(event.key, \"Escape\") && setIsEditing(false);\n\n useOnClickOutside(popoverRef, removePopover, { enabled: true });\n\n useEffect(() => {\n const isActive = editor?.isActive(\"link\");\n\n setIsLinkActive(isActive);\n if (isActive) {\n updatePopoverPosition();\n const currentLinkAttributes = editor?.getAttributes(\"link\");\n\n setLinkAttributes(currentLinkAttributes);\n }\n }, [view?.state?.selection?.$from?.pos, isEditing]);\n\n const getCurrentArticleOption = () => {\n const articleId = linkAttributes?.[\"data-article-id\"];\n if (!articleId) return \"\";\n\n const currentArticleOption = findBy(\n { data: { type: \"article\", id: articleId } },\n selectOptions || []\n );\n\n if (!currentArticleOption && linkAttributes?.title) {\n return {\n label: decodeHtmlEntities(linkAttributes.title),\n value: articleId,\n };\n }\n\n return currentArticleOption || \"\";\n };\n\n const getCurrentTextContent = () => {\n const { state } = editor.view;\n const type = getMarkType(\"link\", state.schema);\n const { $to } = state.selection;\n const { from = null, to = null } = getMarkRange($to, type) || {};\n\n if (from !== null && to !== null) {\n return state.doc.textBetween(from, to);\n }\n const { $from } = state.selection;\n\n return state.doc.textBetween($from.pos, $to.pos);\n };\n\n const renderEditingMode = () => {\n const initialValues = {\n textContent: initialTextContent,\n urlString: linkAttributes?.href || \"\",\n openInNewTab: linkAttributes?.target === \"_blank\",\n };\n\n return (\n <Form\n key={`${linkAttributes?.href}-${linkAttributes?.target}`}\n formikProps={{\n initialValues,\n onSubmit: handleSubmit,\n validationSchema: LINK_VALIDATION_SCHEMA,\n }}\n >\n {({ dirty, isSubmitting, setFieldValue, values }) => (\n <>\n <Input\n required\n data-testid=\"neeto-editor-edit-link-text-input\"\n label={t(\"neetoEditor.common.text\")}\n name=\"textContent\"\n placeholder={t(\"neetoEditor.placeholders.enterText\")}\n style={{ width: \"250px\" }}\n onKeyDown={handleKeyDown}\n />\n <Input\n autoFocus\n required\n className=\"ne-link-popover__url-input\"\n data-testid=\"neeto-editor-edit-link-url-input\"\n label={t(\"neetoEditor.common.url\")}\n name=\"urlString\"\n placeholder={t(\"neetoEditor.placeholders.url\")}\n style={{ width: \"250px\" }}\n onKeyDown={handleKeyDown}\n />\n <Checkbox\n checked={values.openInNewTab}\n className=\"ne-link-popover__checkbox\"\n label={t(\"neetoEditor.common.openInNewTab\")}\n onCheckedChange={checked => {\n setFieldValue(\"openInNewTab\", Boolean(checked));\n }}\n />\n <div className=\"ne-link-popover__edit-prompt-buttons\">\n <Button\n data-testid=\"neeto-editor-edit-link\"\n disabled={!dirty}\n label={t(\"neetoEditor.menu.link\")}\n loading={isSubmitting}\n size=\"sm\"\n type=\"submit\"\n />\n <Button\n data-testid=\"neeto-editor-edit-link-cancel\"\n label={t(\"neetoEditor.common.cancel\")}\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => setIsEditing(false)}\n />\n </div>\n </>\n )}\n </Form>\n );\n };\n\n const renderEditingModeForKbArticle = () => (\n <KbArticleEdit\n {...{\n getCurrentArticleOption,\n getCurrentTextContent,\n handleKbArticleSubmit,\n handleKeyDown,\n handleSelectChange,\n isLoadingKbData,\n linkAttributes,\n selectOptions,\n setIsEditing,\n }}\n />\n );\n\n const renderViewModeForKbArticle = () => {\n const articleId = linkAttributes?.[\"data-article-id\"];\n const isDeleted = deletedArticlesHook?.isArticleDeleted(articleId);\n\n return (\n <KbArticleView\n {...{ isDeleted, linkAttributes }}\n currentText={getCurrentTextContent()}\n onEdit={() => setIsEditing(true)}\n onDeletedClick={() => {\n removePopover();\n setShowDeletedModal(true);\n }}\n />\n );\n };\n\n const renderViewMode = () => (\n <>\n <a href={linkAttributes?.href} rel=\"noreferrer noopener\" target=\"_blank\">\n {linkAttributes?.href}\n </a>\n {\" - \"}\n <Button\n className=\"ne-link-popover__option-button\"\n data-testid=\"neeto-editor-link-popover-edit\"\n label={t(\"neetoEditor.common.edit\")}\n size=\"sm\"\n variant=\"link\"\n onClick={() => setIsEditing(true)}\n />\n <span>|</span>\n <Button\n className=\"ne-link-popover__option-button\"\n data-testid=\"neeto-editor-link-popover-unlink\"\n label={t(\"neetoEditor.common.unlink\")}\n size=\"sm\"\n variant=\"link\"\n onClick={handleUnlink}\n />\n </>\n );\n\n const renderPopoverContent = () => {\n if (isEditing) {\n return isNeetoKbArticle\n ? renderEditingModeForKbArticle()\n : renderEditingMode();\n }\n\n return isNeetoKbArticle ? renderViewModeForKbArticle() : renderViewMode();\n };\n\n return (\n <>\n {createPortal(\n isLinkActive ? (\n <>\n <div\n className=\"ne-link-arrow fade-in\"\n style={{ top: arrowPosition.top, left: arrowPosition.left }}\n />\n <div\n className=\"ne-link-popover fade-in\"\n id=\"ne-link-view-popover\"\n ref={popoverRef}\n style={popoverStyle}\n >\n {renderPopoverContent()}\n </div>\n </>\n ) : null,\n containerRef?.current ?? document.body\n )}\n <KbArticleDeletedModal\n isOpen={showDeletedModal}\n onClose={() => setShowDeletedModal(false)}\n />\n </>\n );\n};\n\nexport default LinkPopOver;\n","import {\n forwardRef,\n useImperativeHandle,\n useState,\n useRef,\n memo,\n useEffect,\n} from \"react\";\n\nimport { Label } from \"@bigbinary/neeto-atoms\";\nimport { EditorView } from \"@tiptap/pm/view\";\nimport { useEditor, EditorContent, useEditorState } from \"@tiptap/react\";\nimport classnames from \"classnames\";\nimport { noop, slugify } from \"neetocist\";\nimport { useFuncDebounce } from \"neetocommons/v2/react-utils\";\nimport { createPortal } from \"react-dom\";\n\nimport { useDeletedArticles } from \"hooks/reactQuery/kbArticle/useDeletedArticles\";\nimport useEditorWarnings from \"hooks/useEditorWarnings\";\nimport { EDITOR_OPTIONS, EDITOR_SIZES } from \"src/common/constants\";\nimport { removeEmptyTags } from \"src/utils\";\nimport ErrorWrapper from \"src/v2/components/Common/ErrorWrapper\";\nimport { DEFAULT_EDITOR_OPTIONS } from \"src/v2/components/Editor/constants\";\nimport {\n clipboardTextParser,\n getEditorStyles,\n handlePaste,\n setInitialPosition,\n transformPastedHTML,\n} from \"src/v2/components/Editor/utils\";\n\nimport CharacterCountWrapper from \"./CustomExtensions/CharacterCount\";\nimport useCustomExtensions from \"./CustomExtensions/hooks/useCustomExtensions\";\nimport ArticleSelector from \"./CustomExtensions/LinkKbArticles/ArticleSelector\";\nimport TableActionMenu from \"./CustomExtensions/Table/TableActionMenu\";\nimport LinkPopOver from \"./LinkPopOver\";\nimport MediaUploader from \"./MediaUploader\";\nimport Menu from \"./Menu\";\nimport MenuDynamicVariables from \"./Menu/DynamicVariables\";\nimport LinkAddPopOver from \"./Menu/Fixed/components/LinkAddPopOver\";\n\nimport Attachments from \"../Attachments\";\n\nconst Editor = (\n {\n addonCommands = [],\n addons = [],\n attachments = [],\n attachmentsConfig = {},\n autoFocus = false,\n className,\n contentClassName,\n contentWrapperClassName,\n errorWrapperClassName,\n contentAttributes = {},\n menuClassName,\n attachmentsClassName,\n isMenuIndependent = false,\n defaults = DEFAULT_EDITOR_OPTIONS,\n editorSecrets = {},\n error = null,\n extensions = [],\n hideSlashCommands = true,\n appendSuggestionsToBody = false,\n initialValue = \"\",\n isCharacterCountActive = false,\n keyboardShortcuts = [],\n label = \"\",\n mentions = [],\n menuType = \"fixed\",\n placeholder,\n required = false,\n rows = 6,\n tooltips = {},\n variables = [],\n disableTrimOnBlur = false,\n onChange = noop,\n onFocus = noop,\n onBlur = noop,\n onSubmit = noop,\n onChangeAttachments = noop,\n children,\n openImageInNewTab = true,\n openLinkInNewTab = false,\n showAssetLibrary = true,\n collaborationProvider = null,\n enableReactNodeViewOptimization = false,\n size = EDITOR_SIZES.SMALL,\n otherAttachmentProps = {},\n ...otherProps\n },\n ref\n) => {\n const [isAttachmentsUploading, setIsAttachmentsUploading] = useState(false);\n const wrapperRef = useRef(null);\n const isArticleOptActive = addons.includes(EDITOR_OPTIONS.NEETO_KB_ARTICLE);\n const isAttachmentsActive = addons.includes(EDITOR_OPTIONS.ATTACHMENTS);\n const isMediaUploaderActive =\n addons.includes(EDITOR_OPTIONS.IMAGE_UPLOAD) ||\n addons.includes(EDITOR_OPTIONS.VIDEO_UPLOAD);\n const isFixedMenuActive = menuType === \"fixed\";\n const isBubbleMenuActive = menuType === \"bubble\";\n const isSlashCommandsActive =\n !hideSlashCommands || (isBubbleMenuActive && !hideSlashCommands);\n const isPlaceholderActive = !!placeholder || isSlashCommandsActive;\n const [isAddLinkActive, setIsAddLinkActive] = useState(false);\n const [mediaUploader, setMediaUploader] = useState({\n image: false,\n video: false,\n });\n\n const [neetoKbArticleState, setNeetoKbArticleState] = useState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n });\n\n const addAttachmentsRef = useRef(null);\n\n const attachmentProps = {\n handleUploadAttachments: () =>\n addAttachmentsRef.current?.handleUploadAttachments(),\n isDisabled: isAttachmentsUploading,\n };\n\n const debouncedOnChangeHandler = useFuncDebounce(({ editor }) => {\n if (!editor.isDestroyed) onChange(editor.getHTML());\n }, 100);\n\n useEffect(() => debouncedOnChangeHandler.cancel, []);\n\n const handleBlur = props => {\n const { editor } = props;\n if (!disableTrimOnBlur) {\n const content = editor.getHTML();\n const trimmedContent = removeEmptyTags(content);\n\n if (content !== trimmedContent) onChange(trimmedContent);\n }\n onBlur(props);\n };\n\n const customExtensions = useCustomExtensions({\n placeholder,\n extensions,\n mentions,\n variables,\n isSlashCommandsActive,\n options: [...defaults, ...addons],\n addonCommands,\n onSubmit,\n keyboardShortcuts,\n setMediaUploader,\n setIsAddLinkActive,\n attachmentProps,\n openImageInNewTab,\n openLinkInNewTab,\n enableReactNodeViewOptimization,\n collaborationProvider,\n setIsNeetoKbArticleActive: setNeetoKbArticleState,\n containerRef: wrapperRef,\n appendSuggestionsToBody,\n });\n useEditorWarnings({ initialValue });\n\n const editorClasses = classnames(\"neeto-editor\", {\n \"fixed-menu-active\": isFixedMenuActive,\n \"bubble-menu-active\": isBubbleMenuActive,\n \"placeholder-active\": isPlaceholderActive,\n \"attachments-active\": isAttachmentsActive,\n \"neeto-editor-size--large\": size === EDITOR_SIZES.LARGE,\n \"neeto-editor-size--medium\": size === EDITOR_SIZES.MEDIUM,\n \"neeto-editor-size--small\": size === EDITOR_SIZES.SMALL,\n [contentClassName]: contentClassName,\n });\n\n const ariaAttributes = {\n role: \"textbox\",\n \"aria-label\": \"editor-content\",\n \"aria-multiline\": \"true\",\n \"aria-labelledby\": \"labelId\",\n \"aria-required\": required,\n \"aria-roledescription\": \"editor\",\n };\n\n const editor = useEditor({\n extensions: customExtensions,\n content: initialValue,\n injectCSS: false,\n immediatelyRender: false,\n shouldRerenderOnTransaction: false,\n autofocus: autoFocus && \"end\",\n editorProps: {\n attributes: {\n class: editorClasses,\n style: getEditorStyles({ rows }),\n \"data-testid\": \"neeto-editor-content\",\n ...ariaAttributes,\n ...contentAttributes,\n },\n clipboardTextParser,\n handlePaste,\n transformPastedHTML,\n },\n parseOptions: { preserveWhitespace: true },\n onCreate: ({ editor }) => !autoFocus && setInitialPosition(editor),\n onUpdate: debouncedOnChangeHandler,\n onFocus,\n onBlur: handleBlur,\n });\n\n useEditorState({\n editor,\n selector: () => ({\n isMediaUploaderActive,\n isLinkActive: editor?.isActive(\"link\"),\n }),\n });\n\n const deletedArticlesHook = useDeletedArticles(\n isArticleOptActive ? editor : null\n );\n\n useImperativeHandle(\n ref,\n () => ({ editor, focus: () => editor?.commands?.focus?.() }),\n [editor]\n );\n\n useEffect(() => {\n if (!editor && neetoKbArticleState.active) {\n setNeetoKbArticleState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n });\n }\n }, [editor, neetoKbArticleState.active]);\n\n useEffect(() => {\n if (!editor || !deletedArticlesHook.deletedArticleIds.size) return;\n\n editor.commands.updateDeletedArticles(\n deletedArticlesHook.deletedArticleIds\n );\n }, [editor, deletedArticlesHook.deletedArticleIds]);\n\n EditorView.prototype.updateState = function updateState(state) {\n if (!this.docView) return;\n this.updateStateInner(state, this.state.plugins !== state.plugins);\n };\n\n return (\n <div\n data-testid=\"neeto-editor-wrapper\"\n ref={wrapperRef}\n className={classnames(\"ne-editor--v2\", {\n [className]: className,\n \"ne-attachments__wrapper\": isAttachmentsActive,\n })}\n >\n {label && (\n <Label\n {...{ required }}\n className=\"mb-2\"\n data-testid={`${slugify(label)}-editor-label`}\n >\n {label}\n </Label>\n )}\n <ErrorWrapper {...{ error }} className={errorWrapperClassName}>\n <>\n {menuType !== \"none\" && (\n <Menu\n {...{\n addonCommands,\n addons,\n attachmentProps,\n defaults,\n editor,\n editorSecrets,\n mentions,\n menuType,\n neetoKbArticleState,\n openLinkInNewTab,\n showAssetLibrary,\n tooltips,\n variables,\n }}\n className={menuClassName}\n containerRef={wrapperRef}\n isIndependant={isMenuIndependent}\n setIsNeetoKbArticleActive={setNeetoKbArticleState}\n />\n )}\n {children}\n {menuType === \"none\" && (\n <div className=\"neeto-editor-fixed-menu-standalone-variables-wrapper\">\n <MenuDynamicVariables {...{ editor, variables }} standalone />\n </div>\n )}\n <EditorContent\n className={contentWrapperClassName}\n {...{ editor, ...otherProps }}\n />\n {isMediaUploaderActive && (\n <MediaUploader\n {...{ editor, mediaUploader, showAssetLibrary }}\n onClose={() => setMediaUploader({ image: false, video: false })}\n />\n )}\n {isAttachmentsActive && (\n <Attachments\n {...{ attachments }}\n config={attachmentsConfig}\n dragDropRef={wrapperRef}\n isIndependent={false}\n ref={addAttachmentsRef}\n setIsUploading={setIsAttachmentsUploading}\n className={classnames(\"ne-attachments--integrated\", {\n [attachmentsClassName]: attachmentsClassName,\n })}\n onChange={onChangeAttachments}\n {...otherAttachmentProps}\n />\n )}\n {editor?.isActive(\"link\") && (\n <LinkPopOver\n {...{ deletedArticlesHook, editor }}\n containerRef={wrapperRef}\n />\n )}\n {isAddLinkActive && (\n <LinkAddPopOver\n {...{\n editor,\n isAddLinkActive,\n openLinkInNewTab,\n setIsAddLinkActive,\n }}\n containerRef={wrapperRef}\n />\n )}\n {neetoKbArticleState.active &&\n neetoKbArticleState.cursorPos &&\n createPortal(\n <ArticleSelector\n {...{ deletedArticlesHook }}\n cursorPos={neetoKbArticleState.cursorPos}\n editor={neetoKbArticleState.editor}\n onClose={() =>\n setNeetoKbArticleState({\n active: false,\n editor: null,\n range: null,\n cursorPos: null,\n })\n }\n />,\n wrapperRef.current ?? document.body\n )}\n <TableActionMenu {...{ editor }} appendTo={wrapperRef} />\n {isCharacterCountActive && <CharacterCountWrapper {...{ editor }} />}\n </>\n </ErrorWrapper>\n </div>\n );\n};\n\nEditor.displayName = \"NeetoEditor\";\n\nexport default memo(forwardRef(Editor));\n"],"names":["ErrorWrapper","_ref","error","children","className","isError","isNotPresent","wrapperClasses","classnames","_defineProperty","getErrorMessage","message","is","String","Array","Object","_jsxs","_Fragment","_jsx","memo","CharacterCountWrapper","editor","characters","useEditorState","selector","_ref2","_editor$storage$chara","storage","characterCount","Extension","create","name","addOptions","types","addGlobalAttributes","options","attributes","backgroundColor","parseHTML","element","style","replace","renderHTML","concat","addCommands","setHighlightInternal","color","chain","setMark","run","unsetHighlightInternal","BulletList","configure","HTMLAttributes","itemTypeName","CalloutComponent","_findBy","node","type","attrs","Icon","findBy","CALLOUT_TYPES","icon","Megaphone","NodeViewWrapper","NodeViewContent","Node","inline","group","content","defining","draggable","addAttributes","getAttribute","tag","contentElement","svgString","ReactDOM","renderToStaticMarkup","svgContainer","document","createElement","innerHTML","svgNode","firstChild","mergeAttributes","addNodeView","ReactNodeViewRenderer","_this","setCallout","arguments","length","undefined","_attributes$type","toggleWrap","command","_ref3","tr","state","dispatch","selection","$from","calloutNode","depth","pos","after","nextNode","doc","nodeAt","insert","schema","nodes","paragraph","focus","addKeyboardShortcuts","_this2","Backspace","_this2$editor","commands","_state$selection","empty","parentOffset","currentNode","parent","size","lift","ArrowDown","_this2$editor2","_state$selection2","isAtEnd","calloutContent","currentNodeIndex","index","isLastNode","childCount","endPos","nodeSize","setTextSelection","insertContentAt","codeBlockHighlightKey","PluginKey","createLineDecoration","from","lineNumber","Decoration","widget","view","line","setAttribute","toString","lineElement","domAtPos","Element","lineHeight","window","getComputedStyle","height","getLineRanges","lines","textContent","split","currentPos","map","to","codeBlockHighlightPlugin","Plugin","key","init","DecorationSet","apply","set","mapping","getMeta","decorations","descendants","highlightedLines","lineRanges","forEach","includes","push","props","getState","SORTED_LANGUAGE_LIST","_toConsumableArray","lowlight","listLanguages","sort","LINE_NUMBER_OPTIONS","label","t","value","Menu","DropdownMenu","MenuItem","CodeBlockComponent","_node$attrs","_node$content","updateAttributes","_useState","useState","_useState2","_slicedToArray","keyword","setKeyword","_useState3","_useState4","showHighlightButton","setShowHighlightButton","_useState5","linenumbers","_useState6","showLineNumbers","setShowLineNumbers","ref","useRef","_useTranslation","useTranslation","filteredAndSortedLanguageList","filter","language","handleLanguageSelect","_editor$commands","handleContentMount","current","offsetHeight","minHeight","handleSelectionChange","useCallback","_editor$state$selecti","isCodeBlockSelected","isActive","useEffect","on","off","setMeta","handleHighlight","_editor$state$selecti2","resolve","codeBlock","codeBlockStart","start","textBeforeSelection","textBetween","startLine","selectedText","selectedLines","newSelectedLines","_","currentHighlightedLines","overlapLines","intersection","difference","union","contentEditable","buttonProps","variant","dropdownProps","ChevronDown","onClick","Input","autoFocus","placeholder","onChange","e","target","preventDefault","stopPropagation","CopyToClipboardButton","text","Button","Highlighter","tooltipProps","as","CodeBlockLowlight","extend","_this$parent","_objectSpread","call","_element$dataset$high","dataset","Number","Boolean","_attributes$highlight","_attributes$highlight2","join","addProseMirrorPlugins","_this$parent2","defaultLanguage","_regenerator","r","Symbol","n","iterator","o","toStringTag","i","c","prototype","Generator","u","_regeneratorDefine2","f","p","y","G","v","a","d","bind","l","TypeError","done","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","setPrototypeOf","__proto__","displayName","w","m","defineProperty","_regeneratorDefine","_invoke","enumerable","configurable","writable","pasteUnformatted","_asyncToGenerator","_callee","_context","navigator","clipboard","readText","insertContent","_x","DeletedArticleDecoration","deletedArticleIds","Set","marks","mark","articleId","has","decoration","updateDeletedArticles","updateState","EditorContainer","containerRef","appendSuggestionsToBody","addStorage","onBeforeCreate","EmojiPickerPluginKey","EmojiPicker","selectable","atom","suggestion","startOfLine","pluginKey","items","render","reactRenderer","popup","onStart","ReactRenderer","EmojiPickerMenu","tippy","theme","getReferenceClientRect","clientRect","appendTo","getSuggestionAppendTo","showOnCreate","interactive","trigger","placement","zIndex","onKeyDown","_reactRenderer$ref","onExit","destroy","Suggestion","DEFAULT_EMOJI_PRIORITIES_LIST","EMOJI_QUERY_REGEX","filterEmojiSuggestions","suggestions","frequentlyUsedEmojis","mergedEmojiList","emoji","b","aIndex","indexOf","id","bIndex","slice","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","valueOf","EmojiSuggestionMenu","_React$Component","_classCallCheck","_len","args","_key","isLoading","selectedIndex","emojiSuggestions","_yield$emojiPickerApi","data","setState","emojiPickerApi","fetch","_callee2","_context2","query","SearchIndex","search","_callee3","_context3","searchEmoji","_callee4","_context4","deleteRange","range","setEmoji","_ref5","event","isEmpty","_ref6","_ref7","selectItem","_inherits","_createClass","componentDidMount","keys","JSON","parse","localStorage","getItem","fetchEmojiData","previewPosition","searchEmojiAndSetState","componentDidUpdate","oldProps","Spinner","isNotEmpty","skins","React","Component","EmojiSuggestionPluginKey","EmojiSuggestion","renderEmoji","renderText","_ref4","_emoji$skins$","suggestionConfig","input","lastKeyCode","onUpdate","_popup$","isArrowNavigation","isNil","test","arrow","updateProps","setProps","_reactRenderer","_popup$2","_reactRenderer2","imageSkeletonContainer","classList","add","imageSkeleton","appendChild","LARGE_IMAGE_ERROR","ImagePreviewModal","previewUrl","setPreviewUrl","setIsLoading","imagePreviewRef","handleClose","useOnClickOutside","enabled","isPresent","handleKeyDown","createPortal","X","alt","src","onLoad","body","DropdownMenuList","buildImageOptions","border","showAspectRatio","AlignLeft","alignPos","optionName","AlignCenter","AlignRight","Ratio","ratio","tooltipLabel","RectangleHorizontal","RectangleVertical","Square","SquareDashed","borderToggle","Trash2","align","deleteNode","menuOptions","handleClick","position","customTarget","Ellipsis","Tooltip","prefix","aspectRatio","ImageComponent","_figureRef$current","getPos","figheight","figwidth","captionWidth","setCaptionWidth","figureRef","width","caption","editorElement","closest","maxImageWidth","offsetWidth","handleResizeStop","_event","_direction","setNodeMarkup","mergeRight","classNames","Resizable","lockAspectRatio","minWidth","onResizeStop","onResize","upload","file","url","_response$data","uploader","response","globalProps","endUserUploadedFileSizeLimitInMb","DirectUpload","blob_url","Error","_x2","findNextTextPos","foundPos","nodesBetween","nodePos","isTextblock","openImageInNewTab","isolating","_element$querySelecto","querySelector","_element$querySelecto2","_element$querySelecto3","_element$querySelecto4","_element$querySelecto5","_element$querySelecto6","wrapperDivAttrs","wrapperLinkPointerEventsStyle","heightStyle","wrapperLinkAttrs","href","rel","captionAttrs","contenteditable","setFigure","_objectWithoutProperties","_excluded","Enter","head","$head","tail","nextTextPos","ArrowUp","lineTop","coordsAtPos","caret","top","bottom","before","scrollIntoView","setSelection","Selection","near","handleDOMEvents","paste","_event$clipboardData","_event$clipboardData2","_view$state","$anchor","clipboardData","getData","hasFiles","files","_DOMParser$parseFromS","plainText","DOMParser","parseFromString","pasteText","images","image","emptyImageNode","imageNode","_view$state2","_tr","_doc","_tr2","_t","Math","random","substring","DIRECT_UPLOAD_ENDPOINT","replaceWith","console","Toastr","limit","_x3","Italic","addInputRules","addPasteRules","KeyboardShortcuts","onSubmit","shortcuts","isBlockQuoteActive","ModEnter","getHTML","ModShiftB","toggleBlockquote","LINK_MARKDOWN_INPUT_REGEX","linkInputRule","config","defaultMarkInputRule","markInputRule","InputRule","find","handler","RangeError","withTrimmedLinkPaste","plugin","handlePaste","spec","trimmedText","trim","trimmedSlice","Slice","Fragment","Link","inclusive","title","_this$parent3","getAttributes","match","_match$pop","_match$pop2","pop","MentionList","_this$props","item","prevState","nextSelectedIndex","keyDownHandlers","upHandler","downHandler","enterHandler","Tab","tabHandler","hasOwnProperty","mentionRef","createRef","prevProps","scrollHandler","wrapperRef","imageUrl","active","Avatar","user","Typography","createMentionSuggestions","mentions","_ref$query","mention","toLowerCase","hide","_popup","Mentions","Mention","setMention","_ref3$suggestion","otherConfig","OrderedList","Placeholder","excludeNodeTypes","emptyEditorClass","emptyNodeClass","slashCommandsPlaceholder","showOnlyWhenEditable","showOnlyCurrent","includeChildren","isEditable","anchor","hasAnchor","isLeaf","isExcluded","classes","placeholderText","isSlashCommandsActive","isFocused","Document","selectedTextDecoration","oldState","remove","MENU_ITEMS","EDITOR_OPTIONS","PARAGRAPH","description","TextP","setNode","BOLD","TextBold","toggleBold","ITALIC","TextItalic","toggleItalic","UNDERLINE","Underline","toggleUnderline","H1","TextH1","level","H2","TextH2","H3","TextH3","H4","TextH4","_ref8","H5","TextH5","_ref9","LIST_ORDERED","ListNumber","_ref0","toggleOrderedList","LIST_BULLETS","ListDot","_ref1","toggleBulletList","LINK","noop","NEETO_KB_ARTICLE","File","ATTACHMENTS","Attachment","TODO_LIST","Checkbox","_ref10","toggleTaskList","IMAGE_UPLOAD","ImageUpload","VIDEO_UPLOAD","Video","BLOCKQUOTE","Blockquote","_ref11","CODE_BLOCK","CodeBlock","_ref12","toggleCodeBlock","EMOJI","Smiley","_ref13","DIVIDER","Minus","_ref14","setHorizontalRule","PASTE_UNFORMATTED","Notes","_ref15","TABLE","Column","_ref16","insertTable","rows","cols","withHeaderRow","CALLOUT","MessageSquare","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","NO_RESULT_MENU_ITEM","_ref23","MENU_MAX_HEIGHT","MENU_BOUNDARY_PADDING","MENU_MAX_HEIGHT_CSS_VARIABLE","imageCommand","setMediaUploader","assoc","videoCommand","linkCommand","setIsAddLinkActive","attachmentCommand","attachmentProps","handleUploadAttachments","neetoKbArticleCommand","setIsNeetoKbArticleActive","cursorPos","getOppositePlacement","side","getOffsetDistance","_state$modifiersData$","_state$modifiersData$2","abs","modifiersData","offset","buildCommandItems","addonCommands","commandItems","permittedCommandItems","adddonCommandItems","fitToAvailableHeight","phase","requiresIfExists","fn","_skip","menu","elements","popper","_detectOverflow","detectOverflow","elementContext","altBoundary","padding","isVertical","menuChromeHeight","rects","menuContentHeight","min","scrollHeight","availableHeight","reference","preferredPlacement","oppositePlacement","getSpace","candidatePlacement","startsWith","preferredSpace","oppositeSpace","menuHeight","shouldUseOpposite","menuMaxHeight","max","floor","setProperty","popperHeight","reset","listeners","ArrowLeft","leftArrowHandler","ArrowRight","rightArrowHandler","selectedItem","hasCommand","_this$props2","menuIndex","setActiveMenuIndex","_this$props3","hasSubItems","menuRef","_this$props4","activeMenuIndex","isCurrentMenuActive","addEventListener","keydownHandler","componentWillUnmount","removeEventListener","_this$props5","_this$props6","isLeafNode","nodeElement","_createElement","onHover","Tippy","popperOptions","modifiers","visible","onCreate","onHide","isSubmenuOpened","onShow","forwardRef","onMouseEnter","CommandsList","CommandsPluginKey","filteredItems","fuzzySearch","role","highlightFocussedNode","resetFocussedNode","SpecialMentionPluginKey","renderLabel","_node$attrs$label","SpecialMentions","PREVIEW_CLASS_PREFIX","DEFAULT_COLUMN_WIDTH","SAVED_COLUMN_MIN_WIDTH","TABLE_ACTION_PREVIEWS","deleteRow","rect","left","right","deleteColumn","deleteTable","insertRow","insertColumn","actionPreviewKey","actionPreviewPlugin","action","meta","docChanged","selectionSet","isInTable","tableRect","selectedRect","_TABLE_ACTION_PREVIEW","cellsInRect","cellPos","tableStart","table","setActionPreview","updateColumns","colgroup","cellMinWidth","totalWidth","nextDOM","row","col","_row$child$attrs","child","colspan","colwidth","j","cssWidth","nextSibling","parentNode","removeChild","TableView","dom","alignmentSuffix","textAlign","alignmentClass","wrapper","contentDOM","update","_node$attrs2","currentAlignmentClass","ignoreMutation","mutation","contains","getTableRect","findTable","TableMap","get","getTableSize","columns","isSuggestionActive","plugins","some","pluginState","moveToCellBelow","_$from$node","TextSelection","cellDepth","cellRole","tableRole","_map$findCell","findCell","addRow","updatedMap","exitTable","afterTable","nodeAfter","Table","TiptapTable","resizable","handleWidth","View","lastColumnResizable","allowTableNodeSelection","getAlignmentFromElement","dataAlign","priority","getAttrs","alignment","parentElement","parentAlignment","fixedWidth","colgroups","firstRow","cell","_cell$attrs","span","hasWidth","tableStyle","_this$parent4","goToNextCell","ModAltT","TodoListExtension","TaskList","ModShift9","TodoItemExtension","TaskItem","splitListItem","sinkListItem","ShiftTab","liftListItem","nested","MAX_VARIABLE_NAME_DISPLAY_LENGTH","VariableComponent","_variableName$substr","extension","_getVariableDisplay","getVariableDisplay","variableName","shouldTruncate","charOpen","disabled","substr","charClose","Variable","setVariable","VideoComponent","vidheight","vidwidth","maxVideoWidth","handleResize","controls","preload","EmbedComponent","allowFullScreen","getSharedAttributes","tagName","iframe","video","videoType","getUploadAttributes","getEmbedAttributes","_element$querySelecto7","getVideoDimension","_element$querySelecto8","DEFAULT_ASPECT_RATIO","originalUrl","_iframe$querySelector","frameBorder","allow","allowfullscreen","renderEmbedHTML","renderUploadHTML","handleVideoPaste","validatedUrl","validateUrl","UnifiedVideoExtension","_figure$querySelector","_figure$querySelector2","figure","videoSrc","iframeSrc","fontWeight","setVideo","_excluded2","end","setExternalVideo","_tr$doc$nodeAt","$to","PasteRule","COMBINED_REGEX","useCustomExtensions","extensions","variables","keyboardShortcuts","openLinkInNewTab","enableReactNodeViewOptimization","collaborationProvider","customExtensions","CharacterCount","Code","CustomCommands","FigCaption","HighlightInternal","SelectionDecoration","Focus","mode","Highlight","ImageExtension","StarterKit","code","bulletList","listItem","blockquote","orderedList","italic","link","underline","listKeymap","trailingNode","undoRedo","heading","levels","buildLevelsFromOptions","safeSplitBlock","safeListKeymap","TextStyle","TableRow","TableHeader","TableCell","TEXT_COLOR","HIGHLIGHT","Color","ListItem","Callout","SlashCommands","_collaborationProvide","Collaboration","CollaborationCaret","provider","NEETO_KB_ENDPOINT","kbUrl","MODE","MODAL","SELECT","MODAL_BOTTOM_MARGIN","MODAL_LEFT_OFFSET","MODAL_TOP_OFFSET","MODAL_TRANSFORM_Y","MODAL_TRANSFORM_X","useArticleNavigation","_ref$articles","articles","articlesContainerRef","onClose","handleModalArticleSelect","searchTerm","highlightedIndex","setHighlightedIndex","container","highlightedItem","containerRect","getBoundingClientRect","itemRect","isItemAbove","isItemBelow","scrollTop","navigationHandlers","down","prev","up","keyActions","Escape","shiftKey","handleKeyboardNavigation","buildArticleFullUrl","slug","createArticleOptions","article","decodeHtmlEntities","ArticlesList","withT","onSelectArticle","_ref$highlightedIndex","ArticlePicker","_ref$mode","externalIsLoading","externalOptions","onArticleSelect","setSearchTerm","modalRef","_useFetchKbArticles","useFetchKbArticles","reactQueryOptions","_useFetchKbArticles$d","isLoadingArticles","selectOptions","articleWithUrl","full_url","_useArticleNavigation","handleSelectChange","selectedValueString","_selectedOption$data","selectedOption","modal","modalRect","modalWidth","modalHeight","maxLeft","innerWidth","maxTop","innerHeight","adjustedLeft","adjustedTop","assign","transform","handleClickOutside","Search","onSearch","Select","isSearchable","isDisabled","_typeof","ArticleSelector","deletedArticlesHook","handleArticleSelect","detailedArticle","linkText","isDeleted","isArticleDeleted","linkMark","linkTextWithMark","Counter","onDecrement","onDecrementHover","onIncrementHover","onIncrement","decrementLabel","incrementLabel","isDecrementDisabled","onMouseLeave","Plus","TableActionMenu","_useEditorState","_element$getBoundingC","_element$getBoundingC2","nodeDOM","DOMRect","shouldShow","BubbleMenu","flip","getReferencedVirtualElement","count","addRowAfter","isHovering","addColumnAfter","KbArticleDeletedModal","isOpen","Dialog","Header","Title","Body","Footer","KbArticleEdit","linkAttributes","getCurrentTextContent","getCurrentArticleOption","handleKbArticleSubmit","isLoadingKbData","setIsEditing","initialValues","pageSelection","Form","formikProps","enableReinitialize","dirty","isSubmitting","setFieldValue","values","required","unlimitedChars","loading","KbArticleView","onEdit","onDeletedClick","currentText","BookOpen","Pencil","LinkPopOver","_containerRef$current","initialTextContent","arrowPosition","setArrowPosition","popoverPosition","setPopoverPosition","isEditing","_useState7","_useState8","isLinkActive","setIsLinkActive","_useState9","_useState0","setLinkAttributes","_useState1","_useState10","showDeletedModal","setShowDeletedModal","popoverRef","isNeetoKbArticle","updatePopoverPosition","_getLinkPopoverPositi","getLinkPopoverPosition","parseInt","handleUnlink","extendMarkRange","unsetLink","removePopover","popoverStyle","display","handleSubmit","urlString","openInNewTab","formattedUrl","validateAndFormatUrl","equals","setLink","_editor$view","getMarkType","getMarkRange","_ref5$from","_ref5$to","_editor$view2","_ref7$from","_ref7$to","_editor$view3","_ref8$from","_ref8$to","currentLinkAttributes","currentArticleOption","_ref9$from","_ref9$to","renderEditingMode","validationSchema","LINK_VALIDATION_SCHEMA","checked","onCheckedChange","renderEditingModeForKbArticle","renderViewModeForKbArticle","renderViewMode","renderPopoverContent","Editor","_wrapperRef$current","_ref$addonCommands","_ref$addons","addons","_ref$attachments","attachments","_ref$attachmentsConfi","attachmentsConfig","_ref$autoFocus","contentClassName","contentWrapperClassName","errorWrapperClassName","_ref$contentAttribute","contentAttributes","menuClassName","attachmentsClassName","_ref$isMenuIndependen","isMenuIndependent","_ref$defaults","defaults","DEFAULT_EDITOR_OPTIONS","_ref$editorSecrets","editorSecrets","_ref$error","_ref$extensions","_ref$hideSlashCommand","hideSlashCommands","_ref$appendSuggestion","_ref$initialValue","initialValue","_ref$isCharacterCount","isCharacterCountActive","_ref$keyboardShortcut","_ref$label","_ref$mentions","_ref$menuType","menuType","_ref$required","_ref$rows","_ref$tooltips","tooltips","_ref$variables","_ref$disableTrimOnBlu","disableTrimOnBlur","_ref$onChange","_ref$onFocus","onFocus","_ref$onBlur","onBlur","_ref$onSubmit","_ref$onChangeAttachme","onChangeAttachments","_ref$openImageInNewTa","_ref$openLinkInNewTab","_ref$showAssetLibrary","showAssetLibrary","_ref$collaborationPro","_ref$enableReactNodeV","_ref$size","EDITOR_SIZES","SMALL","_ref$otherAttachmentP","otherAttachmentProps","otherProps","isAttachmentsUploading","setIsAttachmentsUploading","isArticleOptActive","isAttachmentsActive","isMediaUploaderActive","isFixedMenuActive","isBubbleMenuActive","isPlaceholderActive","isAddLinkActive","mediaUploader","neetoKbArticleState","setNeetoKbArticleState","addAttachmentsRef","_addAttachmentsRef$cu","debouncedOnChangeHandler","useFuncDebounce","isDestroyed","cancel","handleBlur","trimmedContent","removeEmptyTags","useEditorWarnings","editorClasses","LARGE","MEDIUM","ariaAttributes","useEditor","injectCSS","immediatelyRender","shouldRerenderOnTransaction","autofocus","editorProps","getEditorStyles","clipboardTextParser","transformPastedHTML","parseOptions","preserveWhitespace","setInitialPosition","useDeletedArticles","useImperativeHandle","_editor$commands$focu","EditorView","docView","updateStateInner","Label","slugify","isIndependant","MenuDynamicVariables","standalone","EditorContent","MediaUploader","Attachments","dragDropRef","isIndependent","setIsUploading","LinkAddPopOver"],"mappings":"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","x_google_ignoreList":[34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64]}