@plasmicpkgs/tiptap 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/index.js +14 -13
- package/dist/index.js.map +1 -1
- package/dist/registerTiptap.d.ts +0 -1
- package/dist/tiptap.esm.js +14 -13
- package/dist/tiptap.esm.js.map +1 -1
- package/package.json +4 -6
- package/skinny/registerBold.cjs.js +1 -1
- package/skinny/registerBold.esm.js +1 -1
- package/skinny/registerCode.cjs.js +1 -1
- package/skinny/registerCode.esm.js +1 -1
- package/skinny/registerItalic.cjs.js +1 -1
- package/skinny/registerItalic.esm.js +1 -1
- package/skinny/registerLink.cjs.js +1 -1
- package/skinny/registerLink.esm.js +1 -1
- package/skinny/registerMention.cjs.js +1 -1
- package/skinny/registerMention.esm.js +1 -1
- package/skinny/registerStrike.cjs.js +1 -1
- package/skinny/registerStrike.esm.js +1 -1
- package/skinny/{registerTiptap-4a3b1c7e.cjs.js → registerTiptap-004bd7c8.cjs.js} +15 -14
- package/skinny/registerTiptap-004bd7c8.cjs.js.map +1 -0
- package/skinny/{registerTiptap-f7e7006c.esm.js → registerTiptap-3c71865b.esm.js} +15 -14
- package/skinny/registerTiptap-3c71865b.esm.js.map +1 -0
- package/skinny/registerTiptap.cjs.js +1 -1
- package/skinny/registerTiptap.d.ts +0 -1
- package/skinny/registerTiptap.esm.js +1 -1
- package/skinny/registerToolbarBold.cjs.js +1 -1
- package/skinny/registerToolbarBold.esm.js +1 -1
- package/skinny/registerToolbarCode.cjs.js +1 -1
- package/skinny/registerToolbarCode.esm.js +1 -1
- package/skinny/registerToolbarItalic.cjs.js +1 -1
- package/skinny/registerToolbarItalic.esm.js +1 -1
- package/skinny/registerToolbarLink.cjs.js +1 -1
- package/skinny/registerToolbarLink.esm.js +1 -1
- package/skinny/registerToolbarMention.cjs.js +1 -1
- package/skinny/registerToolbarMention.esm.js +1 -1
- package/skinny/registerToolbarStrike.cjs.js +1 -1
- package/skinny/registerToolbarStrike.esm.js +1 -1
- package/skinny/registerToolbarUnderline.cjs.js +1 -1
- package/skinny/registerToolbarUnderline.esm.js +1 -1
- package/skinny/registerUnderline.cjs.js +1 -1
- package/skinny/registerUnderline.esm.js +1 -1
- package/skinny/registerTiptap-4a3b1c7e.cjs.js.map +0 -1
- package/skinny/registerTiptap-f7e7006c.esm.js.map +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var TiptapStrike = require('@tiptap/extension-strike');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var registerTiptap = require('./registerTiptap-
|
|
5
|
+
var registerTiptap = require('./registerTiptap-004bd7c8.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@tiptap/extension-document');
|
|
8
8
|
require('@tiptap/extension-paragraph');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import TiptapStrike from '@tiptap/extension-strike';
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-
|
|
3
|
+
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-3c71865b.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@tiptap/extension-document';
|
|
6
6
|
import '@tiptap/extension-paragraph';
|
|
@@ -165,9 +165,7 @@ function Tiptap(props) {
|
|
|
165
165
|
const {
|
|
166
166
|
extensions,
|
|
167
167
|
contentHtml,
|
|
168
|
-
defaultContentHtml,
|
|
169
168
|
defaultContentJson,
|
|
170
|
-
contentJson,
|
|
171
169
|
className,
|
|
172
170
|
onChange,
|
|
173
171
|
toolbar,
|
|
@@ -190,12 +188,12 @@ function Tiptap(props) {
|
|
|
190
188
|
...Object.values(usedExtensions)
|
|
191
189
|
];
|
|
192
190
|
const isCanvas = host.usePlasmicCanvasContext();
|
|
193
|
-
const
|
|
191
|
+
const defaultContent = useJson ? defaultContentJson : contentHtml;
|
|
194
192
|
React.useEffect(() => {
|
|
195
193
|
if (activeRef.current)
|
|
196
194
|
return;
|
|
197
195
|
setRefreshKey(Math.random() * 1e6);
|
|
198
|
-
}, [...isCanvas ? [
|
|
196
|
+
}, [...isCanvas ? [defaultContent] : []]);
|
|
199
197
|
if (!isClient) {
|
|
200
198
|
return null;
|
|
201
199
|
}
|
|
@@ -209,9 +207,9 @@ function Tiptap(props) {
|
|
|
209
207
|
return /* @__PURE__ */ React__default.default.createElement("div", { className, style: { position: "relative" } }, /* @__PURE__ */ React__default.default.createElement(
|
|
210
208
|
react.EditorProvider,
|
|
211
209
|
{
|
|
212
|
-
key: `${extensionsProp.length}${refreshKey}`,
|
|
213
210
|
extensions: extensionsProp,
|
|
214
|
-
|
|
211
|
+
key: `${extensionsProp.length}${refreshKey}`,
|
|
212
|
+
content: defaultContent,
|
|
215
213
|
onCreate: ({ editor }) => {
|
|
216
214
|
onChange(editor.getJSON());
|
|
217
215
|
},
|
|
@@ -349,22 +347,25 @@ function registerTiptap(loader) {
|
|
|
349
347
|
type: "boolean",
|
|
350
348
|
defaultValue: false
|
|
351
349
|
},
|
|
350
|
+
// 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)
|
|
352
351
|
contentHtml: {
|
|
353
352
|
type: "string",
|
|
354
353
|
displayName: "HTML Content",
|
|
355
|
-
|
|
356
|
-
uncontrolledProp: "defaultContentHtml",
|
|
357
|
-
description: "Contents of the editor",
|
|
354
|
+
description: "Provide default content as HTML",
|
|
358
355
|
hidden: (ps) => ps.useJson
|
|
359
356
|
},
|
|
360
|
-
|
|
357
|
+
defaultContentJson: {
|
|
361
358
|
type: "object",
|
|
362
359
|
displayName: "JSON Content",
|
|
363
|
-
|
|
364
|
-
uncontrolledProp: "defaultContentJson",
|
|
365
|
-
description: "Contents of the editor as JSON",
|
|
360
|
+
description: "Provide default content as JSON",
|
|
366
361
|
hidden: (ps) => !ps.useJson
|
|
367
362
|
},
|
|
363
|
+
// contentJson is exposed as state, and its not combined with defaultContentJson via "editOnly/uncontrolledProp" fields because
|
|
364
|
+
// that pattern is for controlled components, while the wrapped component (EditorProvider) is an uncontrolled component.
|
|
365
|
+
contentJson: {
|
|
366
|
+
type: "object",
|
|
367
|
+
hidden: () => true
|
|
368
|
+
},
|
|
368
369
|
extensions: {
|
|
369
370
|
type: "slot",
|
|
370
371
|
hidePlaceholder: true,
|
|
@@ -404,4 +405,4 @@ exports.TiptapWrapper = TiptapWrapper;
|
|
|
404
405
|
exports.registerComponentHelper = registerComponentHelper;
|
|
405
406
|
exports.registerTiptap = registerTiptap;
|
|
406
407
|
exports.useTiptapContext = useTiptapContext;
|
|
407
|
-
//# sourceMappingURL=registerTiptap-
|
|
408
|
+
//# sourceMappingURL=registerTiptap-004bd7c8.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerTiptap-004bd7c8.cjs.js","sources":["../src/contexts.tsx","../src/useIsClient.ts","../src/utils.ts","../src/registerTiptap.tsx"],"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 ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\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: ComponentMeta<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: ComponentMeta<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"],"names":["React","useState","registerComponent","useRef","Document","Paragraph","Text","usePlasmicCanvasContext","useEffect","EditorProvider","useMemo","Switch"],"mappings":"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"}
|
|
@@ -155,9 +155,7 @@ function Tiptap(props) {
|
|
|
155
155
|
const {
|
|
156
156
|
extensions,
|
|
157
157
|
contentHtml,
|
|
158
|
-
defaultContentHtml,
|
|
159
158
|
defaultContentJson,
|
|
160
|
-
contentJson,
|
|
161
159
|
className,
|
|
162
160
|
onChange,
|
|
163
161
|
toolbar,
|
|
@@ -180,12 +178,12 @@ function Tiptap(props) {
|
|
|
180
178
|
...Object.values(usedExtensions)
|
|
181
179
|
];
|
|
182
180
|
const isCanvas = usePlasmicCanvasContext();
|
|
183
|
-
const
|
|
181
|
+
const defaultContent = useJson ? defaultContentJson : contentHtml;
|
|
184
182
|
useEffect(() => {
|
|
185
183
|
if (activeRef.current)
|
|
186
184
|
return;
|
|
187
185
|
setRefreshKey(Math.random() * 1e6);
|
|
188
|
-
}, [...isCanvas ? [
|
|
186
|
+
}, [...isCanvas ? [defaultContent] : []]);
|
|
189
187
|
if (!isClient) {
|
|
190
188
|
return null;
|
|
191
189
|
}
|
|
@@ -199,9 +197,9 @@ function Tiptap(props) {
|
|
|
199
197
|
return /* @__PURE__ */ React.createElement("div", { className, style: { position: "relative" } }, /* @__PURE__ */ React.createElement(
|
|
200
198
|
EditorProvider,
|
|
201
199
|
{
|
|
202
|
-
key: `${extensionsProp.length}${refreshKey}`,
|
|
203
200
|
extensions: extensionsProp,
|
|
204
|
-
|
|
201
|
+
key: `${extensionsProp.length}${refreshKey}`,
|
|
202
|
+
content: defaultContent,
|
|
205
203
|
onCreate: ({ editor }) => {
|
|
206
204
|
onChange(editor.getJSON());
|
|
207
205
|
},
|
|
@@ -339,22 +337,25 @@ function registerTiptap(loader) {
|
|
|
339
337
|
type: "boolean",
|
|
340
338
|
defaultValue: false
|
|
341
339
|
},
|
|
340
|
+
// 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)
|
|
342
341
|
contentHtml: {
|
|
343
342
|
type: "string",
|
|
344
343
|
displayName: "HTML Content",
|
|
345
|
-
|
|
346
|
-
uncontrolledProp: "defaultContentHtml",
|
|
347
|
-
description: "Contents of the editor",
|
|
344
|
+
description: "Provide default content as HTML",
|
|
348
345
|
hidden: (ps) => ps.useJson
|
|
349
346
|
},
|
|
350
|
-
|
|
347
|
+
defaultContentJson: {
|
|
351
348
|
type: "object",
|
|
352
349
|
displayName: "JSON Content",
|
|
353
|
-
|
|
354
|
-
uncontrolledProp: "defaultContentJson",
|
|
355
|
-
description: "Contents of the editor as JSON",
|
|
350
|
+
description: "Provide default content as JSON",
|
|
356
351
|
hidden: (ps) => !ps.useJson
|
|
357
352
|
},
|
|
353
|
+
// contentJson is exposed as state, and its not combined with defaultContentJson via "editOnly/uncontrolledProp" fields because
|
|
354
|
+
// that pattern is for controlled components, while the wrapped component (EditorProvider) is an uncontrolled component.
|
|
355
|
+
contentJson: {
|
|
356
|
+
type: "object",
|
|
357
|
+
hidden: () => true
|
|
358
|
+
},
|
|
358
359
|
extensions: {
|
|
359
360
|
type: "slot",
|
|
360
361
|
hidePlaceholder: true,
|
|
@@ -388,4 +389,4 @@ function registerTiptap(loader) {
|
|
|
388
389
|
}
|
|
389
390
|
|
|
390
391
|
export { AddExtension as A, TIPTAP_COMPONENT_NAME as T, Tiptap as a, TiptapWrapper as b, registerTiptap as c, registerComponentHelper as r, useTiptapContext as u };
|
|
391
|
-
//# sourceMappingURL=registerTiptap-
|
|
392
|
+
//# sourceMappingURL=registerTiptap-3c71865b.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registerTiptap-3c71865b.esm.js","sources":["../src/contexts.tsx","../src/useIsClient.ts","../src/utils.ts","../src/registerTiptap.tsx"],"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 ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\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: ComponentMeta<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: ComponentMeta<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"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ require('@tiptap/extension-text');
|
|
|
7
7
|
require('@tiptap/react');
|
|
8
8
|
require('antd');
|
|
9
9
|
require('react');
|
|
10
|
-
var registerTiptap = require('./registerTiptap-
|
|
10
|
+
var registerTiptap = require('./registerTiptap-004bd7c8.cjs.js');
|
|
11
11
|
require('@plasmicapp/host/registerComponent');
|
|
12
12
|
require('@plasmicapp/host/registerGlobalContext');
|
|
13
13
|
|
|
@@ -5,7 +5,6 @@ import { Registerable } from "./utils";
|
|
|
5
5
|
export declare const TIPTAP_COMPONENT_NAME = "hostless-tiptap";
|
|
6
6
|
export type TiptapProps = {
|
|
7
7
|
contentHtml?: string;
|
|
8
|
-
defaultContentHtml?: string;
|
|
9
8
|
contentJson?: JSONContent;
|
|
10
9
|
defaultContentJson?: JSONContent;
|
|
11
10
|
useJson: boolean;
|
|
@@ -5,7 +5,7 @@ import '@tiptap/extension-text';
|
|
|
5
5
|
import '@tiptap/react';
|
|
6
6
|
import 'antd';
|
|
7
7
|
import 'react';
|
|
8
|
-
export { A as AddExtension, T as TIPTAP_COMPONENT_NAME, a as Tiptap, b as TiptapWrapper, c as registerTiptap } from './registerTiptap-
|
|
8
|
+
export { A as AddExtension, T as TIPTAP_COMPONENT_NAME, a as Tiptap, b as TiptapWrapper, c as registerTiptap } from './registerTiptap-3c71865b.esm.js';
|
|
9
9
|
import '@plasmicapp/host/registerComponent';
|
|
10
10
|
import '@plasmicapp/host/registerGlobalContext';
|
|
11
11
|
//# sourceMappingURL=registerTiptap.esm.js.map
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var react = require('@tiptap/react');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var registerTiptap = require('./registerTiptap-
|
|
5
|
+
var registerTiptap = require('./registerTiptap-004bd7c8.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@tiptap/extension-document');
|
|
8
8
|
require('@tiptap/extension-paragraph');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCurrentEditor } from '@tiptap/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-
|
|
3
|
+
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-3c71865b.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@tiptap/extension-document';
|
|
6
6
|
import '@tiptap/extension-paragraph';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var react = require('@tiptap/react');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var registerTiptap = require('./registerTiptap-
|
|
5
|
+
var registerTiptap = require('./registerTiptap-004bd7c8.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@tiptap/extension-document');
|
|
8
8
|
require('@tiptap/extension-paragraph');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCurrentEditor } from '@tiptap/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-
|
|
3
|
+
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-3c71865b.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@tiptap/extension-document';
|
|
6
6
|
import '@tiptap/extension-paragraph';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var react = require('@tiptap/react');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var registerTiptap = require('./registerTiptap-
|
|
5
|
+
var registerTiptap = require('./registerTiptap-004bd7c8.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@tiptap/extension-document');
|
|
8
8
|
require('@tiptap/extension-paragraph');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCurrentEditor } from '@tiptap/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-
|
|
3
|
+
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-3c71865b.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@tiptap/extension-document';
|
|
6
6
|
import '@tiptap/extension-paragraph';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var react = require('@tiptap/react');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var registerTiptap = require('./registerTiptap-
|
|
5
|
+
var registerTiptap = require('./registerTiptap-004bd7c8.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@tiptap/extension-document');
|
|
8
8
|
require('@tiptap/extension-paragraph');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCurrentEditor } from '@tiptap/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-
|
|
3
|
+
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-3c71865b.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@tiptap/extension-document';
|
|
6
6
|
import '@tiptap/extension-paragraph';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var react = require('@tiptap/react');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var registerTiptap = require('./registerTiptap-
|
|
5
|
+
var registerTiptap = require('./registerTiptap-004bd7c8.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@tiptap/extension-document');
|
|
8
8
|
require('@tiptap/extension-paragraph');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCurrentEditor } from '@tiptap/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-
|
|
3
|
+
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-3c71865b.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@tiptap/extension-document';
|
|
6
6
|
import '@tiptap/extension-paragraph';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var react = require('@tiptap/react');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var registerTiptap = require('./registerTiptap-
|
|
5
|
+
var registerTiptap = require('./registerTiptap-004bd7c8.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@tiptap/extension-document');
|
|
8
8
|
require('@tiptap/extension-paragraph');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCurrentEditor } from '@tiptap/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-
|
|
3
|
+
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-3c71865b.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@tiptap/extension-document';
|
|
6
6
|
import '@tiptap/extension-paragraph';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var react = require('@tiptap/react');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var registerTiptap = require('./registerTiptap-
|
|
5
|
+
var registerTiptap = require('./registerTiptap-004bd7c8.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@tiptap/extension-document');
|
|
8
8
|
require('@tiptap/extension-paragraph');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCurrentEditor } from '@tiptap/react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-
|
|
3
|
+
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-3c71865b.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@tiptap/extension-document';
|
|
6
6
|
import '@tiptap/extension-paragraph';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var TiptapUnderline = require('@tiptap/extension-underline');
|
|
4
4
|
var React = require('react');
|
|
5
|
-
var registerTiptap = require('./registerTiptap-
|
|
5
|
+
var registerTiptap = require('./registerTiptap-004bd7c8.cjs.js');
|
|
6
6
|
require('@plasmicapp/host');
|
|
7
7
|
require('@tiptap/extension-document');
|
|
8
8
|
require('@tiptap/extension-paragraph');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import TiptapUnderline from '@tiptap/extension-underline';
|
|
2
2
|
import { useEffect } from 'react';
|
|
3
|
-
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-
|
|
3
|
+
import { u as useTiptapContext, r as registerComponentHelper, T as TIPTAP_COMPONENT_NAME } from './registerTiptap-3c71865b.esm.js';
|
|
4
4
|
import '@plasmicapp/host';
|
|
5
5
|
import '@tiptap/extension-document';
|
|
6
6
|
import '@tiptap/extension-paragraph';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registerTiptap-4a3b1c7e.cjs.js","sources":["../src/contexts.tsx","../src/useIsClient.ts","../src/utils.ts","../src/registerTiptap.tsx"],"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 ComponentMeta,\n default as registerComponent,\n} from \"@plasmicapp/host/registerComponent\";\nimport {\n default as registerGlobalContext,\n GlobalContextMeta,\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: ComponentMeta<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: ComponentMeta<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 defaultContentHtml?: 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 defaultContentHtml,\n defaultContentJson,\n contentJson,\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\n const content = useJson\n ? contentJson || defaultContentJson\n : contentHtml || defaultContentHtml;\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 if (activeRef.current) return;\n setRefreshKey(Math.random() * 1000000);\n }, [...(isCanvas ? [content] : [])]);\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 <EditorProvider\n key={`${extensionsProp.length}${refreshKey}`}\n // extensions={extensionsProp}\n extensions={extensionsProp}\n content={content}\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 contentHtml: {\n type: \"string\",\n displayName: \"HTML Content\",\n editOnly: true,\n uncontrolledProp: \"defaultContentHtml\",\n description: \"Contents of the editor\",\n hidden: (ps) => ps.useJson,\n },\n contentJson: {\n type: \"object\",\n displayName: \"JSON Content\",\n editOnly: true,\n uncontrolledProp: \"defaultContentJson\",\n description: \"Contents of the editor as JSON\",\n hidden: (ps) => !ps.useJson,\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"],"names":["React","useState","registerComponent","useRef","Document","Paragraph","Text","usePlasmicCanvasContext","useEffect","EditorProvider","useMemo","Switch"],"mappings":"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"}
|