@plasmicpkgs/tiptap 0.0.28 → 0.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.js +13 -26
- package/dist/index.js.map +1 -1
- package/dist/tiptap.esm.js +13 -26
- package/dist/tiptap.esm.js.map +1 -1
- package/package.json +3 -3
- package/skinny/registerBold.cjs.js +1 -1
- package/skinny/registerBold.cjs.js.map +1 -1
- package/skinny/registerBold.esm.js +1 -1
- package/skinny/registerBold.esm.js.map +1 -1
- package/skinny/registerCode.cjs.js +1 -1
- package/skinny/registerCode.cjs.js.map +1 -1
- package/skinny/registerCode.esm.js +1 -1
- package/skinny/registerCode.esm.js.map +1 -1
- package/skinny/registerItalic.cjs.js +1 -1
- package/skinny/registerItalic.cjs.js.map +1 -1
- package/skinny/registerItalic.esm.js +1 -1
- package/skinny/registerItalic.esm.js.map +1 -1
- package/skinny/registerLink.cjs.js +1 -1
- package/skinny/registerLink.cjs.js.map +1 -1
- package/skinny/registerLink.esm.js +1 -1
- package/skinny/registerLink.esm.js.map +1 -1
- package/skinny/registerMention.cjs.js +6 -11
- package/skinny/registerMention.cjs.js.map +1 -1
- package/skinny/registerMention.esm.js +6 -11
- package/skinny/registerMention.esm.js.map +1 -1
- package/skinny/registerStrike.cjs.js +1 -1
- package/skinny/registerStrike.cjs.js.map +1 -1
- package/skinny/registerStrike.esm.js +1 -1
- package/skinny/registerStrike.esm.js.map +1 -1
- package/skinny/{registerTiptap-3c71865b.esm.js → registerTiptap-385a5c96.esm.js} +2 -3
- package/skinny/{registerTiptap-3c71865b.esm.js.map → registerTiptap-385a5c96.esm.js.map} +1 -1
- package/skinny/{registerTiptap-004bd7c8.cjs.js → registerTiptap-b077cd09.cjs.js} +2 -3
- package/skinny/{registerTiptap-004bd7c8.cjs.js.map → registerTiptap-b077cd09.cjs.js.map} +1 -1
- package/skinny/registerTiptap.cjs.js +1 -1
- package/skinny/registerTiptap.esm.js +1 -1
- package/skinny/registerToolbarBold.cjs.js +2 -3
- package/skinny/registerToolbarBold.cjs.js.map +1 -1
- package/skinny/registerToolbarBold.esm.js +2 -3
- package/skinny/registerToolbarBold.esm.js.map +1 -1
- package/skinny/registerToolbarCode.cjs.js +2 -3
- package/skinny/registerToolbarCode.cjs.js.map +1 -1
- package/skinny/registerToolbarCode.esm.js +2 -3
- package/skinny/registerToolbarCode.esm.js.map +1 -1
- package/skinny/registerToolbarItalic.cjs.js +2 -3
- package/skinny/registerToolbarItalic.cjs.js.map +1 -1
- package/skinny/registerToolbarItalic.esm.js +2 -3
- package/skinny/registerToolbarItalic.esm.js.map +1 -1
- package/skinny/registerToolbarLink.cjs.js +2 -3
- package/skinny/registerToolbarLink.cjs.js.map +1 -1
- package/skinny/registerToolbarLink.esm.js +2 -3
- package/skinny/registerToolbarLink.esm.js.map +1 -1
- package/skinny/registerToolbarMention.cjs.js +2 -3
- package/skinny/registerToolbarMention.cjs.js.map +1 -1
- package/skinny/registerToolbarMention.esm.js +2 -3
- package/skinny/registerToolbarMention.esm.js.map +1 -1
- package/skinny/registerToolbarStrike.cjs.js +2 -3
- package/skinny/registerToolbarStrike.cjs.js.map +1 -1
- package/skinny/registerToolbarStrike.esm.js +2 -3
- package/skinny/registerToolbarStrike.esm.js.map +1 -1
- package/skinny/registerToolbarUnderline.cjs.js +2 -3
- package/skinny/registerToolbarUnderline.cjs.js.map +1 -1
- package/skinny/registerToolbarUnderline.esm.js +2 -3
- package/skinny/registerToolbarUnderline.esm.js.map +1 -1
- package/skinny/registerUnderline.cjs.js +1 -1
- package/skinny/registerUnderline.cjs.js.map +1 -1
- package/skinny/registerUnderline.esm.js +1 -1
- package/skinny/registerUnderline.esm.js.map +1 -1
package/dist/tiptap.esm.js
CHANGED
|
@@ -188,8 +188,7 @@ function Tiptap(props) {
|
|
|
188
188
|
const isCanvas = usePlasmicCanvasContext();
|
|
189
189
|
const defaultContent = useJson ? defaultContentJson : contentHtml;
|
|
190
190
|
useEffect(() => {
|
|
191
|
-
if (activeRef.current)
|
|
192
|
-
return;
|
|
191
|
+
if (activeRef.current) return;
|
|
193
192
|
setRefreshKey(Math.random() * 1e6);
|
|
194
193
|
}, [...isCanvas ? [defaultContent] : []]);
|
|
195
194
|
if (!isClient) {
|
|
@@ -677,8 +676,7 @@ function Mention(props) {
|
|
|
677
676
|
*/
|
|
678
677
|
items: ({ query }) => {
|
|
679
678
|
var _a, _b;
|
|
680
|
-
if (!query)
|
|
681
|
-
return [];
|
|
679
|
+
if (!query) return [];
|
|
682
680
|
if (!hasDataDynamicRef.current) {
|
|
683
681
|
const res = (dataStatic == null ? void 0 : dataStatic.filter(
|
|
684
682
|
(item) => {
|
|
@@ -688,12 +686,10 @@ function Mention(props) {
|
|
|
688
686
|
).slice(0, maxSuggestionCountRef.current)) || [];
|
|
689
687
|
return res;
|
|
690
688
|
}
|
|
691
|
-
if (!dataDynamicRef.current)
|
|
692
|
-
return [];
|
|
689
|
+
if (!dataDynamicRef.current) return [];
|
|
693
690
|
if (((_a = dataDynamicRef.current) == null ? void 0 : _a.isLoading) === false) {
|
|
694
691
|
const data = (_b = dataDynamicRef.current.data) == null ? void 0 : _b.response;
|
|
695
|
-
if (!Array.isArray(data))
|
|
696
|
-
return [];
|
|
692
|
+
if (!Array.isArray(data)) return [];
|
|
697
693
|
return (data == null ? void 0 : data.filter(
|
|
698
694
|
(item) => {
|
|
699
695
|
var _a2, _b2, _c;
|
|
@@ -784,11 +780,9 @@ function Mention(props) {
|
|
|
784
780
|
}
|
|
785
781
|
return data;
|
|
786
782
|
}
|
|
787
|
-
if (!dataDynamic || dataDynamic.isLoading)
|
|
788
|
-
return noData;
|
|
783
|
+
if (!dataDynamic || dataDynamic.isLoading) return noData;
|
|
789
784
|
data = (_b = (_a = dataDynamic.data) == null ? void 0 : _a.response) != null ? _b : noData;
|
|
790
|
-
if (!Array.isArray(data))
|
|
791
|
-
return noData;
|
|
785
|
+
if (!Array.isArray(data)) return noData;
|
|
792
786
|
return data.slice(0, maxSuggestionCount);
|
|
793
787
|
}, [
|
|
794
788
|
dataDynamic,
|
|
@@ -964,8 +958,7 @@ function ToolbarBold(props) {
|
|
|
964
958
|
const { editor } = useCurrentEditor();
|
|
965
959
|
const { bold } = useTiptapContext();
|
|
966
960
|
const { className, children, toolbarBoldScopeClassName } = props;
|
|
967
|
-
if (!editor || !bold)
|
|
968
|
-
return null;
|
|
961
|
+
if (!editor || !bold) return null;
|
|
969
962
|
return /* @__PURE__ */ React.createElement(
|
|
970
963
|
"div",
|
|
971
964
|
{
|
|
@@ -1023,8 +1016,7 @@ function ToolbarCode(props) {
|
|
|
1023
1016
|
const { editor } = useCurrentEditor();
|
|
1024
1017
|
const { code } = useTiptapContext();
|
|
1025
1018
|
const { className, children, toolbarCodeScopeClassName } = props;
|
|
1026
|
-
if (!editor || !code)
|
|
1027
|
-
return null;
|
|
1019
|
+
if (!editor || !code) return null;
|
|
1028
1020
|
return /* @__PURE__ */ React.createElement(
|
|
1029
1021
|
"div",
|
|
1030
1022
|
{
|
|
@@ -1082,8 +1074,7 @@ function ToolbarItalic(props) {
|
|
|
1082
1074
|
const { editor } = useCurrentEditor();
|
|
1083
1075
|
const { italic } = useTiptapContext();
|
|
1084
1076
|
const { className, children, toolbarItalicScopeClassName } = props;
|
|
1085
|
-
if (!editor || !italic)
|
|
1086
|
-
return null;
|
|
1077
|
+
if (!editor || !italic) return null;
|
|
1087
1078
|
return /* @__PURE__ */ React.createElement(
|
|
1088
1079
|
"div",
|
|
1089
1080
|
{
|
|
@@ -1144,8 +1135,7 @@ function ToolbarLink(props) {
|
|
|
1144
1135
|
const { editor } = useCurrentEditor();
|
|
1145
1136
|
const { link } = useTiptapContext();
|
|
1146
1137
|
const { className, children, toolbarLinkScopeClassName } = props;
|
|
1147
|
-
if (!editor || !link)
|
|
1148
|
-
return null;
|
|
1138
|
+
if (!editor || !link) return null;
|
|
1149
1139
|
return /* @__PURE__ */ React.createElement(
|
|
1150
1140
|
"div",
|
|
1151
1141
|
{
|
|
@@ -1203,8 +1193,7 @@ function ToolbarMention(props) {
|
|
|
1203
1193
|
const { editor } = useCurrentEditor();
|
|
1204
1194
|
const { mention } = useTiptapContext();
|
|
1205
1195
|
const { className, children, toolbarMentionScopeClassName } = props;
|
|
1206
|
-
if (!editor || !mention)
|
|
1207
|
-
return null;
|
|
1196
|
+
if (!editor || !mention) return null;
|
|
1208
1197
|
return /* @__PURE__ */ React.createElement(
|
|
1209
1198
|
"div",
|
|
1210
1199
|
{
|
|
@@ -1262,8 +1251,7 @@ function ToolbarStrike(props) {
|
|
|
1262
1251
|
const { editor } = useCurrentEditor();
|
|
1263
1252
|
const { strike } = useTiptapContext();
|
|
1264
1253
|
const { className, children, toolbarStrikeScopeClassName } = props;
|
|
1265
|
-
if (!editor || !strike)
|
|
1266
|
-
return null;
|
|
1254
|
+
if (!editor || !strike) return null;
|
|
1267
1255
|
return /* @__PURE__ */ React.createElement(
|
|
1268
1256
|
"div",
|
|
1269
1257
|
{
|
|
@@ -1321,8 +1309,7 @@ function ToolbarUnderline(props) {
|
|
|
1321
1309
|
const { editor } = useCurrentEditor();
|
|
1322
1310
|
const { underline } = useTiptapContext();
|
|
1323
1311
|
const { className, children, toolbarUnderlineScopeClassName } = props;
|
|
1324
|
-
if (!editor || !underline)
|
|
1325
|
-
return null;
|
|
1312
|
+
if (!editor || !underline) return null;
|
|
1326
1313
|
return /* @__PURE__ */ React.createElement(
|
|
1327
1314
|
"div",
|
|
1328
1315
|
{
|
package/dist/tiptap.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiptap.esm.js","sources":["../src/contexts.tsx","../src/useIsClient.ts","../src/utils.ts","../src/registerTiptap.tsx","../src/registerBold.tsx","../src/registerCode.tsx","../src/registerItalic.tsx","../src/registerLink.tsx","../src/components/MentionList.tsx","../src/registerMention.tsx","../src/registerStrike.tsx","../src/registerUnderline.tsx","../src/toolbar/registerToolbarBold.tsx","../src/toolbar/registerToolbarCode.tsx","../src/toolbar/registerToolbarItalic.tsx","../src/toolbar/registerToolbarLink.tsx","../src/toolbar/registerToolbarMention.tsx","../src/toolbar/registerToolbarStrike.tsx","../src/toolbar/registerToolbarUnderline.tsx","../src/index.ts"],"sourcesContent":["import { Mark, Node } from \"@tiptap/core\";\nimport type { BoldOptions } from \"@tiptap/extension-bold\";\nimport type { CodeOptions } from \"@tiptap/extension-code\";\nimport type { ItalicOptions } from \"@tiptap/extension-italic\";\nimport type { LinkOptions } from \"@tiptap/extension-link\";\nimport type { MentionOptions } from \"@tiptap/extension-mention\";\nimport type { StrikeOptions } from \"@tiptap/extension-strike\";\nimport type { UnderlineOptions } from \"@tiptap/extension-underline\";\nimport React, { useState } from \"react\";\n\nexport const RESET_TIMEOUT_MS = 500;\nexport interface TiptapContextProps {\n bold?: Mark<BoldOptions>;\n setBold: (boldOptions?: Mark<BoldOptions>) => void;\n code?: Mark<CodeOptions>;\n setCode: (codeOptions?: Mark<CodeOptions>) => void;\n italic?: Mark<ItalicOptions>;\n setItalic: (italicOptions?: Mark<ItalicOptions>) => void;\n link?: Mark<LinkOptions>;\n setLink: (linkOptions?: Mark<LinkOptions>) => void;\n mention?: Node<MentionOptions>;\n setMention: (mentionOptions?: Node<MentionOptions>) => void;\n strike?: Mark<StrikeOptions>;\n setStrike: (strikeOptions?: Mark<StrikeOptions>) => void;\n underline?: Mark<UnderlineOptions>;\n setUnderline: (underlineOptions?: Mark<UnderlineOptions>) => void;\n}\n\nexport const allExtensions: Extract<keyof TiptapContextProps, string>[] = [\n \"bold\",\n \"italic\",\n \"underline\",\n \"strike\",\n \"code\",\n \"link\",\n \"mention\",\n];\n\nexport const TiptapContext = React.createContext<\n TiptapContextProps | undefined\n>(undefined);\n\nexport const useTiptapContext = () => {\n const context = React.useContext(TiptapContext);\n if (!context) {\n throw new Error(\n \"useTiptapContext must be used within a TiptapContextProvider\"\n );\n }\n return context;\n};\n\nexport const TiptapContextProvider = ({ children }: any) => {\n const [bold, setBold] = useState<Mark<BoldOptions> | undefined>(undefined);\n const [code, setCode] = useState<Mark<CodeOptions> | undefined>(undefined);\n const [italic, setItalic] = useState<Mark<ItalicOptions> | undefined>(\n undefined\n );\n const [link, setLink] = useState<Mark<LinkOptions> | undefined>(undefined);\n const [mention, setMention] = useState<Node<MentionOptions> | undefined>(\n undefined\n );\n const [strike, setStrike] = useState<Mark<StrikeOptions> | undefined>(\n undefined\n );\n const [underline, setUnderline] = useState<\n Mark<UnderlineOptions> | undefined\n >(undefined);\n\n return (\n <TiptapContext.Provider\n value={{\n bold,\n setBold,\n code,\n setCode,\n italic,\n setItalic,\n link,\n setLink,\n mention,\n /**\n * In situations where I want to remove an extension and add it again with new options (e.g. within a useEffect - see registerMention)\n * the options are not updated.\n * So after removing the extension, I want to wait a few seconds before I add it again,\n * so the Tiptap editor acknowledges the removal before it adds the extension back with new updated options.\n * @param mentionOptions\n * @returns\n */\n setMention: (mentionOptions?: Node<MentionOptions>) => {\n if (!mentionOptions) {\n setMention(mentionOptions);\n return;\n }\n setTimeout(() => {\n setMention(mentionOptions);\n }, RESET_TIMEOUT_MS);\n },\n strike,\n setStrike,\n underline,\n setUnderline,\n }}\n >\n {children}\n </TiptapContext.Provider>\n );\n};\n","import React from \"react\";\n\nexport function useIsClient() {\n const [loaded, setLoaded] = React.useState(false);\n useIsomorphicLayoutEffect(() => {\n setLoaded(true);\n });\n return loaded;\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst isBrowser = typeof window !== \"undefined\";\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n","import {\n CodeComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n GlobalContextMeta,\n default as registerGlobalContext,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n","import { usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport { ActionProps } from \"@plasmicapp/host/registerComponent\";\nimport Document from \"@tiptap/extension-document\";\nimport Paragraph from \"@tiptap/extension-paragraph\";\nimport Text from \"@tiptap/extension-text\";\nimport type { Extensions, JSONContent } from \"@tiptap/react\";\nimport { EditorProvider } from \"@tiptap/react\";\nimport { Switch } from \"antd\";\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n allExtensions,\n TiptapContextProvider,\n useTiptapContext,\n} from \"./contexts\";\nimport { useIsClient } from \"./useIsClient\";\nimport {\n Registerable,\n registerComponentHelper,\n traverseReactEltTree,\n} from \"./utils\";\n\nexport const TIPTAP_COMPONENT_NAME = \"hostless-tiptap\";\n\nexport type TiptapProps = {\n contentHtml?: string;\n contentJson?: JSONContent;\n defaultContentJson?: JSONContent;\n useJson: boolean;\n extensions?: React.ReactElement;\n toolbar?: React.ReactElement;\n className: string;\n onChange: (content: JSONContent) => void;\n};\n\nexport function Tiptap(props: TiptapProps) {\n const isClient = useIsClient();\n const [active, setActive] = useState<boolean>(false);\n const [refreshKey, setRefreshKey] = useState(0);\n const activeRef = useRef<boolean>();\n activeRef.current = active;\n\n const {\n extensions,\n contentHtml,\n defaultContentJson,\n className,\n onChange,\n toolbar,\n useJson,\n } = props;\n const { ...tiptapContext } = useTiptapContext();\n const usedExtensions: Record<string, any> = allExtensions.reduce(\n (acc: any, ext) => {\n if (tiptapContext[ext] !== undefined) {\n acc[ext] = tiptapContext[ext];\n }\n return acc;\n },\n {}\n );\n\n const extensionsProp: Extensions = [\n Document,\n Paragraph,\n Text,\n ...Object.values(usedExtensions),\n ];\n\n const isCanvas = usePlasmicCanvasContext();\n const defaultContent = useJson ? defaultContentJson : contentHtml;\n\n // If you try to update the content via the content prop (as opposed to directly typing into the tiptap editor), the new content won't show. So we got to refresh the editor to make the default content appear.\n useEffect(() => {\n // only refresh key if the user is not typing\n if (activeRef.current) return;\n setRefreshKey(Math.random() * 1000000);\n }, [...(isCanvas ? [defaultContent] : [])]);\n\n if (!isClient) {\n return null;\n }\n\n const css = `\n .tiptap {\n padding: 0;\n outline: none;\n }\n `;\n\n const toolbarProp = toolbar ? (\n <div style={{ display: \"flex\", alignItems: \"center\" }}>{toolbar}</div>\n ) : null;\n\n return (\n <div className={className} style={{ position: \"relative\" }}>\n {/* Editor provider is an uncontrolled component */}\n <EditorProvider\n extensions={extensionsProp}\n key={`${extensionsProp.length}${refreshKey}`}\n content={defaultContent}\n onCreate={({ editor }) => {\n onChange(editor.getJSON());\n }}\n onUpdate={({ editor }) => {\n onChange(editor.getJSON());\n }}\n onFocus={() => setActive(true)}\n onBlur={() => setActive(false)}\n slotBefore={toolbarProp}\n // slotAfter={<MyEditorFooter />}\n\n // TODO: HIDE children prop\n children={undefined}\n editorProps={{\n attributes: {\n className,\n },\n }}\n />\n {extensions}\n <style dangerouslySetInnerHTML={{ __html: css }} />\n </div>\n );\n}\n\nexport function TiptapWrapper(props: TiptapProps) {\n return (\n <TiptapContextProvider>\n <Tiptap {...props} />\n </TiptapContextProvider>\n );\n}\n\nexport function AddExtension({\n studioOps,\n componentProps,\n}: ActionProps<TiptapProps>) {\n const usedExtensions: string[] = useMemo(() => {\n const list: string[] = [];\n traverseReactEltTree(componentProps?.extensions, (elt) => {\n const ext = elt?.type?.displayName?.toLowerCase?.();\n if (ext) {\n list.push(ext);\n }\n });\n return list;\n }, [componentProps?.extensions]);\n\n const usedExtensionTools: string[] = useMemo(() => {\n const list: string[] = [];\n traverseReactEltTree(componentProps?.toolbar, (elt) => {\n const ext = elt?.type?.displayName?.toLowerCase?.();\n if (ext && ext.includes(\"toolbar\")) {\n list.push(ext.replace(\"toolbar\", \"\"));\n }\n });\n return list;\n }, [componentProps?.toolbar]);\n\n const handleChange = (extName: string, add: boolean) => {\n if (add) {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: `${TIPTAP_COMPONENT_NAME}-extension-${extName}`,\n props: {},\n },\n \"extensions\"\n );\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-${extName}`,\n props: {},\n },\n \"toolbar\"\n );\n } else {\n const extIndices = usedExtensions.flatMap((ext, i) =>\n ext === extName ? i : []\n );\n extIndices\n .reverse()\n .forEach(\n (i) => i !== -1 && studioOps.removeFromSlotAt(i, \"extensions\")\n );\n\n const toolIndices = usedExtensionTools.flatMap((ext, i) =>\n ext === extName ? i : []\n );\n toolIndices\n .reverse()\n .forEach((i) => i !== -1 && studioOps.removeFromSlotAt(i, \"toolbar\"));\n }\n };\n\n return (\n <div\n style={{\n marginBottom: 10,\n paddingBottom: 10,\n borderBottom: \"1px dashed #ccc\",\n }}\n >\n <p>\n You can add capabilities to Tiptap Rich Text Editor using the tools\n below.\n </p>\n <p>\n To further customize the extensions, find them under the Editor's\n \"extensions\" and \"toolbar\" slots\n </p>\n {allExtensions.map((ext) => (\n <label\n key={ext}\n data-test-id={`custom-action-${ext}`}\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: 5,\n color: \"#1b1b18\",\n }}\n >\n <span>{ext}</span>\n <Switch\n size=\"small\"\n checked={\n usedExtensions.includes(ext) || usedExtensionTools.includes(ext)\n }\n onChange={(checked) => handleChange(ext, checked)}\n />\n </label>\n ))}\n </div>\n );\n}\n\nexport function registerTiptap(loader?: Registerable) {\n registerComponentHelper(loader, TiptapWrapper, {\n name: TIPTAP_COMPONENT_NAME,\n displayName: \"Tiptap Rich Text Editor\",\n defaultStyles: {\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"rgb(204,204,204)\",\n borderRadius: \"4px\",\n padding: \"10px\",\n width: \"300px\",\n },\n actions: [\n {\n type: \"custom-action\",\n control: AddExtension,\n },\n ],\n props: {\n useJson: {\n displayName: \"Use JSON default content\",\n type: \"boolean\",\n defaultValue: false,\n },\n // a better naming for this would be defaultContentHtml, but we can't change the name anymore for backwards compatibility reasons (can't change the name of an existing prop)\n contentHtml: {\n type: \"string\",\n displayName: \"HTML Content\",\n description: \"Provide default content as HTML\",\n hidden: (ps) => ps.useJson,\n },\n defaultContentJson: {\n type: \"object\",\n displayName: \"JSON Content\",\n description: \"Provide default content as JSON\",\n hidden: (ps) => !ps.useJson,\n },\n // contentJson is exposed as state, and its not combined with defaultContentJson via \"editOnly/uncontrolledProp\" fields because\n // that pattern is for controlled components, while the wrapped component (EditorProvider) is an uncontrolled component.\n contentJson: {\n type: \"object\",\n hidden: () => true,\n },\n extensions: {\n type: \"slot\",\n hidePlaceholder: true,\n allowedComponents: allExtensions.map(\n (ext) => `${TIPTAP_COMPONENT_NAME}-extension-${ext}`\n ),\n },\n toolbar: {\n type: \"slot\",\n hidePlaceholder: true,\n allowedComponents: allExtensions.map(\n (ext) => `${TIPTAP_COMPONENT_NAME}-toolbar-${ext}`\n ),\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"content\", type: \"object\" }],\n },\n },\n states: {\n content: {\n type: \"writable\",\n variableType: \"object\",\n valueProp: \"contentJson\",\n onChangeProp: \"onChange\",\n },\n },\n importName: \"TiptapWrapper\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerTiptap\",\n });\n}\n","import TiptapBold from \"@tiptap/extension-bold\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface BoldProps {\n className: string;\n}\n\nexport function Bold(props: BoldProps) {\n const { setBold } = useTiptapContext();\n\n useEffect(() => {\n setBold(\n TiptapBold.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setBold(undefined);\n };\n }, []);\n\n return null;\n}\nBold.displayName = \"Bold\";\n\nexport function registerBold(loader?: Registerable) {\n registerComponentHelper(loader, Bold, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-bold`,\n displayName: \"Tiptap Bold\",\n props: {},\n importName: \"Bold\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerBold\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import TiptapCode from \"@tiptap/extension-code\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface CodeProps {\n className: string;\n}\n\nexport function Code(props: CodeProps) {\n const { setCode } = useTiptapContext();\n\n useEffect(() => {\n setCode(\n TiptapCode.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setCode(undefined);\n };\n }, []);\n\n return null;\n}\nCode.displayName = \"Code\";\n\nexport function registerCode(loader?: Registerable) {\n registerComponentHelper(loader, Code, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-code`,\n displayName: \"Tiptap Code\",\n props: {},\n importName: \"Code\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerCode\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import TiptapItalic from \"@tiptap/extension-italic\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface ItalicProps {\n className: string;\n}\n\nexport function Italic(props: ItalicProps) {\n const { setItalic } = useTiptapContext();\n\n useEffect(() => {\n setItalic(\n TiptapItalic.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setItalic(undefined);\n };\n }, []);\n\n return null;\n}\nItalic.displayName = \"Italic\";\n\nexport function registerItalic(loader?: Registerable) {\n registerComponentHelper(loader, Italic, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-italic`,\n displayName: \"Tiptap Italic\",\n props: {},\n importName: \"Italic\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerItalic\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import TiptapLink from \"@tiptap/extension-link\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface LinkProps {\n className: string;\n}\n\nexport function Link(props: LinkProps) {\n const { setLink } = useTiptapContext();\n\n useEffect(() => {\n setLink(\n TiptapLink.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setLink(undefined);\n };\n }, []);\n\n return null;\n}\nLink.displayName = \"Link\";\n\nexport function registerLink(loader?: Registerable) {\n registerComponentHelper(loader, Link, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-link`,\n displayName: \"Tiptap Link\",\n props: {},\n importName: \"Link\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerLink\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { DataProvider, repeatedElement } from \"@plasmicapp/host\";\nimport { SuggestionProps } from \"@tiptap/suggestion\";\nimport React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from \"react\";\n\ntype MentionListProps = SuggestionProps<any> & {\n suggestionItem: React.ReactNode;\n searchField: string;\n popupClassName: string;\n itemClassName: string;\n selectedItemClassName: string;\n};\n\nexport default forwardRef(\n (\n props: MentionListProps,\n ref: React.ForwardedRef<{ onKeyDown: (e: KeyboardEvent) => boolean }>\n ) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const {\n items = [],\n suggestionItem,\n searchField,\n popupClassName,\n itemClassName,\n selectedItemClassName,\n } = props;\n\n const selectItem = (index: number) => {\n const item = items[index];\n\n if (item) {\n props.command?.({ id: item[searchField] });\n }\n };\n\n const upHandler = () => {\n setSelectedIndex((selectedIndex + items?.length - 1) % items.length);\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % items.length);\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [items]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: (event) => {\n if (event.key === \"ArrowUp\") {\n upHandler();\n return true;\n }\n\n if (event.key === \"ArrowDown\") {\n downHandler();\n return true;\n }\n\n if (event.key === \"Enter\") {\n enterHandler();\n return true;\n }\n\n return false;\n },\n }));\n\n // bare minimum styles that can easily be overridden.\n const css = `\n .SuggestionsList {\n background: #eee;\n position: relative;\n border-radius: 0.5rem;\n\n & .item {\n display: block;\n width: 100%;\n\n & .is-selected {\n color: purple;\n }\n }\n }\n\n `;\n\n const hasSuggestionItemSlot = (suggestionItem as any)?.props.children;\n return (\n <div className={`SuggestionsList`}>\n <div className={popupClassName}>\n {props.items.length ? (\n props.items.map((item, index: number) => (\n <div\n role=\"button\"\n className={`item`}\n key={index}\n onClick={() => selectItem(index)}\n >\n <DataProvider\n key={item[searchField]}\n name={\"suggestionItem\"}\n data={item}\n >\n <div\n className={`${itemClassName} ${\n index === selectedIndex ? \"is-selected\" : \"\"\n }`}\n >\n <div\n /**\n * override styles from is-selected.\n * Reason: The styles added by Plasmic user via the Design tab in the studio have low-proiorty selectors\n * compared to the default styles defined above. And we do not have a choice on the selector either, so its not possible to increase its selector priority\n * What we do here though is add a child div with the className that should be able to overWrite the default styles instead.\n */\n className={\n index === selectedIndex ? selectedItemClassName : \"\"\n }\n >\n {hasSuggestionItemSlot\n ? repeatedElement(index === 0, suggestionItem)\n : item[searchField]}\n </div>\n </div>\n </DataProvider>\n </div>\n ))\n ) : (\n <div className=\"item\">No result</div>\n )}\n </div>\n <style dangerouslySetInnerHTML={{ __html: css }} />\n </div>\n );\n }\n);\n","import {\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n} from \"@plasmicapp/host\";\nimport TiptapMention, { MentionOptions } from \"@tiptap/extension-mention\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport React, { useEffect, useMemo, useRef } from \"react\";\nimport tippy, { GetReferenceClientRect, Instance, Props } from \"tippy.js\";\nimport MentionList from \"./components/MentionList\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport type QueryResult = {\n data?: { response: any[] };\n error?: Error;\n isLoading?: boolean;\n};\n\nexport type MentionProps = Omit<MentionOptions, \"HTMLAttributes\"> & {\n className: string;\n dataStatic?: any[];\n hasDataDynamic?: boolean;\n dataDynamic?: QueryResult;\n suggestionItem: React.ReactNode;\n searchField?: string;\n popupClassName?: string;\n itemClassName?: string;\n selectedItemClassName?: string;\n mentionClassName?: string;\n maxSuggestionCount?: number;\n};\n\nexport function Mention(props: MentionProps) {\n const {\n dataStatic = [],\n dataDynamic,\n hasDataDynamic,\n suggestionItem,\n searchField = \"id\",\n popupClassName,\n itemClassName,\n selectedItemClassName,\n mentionClassName,\n maxSuggestionCount = 5,\n } = props;\n\n /**\n * Although refs should be sparingly used, we need all these refs here due to the way tiptap works:\n *\n * It needs to be passed the async function that returns the suggestion items, when the extension is initialized (ie. in the .configure() call). Whenever there is a need for new suggestions, the same async callback is called. Without refs, that callback would always use stale data. That is why we absolutely need these here.\n */\n const dataDynamicRef = useRef(dataDynamic);\n const hasDataDynamicRef = useRef(hasDataDynamic);\n const maxSuggestionCountRef = useRef(maxSuggestionCount);\n dataDynamicRef.current = dataDynamic;\n hasDataDynamicRef.current = hasDataDynamic;\n maxSuggestionCountRef.current = maxSuggestionCount;\n\n const { setMention } = useTiptapContext();\n useEffect(() => {\n setMention(\n TiptapMention.configure({\n HTMLAttributes: {\n class: mentionClassName,\n },\n renderLabel: ({ options, node }) => {\n return `${options.suggestion.char}${node.attrs.id}`;\n },\n suggestion: {\n /**\n * This function below only does static filtering. It can't give query parameters to the Plasmic query for filtering at the server side to avoid some complexities.\n *\n * Before we move on to the issues, lets first explain how it could have supported server-side filtering via query params:\n * - The user creates a plasmic query to fetch the suggestions. These suggestions are filtered by some query parameter. The value of the query parameter is bound to the currentMention state.\n *\n * - When the user types `@abc` for example, the following async function `items` is triggered. It knows the query and returns the new set of suggestions. The returned array is rendered in the suggestions popup\n *\n * Issues:\n * 1. Stale Query issue:\n * The same async function is responsible for setting the currentMention state, and also return the new suggestion results. We can't await the Plasmic query after it is triggered by the currentMention state change. So query results it has are stale.\n *\n * Solution: We poll the Plasmic query's isLoading field (indefinitely)\n *\n * For simplicity, therefore, we are just supporting static filtering for now, and may consider the approach highlighted above for filtering via query params.\n *\n * 2. The async function is provided at the time of extension initialization. That async function only knows the state/props in its render cycle, so these props are outdated at the time the async function is triggered.\n *\n * We can't put all of them in the useEffect dependencies array, because change in any of them will cause the Mention extension to be removed/re-added, resulting in a flicker on every keystroke + lost input focus (which causes the suggestion popup to never show)\n *\n * Solution: Use refs\n *\n * @param param0\n * @returns\n */\n items: ({ query }: { query: string }) => {\n if (!query) return [];\n\n if (!hasDataDynamicRef.current) {\n // for static data, just filter the static array and return results\n const res =\n dataStatic\n ?.filter((item) =>\n item[searchField]\n .toLowerCase?.()\n ?.includes(query.toLowerCase())\n )\n .slice(0, maxSuggestionCountRef.current) || [];\n return res;\n }\n\n if (!dataDynamicRef.current) return [];\n\n if (dataDynamicRef.current?.isLoading === false) {\n const data = dataDynamicRef.current.data?.response;\n if (!Array.isArray(data)) return [];\n return (\n data\n ?.filter((item) =>\n item[searchField]\n .toLowerCase?.()\n ?.includes(query.toLowerCase())\n )\n .slice(0, maxSuggestionCountRef.current) || []\n );\n }\n\n return [];\n },\n render: () => {\n let component: ReactRenderer<\n { onKeyDown: (e: KeyboardEvent) => boolean },\n typeof MentionList\n >;\n let popup: Instance<Props>[];\n const otherProps = {\n suggestionItem,\n searchField,\n popupClassName,\n itemClassName,\n selectedItemClassName,\n };\n\n return {\n // eslint-disable-next-line no-shadow\n onStart: (props) => {\n component = new ReactRenderer<any, any>(MentionList, {\n props: {\n ...props,\n ...otherProps,\n },\n editor: props.editor,\n });\n\n if (!props.clientRect) {\n return;\n }\n\n popup = tippy(\"body\", {\n getReferenceClientRect:\n props.clientRect as GetReferenceClientRect,\n appendTo: () => document.body,\n content: component.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n });\n },\n\n // eslint-disable-next-line no-shadow\n onUpdate(props) {\n component.updateProps({\n ...props,\n ...otherProps,\n });\n\n if (!props.clientRect) {\n return;\n }\n\n popup?.[0]?.setProps({\n getReferenceClientRect:\n props.clientRect as GetReferenceClientRect,\n });\n },\n\n // eslint-disable-next-line no-shadow\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup?.[0]?.hide();\n\n return true;\n }\n\n return component.ref?.onKeyDown(props.event) || false;\n },\n\n onExit() {\n popup?.[0]?.destroy();\n component.destroy();\n },\n };\n },\n },\n })\n );\n return () => {\n setMention(undefined);\n };\n // add only those dependencies that are OK to trigger a flicker in the tiptap editor, while it re-initializes. ie. changes that are one-time (or not frequent / not per keystroke)\n }, [\n searchField,\n mentionClassName,\n popupClassName,\n itemClassName,\n selectedItemClassName,\n ]);\n\n const inCanvas = !!usePlasmicCanvasContext();\n\n const providerData = useMemo(() => {\n const noData = [{ [searchField]: \"No data\" }];\n let data = inCanvas ? noData : [];\n if (!hasDataDynamic) {\n if (dataStatic?.length && Array.isArray(dataStatic)) {\n data = [...dataStatic];\n }\n return data;\n }\n\n if (!dataDynamic || dataDynamic.isLoading) return noData;\n data = dataDynamic.data?.response ?? noData;\n if (!Array.isArray(data)) return noData;\n return data.slice(0, maxSuggestionCount);\n }, [\n dataDynamic,\n searchField,\n hasDataDynamic,\n maxSuggestionCount,\n dataStatic,\n ]);\n\n return (\n <div\n style={{\n // ...(showSuggestionItem ? {} : { display: \"none\" }),\n ...{\n // bare minimum styles (that need not be overridden)\n // We just want to make the dataProvider data available to the MentionList component (<DataProvider> is needed to be returned from the returned JSX). It should not be shown in the UI, hence the display: none\n display: \"none\",\n position: \"absolute\",\n top: 0,\n background: \"white\",\n },\n }}\n >\n {providerData?.slice(0, maxSuggestionCount).map((item, index) => (\n // Data provider needs to be in the returned JSX (the actual use of the \"suggestionItem\" data is in the MentionList component.)\n <DataProvider key={item.id} name={\"suggestionItem\"} data={item}>\n {repeatedElement(index === 0, suggestionItem) ?? item[searchField]}\n </DataProvider>\n ))}\n </div>\n );\n // return null;\n}\nMention.displayName = \"Mention\";\n\nexport function registerMention(loader?: Registerable) {\n registerComponentHelper(loader, Mention, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-mention`,\n displayName: \"Tiptap Mention\",\n providesData: true,\n props: {\n dataDynamic: {\n type: \"dataSourceOpData\" as any,\n description: \"Filtered suggestions\",\n disableDynamicValue: true, // we don't want the users to temper with the Plasmic's default query type.\n hidden: (ps) => !ps.hasDataDynamic,\n },\n searchField: {\n type: \"string\",\n defaultValueHint: \"id\",\n },\n maxSuggestionCount: {\n type: \"number\",\n defaultValueHint: 5,\n description:\n \"Limits the number of suggestions that appear in the suggestions popup\",\n },\n dataStatic: {\n type: \"array\",\n hidden: (ps) => Boolean(ps.hasDataDynamic),\n itemType: {\n type: \"object\",\n nameFunc: (item) => item.label,\n fields: {\n id: \"string\",\n label: \"string\",\n },\n },\n defaultValue: [\n {\n id: \"thomasEd1\",\n label: \"Thomas Edison\",\n },\n {\n id: \"sherlock221b\",\n label: \"Sherlock Holmes\",\n },\n {\n id: \"eliot_thomas\",\n label: \"T.S Eliot\",\n },\n {\n id: \"shakespeare74\",\n label: \"William Shakespeare\",\n },\n ],\n },\n hasDataDynamic: {\n type: \"boolean\",\n },\n mentionClassName: {\n type: \"class\",\n displayName: \"Mention label\",\n },\n popupClassName: {\n type: \"class\",\n displayName: \"Suggestion Popup\",\n },\n itemClassName: {\n type: \"class\",\n displayName: \"Suggestion Item\",\n },\n selectedItemClassName: {\n type: \"class\",\n displayName: \"Selected Item\",\n },\n suggestionItem: {\n type: \"slot\",\n },\n currentMention: {\n type: \"string\",\n hidden: () => true,\n },\n },\n importName: \"Mention\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerMention\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import TiptapStrike from \"@tiptap/extension-strike\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface StrikeProps {\n className: string;\n}\n\nexport function Strike(props: StrikeProps) {\n const { setStrike } = useTiptapContext();\n\n useEffect(() => {\n setStrike(\n TiptapStrike.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setStrike(undefined);\n };\n }, []);\n\n return null;\n}\nStrike.displayName = \"Strike\";\n\nexport function registerStrike(loader?: Registerable) {\n registerComponentHelper(loader, Strike, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-strike`,\n displayName: \"Tiptap Strike\",\n props: {},\n importName: \"Strike\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerStrike\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import TiptapUnderline from \"@tiptap/extension-underline\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface UnderlineProps {\n className: string;\n}\n\nexport function Underline(props: UnderlineProps) {\n const { setUnderline } = useTiptapContext();\n\n useEffect(() => {\n setUnderline(\n TiptapUnderline.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setUnderline(undefined);\n };\n }, []);\n\n return null;\n}\nUnderline.displayName = \"Underline\";\n\nexport function registerUnderline(loader?: Registerable) {\n registerComponentHelper(loader, Underline, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-underline`,\n displayName: \"Tiptap Underline\",\n props: {},\n importName: \"Underline\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerUnderline\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarBoldProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarBoldScopeClassName: string;\n}\n\nexport function ToolbarBold(props: ToolbarBoldProps) {\n const { editor } = useCurrentEditor();\n const { bold } = useTiptapContext();\n\n const { className, children, toolbarBoldScopeClassName } = props;\n\n if (!editor || !bold) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"bold\") ? true : false}\n className={`${className} ${toolbarBoldScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"bold\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarBold.displayName = \"ToolbarBold\";\n\nexport function registerToolbarBold(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarBold, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-bold`,\n displayName: \"Tiptap Bold Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/bold.svg\",\n },\n ],\n },\n toolbarBoldScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarBold\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarBold[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarBold\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarBold\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarCodeProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarCodeScopeClassName: string;\n}\n\nexport function ToolbarCode(props: ToolbarCodeProps) {\n const { editor } = useCurrentEditor();\n const { code } = useTiptapContext();\n\n const { className, children, toolbarCodeScopeClassName } = props;\n\n if (!editor || !code) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"code\") ? true : false}\n className={`${className} ${toolbarCodeScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"code\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarCode.displayName = \"ToolbarCode\";\n\nexport function registerToolbarCode(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarCode, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-code`,\n displayName: \"Tiptap Code Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/code.svg\",\n },\n ],\n },\n toolbarCodeScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarCode\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarCode[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarCode\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarCode\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarItalicProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarItalicScopeClassName: string;\n}\n\nexport function ToolbarItalic(props: ToolbarItalicProps) {\n const { editor } = useCurrentEditor();\n const { italic } = useTiptapContext();\n\n const { className, children, toolbarItalicScopeClassName } = props;\n\n if (!editor || !italic) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"italic\") ? true : false}\n className={`${className} ${toolbarItalicScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"italic\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarItalic.displayName = \"ToolbarItalic\";\n\nexport function registerToolbarItalic(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarItalic, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-italic`,\n displayName: \"Tiptap Italic Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/italic.svg\",\n styles: {\n width: \"hug\",\n },\n },\n ],\n },\n toolbarItalicScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarItalic\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarItalic[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarItalic\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarItalic\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarLinkProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarLinkScopeClassName: string;\n}\n\nexport function ToolbarLink(props: ToolbarLinkProps) {\n const { editor } = useCurrentEditor();\n const { link } = useTiptapContext();\n\n const { className, children, toolbarLinkScopeClassName } = props;\n\n if (!editor || !link) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"link\") ? true : false}\n className={`${className} ${toolbarLinkScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"link\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarLink.displayName = \"ToolbarLink\";\n\nexport function registerToolbarLink(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarLink, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-link`,\n displayName: \"Tiptap Link Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/link.svg\",\n },\n ],\n },\n toolbarLinkScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarLink\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarLink[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarLink\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarLink\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarMentionProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarMentionScopeClassName: string;\n}\n\nexport function ToolbarMention(props: ToolbarMentionProps) {\n const { editor } = useCurrentEditor();\n const { mention } = useTiptapContext();\n\n const { className, children, toolbarMentionScopeClassName } = props;\n\n if (!editor || !mention) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"mention\") ? true : false}\n className={`${className} ${toolbarMentionScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().insertContent(\" @\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarMention.displayName = \"ToolbarMention\";\n\nexport function registerToolbarMention(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarMention, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-mention`,\n displayName: \"Tiptap Mention Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/mention.svg\",\n },\n ],\n },\n toolbarMentionScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarMention\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarMention[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarMention\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarMention\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarStrikeProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarStrikeScopeClassName: string;\n}\n\nexport function ToolbarStrike(props: ToolbarStrikeProps) {\n const { editor } = useCurrentEditor();\n const { strike } = useTiptapContext();\n\n const { className, children, toolbarStrikeScopeClassName } = props;\n\n if (!editor || !strike) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"strike\") ? true : false}\n className={`${className} ${toolbarStrikeScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"strike\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarStrike.displayName = \"ToolbarStrike\";\n\nexport function registerToolbarStrike(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarStrike, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-strike`,\n displayName: \"Tiptap Strike Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/strikethrough.svg\",\n },\n ],\n },\n toolbarStrikeScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarStrike\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarStrike[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarStrike\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarStrike\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarUnderlineProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarUnderlineScopeClassName: string;\n}\n\nexport function ToolbarUnderline(props: ToolbarUnderlineProps) {\n const { editor } = useCurrentEditor();\n const { underline } = useTiptapContext();\n\n const { className, children, toolbarUnderlineScopeClassName } = props;\n\n if (!editor || !underline) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"underline\") ? true : false}\n className={`${className} ${toolbarUnderlineScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"underline\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarUnderline.displayName = \"ToolbarUnderline\";\n\nexport function registerToolbarUnderline(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarUnderline, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-underline`,\n displayName: \"Tiptap Underline Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/underline.svg\",\n },\n ],\n },\n toolbarUnderlineScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarUnderline\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarUnderline[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarUnderline\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarUnderline\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { registerBold } from \"./registerBold\";\nimport { registerCode } from \"./registerCode\";\nimport { registerItalic } from \"./registerItalic\";\nimport { registerLink } from \"./registerLink\";\nimport { registerMention } from \"./registerMention\";\nimport { registerStrike } from \"./registerStrike\";\nimport { registerTiptap } from \"./registerTiptap\";\nimport { registerUnderline } from \"./registerUnderline\";\nimport { registerToolbarBold } from \"./toolbar/registerToolbarBold\";\nimport { registerToolbarCode } from \"./toolbar/registerToolbarCode\";\nimport { registerToolbarItalic } from \"./toolbar/registerToolbarItalic\";\nimport { registerToolbarLink } from \"./toolbar/registerToolbarLink\";\nimport { registerToolbarMention } from \"./toolbar/registerToolbarMention\";\nimport { registerToolbarStrike } from \"./toolbar/registerToolbarStrike\";\nimport { registerToolbarUnderline } from \"./toolbar/registerToolbarUnderline\";\nimport { Registerable } from \"./utils\";\n\nexport function registerAll(loader?: Registerable) {\n registerBold(loader);\n registerCode(loader);\n registerItalic(loader);\n registerLink(loader);\n registerMention(loader);\n registerStrike(loader);\n registerTiptap(loader);\n registerUnderline(loader);\n registerToolbarBold(loader);\n registerToolbarCode(loader);\n registerToolbarItalic(loader);\n registerToolbarLink(loader);\n registerToolbarMention(loader);\n registerToolbarStrike(loader);\n registerToolbarUnderline(loader);\n}\n"],"names":["__spreadValues","_a","_b","props"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tiptap.esm.js","sources":["../src/contexts.tsx","../src/useIsClient.ts","../src/utils.ts","../src/registerTiptap.tsx","../src/registerBold.tsx","../src/registerCode.tsx","../src/registerItalic.tsx","../src/registerLink.tsx","../src/components/MentionList.tsx","../src/registerMention.tsx","../src/registerStrike.tsx","../src/registerUnderline.tsx","../src/toolbar/registerToolbarBold.tsx","../src/toolbar/registerToolbarCode.tsx","../src/toolbar/registerToolbarItalic.tsx","../src/toolbar/registerToolbarLink.tsx","../src/toolbar/registerToolbarMention.tsx","../src/toolbar/registerToolbarStrike.tsx","../src/toolbar/registerToolbarUnderline.tsx","../src/index.ts"],"sourcesContent":["import { Mark, Node } from \"@tiptap/core\";\nimport type { BoldOptions } from \"@tiptap/extension-bold\";\nimport type { CodeOptions } from \"@tiptap/extension-code\";\nimport type { ItalicOptions } from \"@tiptap/extension-italic\";\nimport type { LinkOptions } from \"@tiptap/extension-link\";\nimport type { MentionOptions } from \"@tiptap/extension-mention\";\nimport type { StrikeOptions } from \"@tiptap/extension-strike\";\nimport type { UnderlineOptions } from \"@tiptap/extension-underline\";\nimport React, { useState } from \"react\";\n\nexport const RESET_TIMEOUT_MS = 500;\nexport interface TiptapContextProps {\n bold?: Mark<BoldOptions>;\n setBold: (boldOptions?: Mark<BoldOptions>) => void;\n code?: Mark<CodeOptions>;\n setCode: (codeOptions?: Mark<CodeOptions>) => void;\n italic?: Mark<ItalicOptions>;\n setItalic: (italicOptions?: Mark<ItalicOptions>) => void;\n link?: Mark<LinkOptions>;\n setLink: (linkOptions?: Mark<LinkOptions>) => void;\n mention?: Node<MentionOptions>;\n setMention: (mentionOptions?: Node<MentionOptions>) => void;\n strike?: Mark<StrikeOptions>;\n setStrike: (strikeOptions?: Mark<StrikeOptions>) => void;\n underline?: Mark<UnderlineOptions>;\n setUnderline: (underlineOptions?: Mark<UnderlineOptions>) => void;\n}\n\nexport const allExtensions: Extract<keyof TiptapContextProps, string>[] = [\n \"bold\",\n \"italic\",\n \"underline\",\n \"strike\",\n \"code\",\n \"link\",\n \"mention\",\n];\n\nexport const TiptapContext = React.createContext<\n TiptapContextProps | undefined\n>(undefined);\n\nexport const useTiptapContext = () => {\n const context = React.useContext(TiptapContext);\n if (!context) {\n throw new Error(\n \"useTiptapContext must be used within a TiptapContextProvider\"\n );\n }\n return context;\n};\n\nexport const TiptapContextProvider = ({ children }: any) => {\n const [bold, setBold] = useState<Mark<BoldOptions> | undefined>(undefined);\n const [code, setCode] = useState<Mark<CodeOptions> | undefined>(undefined);\n const [italic, setItalic] = useState<Mark<ItalicOptions> | undefined>(\n undefined\n );\n const [link, setLink] = useState<Mark<LinkOptions> | undefined>(undefined);\n const [mention, setMention] = useState<Node<MentionOptions> | undefined>(\n undefined\n );\n const [strike, setStrike] = useState<Mark<StrikeOptions> | undefined>(\n undefined\n );\n const [underline, setUnderline] = useState<\n Mark<UnderlineOptions> | undefined\n >(undefined);\n\n return (\n <TiptapContext.Provider\n value={{\n bold,\n setBold,\n code,\n setCode,\n italic,\n setItalic,\n link,\n setLink,\n mention,\n /**\n * In situations where I want to remove an extension and add it again with new options (e.g. within a useEffect - see registerMention)\n * the options are not updated.\n * So after removing the extension, I want to wait a few seconds before I add it again,\n * so the Tiptap editor acknowledges the removal before it adds the extension back with new updated options.\n * @param mentionOptions\n * @returns\n */\n setMention: (mentionOptions?: Node<MentionOptions>) => {\n if (!mentionOptions) {\n setMention(mentionOptions);\n return;\n }\n setTimeout(() => {\n setMention(mentionOptions);\n }, RESET_TIMEOUT_MS);\n },\n strike,\n setStrike,\n underline,\n setUnderline,\n }}\n >\n {children}\n </TiptapContext.Provider>\n );\n};\n","import React from \"react\";\n\nexport function useIsClient() {\n const [loaded, setLoaded] = React.useState(false);\n useIsomorphicLayoutEffect(() => {\n setLoaded(true);\n });\n return loaded;\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nconst isBrowser = typeof window !== \"undefined\";\nexport const useIsomorphicLayoutEffect = isBrowser\n ? React.useLayoutEffect\n : React.useEffect;\n","import {\n CodeComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n GlobalContextMeta,\n default as registerGlobalContext,\n} from \"@plasmicapp/host/registerGlobalContext\";\nimport { default as registerToken } from \"@plasmicapp/host/registerToken\";\nimport React from \"react\";\n\nexport type Registerable = {\n registerComponent: typeof registerComponent;\n registerGlobalContext: typeof registerGlobalContext;\n registerToken: typeof registerToken;\n};\n\nexport function makeRegisterComponent<T extends React.ComponentType<any>>(\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n registerComponentHelper(loader, component, meta);\n };\n}\n\nexport function makeRegisterGlobalContext<T extends React.ComponentType<any>>(\n component: T,\n meta: GlobalContextMeta<React.ComponentProps<T>>\n) {\n return function (loader?: Registerable) {\n if (loader) {\n loader.registerGlobalContext(component, meta);\n } else {\n registerGlobalContext(component, meta);\n }\n };\n}\n\nexport function registerComponentHelper<T extends React.ComponentType<any>>(\n loader: Registerable | undefined,\n component: T,\n meta: CodeComponentMeta<React.ComponentProps<T>>\n) {\n if (loader) {\n loader.registerComponent(component, meta);\n } else {\n registerComponent(component, meta);\n }\n}\n\ntype ReactElt = {\n children: ReactElt | ReactElt[];\n props: {\n children: ReactElt | ReactElt[];\n [prop: string]: any;\n } | null;\n type: React.ComponentType<any> | null;\n key: string | null;\n} | null;\n\nexport function traverseReactEltTree(\n children: React.ReactNode,\n callback: (elt: ReactElt) => void\n) {\n const rec = (elts: ReactElt | ReactElt[] | null) => {\n (Array.isArray(elts) ? elts : [elts]).forEach((elt) => {\n if (elt) {\n callback(elt);\n if (elt.children) {\n rec(elt.children);\n }\n if (elt.props?.children && elt.props.children !== elt.children) {\n rec(elt.props.children);\n }\n }\n });\n };\n rec(children as any);\n}\n\nexport function asArray<T>(x: T[] | T | undefined | null) {\n if (Array.isArray(x)) {\n return x;\n } else if (x == null) {\n return [];\n } else {\n return [x];\n }\n}\n","import { usePlasmicCanvasContext } from \"@plasmicapp/host\";\nimport { ActionProps } from \"@plasmicapp/host/registerComponent\";\nimport Document from \"@tiptap/extension-document\";\nimport Paragraph from \"@tiptap/extension-paragraph\";\nimport Text from \"@tiptap/extension-text\";\nimport type { Extensions, JSONContent } from \"@tiptap/react\";\nimport { EditorProvider } from \"@tiptap/react\";\nimport { Switch } from \"antd\";\nimport React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n allExtensions,\n TiptapContextProvider,\n useTiptapContext,\n} from \"./contexts\";\nimport { useIsClient } from \"./useIsClient\";\nimport {\n Registerable,\n registerComponentHelper,\n traverseReactEltTree,\n} from \"./utils\";\n\nexport const TIPTAP_COMPONENT_NAME = \"hostless-tiptap\";\n\nexport type TiptapProps = {\n contentHtml?: string;\n contentJson?: JSONContent;\n defaultContentJson?: JSONContent;\n useJson: boolean;\n extensions?: React.ReactElement;\n toolbar?: React.ReactElement;\n className: string;\n onChange: (content: JSONContent) => void;\n};\n\nexport function Tiptap(props: TiptapProps) {\n const isClient = useIsClient();\n const [active, setActive] = useState<boolean>(false);\n const [refreshKey, setRefreshKey] = useState(0);\n const activeRef = useRef<boolean>();\n activeRef.current = active;\n\n const {\n extensions,\n contentHtml,\n defaultContentJson,\n className,\n onChange,\n toolbar,\n useJson,\n } = props;\n const { ...tiptapContext } = useTiptapContext();\n const usedExtensions: Record<string, any> = allExtensions.reduce(\n (acc: any, ext) => {\n if (tiptapContext[ext] !== undefined) {\n acc[ext] = tiptapContext[ext];\n }\n return acc;\n },\n {}\n );\n\n const extensionsProp: Extensions = [\n Document,\n Paragraph,\n Text,\n ...Object.values(usedExtensions),\n ];\n\n const isCanvas = usePlasmicCanvasContext();\n const defaultContent = useJson ? defaultContentJson : contentHtml;\n\n // If you try to update the content via the content prop (as opposed to directly typing into the tiptap editor), the new content won't show. So we got to refresh the editor to make the default content appear.\n useEffect(() => {\n // only refresh key if the user is not typing\n if (activeRef.current) return;\n setRefreshKey(Math.random() * 1000000);\n }, [...(isCanvas ? [defaultContent] : [])]);\n\n if (!isClient) {\n return null;\n }\n\n const css = `\n .tiptap {\n padding: 0;\n outline: none;\n }\n `;\n\n const toolbarProp = toolbar ? (\n <div style={{ display: \"flex\", alignItems: \"center\" }}>{toolbar}</div>\n ) : null;\n\n return (\n <div className={className} style={{ position: \"relative\" }}>\n {/* Editor provider is an uncontrolled component */}\n <EditorProvider\n extensions={extensionsProp}\n key={`${extensionsProp.length}${refreshKey}`}\n content={defaultContent}\n onCreate={({ editor }) => {\n onChange(editor.getJSON());\n }}\n onUpdate={({ editor }) => {\n onChange(editor.getJSON());\n }}\n onFocus={() => setActive(true)}\n onBlur={() => setActive(false)}\n slotBefore={toolbarProp}\n // slotAfter={<MyEditorFooter />}\n\n // TODO: HIDE children prop\n children={undefined}\n editorProps={{\n attributes: {\n className,\n },\n }}\n />\n {extensions}\n <style dangerouslySetInnerHTML={{ __html: css }} />\n </div>\n );\n}\n\nexport function TiptapWrapper(props: TiptapProps) {\n return (\n <TiptapContextProvider>\n <Tiptap {...props} />\n </TiptapContextProvider>\n );\n}\n\nexport function AddExtension({\n studioOps,\n componentProps,\n}: ActionProps<TiptapProps>) {\n const usedExtensions: string[] = useMemo(() => {\n const list: string[] = [];\n traverseReactEltTree(componentProps?.extensions, (elt) => {\n const ext = elt?.type?.displayName?.toLowerCase?.();\n if (ext) {\n list.push(ext);\n }\n });\n return list;\n }, [componentProps?.extensions]);\n\n const usedExtensionTools: string[] = useMemo(() => {\n const list: string[] = [];\n traverseReactEltTree(componentProps?.toolbar, (elt) => {\n const ext = elt?.type?.displayName?.toLowerCase?.();\n if (ext && ext.includes(\"toolbar\")) {\n list.push(ext.replace(\"toolbar\", \"\"));\n }\n });\n return list;\n }, [componentProps?.toolbar]);\n\n const handleChange = (extName: string, add: boolean) => {\n if (add) {\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: `${TIPTAP_COMPONENT_NAME}-extension-${extName}`,\n props: {},\n },\n \"extensions\"\n );\n studioOps.appendToSlot(\n {\n type: \"component\",\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-${extName}`,\n props: {},\n },\n \"toolbar\"\n );\n } else {\n const extIndices = usedExtensions.flatMap((ext, i) =>\n ext === extName ? i : []\n );\n extIndices\n .reverse()\n .forEach(\n (i) => i !== -1 && studioOps.removeFromSlotAt(i, \"extensions\")\n );\n\n const toolIndices = usedExtensionTools.flatMap((ext, i) =>\n ext === extName ? i : []\n );\n toolIndices\n .reverse()\n .forEach((i) => i !== -1 && studioOps.removeFromSlotAt(i, \"toolbar\"));\n }\n };\n\n return (\n <div\n style={{\n marginBottom: 10,\n paddingBottom: 10,\n borderBottom: \"1px dashed #ccc\",\n }}\n >\n <p>\n You can add capabilities to Tiptap Rich Text Editor using the tools\n below.\n </p>\n <p>\n To further customize the extensions, find them under the Editor's\n \"extensions\" and \"toolbar\" slots\n </p>\n {allExtensions.map((ext) => (\n <label\n key={ext}\n data-test-id={`custom-action-${ext}`}\n style={{\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: 5,\n color: \"#1b1b18\",\n }}\n >\n <span>{ext}</span>\n <Switch\n size=\"small\"\n checked={\n usedExtensions.includes(ext) || usedExtensionTools.includes(ext)\n }\n onChange={(checked) => handleChange(ext, checked)}\n />\n </label>\n ))}\n </div>\n );\n}\n\nexport function registerTiptap(loader?: Registerable) {\n registerComponentHelper(loader, TiptapWrapper, {\n name: TIPTAP_COMPONENT_NAME,\n displayName: \"Tiptap Rich Text Editor\",\n defaultStyles: {\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"rgb(204,204,204)\",\n borderRadius: \"4px\",\n padding: \"10px\",\n width: \"300px\",\n },\n actions: [\n {\n type: \"custom-action\",\n control: AddExtension,\n },\n ],\n props: {\n useJson: {\n displayName: \"Use JSON default content\",\n type: \"boolean\",\n defaultValue: false,\n },\n // a better naming for this would be defaultContentHtml, but we can't change the name anymore for backwards compatibility reasons (can't change the name of an existing prop)\n contentHtml: {\n type: \"string\",\n displayName: \"HTML Content\",\n description: \"Provide default content as HTML\",\n hidden: (ps) => ps.useJson,\n },\n defaultContentJson: {\n type: \"object\",\n displayName: \"JSON Content\",\n description: \"Provide default content as JSON\",\n hidden: (ps) => !ps.useJson,\n },\n // contentJson is exposed as state, and its not combined with defaultContentJson via \"editOnly/uncontrolledProp\" fields because\n // that pattern is for controlled components, while the wrapped component (EditorProvider) is an uncontrolled component.\n contentJson: {\n type: \"object\",\n hidden: () => true,\n },\n extensions: {\n type: \"slot\",\n hidePlaceholder: true,\n allowedComponents: allExtensions.map(\n (ext) => `${TIPTAP_COMPONENT_NAME}-extension-${ext}`\n ),\n },\n toolbar: {\n type: \"slot\",\n hidePlaceholder: true,\n allowedComponents: allExtensions.map(\n (ext) => `${TIPTAP_COMPONENT_NAME}-toolbar-${ext}`\n ),\n },\n onChange: {\n type: \"eventHandler\",\n argTypes: [{ name: \"content\", type: \"object\" }],\n },\n },\n states: {\n content: {\n type: \"writable\",\n variableType: \"object\",\n valueProp: \"contentJson\",\n onChangeProp: \"onChange\",\n },\n },\n importName: \"TiptapWrapper\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerTiptap\",\n });\n}\n","import TiptapBold from \"@tiptap/extension-bold\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface BoldProps {\n className: string;\n}\n\nexport function Bold(props: BoldProps) {\n const { setBold } = useTiptapContext();\n\n useEffect(() => {\n setBold(\n TiptapBold.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setBold(undefined);\n };\n }, []);\n\n return null;\n}\nBold.displayName = \"Bold\";\n\nexport function registerBold(loader?: Registerable) {\n registerComponentHelper(loader, Bold, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-bold`,\n displayName: \"Tiptap Bold\",\n props: {},\n importName: \"Bold\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerBold\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import TiptapCode from \"@tiptap/extension-code\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface CodeProps {\n className: string;\n}\n\nexport function Code(props: CodeProps) {\n const { setCode } = useTiptapContext();\n\n useEffect(() => {\n setCode(\n TiptapCode.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setCode(undefined);\n };\n }, []);\n\n return null;\n}\nCode.displayName = \"Code\";\n\nexport function registerCode(loader?: Registerable) {\n registerComponentHelper(loader, Code, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-code`,\n displayName: \"Tiptap Code\",\n props: {},\n importName: \"Code\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerCode\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import TiptapItalic from \"@tiptap/extension-italic\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface ItalicProps {\n className: string;\n}\n\nexport function Italic(props: ItalicProps) {\n const { setItalic } = useTiptapContext();\n\n useEffect(() => {\n setItalic(\n TiptapItalic.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setItalic(undefined);\n };\n }, []);\n\n return null;\n}\nItalic.displayName = \"Italic\";\n\nexport function registerItalic(loader?: Registerable) {\n registerComponentHelper(loader, Italic, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-italic`,\n displayName: \"Tiptap Italic\",\n props: {},\n importName: \"Italic\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerItalic\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import TiptapLink from \"@tiptap/extension-link\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface LinkProps {\n className: string;\n}\n\nexport function Link(props: LinkProps) {\n const { setLink } = useTiptapContext();\n\n useEffect(() => {\n setLink(\n TiptapLink.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setLink(undefined);\n };\n }, []);\n\n return null;\n}\nLink.displayName = \"Link\";\n\nexport function registerLink(loader?: Registerable) {\n registerComponentHelper(loader, Link, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-link`,\n displayName: \"Tiptap Link\",\n props: {},\n importName: \"Link\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerLink\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { DataProvider, repeatedElement } from \"@plasmicapp/host\";\nimport { SuggestionProps } from \"@tiptap/suggestion\";\nimport React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useState,\n} from \"react\";\n\ntype MentionListProps = SuggestionProps<any> & {\n suggestionItem: React.ReactNode;\n searchField: string;\n popupClassName: string;\n itemClassName: string;\n selectedItemClassName: string;\n};\n\nexport default forwardRef(\n (\n props: MentionListProps,\n ref: React.ForwardedRef<{ onKeyDown: (e: KeyboardEvent) => boolean }>\n ) => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n const {\n items = [],\n suggestionItem,\n searchField,\n popupClassName,\n itemClassName,\n selectedItemClassName,\n } = props;\n\n const selectItem = (index: number) => {\n const item = items[index];\n\n if (item) {\n props.command?.({ id: item[searchField] });\n }\n };\n\n const upHandler = () => {\n setSelectedIndex((selectedIndex + items?.length - 1) % items.length);\n };\n\n const downHandler = () => {\n setSelectedIndex((selectedIndex + 1) % items.length);\n };\n\n const enterHandler = () => {\n selectItem(selectedIndex);\n };\n\n useEffect(() => setSelectedIndex(0), [items]);\n\n useImperativeHandle(ref, () => ({\n onKeyDown: (event) => {\n if (event.key === \"ArrowUp\") {\n upHandler();\n return true;\n }\n\n if (event.key === \"ArrowDown\") {\n downHandler();\n return true;\n }\n\n if (event.key === \"Enter\") {\n enterHandler();\n return true;\n }\n\n return false;\n },\n }));\n\n // bare minimum styles that can easily be overridden.\n const css = `\n .SuggestionsList {\n background: #eee;\n position: relative;\n border-radius: 0.5rem;\n\n & .item {\n display: block;\n width: 100%;\n\n & .is-selected {\n color: purple;\n }\n }\n }\n\n `;\n\n const hasSuggestionItemSlot = (suggestionItem as any)?.props.children;\n return (\n <div className={`SuggestionsList`}>\n <div className={popupClassName}>\n {props.items.length ? (\n props.items.map((item, index: number) => (\n <div\n role=\"button\"\n className={`item`}\n key={index}\n onClick={() => selectItem(index)}\n >\n <DataProvider\n key={item[searchField]}\n name={\"suggestionItem\"}\n data={item}\n >\n <div\n className={`${itemClassName} ${\n index === selectedIndex ? \"is-selected\" : \"\"\n }`}\n >\n <div\n /**\n * override styles from is-selected.\n * Reason: The styles added by Plasmic user via the Design tab in the studio have low-proiorty selectors\n * compared to the default styles defined above. And we do not have a choice on the selector either, so its not possible to increase its selector priority\n * What we do here though is add a child div with the className that should be able to overWrite the default styles instead.\n */\n className={\n index === selectedIndex ? selectedItemClassName : \"\"\n }\n >\n {hasSuggestionItemSlot\n ? repeatedElement(index === 0, suggestionItem)\n : item[searchField]}\n </div>\n </div>\n </DataProvider>\n </div>\n ))\n ) : (\n <div className=\"item\">No result</div>\n )}\n </div>\n <style dangerouslySetInnerHTML={{ __html: css }} />\n </div>\n );\n }\n);\n","import {\n DataProvider,\n repeatedElement,\n usePlasmicCanvasContext,\n} from \"@plasmicapp/host\";\nimport TiptapMention, { MentionOptions } from \"@tiptap/extension-mention\";\nimport { ReactRenderer } from \"@tiptap/react\";\nimport React, { useEffect, useMemo, useRef } from \"react\";\nimport tippy, { GetReferenceClientRect, Instance, Props } from \"tippy.js\";\nimport MentionList from \"./components/MentionList\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport type QueryResult = {\n data?: { response: any[] };\n error?: Error;\n isLoading?: boolean;\n};\n\nexport type MentionProps = Omit<MentionOptions, \"HTMLAttributes\"> & {\n className: string;\n dataStatic?: any[];\n hasDataDynamic?: boolean;\n dataDynamic?: QueryResult;\n suggestionItem: React.ReactNode;\n searchField?: string;\n popupClassName?: string;\n itemClassName?: string;\n selectedItemClassName?: string;\n mentionClassName?: string;\n maxSuggestionCount?: number;\n};\n\nexport function Mention(props: MentionProps) {\n const {\n dataStatic = [],\n dataDynamic,\n hasDataDynamic,\n suggestionItem,\n searchField = \"id\",\n popupClassName,\n itemClassName,\n selectedItemClassName,\n mentionClassName,\n maxSuggestionCount = 5,\n } = props;\n\n /**\n * Although refs should be sparingly used, we need all these refs here due to the way tiptap works:\n *\n * It needs to be passed the async function that returns the suggestion items, when the extension is initialized (ie. in the .configure() call). Whenever there is a need for new suggestions, the same async callback is called. Without refs, that callback would always use stale data. That is why we absolutely need these here.\n */\n const dataDynamicRef = useRef(dataDynamic);\n const hasDataDynamicRef = useRef(hasDataDynamic);\n const maxSuggestionCountRef = useRef(maxSuggestionCount);\n dataDynamicRef.current = dataDynamic;\n hasDataDynamicRef.current = hasDataDynamic;\n maxSuggestionCountRef.current = maxSuggestionCount;\n\n const { setMention } = useTiptapContext();\n useEffect(() => {\n setMention(\n TiptapMention.configure({\n HTMLAttributes: {\n class: mentionClassName,\n },\n renderLabel: ({ options, node }) => {\n return `${options.suggestion.char}${node.attrs.id}`;\n },\n suggestion: {\n /**\n * This function below only does static filtering. It can't give query parameters to the Plasmic query for filtering at the server side to avoid some complexities.\n *\n * Before we move on to the issues, lets first explain how it could have supported server-side filtering via query params:\n * - The user creates a plasmic query to fetch the suggestions. These suggestions are filtered by some query parameter. The value of the query parameter is bound to the currentMention state.\n *\n * - When the user types `@abc` for example, the following async function `items` is triggered. It knows the query and returns the new set of suggestions. The returned array is rendered in the suggestions popup\n *\n * Issues:\n * 1. Stale Query issue:\n * The same async function is responsible for setting the currentMention state, and also return the new suggestion results. We can't await the Plasmic query after it is triggered by the currentMention state change. So query results it has are stale.\n *\n * Solution: We poll the Plasmic query's isLoading field (indefinitely)\n *\n * For simplicity, therefore, we are just supporting static filtering for now, and may consider the approach highlighted above for filtering via query params.\n *\n * 2. The async function is provided at the time of extension initialization. That async function only knows the state/props in its render cycle, so these props are outdated at the time the async function is triggered.\n *\n * We can't put all of them in the useEffect dependencies array, because change in any of them will cause the Mention extension to be removed/re-added, resulting in a flicker on every keystroke + lost input focus (which causes the suggestion popup to never show)\n *\n * Solution: Use refs\n *\n * @param param0\n * @returns\n */\n items: ({ query }: { query: string }) => {\n if (!query) return [];\n\n if (!hasDataDynamicRef.current) {\n // for static data, just filter the static array and return results\n const res =\n dataStatic\n ?.filter((item) =>\n item[searchField]\n .toLowerCase?.()\n ?.includes(query.toLowerCase())\n )\n .slice(0, maxSuggestionCountRef.current) || [];\n return res;\n }\n\n if (!dataDynamicRef.current) return [];\n\n if (dataDynamicRef.current?.isLoading === false) {\n const data = dataDynamicRef.current.data?.response;\n if (!Array.isArray(data)) return [];\n return (\n data\n ?.filter((item) =>\n item[searchField]\n .toLowerCase?.()\n ?.includes(query.toLowerCase())\n )\n .slice(0, maxSuggestionCountRef.current) || []\n );\n }\n\n return [];\n },\n render: () => {\n let component: ReactRenderer<\n { onKeyDown: (e: KeyboardEvent) => boolean },\n typeof MentionList\n >;\n let popup: Instance<Props>[];\n const otherProps = {\n suggestionItem,\n searchField,\n popupClassName,\n itemClassName,\n selectedItemClassName,\n };\n\n return {\n // eslint-disable-next-line no-shadow\n onStart: (props) => {\n component = new ReactRenderer<any, any>(MentionList, {\n props: {\n ...props,\n ...otherProps,\n },\n editor: props.editor,\n });\n\n if (!props.clientRect) {\n return;\n }\n\n popup = tippy(\"body\", {\n getReferenceClientRect:\n props.clientRect as GetReferenceClientRect,\n appendTo: () => document.body,\n content: component.element,\n showOnCreate: true,\n interactive: true,\n trigger: \"manual\",\n placement: \"bottom-start\",\n });\n },\n\n // eslint-disable-next-line no-shadow\n onUpdate(props) {\n component.updateProps({\n ...props,\n ...otherProps,\n });\n\n if (!props.clientRect) {\n return;\n }\n\n popup?.[0]?.setProps({\n getReferenceClientRect:\n props.clientRect as GetReferenceClientRect,\n });\n },\n\n // eslint-disable-next-line no-shadow\n onKeyDown(props) {\n if (props.event.key === \"Escape\") {\n popup?.[0]?.hide();\n\n return true;\n }\n\n return component.ref?.onKeyDown(props.event) || false;\n },\n\n onExit() {\n popup?.[0]?.destroy();\n component.destroy();\n },\n };\n },\n },\n })\n );\n return () => {\n setMention(undefined);\n };\n // add only those dependencies that are OK to trigger a flicker in the tiptap editor, while it re-initializes. ie. changes that are one-time (or not frequent / not per keystroke)\n }, [\n searchField,\n mentionClassName,\n popupClassName,\n itemClassName,\n selectedItemClassName,\n ]);\n\n const inCanvas = !!usePlasmicCanvasContext();\n\n const providerData = useMemo(() => {\n const noData = [{ [searchField]: \"No data\" }];\n let data = inCanvas ? noData : [];\n if (!hasDataDynamic) {\n if (dataStatic?.length && Array.isArray(dataStatic)) {\n data = [...dataStatic];\n }\n return data;\n }\n\n if (!dataDynamic || dataDynamic.isLoading) return noData;\n data = dataDynamic.data?.response ?? noData;\n if (!Array.isArray(data)) return noData;\n return data.slice(0, maxSuggestionCount);\n }, [\n dataDynamic,\n searchField,\n hasDataDynamic,\n maxSuggestionCount,\n dataStatic,\n ]);\n\n return (\n <div\n style={{\n // ...(showSuggestionItem ? {} : { display: \"none\" }),\n ...{\n // bare minimum styles (that need not be overridden)\n // We just want to make the dataProvider data available to the MentionList component (<DataProvider> is needed to be returned from the returned JSX). It should not be shown in the UI, hence the display: none\n display: \"none\",\n position: \"absolute\",\n top: 0,\n background: \"white\",\n },\n }}\n >\n {providerData?.slice(0, maxSuggestionCount).map((item, index) => (\n // Data provider needs to be in the returned JSX (the actual use of the \"suggestionItem\" data is in the MentionList component.)\n <DataProvider key={item.id} name={\"suggestionItem\"} data={item}>\n {repeatedElement(index === 0, suggestionItem) ?? item[searchField]}\n </DataProvider>\n ))}\n </div>\n );\n // return null;\n}\nMention.displayName = \"Mention\";\n\nexport function registerMention(loader?: Registerable) {\n registerComponentHelper(loader, Mention, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-mention`,\n displayName: \"Tiptap Mention\",\n providesData: true,\n props: {\n dataDynamic: {\n type: \"dataSourceOpData\" as any,\n description: \"Filtered suggestions\",\n disableDynamicValue: true, // we don't want the users to temper with the Plasmic's default query type.\n hidden: (ps) => !ps.hasDataDynamic,\n },\n searchField: {\n type: \"string\",\n defaultValueHint: \"id\",\n },\n maxSuggestionCount: {\n type: \"number\",\n defaultValueHint: 5,\n description:\n \"Limits the number of suggestions that appear in the suggestions popup\",\n },\n dataStatic: {\n type: \"array\",\n hidden: (ps) => Boolean(ps.hasDataDynamic),\n itemType: {\n type: \"object\",\n nameFunc: (item) => item.label,\n fields: {\n id: \"string\",\n label: \"string\",\n },\n },\n defaultValue: [\n {\n id: \"thomasEd1\",\n label: \"Thomas Edison\",\n },\n {\n id: \"sherlock221b\",\n label: \"Sherlock Holmes\",\n },\n {\n id: \"eliot_thomas\",\n label: \"T.S Eliot\",\n },\n {\n id: \"shakespeare74\",\n label: \"William Shakespeare\",\n },\n ],\n },\n hasDataDynamic: {\n type: \"boolean\",\n },\n mentionClassName: {\n type: \"class\",\n displayName: \"Mention label\",\n },\n popupClassName: {\n type: \"class\",\n displayName: \"Suggestion Popup\",\n },\n itemClassName: {\n type: \"class\",\n displayName: \"Suggestion Item\",\n },\n selectedItemClassName: {\n type: \"class\",\n displayName: \"Selected Item\",\n },\n suggestionItem: {\n type: \"slot\",\n },\n currentMention: {\n type: \"string\",\n hidden: () => true,\n },\n },\n importName: \"Mention\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerMention\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import TiptapStrike from \"@tiptap/extension-strike\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface StrikeProps {\n className: string;\n}\n\nexport function Strike(props: StrikeProps) {\n const { setStrike } = useTiptapContext();\n\n useEffect(() => {\n setStrike(\n TiptapStrike.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setStrike(undefined);\n };\n }, []);\n\n return null;\n}\nStrike.displayName = \"Strike\";\n\nexport function registerStrike(loader?: Registerable) {\n registerComponentHelper(loader, Strike, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-strike`,\n displayName: \"Tiptap Strike\",\n props: {},\n importName: \"Strike\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerStrike\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import TiptapUnderline from \"@tiptap/extension-underline\";\nimport { useEffect } from \"react\";\nimport { useTiptapContext } from \"./contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"./registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"./utils\";\n\nexport interface UnderlineProps {\n className: string;\n}\n\nexport function Underline(props: UnderlineProps) {\n const { setUnderline } = useTiptapContext();\n\n useEffect(() => {\n setUnderline(\n TiptapUnderline.configure({\n HTMLAttributes: {\n class: props.className,\n },\n })\n );\n return () => {\n setUnderline(undefined);\n };\n }, []);\n\n return null;\n}\nUnderline.displayName = \"Underline\";\n\nexport function registerUnderline(loader?: Registerable) {\n registerComponentHelper(loader, Underline, {\n name: `${TIPTAP_COMPONENT_NAME}-extension-underline`,\n displayName: \"Tiptap Underline\",\n props: {},\n importName: \"Underline\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerUnderline\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarBoldProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarBoldScopeClassName: string;\n}\n\nexport function ToolbarBold(props: ToolbarBoldProps) {\n const { editor } = useCurrentEditor();\n const { bold } = useTiptapContext();\n\n const { className, children, toolbarBoldScopeClassName } = props;\n\n if (!editor || !bold) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"bold\") ? true : false}\n className={`${className} ${toolbarBoldScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"bold\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarBold.displayName = \"ToolbarBold\";\n\nexport function registerToolbarBold(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarBold, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-bold`,\n displayName: \"Tiptap Bold Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/bold.svg\",\n },\n ],\n },\n toolbarBoldScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarBold\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarBold[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarBold\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarBold\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarCodeProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarCodeScopeClassName: string;\n}\n\nexport function ToolbarCode(props: ToolbarCodeProps) {\n const { editor } = useCurrentEditor();\n const { code } = useTiptapContext();\n\n const { className, children, toolbarCodeScopeClassName } = props;\n\n if (!editor || !code) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"code\") ? true : false}\n className={`${className} ${toolbarCodeScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"code\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarCode.displayName = \"ToolbarCode\";\n\nexport function registerToolbarCode(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarCode, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-code`,\n displayName: \"Tiptap Code Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/code.svg\",\n },\n ],\n },\n toolbarCodeScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarCode\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarCode[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarCode\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarCode\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarItalicProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarItalicScopeClassName: string;\n}\n\nexport function ToolbarItalic(props: ToolbarItalicProps) {\n const { editor } = useCurrentEditor();\n const { italic } = useTiptapContext();\n\n const { className, children, toolbarItalicScopeClassName } = props;\n\n if (!editor || !italic) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"italic\") ? true : false}\n className={`${className} ${toolbarItalicScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"italic\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarItalic.displayName = \"ToolbarItalic\";\n\nexport function registerToolbarItalic(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarItalic, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-italic`,\n displayName: \"Tiptap Italic Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/italic.svg\",\n styles: {\n width: \"hug\",\n },\n },\n ],\n },\n toolbarItalicScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarItalic\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarItalic[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarItalic\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarItalic\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarLinkProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarLinkScopeClassName: string;\n}\n\nexport function ToolbarLink(props: ToolbarLinkProps) {\n const { editor } = useCurrentEditor();\n const { link } = useTiptapContext();\n\n const { className, children, toolbarLinkScopeClassName } = props;\n\n if (!editor || !link) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"link\") ? true : false}\n className={`${className} ${toolbarLinkScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"link\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarLink.displayName = \"ToolbarLink\";\n\nexport function registerToolbarLink(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarLink, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-link`,\n displayName: \"Tiptap Link Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/link.svg\",\n },\n ],\n },\n toolbarLinkScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarLink\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarLink[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarLink\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarLink\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarMentionProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarMentionScopeClassName: string;\n}\n\nexport function ToolbarMention(props: ToolbarMentionProps) {\n const { editor } = useCurrentEditor();\n const { mention } = useTiptapContext();\n\n const { className, children, toolbarMentionScopeClassName } = props;\n\n if (!editor || !mention) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"mention\") ? true : false}\n className={`${className} ${toolbarMentionScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().insertContent(\" @\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarMention.displayName = \"ToolbarMention\";\n\nexport function registerToolbarMention(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarMention, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-mention`,\n displayName: \"Tiptap Mention Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/mention.svg\",\n },\n ],\n },\n toolbarMentionScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarMention\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarMention[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarMention\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarMention\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarStrikeProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarStrikeScopeClassName: string;\n}\n\nexport function ToolbarStrike(props: ToolbarStrikeProps) {\n const { editor } = useCurrentEditor();\n const { strike } = useTiptapContext();\n\n const { className, children, toolbarStrikeScopeClassName } = props;\n\n if (!editor || !strike) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"strike\") ? true : false}\n className={`${className} ${toolbarStrikeScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"strike\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarStrike.displayName = \"ToolbarStrike\";\n\nexport function registerToolbarStrike(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarStrike, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-strike`,\n displayName: \"Tiptap Strike Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/strikethrough.svg\",\n },\n ],\n },\n toolbarStrikeScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarStrike\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarStrike[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarStrike\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarStrike\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { useCurrentEditor } from \"@tiptap/react\";\nimport React from \"react\";\nimport { useTiptapContext } from \"../contexts\";\nimport { TIPTAP_COMPONENT_NAME } from \"../registerTiptap\";\nimport { Registerable, registerComponentHelper } from \"../utils\";\n\nexport interface ToolbarUnderlineProps {\n className: string;\n children: React.ReactNode;\n selectedClassName: string;\n toolbarUnderlineScopeClassName: string;\n}\n\nexport function ToolbarUnderline(props: ToolbarUnderlineProps) {\n const { editor } = useCurrentEditor();\n const { underline } = useTiptapContext();\n\n const { className, children, toolbarUnderlineScopeClassName } = props;\n\n if (!editor || !underline) return null;\n\n return (\n <div\n // data-active attribute is used here to increase the priority/specificity of the selectedClassName prop styles\n data-active={editor.isActive(\"underline\") ? true : false}\n className={`${className} ${toolbarUnderlineScopeClassName}`}\n style={{ cursor: \"pointer\" }}\n role=\"button\"\n onClick={() => editor.chain().focus().toggleMark(\"underline\").run()}\n >\n {children}\n </div>\n );\n}\nToolbarUnderline.displayName = \"ToolbarUnderline\";\n\nexport function registerToolbarUnderline(loader?: Registerable) {\n registerComponentHelper(loader, ToolbarUnderline, {\n name: `${TIPTAP_COMPONENT_NAME}-toolbar-underline`,\n displayName: \"Tiptap Underline Toolbar Option\",\n defaultStyles: {\n width: \"hug\",\n padding: \"5px\",\n },\n props: {\n children: {\n type: \"slot\",\n hidePlaceholder: true,\n defaultValue: [\n {\n type: \"img\",\n src: \"https://static1.plasmic.app/underline.svg\",\n },\n ],\n },\n toolbarUnderlineScopeClassName: {\n type: \"styleScopeClass\",\n scopeName: \"toolbarUnderline\",\n } as any,\n selectedClassName: {\n type: \"class\",\n displayName: \"Tool Selected\",\n selectors: [\n {\n selector: \":toolbarUnderline[data-active=true]\",\n label: \"Base\",\n },\n ],\n },\n },\n importName: \"ToolbarUnderline\",\n importPath: \"@plasmicpkgs/tiptap/skinny/registerToolbarUnderline\",\n parentComponentName: TIPTAP_COMPONENT_NAME,\n });\n}\n","import { registerBold } from \"./registerBold\";\nimport { registerCode } from \"./registerCode\";\nimport { registerItalic } from \"./registerItalic\";\nimport { registerLink } from \"./registerLink\";\nimport { registerMention } from \"./registerMention\";\nimport { registerStrike } from \"./registerStrike\";\nimport { registerTiptap } from \"./registerTiptap\";\nimport { registerUnderline } from \"./registerUnderline\";\nimport { registerToolbarBold } from \"./toolbar/registerToolbarBold\";\nimport { registerToolbarCode } from \"./toolbar/registerToolbarCode\";\nimport { registerToolbarItalic } from \"./toolbar/registerToolbarItalic\";\nimport { registerToolbarLink } from \"./toolbar/registerToolbarLink\";\nimport { registerToolbarMention } from \"./toolbar/registerToolbarMention\";\nimport { registerToolbarStrike } from \"./toolbar/registerToolbarStrike\";\nimport { registerToolbarUnderline } from \"./toolbar/registerToolbarUnderline\";\nimport { Registerable } from \"./utils\";\n\nexport function registerAll(loader?: Registerable) {\n registerBold(loader);\n registerCode(loader);\n registerItalic(loader);\n registerLink(loader);\n registerMention(loader);\n registerStrike(loader);\n registerTiptap(loader);\n registerUnderline(loader);\n registerToolbarBold(loader);\n registerToolbarCode(loader);\n registerToolbarItalic(loader);\n registerToolbarLink(loader);\n registerToolbarMention(loader);\n registerToolbarStrike(loader);\n registerToolbarUnderline(loader);\n}\n"],"names":["__spreadValues","_a","_b","props"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plasmicpkgs/tiptap",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.29",
|
|
4
4
|
"description": "Tiptap for React",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"test-storybook": "test-storybook"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@plasmicapp/data-sources": "1.0.
|
|
58
|
+
"@plasmicapp/data-sources": "1.0.4",
|
|
59
59
|
"@plasmicapp/host": "2.0.2",
|
|
60
60
|
"@rollup/plugin-commonjs": "^11.0.0",
|
|
61
61
|
"@rollup/plugin-json": "^4.0.0",
|
|
@@ -97,5 +97,5 @@
|
|
|
97
97
|
"antd": "^5.11.5",
|
|
98
98
|
"tippy.js": "^6.3.7"
|
|
99
99
|
},
|
|
100
|
-
"gitHead": "
|
|
100
|
+
"gitHead": "aed0870defb894a50985f5b656f3f50e167b835e"
|
|
101
101
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var TiptapBold = require('@tiptap/extension-bold');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var registerTiptap = require('./registerTiptap-
|
|
5
|
+
var registerTiptap = require('./registerTiptap-b077cd09.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@tiptap/extension-document');
|
|
8
8
|
require('@tiptap/extension-paragraph');
|